1、;*;* 8255方式0的C口输入,A口输出 *;data segmentio8255a equ 288hio8255b equ 28bhio8255c equ 28ahdata endscode segment assume cs:codestart: mov ax,data mov ds,ax mov es,axmain: mov dx,io8255b ;设8255为C口输入,A口输出 mov al,( ) ;计算控制字 out dx,alinout: mov dx,( ) ;从C口输入一数据 in al,dx mov dx,( ) ;从A口输出刚才自C口 out dx,al ;所输入的数
2、据 jmp inout ;跳转,则继续自C口输入,A口输出code endsend start七、 思考题1、 根据程序要求补充实验程序,并执行程序观察现象;2、 修改程序,电平开关拨到上方时发光二极管灭,拨到下方时发光二极管亮。实验二 交通灯模拟控制实验1. 进一步掌握8255并行口的使用方法;2. 了解十字路口交通灯的模拟控制。分别利用三个发光二极管模拟南北路口和东西路口的红、黄、绿灯,通过编程使六个发光二极管按交通灯变化规律执行。PC0PC7/8255 接 L0L7/LED显示图2-1实验线路2、交通灯变化规律要求:(1)南北路口绿灯、东西路口红灯同时亮30秒左右;(2)南北路口的黄灯闪
3、烁若干次,东西路口红灯继续亮;(3)南北路口红灯、东西路口绿灯亮30秒左右;(4)南北路口红灯继续亮,东西路口黄灯闪烁若干次;(5)依次重复。2、参考程序流程图如图2-2所示。图2-3 参考程序流程图2、 根据图2-1实验线路进行电路连接;*;* 十字路口红绿灯模拟演示程序 *;* 端口各灯的设置: *;* 1红 1黄 1绿 0 0 2红 2黄 2绿 *;io8255a equ 28ahportc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能 db 81h,82h,80h,82h,80h,82h,80h ;的状态数据 db 0ffh ;结束标志code,ds:d
4、ata mov ax,data mov ds,ax mov dx,io8255b mov al,( ) ;8255控制字 out dx,al ;设置8255为C口输出 mov dx,io8255are_on: mov bx,0on: mov al,portc1bx cmp al,0ffh jz re_on out dx,al ;点亮相应的灯 inc bx mov cx,50 ;参数赋初值 test al,21h ;是否有绿灯亮 jz de1 ;没有,短延时 mov cx,500 ;有,长延时de1: mov di,9000 ;di赋初值9000de0: dec di ;减1计数 jnz de0
5、 ;di不为0 loop de1 jmp on ;转到on end start1、 根据要求补充和修改实验程序,达到实验要求;2、 修改电路和程序,利用其他I/O实现交通灯功能;3、 若实现按键修改红绿灯时间,程序和硬件应该怎样设计。实验三 可编程定时器8254应用实验1. 掌握8254各种工作方式的使用;2. 掌握8254的基本工作原理和编程方法。将8254的计数器0设置为工作方式2,计数器的计数初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用OUT0接LED发光二极管,观察电平的变化(当输入N+1个脉冲后OUT0变高电平)。图3-1 8254接口线路GATE0
6、/8254 接 +5VCLK0/8254 接 单脉冲CS/8254 接 Y0/IO地址OUT0/8254 接 L0/LEDDI、RW、E/核心板 接 DI、RW、E/LCD液晶D0D7/核心板 接 D0D7/ LCD液晶图3-2实验线路1、参考程序流程图如图3-3所示。图3-3 参考程序流程图2、8254控制寄存器地址 283H;计数器0地址 280H;计数器1地址 281H;计数器2地址 282H;2、 根据图3-3实验线路进行电路连接;*;* 8254计数器0计数实验 *;io8253a equ 283hio8253b equ 280h8254计数器0为方式2,二进制计数 mov dx,i
7、o8253a out dx,al mov dx,io8253b ;送计数初值为0FH mov al,0fhlll: in al,dx ;读计数初值 call disp ;调显示子程序 mov cx,0ffffhs1: loop s1 jmp lll disp proc near ;显示子程序 push dx and al,0fh ;首先取低四位 mov dl,al cmp dl,9 ;判断是否9 jle ddd ;若不大于则为,加30h为其ASCII码 add dl,7 ;,再加7ddd: add dl,30h ;显示 mov ah,02 int 21h ret1、 修改程序和电路,采用查询或
8、中断方式实现模数转换;2、 编写程序,能否实现两路模拟量采样及显示功能。实验七 串行通信8251应用实验1. 了解串行通信的基本原理;2. 掌握串行接口芯片8251的工作原理和编程方法。1实验电路如图7-1和7-2所示,其中8254定时器用于产生8251的发送和接收时钟。2编写程序,在发送端(甲机)从键盘输入一个字符,将其ASCII码加1后发送出去,然后在接收端(乙机)接收到数据,并显示在显示屏上,实现数据的串行发送和接收。图7-1 发送端(甲机)实验线路图7-2 接收端(乙机)实验线路CLK0/8254 接 1M时钟GATE0/8254 接 +5VOUT0/8254 接 TX/RCLK/8251CS/8251 接 Y7/IO地址TXD/8251(发送端) 接 RXD(MAX232模块)键盘(发送端) 接 键盘接口(核心板)RXD/8251(接收端) 接 TXD(MAX232模块)1、图示电路中8251的控制口地址为2B9H,数据口地址为2B8H;8254定时器的控制口地址为283H,定时器0的地址280H。2、8254计数器的计数初值=时钟频率/(波特率波特率因子),这里的时钟频率接1MHZ,波特率若选1200,波特率因子若选16,则计数器初值为52。图7-3 发送和接收参考程序流程图2、 根据图7-1和7-2实验线路进行电路连接;6
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1