8086基本译码电路; 8255A的口地址为60H~63H;PA0-PA3和PC0-PC3口接4*4扫描键盘,PA4-PA7接四位LED数码管的COM端,PB口接四个LED数码管。 2.应用程序设计部分: 实现让4位LED数码管分别按“先按先出”方法,采用左移或右移的方法在4位LED上显示出最后4个按键号。
时间: 2024-03-13 17:47:25 浏览: 178
8086基本译码电路如下:
8086 CPU通过地址总线将地址传输到存储器芯片的地址引脚上,存储器芯片通过控制引脚将数据传输到数据总线上,CPU通过数据总线读取数据。在8086中,译码电路通常由一个地址译码器和一个数据译码器组成。地址译码器用于将CPU输出的地址信号转换成对应的芯片选通信号,数据译码器用于将芯片输出的数据信号转换成CPU可以接收的数据信号。
8255A是一种常用的输入输出设备控制器,它可以控制24个I/O口。其中,口地址为60H~63H的是8255A的三个可编程并行口(Port A、Port B、Port C),可以连接键盘和LED数码管等外设。
以下是应用程序设计部分的代码:
```
ORG 100H
MOV AL, 11110000B ; 初始化PA4-PA7为输出口
OUT 61H, AL ; 将命令输出到端口61H
MOV AL, 11110000B ; 初始化PB0-PB3为输出口
OUT 62H, AL ; 将命令输出到端口62H
MOV AL, 00001111B ; 初始化PC0-PC3为输入口
OUT 63H, AL ; 将命令输出到端口63H
MOV CX, 4 ; 设置循环次数为4次
MOV SI, 0 ; 初始化SI为0,用于存储按键号
MOV DI, 0 ; 初始化DI为0,用于指向LED数码管COM口
MOV AH, 0 ; 初始化AH为0,用于读取键盘输入
MOV BL, 0 ; 初始化BL为0,用于存储按键号
LOOP:
IN AL, 60H ; 读取键盘输入到AL
AND AL, 0Fh ; 取低4位,得到按键号
CMP AL, 0 ; 判断是否输入结束
JE END ; 如果输入结束,则跳转到END
MOV BL, AL ; 将按键号存储到BL中
MOV AL, DI ; 将DI存储到AL中
AND AL, 0Fh ; 取低4位,得到COM口号
OR AL, 1000b ; 设置为输出高电平
OUT 61H, AL ; 将命令输出到端口61H
MOV AL, BL ; 将按键号存储到AL中
OUT 62H, AL ; 将命令输出到端口62H
MOV AL, DI ; 将DI存储到AL中
AND AL, 0Fh ; 取低4位,得到COM口号
AND AL, 0111b ; 设置为输出低电平
OUT 61H, AL ; 将命令输出到端口61H
MOV SI, DI ; 将DI存储到SI中
ADD SI, 1 ; SI加1,用于存储下一个按键号
CMP SI, 4 ; 判断是否已经存储了4个按键号
JE DISPLAY ; 如果已经存储了4个按键号,则跳转到DISPLAY
JMP NEXT ; 否则继续读取下一个按键号
DISPLAY:
MOV AL, DI ; 将DI存储到AL中
AND AL, 0Fh ; 取低4位,得到COM口号
OR AL, 1000b ; 设置为输出高电平
OUT 61H, AL ; 将命令输出到端口61H
MOV AL, [SI-4] ; 读取按键号
OUT 62H, AL ; 将命令输出到端口62H
MOV AL, DI ; 将DI存储到AL中
AND AL, 0Fh ; 取低4位,得到COM口号
AND AL, 0111b ; 设置为输出低电平
OUT 61H, AL ; 将命令输出到端口61H
ADD DI, 1 ; DI加1,指向下一个LED数码管COM口
CMP DI, 4 ; 判断是否已经显示了4个按键号
JE END ; 如果已经显示了4个按键号,则跳转到END
JMP LOOP ; 否则继续循环
NEXT:
MOV AL, DI ; 将DI存储到AL中
AND AL, 0Fh ; 取低4位,得到COM口号
OR AL, 1000b ; 设置为输出高电平
OUT 61H, AL ; 将命令输出到端口61H
MOV AL, 0 ; 将0存储到AL中
OUT 62H, AL ; 将命令输出到端口62H
MOV AL, DI ; 将DI存储到AL中
AND AL, 0Fh ; 取低4位,得到COM口号
AND AL, 0111b ; 设置为输出低电平
OUT 61H, AL ; 将命令输出到端口61H
JMP LOOP ; 继续循环
END:
HLT ; 程序结束
```
该程序的实现方式如下:
首先,通过OUT指令将8255A的PA4-PA7和PB0-PB3口设置为输出口,PC0-PC3口设置为输入口。然后,使用循环语句读取键盘输入,将输入的按键号存储到SI中。当存储完4个按键号后,通过OUT指令将按键号依次输出到LED数码管上,采用左移或右移的方法在4位LED上显示出最后4个按键号。循环结束后,程序结束。
阅读全文