微机8255设计例子.docVIP

  • 26
  • 0
  • 约2.02千字
  • 约 4页
  • 2018-02-16 发布于河南
  • 举报
微机8255设计例子

1、用8255组成一个脉冲频率计数器,在一秒钟内对输入脉冲计数并把计数值显示出来,如图为8255组成的脉冲频率计数器,其中2片7493四位二进制计数器组成一个8位计数器。用8255的C口第0位PC0控制计数器复位,第7位PC7控制计数器的启动和停止,用端口B输入计数值,由端口A输出显示码。试写出这个脉冲频率计数器的控制程序,8255的端口地址为80H~83H。 MODE EQU 82H PORTA EQU 80H PORTB EQU 81H CONTRL EQU 83H START: MOV AL,MODE OUT CNTRL,AL LOOP:MOV AL,01 OUT CNTRL,AL MOV AL,0FH OUT CNTRL,AL CALL DELAY DEC AL OUT CNTRL,AL IN AL,PORTB OUT PORTA,AL JMP LOOP 2、如图所示,用8255的A端口接理想开关输入二进制数,B端口和C端口接8只发光二极管表示二进制数,写出读入开关设置的原码数据后送B端口补码和C端口反码的发光二极管的显示的程序段,8255的端口地址为380H~383H。 实现程序如下: MOV DX, 383H MOV AL, 90H OUT DX, AL MOV DX, 380H IN AL, DX AND AL, AL MOV AH, AL NOT AL MOV DX, 382H OUT DX, AL MOV AL,AH NEG AL DEC DX OUT DX, AL ;JNS DN ;DN: INC DX OUT DX, AL INC DX OUT DX, AL 3、如图所示为8255A同开关K和8个LED(发光二极管)的电路连接图,8255A的端口地址为160H~163H,A口工作于方式0,试编程实现:在开关K断开时,8个LED全部熄灭,在开关K闭合时,8个LED从上到下轮流点亮,且不断循环。 MOV AL,90H MOV DX,163H OUT DX,AL MOV AL,0FFH MOV DX,161H OUT DX,AL MOV DX,160H LOP: IN AL,DX SHR AL,01H JC LOP MOV AL,0FEH MOV DX,161H LOP1: OUT DX,AL CALL DELAY ROL AL,1 JMP LOP1 DELAY: MOV CX,100 L1: NOP LOOP L1 4、CPU通过8255控制8个开关和发光二极管,要求发光二极管的亮灭和开关状态一致,请根据以下所设计的电路编写相应的程序实现。 首先根据电路确定8255的4个端口地址: A9 A8 A7 A6 A5 A4 A3 A2 1 0 0 1 1 0 0 0 PA端口 0 1 PB端口 1 0 PC端口 1 1 控制端口 由以上可得: PA端口、PB端口、PC端口、控制端口的地址分别为260H、264H、268H、26CH。 PA端口为方式0输出,PB端口为方式0输入,PC端口没有参与电路工作,其输入输出方式随意,由此可确定控制字为82H。 实现程序如下: MOV DX , 26CH MOV AL , 82H OUT DX , AL MOV DX , 264H IN AL , DX NOT AL MOV DX , 260H OUT DX , AL 5、如下图设计一个利用8255PC5输出占空比1:1的方波电路,并编写相应程序。 答:MOV DX , 34CH MOV AL , 80H YYY1: MOV AL , 0AH OUT DX , AL MOV CX , 2000H YYY2: ADD AX , 0 LOOP YYY2 MOV AL , 0BH OUT DX , AL MOV CX , 2000H YYY3: ADD AX , 0 LOOP YYY3 JMP YYY1

文档评论(0)

1亿VIP精品文档

相关文档