基于 Intel 8086 的键盘显示系统——“专业课程设计”设计报告
基于 Intel 8086 的键盘显示系统
——“专业课程设计”设计报告
学
专
学
姓
号:
名:
指导老师:
院: 机电工程及其自动化
业: 电气工程及其自动化
0912XXXX
XXX
汪西川
时
间: 2012 年 6 月 29 日
基于 Intel 8086 的键盘显示系统——“专业课程设计”设计报告
1. 课程设计要求
利用 Intel 8086CPU、8259、8253、8255 芯片和 LED、按钮开关
等元器件设计一个键盘显示系统。
其中:LED 数码显示器共 8 位,要求每过 10ms 从右到左显示一
遍。键盘为 4*8 阵列(键名为:0~9,A~F,F1~F16),要求每过 10ms
全盘扫描一遍,每当“F1”键按下时显示字符串“20120629”,其余
各键扫描后的处理程序暂不考虑。
要求:画出系统连接图,并编写相关控制程序。
2. 系统连接图
系统连接图如下页所示:
基于 Intel 8086 的键盘显示系统——“专业课程设计”设计报告
基于 Intel 8086 的键盘显示系统——“专业课程设计”设计报告
3. 控制程序及简要说明
3.1 芯片初始化程序
8253:
MOV DX, 67H
MOV AL,00110101B
OUT DX,AL
MOV AL,00H
MOV AL,01H
8255(KEYBOARD):
MOV DX,6BH
MOV AL,10110110B
OUT DX,AL
以查询中断
8255(LED):
MOV DX,6FH
MOV AL,10000000B
OUT DX,AL
8259:
MOV DX,60H
MOV AL,00011011B
OUT DX,AL
MOV DX,61H
MOV AL,28H
OUT DX,AL
MOV AL,00000001B
OUT DX,AL
;将定时器 0 设为工作方式 2,采用 BCD 码
;让定时器 0 每 10MS 送出一个脉冲信号
;将 8255(键盘)设为工作方式 1,A、B 口输入,可
;将 8255(LED)设为工作方式 0,A、B 口输出
;ICW1 初始化
;ICW2 初始化
;ICW4 初始化
3.2 定时中断服务程序
利用 8259 的查询中断方式:
MOV DX,60H
基于 Intel 8086 的键盘显示系统——“专业课程设计”设计报告
MOV AL,00001100B
OUT DX,AL
IN AL,DX
3.3 键盘扫描程序
WALK:
MOV DX,68H
MOV AL,0
OUT DX,AL
MOV DX,6AH
IN AL,DX
CMP AL,0FFH
JZ WALK
MOV BL,0
MOV BH,FEH
MOV CX,4
FNDROW:
MOV AL,BH
MOV DX,69H
OUT DX,AL
ROL BH,1
MOV DX,6AH
IN AL,DX
CMP AL,0FFH
JNZ RNDCOL
ADD BL,8
LOOP FNDROW
JMP DONE
FNDCOL: ROR AL,1
;查询 IR3,输入查询命令,读出查询字
;扫描全 0 输出
;无键合上继续等待
;从 PA0 开始扫描
;本行无键合上,扫描下一行,键号加 8
;本行有键合上,判断哪一位
基于 Intel 8086 的键盘显示系统——“专业课程设计”设计报告
;键号在 BL 中
;判断是不是 F1
;不是 F1 结束中断
;是 F1,输出 20120629
JNC RIGHT
INC BL
JMP FNDCOL
RIGHT:CMP BL,17
JNZ DONE
.
.
.
DONE:
…
3.4 显示控制程序
循环点亮 8 个 LED:
MOV AL, 80H
OUT
6FH, AL
MOV AL, 0FFH
OUT
MOV AL,0FEH ;第一盏灯亮,其余灭
AGAIN: OUT
CALL DELAY
ROR
;每盏灯依次亮
0F8H, AL
6CH, AL
AL, 1
4. 设计体会
在本次程序设计之前,我对用电脑进行单片机电路模拟和仿真的
知识知之甚少,在进行本次设计的过程中,我不断寻找 Proteus 的教
学资料并进行学习与使用,让我对 Proteus 仿真软件的使用技能有了
很大提高。同时,通过对这一比较复杂的单片机系统的设计与调试经
验,让我对 Intel 8086 和 8259 等元器件有了更深的了解,让我发现了
基于 Intel 8086 的键盘显示系统——“专业课程设计”设计报告
对定时中断的编程不大熟悉的问题,并通过这一次编程设计解决了这
一问题并有了提高。总之,这次课程设计让我展开了设计的思路,对
学过的知识有很好的强化和拓展,在临近毕业的时候,这次专业课程
设计让我受益匪浅。