武汉理工大学华夏学院
课 程 设 计
课程名称微机接口技术及应用Ⅰ
题 目 彩灯显示系统
专 业 计算机科学与技术
班 级 计算机1121
学 号
姓 名
成 绩
指导教师 李朝纯、夏婷
2015 年 6 月 28 日
武汉理工大学华夏学院信息工程系
课程设计任务书
课程名称:微机接口技术与应用 指导教师:李朝纯、夏婷
班级名称:计算机1121 开课系、教研室:信息系、计算机
一、课程设计目的与任务
目的:
1. 巩固、实践本课程所学理论知识,综合运用可编程接口芯片8255、8253、8259进行应用系统设计;
2. 通过彩灯显示系统设计与制作,学习、掌握计算机应用系统的软、硬件设计方法;
3. 通过课程设计培养学生查阅、合理运用参考资料的能力。
任务:彩灯显示系统设计
二、课程设计的内容与基本要求
内容:
1.设计8种彩灯显示方式,显示时必须有左、右移动循环亮,左右对向移动循环亮;
2.用三个开关输入0~7 8个十进制数字,选择8种不同的彩灯组合状态进行显示;
3.用1位7段LED数码管以十进制显示当前彩灯显示方式的序号;
4.使用软件延时实现彩灯左、右移动循环过程中点亮1s的时间间隔;
5.若有异常事件发生(用开关模拟中断信号的产生),则使红灯闪烁10秒钟后,返
回原处继续。
*6.使用硬件延时实现彩灯左、右移动循环过程中点亮1s的时间间隔。(选做)
要求:
1.画出硬件原理图(接口芯片和外设部分)和实验连线图;
2.掌握计算机应用系统的软硬件的调试方法和步骤;
3.设计报告撰写格式要求(按提供的设计报告统一格式撰写)
具体内容如下:
① 设计任务与要求 ② 总体方案与说明
③ 硬件原理图与说明 ④ 实验电路图与说明
⑤ 系统流程图 ⑥ 软件主要功能模块及流程图
⑦ 问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想);
⑧ 小结与体会
⑨ 参考文献
提供附录:① 源程序(必须有简单注释)
② 使用说明
③ 参考资料
目 录
1 需求分析................................................................... 1
1.1 课程设计题目......................................................... 1
1.2 课程设计任务及要求................................................... 1
1.2.1任务............................................................ 1
1.2.2 要求........................................................... 1
1.3 软硬件运行环境及开发工具............................................. 1
2 概要设计................................................................... 2
2.1 循环彩灯流程图....................................................... 2
2.2 设计原理及方法....................................................... 4
3 详细设计................................................................... 5
3.1硬件设计与实现........................................................ 5
3.1.1 LED数码管结构.................................................. 5
3.1.2 LED数码管与8255的连线设计..................................... 5
3.1.3 8255与中断电路的实现........................................... 6
3.2 主控模块设计......................................................... 6
4 系统调试与操作说明......................................................... 8
4.1 系统调试............................................................ 8
4.1.1 硬件调试....................................................... 8
4.1.2 软件调试....................................................... 8
4.2 操作说明............................................................. 8
5 课程设计总结与体会......................................................... 9
参考文献:.................................................................... 9
附录........................................................................ 10
1 需求分析
1.1 课程设计题目
设计题目:彩灯显示系统
1.2课程设计任务及要求
1.2.1任务
1.设计8种彩灯显示方式,显示时必须有左、右移动循环亮,左右对向移动循环亮;
2.用三个开关输入0~7 8个十进制数字,选择8种不同的彩灯组合状态进行显示;
3.用1位7段LED数码管以十进制显示当前彩灯显示方式的序号;
4.使用软件延时实现彩灯左、右移动循环过程中点亮1s的时间间隔;
5.若有异常事件发生(用开关模拟中断信号的产生),则使红灯闪烁10秒钟后,返
回原处继续。
6.使用硬件延时实现彩灯左、右移动循环过程中点亮1s的时间间隔。(选做)
1.2.2要求
1.画出硬件原理图(接口芯片和外设部分)和实验连线图;
2.掌握计算机应用系统的软硬件的调试方法和步骤;
3.设计报告撰写格式要求(按提供的设计报告统一格式撰写)
具体内容如下:
① 设计任务与要求 ② 总体方案与说明
③ 硬件原理图与说明 ④ 实验电路图与说明
⑤ 系统流程图 ⑥ 软件主要功能模块及流程图
⑦ 问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想);
⑧ 小结与体会
⑨ 参考文献
提供附录:① 源程序(必须有简单注释)
② 使用说明
③ 参考资料
1.3 软硬件运行环境及开发工具
1. 7段LED数码管引脚功能
2. TDN86/88型多功能微机实验平台
2 概要设计
2.1 循环彩灯流程图
循环彩灯的设计思想就是通过读开关状态信息,执行程序。首先检测开关K1,启动程序,然后彩灯闪烁亮,检测k2,彩灯左循环亮,检测k3,彩灯右循环亮,检测k3和k2,彩灯右递增亮,检测k4和k1,彩灯由中间向两边扩散亮最后全亮,检测k2和k1,彩灯次循环由中间向两边扩散亮,。检测开关K0,退出循环控制程序。如图2-1。
图2.1 程序流程图
2.2 设计原理及方法
在本次实验中主要用到了8255A可编程并行接口芯片。Intel 8255A是一种通用的可编程并行接口芯片,由于它是可以编程的,可以通过程序来设置芯片的工作方式,通用性强,使用灵活,可为多种不同的CPU与外设之间提供并行输入/输出的通道。
(1) 数据总线缓冲器
它是一个双向三态8位缓冲器,用作与系统总线连接是的缓冲部件.CPU与8255A之间所有的数据的发送与接收以及CPU向8255A发送的控制信息和8255A向CPU回送的状态信息都是通过它传送的
(2) 三个8位端口PA、PB、PC
端口A(PA口):有一个8位数据输入锁存器和一个8位数据输入锁存/缓冲器;
端口B(PB口):有一个8位数据输入锁存器和一个8位数据输入/输出,锁存/缓冲器;
端口C(PC口):有一个8位数据输入锁存器和一个8位数据锁存/缓冲器。
通常PA口与PB口用作输入/输出的数据端口,PC口用作控制和状态信息端口。PC口可以分为两个四位的端口,每个端口包含一个四位锁存器,可分别同PA口和PB口配合使用,用作控制信号(输出)或作为状态信号(输入)。
(3) A组和B组控制电路
A组:PA口和PC口的高四位(PC7~PC4);
B组:PB口和PC口的低四位(PC3~PC0)。
用来管理数据信息.控制字和状态字的传送,它接收来自CPU的地址总线的A1,A0和控制总线的信号RD.WR.RESET等,并向8255A的A,B两组发送命令.由它控制把CPU发出的控制命令字或输出的数据送到相应的端口,或把外设的状态信息或输入的数据从相应的端口送到CPU.
3 详细设计
3.1硬件设计与实现
3.1.1 LED数码管结构
LED数码管也称半导体数码管,是目前数字电路中最常用的显示器件。它是以发光二极管作笔段并按共阴极方式或共阳极方式连接后封装而成的。图5所示是两种LED数码管的外形与内部结构,+、-分别表示公共阳极和公共阴极,a~g 是7个笔段电极,DP为小数点。LED数码管型号较多,规格尺寸也各异。
图3-1 LED内部结构
3.1.2 LED数码管与8255的连线设计
A口和B口0方式, A口为输入端口,接有4个开关, B口为输出端口,接有一个七段发光二极管,编程实现发光二极管显示开关所拨通的数字。
A口地址:60H B口地址:61H C口地址:62H 控制口地址:63H
图3.2 LED数码管与8255的连接图
3.1.3 8255与中断电路的实现
按图接线,编写程序,使8255A端口A工作在方式0并作为输出口,端口B工作于方式1并作为输入口,则端口C的PC2 成为选通信号输入端STBB,PCO 成为中断请求信号输出端INTRB。当B口数据就绪后,通过发STBB 信号来请求CPU读取端口B数据并送端口A输出显示。IRQ7中断子程序是实现所有灯闪烁10s就返回的功能。具体流程就如下:
图3.2 中断服务程序流程图
3.2 主控模块设计
该模块实现控制程序流程的功能。具体实现方法为:根据8255的PA口状态(0或1),判断程序的走向。如果PA=0,彩灯全灭处于等待PA状态的变化;如果PA=1(第一次为1)则输出显示第1种彩灯,假设PA第N次为1,由于只有8种彩灯模式,所以输出显示为第[N mod 8]种彩灯。编写程序如下:
CBC: MOV BL,00H
AA: MOV DX,IOAPT
IN AL,DX
CMP AL,00H
JZ K_0 ;全灭,等待PA口状态的变化
INC BL
CMP BL,08H
JG CBC
MOV AL,BL
JMP CC
BB: MOV DX,IOAPT
IN AL,DX
CMP AL,00H
JZ K_0
MOV AL,BL
CC: CMP AL,01H
JZ K_1 ;第1种彩灯显示
CMP AL,02H
JZ K_2 ;第2种彩灯显示
CMP AL,03H
JZ K_3 ;第3种彩灯显示
CMP AL,04H
JZ K_4 ;第4种彩灯显示
CMP AL,05H
JZ K_5 ;第5种彩灯显示
CMP AL,06H
JZ K_6 ;第6种彩灯显示
CMP AL,07H
JZ K_7 ;第7种彩灯显示
JMP K_8 ;第8种彩灯显示
K_0: MOV AL,0FFH
CALL IOLED
JMP AA
4 系统调试与操作说明
4.1 系统调试
4.1.1硬件调试
最初设计的电路是由KK1和KK2来控制系统的启动和停止,KK1接PC7,KK2接PC0。后 来考虑到KK1和KK2都要接2根线,接线时比较复杂。后来改用K2来控制系统的启动K3来控制系统的停止。K2接C组的PC6,K3接C组的PC7。花型的变换还是由K0和K1来控制。K0接A组的PA0,K10接A组的PA1。B组的PB0—PB7接发光二级管的D0—D7。
4.1.2软件调试
软件调试是一个困难的过程。从初始化开始调试。开关改接后,PB输作为输出口,PA和PC作为输入口。所以初始化改为MOV AL,98H。
因为我对接口地址不是很清楚,所以造成程序在读断口地址时发生错误。A口地址为 60H,B口地址为61H,C口地址为62H。经改正后,各子程序可正常运行。开关对应的是和开关相连接的端口地址,所以检测开关时,检测的是对应A组C组的地址。即检测K0要用TEST AL,80H,就的对PC7的检测。经过以上的调试,编译加载后系统能够正常运行。
4.2 操作说明
(1) 按实验接线图接线。
(2) 输入程序并检查无误,经汇编,连接后装入系统。
(3) 运行程序。观察灯的变化,拨动开关K0~K3控制彩灯显示。当K0,K1,K2,K3 为0000 时,
彩灯全灭;当K0,K1,K2,K3为0001时,彩灯依次点亮;当K1,K2,K3,K4为0010时,彩灯左右4个交替点亮;K0,K1,K2,K3的状态按0011,0100……1111规律递增,会出现不 同的彩灯显示模式和序号显示(0~8)。本次课程设计总共实现了8种不同的彩灯显示模式和0~8的序号显示。
5 课程设计总结与体会
本次课程设计成果让我们得以体会课程的意义,学习系统设计的方法,养成良好的汇编习惯,培养了我们在生活中发现问题、应用所学知识解决问题的能力。
课程设计中碰到了很多困难,经过老师和同学的帮助,都能够得以解决。使我深深的体会到,团队合作精神的重要和可贵。其次,在此次课程课程设计中,我知道了个人思路和团队计划的重要性。只有思路清晰才能制定好一个完整严密的计划。这样即可以节约时间,也避免了一些不必要的麻烦。先设计好硬件的电路原理图,再进行软件的编译。第一次是不可能成功的,所以在做软件的编译和调试时一定要有很好的细心和耐心。
经过此次课程设计,我进一步了解了8255A各引脚的功能,8255A和系统总线之间的连接, 8255A和CPU之间的数据交换,以及8255A的内部逻辑结构。我深入掌握了8255A显示电路的基本功能及编程方法,同时我深入了解了8255等芯片的工作方式、作用。
参考文献:
[1] 周佩玲,彭虎,傅忠谦.《微机原理与技术》,电子工出版社 2005.
[2] 周明德.微型计算机系统原理及应用(第四版)习题集与实验指导书》,清华大学出版社,2002.
[3] 吴秀清,周荷琴. 微机计算机原理与接口技术(第二版).中国科学技术大学出版社,2002.
附录
源程序:
DATA SEGMENT
TAB1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH
DB 07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:MOV AX,DATA
MOV DS,AX
MOV AL,90H
OUT 63H,AL
;8259中断初始化程序
PUSH DS
MOV AX,0000H
MOV DS,AX ;数据段清零
MOV AX, OFFSET IRQ7 ;取中断程序入口地址(相对地址)
MOV SI, 003CH ;8259中断7中断矢量
MOV [SI],AX ;填偏移量矢量
MOV AX,CS ;段地址CS
MOV SI,003EH
MOV [SI],AX ;填段地址矢量
POP DS
IN AL,21H ;读8259中断屏蔽字
AND AL,7FH ;开8259中断
OUT 21H,AL
CBC:
IN AL,60H ;取开关信息
CMP AL,00H
JZ K_0 ;全灭,等待PA口状态的变化
CMP AL,01H
JZ K_1 ;第1种彩灯显示
CMP AL,02H
JZ K_2 ;第2种彩灯显示
CMP AL,03H
JZ K_3 ;第3种彩灯显示
CMP AL,04H
JZ K_4 ;第4种彩灯显示
CMP AL,05H
JZ K_5 ;第5种彩灯显示
CMP AL,06H
JZ K_6 ;第6种彩灯显示
JMP default ;第7种彩灯显示
K_0: CALL ADD1 ;调用查询接口,灯全灭
MOV AL,0FFH
CALL IOLED
JMP WAITING
;依次点亮
K_1: CALL ADD1 ;调用查询接口,从右向左依次亮
MOV CX,09H
MOV AL,0FEH
LOOP_1: CALL IOLED ;彩灯显示
ROL AL,1
LOOP LOOP_1
JMP WAITING
;左右4个交替点亮
K_2: CALL ADD1
MOV CX,09H
MOV AL,0F0H
LOOP_2: CALL IOLED ;彩灯显示
NOT AL
LOOP LOOP_2
JMP WAITING
;先全灭,然后全亮
K_3: CALL ADD1
MOV CX,09H
MOV AL,00H
LOOP_3: CALL IOLED
NOT AL
LOOP LOOP_3
JMP WAITING
;8个全灭后依次点亮至全亮
K_4: CALL ADD1 ;彩灯显示
MOV CX,09H
MOV AL,0FFH
MOV AH,01H
LOOP_4: CALL IOLED
SUB AL,AH
ROL AH,1
LOOP LOOP_4
JMP WAITING
;先全亮后依次不亮至全灭
K_5: CALL ADD1
MOV CX,09H
MOV AL,00H
MOV AH,01H
LOOP_5: CALL IOLED
ADD AL,AH
ROL AH,1
LOOP LOOP_5
JMP WAITING
;先两边亮后中间亮再循环
K_6: CALL ADD1
MOV CX,09H
MOV AL,0C3H
LOOP_6: CALL IOLED
NOT AL
LOOP LOOP_6
JMP WAITING
default: CALL ADD1
MOV CX,09H
MOV AL,0AAH
LOOP_d: CALL IOLED
NOT AL
LOOP LOOP_d
JMP WAITING
;彩灯显示子程序
IOLED: PUSH CX
MOV CX,0FFFFH
MOV DX,61H
OUT DX,AL
;延时子程序
DELAY: LOOP DELAY
POP CX
RET
;查询接口子程序
ADD1: MOV BX,OFFSET TAB1 ;取段码表首地址
XLAT
OUT 62H,AL
RET
WAITING: PUSH CX
MOV CX,0FFFFH
LOOP_K: LOOP LOOP_K
POP CX
JMP CBC
;中断服务子程序
IRQ7:
MOV CX,10
L1: MOV AL,0FH
OUT 61H,AL ;红灯亮
CALL DIS
MOV AL,0FFH
OUT 61H,AL
CALL DIS
LOOP L1
MOV AL,20H
OUT 20H,AL
STI
IRET
;延时1s
DIS: push cx
PUSH AX
MOV CX,0100H
DEC CX
A3: MOV AX,0560H
A4: DEC AX
JNZ A4
LOOP A3
POP AX
pop cx
RET
CODE ENDS
END START
设计者:
日 期:20##年06月28日