基于8086和8255A的数码管、LED显示键盘系统

基于8086和8255A的数码管、LED显示键盘系统

  • 系统
    • 8086核心
    • 8255A
      • 字寄存器
      • 方式选择式
    • 键盘扫描
    • LED同步显示
    • 数码管使用
    • 系统电路
    • 代码

系统

按下4*4按键后,数码管会显示对应的按键号,同时对应的LED点亮

8086核心

8086核心使用74LS373(锁存器)进行地址锁存。并使用4-16线译码器进行地址译码,译码结果连接CS进行片选操作

8255A

字寄存器

A1 A0 RD WR CS 功能
0 0 0 1 0 A->总线
0 1 0 1 0 B->总线
1 0 0 1 0 C->总线
0 0 1 0 0 总线->A
0 1 1 0 0 总线->B
1 0 1 0 0 总线->C
1 1 1 0 0 总线->控制字寄存器

方式选择式

D7 D6 D5 D4 D3 D2 D1 D0

D7:特征位(1:端口 0:按位置位)
D6D5:A组方式(00:方式0 01:方式1 1x:方式2)
D4:A口I/O(1:输入 0:输出 以下D3 D2 D0类似)
D3:上C口
D2:B组方式(0:方式0 1:方式1)
D1:B口I/O
D0:下C口I/O

键盘扫描

行列扫描方式,类似于51的矩阵键盘

LED同步显示

通过门电路达到LED和键盘之间的信息转换

数码管使用

通过数组存储7SEG段码的方式,调用不同数字对应的段码号来控制7段数码管

系统电路

代码

// 部分代码如下
BEGIN:;赋数码管显示列表初地址给BX
      MOV BX,OFFSET LEDADDR
      
DISI:
      ;列扫描---赋给AL
      MOV DX,CTRW
      MOV AL,RC
      OUT DX,AL
      MOV DX,PORTC
      MOV AL,000H
      OUT DX,AL
      IN AL,DX
      MOV CL,4D
      SHR AL,CL
      NOT AL
      AND AL,0FH
      MOV CL,AL
      
      ;行扫描---赋给AH
      MOV DX,CTRW
      MOV AL,HC
      OUT DX,AL
      MOV DX,PORTC
      MOV AL,000H
      OUT DX,AL
      IN AL,DX
      NOT AL
      AND AL,0FH
      MOV CH,AL
      
      ;清零DL作为计数器
      MOV DL,0D
      ......

完整工程包括:报告、效果图、电路文件、代码文件
完整工程

你可能感兴趣的:(8086,8255A,键盘扫描)