微机原理与接口技术习题集1 联系客服

发布时间 : 星期三 文章微机原理与接口技术习题集1更新完毕开始阅读

.

DATA DISCODE

DISBUF

DATA SEGMENT DB DB DB …… ENDS

40H,79H,24H,30H,19H,12H 02H,78H,00H,18H 4 DUP(?)

8255A的方式控制字: D7 标志位=1 D6 D5 D4 A口I/O方式 D3 上半C口I/O方式 D2 D1 D0 下半C口I/O方式 A组方式 B组方式 B口I/O方式

【参考答案】P190 题1

(1) 8255A的地址是200H~203H,PA口的地址是200H,PB口的地址是201H,PC口的

地址是202H,控制口的地址是203H。由芯片上A1和A0引脚选择确定。

(2) 该接口电路中A端口、B端口应工作在方式0下,都作为输出口。方式控制字为: 1 0 0 0 I/O 0 1 I/O ……………………………………方式控制字标志 当任意值取0时,方式控制字是82H,写到控制口203H。 初始化程序 MOV AL,82H MOV DX,203H OUT DX,AL

(3) 软件查表的方法。 MOV AL,5 ;假设要显示的字符为5 LEA BX,DISCODE XLAT ;AL的内容为要显示的字符的显示代码

(4) 程序提供的是共阳极显示代码,PA口作为段码输出口,输出的信号反向驱动后送

给数码管,给定的数码管是共阴极数码管,而输出的信号反向后为共阴极显示代码。PB口作为位码输出口,输出的信号反向后送给数码管,所以PBi=1所对应的数码管亮。PA口地址是200H,PB口地址是201H。

1006. 已知电路如图9.6所示(8255控制格式同前述44题)。途中的数码管为共阴极型,

共阴极端接GND,数码管的a,b,……,g段依次接8255的PB0,PB1,……,PB6。要求对该电路进行编程,使数码管初始状态显示0。每按下一次S0键后,数码管显示的数字减1,减至0后,再按S0件,则数码管显示9;每按下一次S1键后,数码管显示的数字加1,加至9后,在按S1键,则数码管显示0。若同时按下S0和S1键,则退出程序。

.

A口方式0 A口输出 PC7~PC4任意值 B口方式0 B口输出 PC3~PC0任意值 .

8255AVcIORIOW200H~203H至DBA1A0RDWRCSD7~D0A1A0GNDPB7…PB0gPA0PA1S0S1…a同相段驱动电路…af g be d c图9.68255连接图

【参考答案】P193 例2

(1) 口地址

从图上可看出,PA口的口地址是200H,PB口的口地址是201H,PC口的口地址是202H,控制口的口地址是203H。 (2) 方式控制字

从图上可看出,PA口工作在方式0,输入口;PB口工作在方式0,输出口。所以方式控制字各位为:如任意值取1,则控制字是99H。故参考程序如下(不考虑按键的抖动)。 ;数据段 DATA SEGMENT TABLE DB 40H,79H,24H,30H,19H,12H,02H DB 78H,00H,18H ;共阴极LED的0~9显示代码 DATA ENDS ;代码段 CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,99H ;8255初始化 MOV DX,203H OUT DX,AL LEA BX,TABLE ;BX指向存放显示代码的起始单元 MOV DX,201H MOV AL,[BX] ;数码管初始状态显示0 OUT DX,AL ;送PB口 MOV DL,0H ;CL为初始显示值 AGAIN: MOV DX,200H IN AL,DX ;读入开关状态 AND AL,3 ;屏蔽高6位,保留低2位 CMP AL,0

.

.

JE EXIT ;2个键都按下,则退出程序运行 CMP AL,3 JE AGAIN ;2个键都没按下,显示数字不变,转去测试输入口 SHR AL,1 JNC S0DOWN ;S0 按下,转S0DOWN ;以下是S1按下的处理 S1DOWN: IN AL,DX TEST AL,2 ;测试S1键是否释放 JZ S1DOWN INC CL CMP CL,10 JC DISPLY MOV DL,0 JMP DISPLY ;以下是S0按下的处理 S0DOWN: IN AL,DX REST AL,01H ;测试S0键是否释放 JZ S0DOWN DEC CL CMP CAL,0FFH JC DISPLY MOV CL,9 DISPLY: MOV AL,CL XLAT ;换码 MOV DX,201H OUT DX,AL ;送PB口显示 MOV DX, 200H JMP AGAIN EXIT: MOV AH,4CH INT 21H CODE ENDS END START

1007. 硬件电路如图9.7所示,要求在8个7段显示器上依次不断重复显示19860524,

在显示过程中,要求发光二极管L一直亮。 显示数字 7段代码(H) 0 3F 1 06 2 5B 3 4F 4 66 5 6D 6 7D 7 07 8 7F 9 6F .

.

8255AA2A1A1A0RDWRCSG1 G2AG2BCBAY3译码器图9.7某硬件电路图B口A口W/R8046CPUA15A7M/IOA6A5A4A3A0 g段f驱…动b器a0#1#………7#…CSCSMCS位驱动器D0+5VD1…D7a显示数字与7段代码对应表fegbcd

【参考答案】P195 例3

(1) 8255A地址:A口是91H、B口是93H、C口是95H、控制口是97H。

(2) A口工作在方式0用作输出接口,B口工作在方式0用作输出接口,所以方式控制

字是90H,写到控制口97H。

(3) 显示使用的是共阴极LED显示器,提供的是共阴极显示代码;为了使发光二极管L

一直亮,只要使PA7输出恒为“0”即可。

参考程序如下: DATA SEGMENT DISPB DB 1,9,8,6,0,5,2,4

3FH,06H,5BH,4FH,66H,

TAB DB ;8255A初始化

6DH,7DH,07H,7FH,6FH

DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,90H ;控制哪一位亮 OUT 97H,AL LEA BX,TAB ;BX指向7段码表首 AGAIN: MOV AL,[SI] ;SI指向要显示数字的首部 INC SI XLAT ;换码,D7=0 OUT 91H,AL ;送段码 ROL DL,1 MOV AL,DL

.

OUT CALL CMP JNZ

93H,AL DISPLY DL,80H NEXT

;送位码(控制在哪个数码管上显示)

;DISPLY为延时1ms的延时程序,假定已存在