并行接口芯片8255A的应用-键盘与数码管

一、目的

       结合8255A的使用,说明翻转法行列式键盘的运用及七段数码管的工作原理,学习8255A并行接口芯片的工作原理,了解8255A的工作方式,掌握8255A在各种工作方式下的编程方法。

二、原理

      对于8255A的三个并行端口,选用端口C的低4位和高4位分别接4*4键盘的行列信号线,选用端口B接LED,选用端口A驱动数码管,数码管采用静态共阴极接法。实现当有一个按键按下时,LED和数码管均能够显示其按键值。

相应程序代码如下:

		IO3 EQU 30H
		CODE SEGMENT 'CODE';
ASSUME CS:CODE,DS:CODE
		MAIN PROC FAR
START:	MOV AX,CODE
		MOV DS,AX
L:		MOV AL,10000001B;
		MOV DX,IO3+6
		OUT DX,AL
		MOV DX,IO3+4
		MOV AL,00		;高4位送0
		OUT DX,AL
NOKEY:	IN AL,DX
		AND AL,0FH
		CMP AL,0FH
		JZ NOKEY
		CALL DELAY10
		IN AL,DX
		MOV BL,0
		MOV CX,4
LP1:	SHR AL,1
		JNC LP2
		INC BL
		LOOP LP1
LP2:	MOV AL,10001000B
		MOV DX,IO3+6
		OUT DX,AL
		MOV DX,IO3+4
		MOV AL,00		;低4位送0
		OUT DX,AL
		IN AL,DX
		AND AL,0F0H
		CMP AL,0F0H
		JZ L			;出错重来
		MOV BH,0
		MOV CX,4
LP3:	SHL AL,1
		JNC LP4
		INC BH
		LOOP LP3
LP4:	MOV AX,4
		MUL BH
		ADD AL,BL
		MOV DX,IO3+2
		OUT DX,AL
		MOV BX,OFFSET SEGDATA
		XLAT
		MOV DX,IO3
		OUT DX,AL
		MOV CX,0
J1:		LOOP J1
		JMP L
		RET
MAIN ENDP
DELAY10 PROC
		MOV CX,882
		LOOP $
		RET
DELAY10 ENDP
SEGDATA DB 4FH,5BH,06H,3FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
		CODE ENDS;代码段结束
		END START

三、元件清单

元件名称

所属类

所属子类

功能说明

8086

Microprocessor ICs

I86 Family

微处理器

74LS02

TTL 74LS series

Gate & Inverters

与非门

74LS373

TTL 74LS series

Flip-Flops & Latches

三态输出的八D型透明锁存器

74154

TTL 74 series

Decoders

4-16译码器

74273

TTL 74 series

Flip-Flops & Latches

八D型触发器(带清除端)

4078

CMOS 4000 series

Gate&Inverts

8输入与非门

8255A

Microprocessor ICs

Peripherals

可编程24位接口

BUTTON

Switch&Relays

Switch

按钮

LED-GREEN

Optoelectrics

LEDS

绿色LED发光管

NOT

Simulator Primitives

Gates

非门

7SEG-COM-CATHOD

OPtoelectronics

7-Segment Displays

红色共阴极七段数码管

RES

Resistors

电阻

四、仿真

1.电路原理图

2.编写程序并编译

点击菜单栏下的“源代码”-“设置代码生成工具”,设置代码生成规则,完成代码编写,编译成功后通过菜单栏下“源代码”-“添加/删除源代码文件”将代码文件所生成的.HEX文件添加加到8086中,实现电路仿真。

3.仿真结果及分析

对于8255A的三个并行端口,选用端口C的低4位和高4位分别接4*4键盘的行列信号线,选用端口B接LED,选用端口A驱动数码管,数码管采用静态共阴极接法。实现当有一个按键按下时,LED和数码管均能够显示其按键值。仿真效果如下图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值