微型计算机技术课程设计报告Word下载.docx
- 文档编号:22354862
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:17
- 大小:51.20KB
微型计算机技术课程设计报告Word下载.docx
《微型计算机技术课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《微型计算机技术课程设计报告Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
CPU与8259A之间的控制命令信息、状态信息以及中断类型信息,都是通过缓冲器传送的。
二、读/写控制逻辑:
CPU通过它实现对8259A的读/写操作。
三、级连缓冲器:
用以实现8259A芯片之间的级连,使得中断源可以由8级扩展至64级。
四、控制逻辑电路:
对整个芯片内部各部件的工作进行协调和控制。
五、中断请求寄存器IRR:
8位,用以分别保存8个中断请求信号,当响应的中断请求输入引脚有中断请求时,该寄存器的相应位置1。
六、中断屏蔽寄存器IMR:
8位,相应位用以对8个中断源的中断请求信号进行屏蔽控制。
当其中某位置“0“时,则相应的中断请求可以向CPU提出;
否则,相应的中断请求被屏蔽,即不允许向CPU提出中断请求。
该寄存器的内容为8259A的操作命令字OCW1,可以由程序设置或改变。
七、中断服务寄存器ISR:
8位,当CPU正在处理某个中断源的中断请求时,ISR寄存器中的相应位置1。
八、用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,决定是否产生中断或中断嵌套。
8255A的工作原理:
8255A的内部结构:
1、数据总线缓冲器:
这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。
输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。
2、三个端口A,B和C:
A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。
B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。
C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
3、A组和B组控制电路:
这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。
方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。
对C口按位复位命令字可对C口的每一位实现置位或复位。
A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。
4、读写控制逻辑:
用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。
8255A的工作方式:
方式0---基本输入输出方式;
方式1---选通输入输出方式;
方式2---双向选通输入输出方式。
8253的工作原理:
8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。
其CLK0~CLK2是计数器0~2的时钟脉冲输入端,GATE0~GATE2是门控脉冲输入端,OUT0~OUT2是输出端。
2.2设计方案
交通信号灯实时控制和管理的总体设计
芯片选择及端口选择
1.用实验系统8255A实现对信号灯的控制(所用端口自定);
2位数码显示用8255A实现控制。
2.
用实验系统8235的计数器0定时向实验系统主片8259A的IRQ7请求中断,以实现要求的30秒、5秒钟的定时。
实验系统8253的计数器0的CLK0接1MHZ;
GATE0GATE1接5V。
定时采用软硬件相结合的方式实现。
3.
用实验系统的LED灯模拟红绿黄灯。
注:
8259A的端口地址为:
偶地址:
20H,奇地址:
21H
8255A的端口地址为:
端口A-288H、端口B-289H、端口C-28AH、控制端口-28BH
8253的端口地址为:
计数器0-280H、计数器1-281H、计数器2-282H、控制寄存器-283H。
本设计硬件由定时模块、LED灯模块、数码管显示模块和紧急中断模块组成。
定时模块采用硬件定时和软件定时相结合的方法,用8253定时/计数器定时1s,再用软件计时实现所需的定时。
LED灯模块由8255控制LED灯来实现。
数码管显示模块由实验平台上的LED显示模块实现。
紧急中断模块是由单脉冲发生单元和8259中断控制器组成。
程序主要是由定时子程序、LED灯显示子程序、数码管显示子程序和中断服务程序组成。
包括对8253、8255以及8259等可编程器件的编程。
本次设计中,8253计数器0连接1MHz时钟脉冲,其输出OUT0连接计数器1的输入CLK1,这样8253的计数器1定时向实验系统主片8259A的IRQ7请求中断。
设置8253的计数器1每一秒请求一次中断,工作于模式3;
8255的A端口控制交通灯;
LED灯显示模块由8255输出来控制LED灯的亮灭。
8255输出为高电平时,对应的发光二极管就点亮,否则就熄灭。
交通灯的对应关系如下:
(1,3代表东,西;
2,4代表南、北)
L5
L4
L3
L2
L1
L0
13红灯
13黄灯
13绿灯
24红灯
24黄灯
24绿灯
2.3设计电路图
k0
2.4总体流程图
2.5程序设计。
DATA
SEGMENT
LED
DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H
;
存放数码管的七段代码表
DB
7FH,6FH
TIMEDB29;
定义TIME的初始值为29
EE
EQU
28BH;
8255A控制端口
ENDS
CODE
SEGMENT
ASSUME
CS:
CODE,DS:
DATA
SEGMENT
CODE
START:
MOVAX,CS
MOVDS,AX
MOVAX,OFFSETIRQ;
设外部中断IRQ类型号为0FH
MOVAX,250FH
INT21H
CLI;
清中断标志位
MOVBX,0209H;
BH表示要显示数的十位,BL表示要显示数的个位
MOVCX,0;
CX存储的数表示交通灯的状态
MOV
AL,88H
MOVDX,28BH;
28B为8255的控制口
OUT
DX,AL;
初始化8255,A、B口都为方式0输出,C口PC3-PC0为输出,PC7-PC4为输入
AL,0
对PC0口置0
AL,02H
OUTDX,AL;
对PC1口置0
DX,20H;
8259偶地址端口
AL,12H
DX,AL;
8259初始化,设置中断为边缘触发
AL,7FH
DX,21H;
8259奇地址端口
DX,AL;
开放IRQ7中断
DX,288H;
8255端口A
交通灯初始状态为全黄
AL,36H
MOVDX,283H;
8253控制寄存器端口
初始化
8253,选计数器0,工作模式3,先写低8位,再写高8位
MOVAL,76H
初始化8253,选计数器1,工作模式3,
NEXT:
;
定时1秒
AX,1000;
初值为1000
DX,280H
写入计数器0
AL,AH
DX
AL
AX,DATA;
置DS用数据段首地址
DS,AX
STI;
开中断
A1:
JMP
A1;
循环等待
中断服务程序:
IRQ:
PUSHAX
PUSHBX
PUSHSI
MOVDX,BX;
将BX寄存器中的初值0209H传送到DX寄存器
MOVBX,OFFSETLED
MOVAH,0
MOVAL,DL
MOVSI,AX
MOVAL,03H
OUTEE,AL;
选通用来显示个位的数码显示管,EE在数据段里已定义,为8255控制口
MOVAL,[BX+SI];
把十进制数所表示的个位数转换成对应的段码
OUT289H,AL;
写入8255端口B,数码管显示当前倒计时的个位数
MOVAL,DH
MOVAL,01H
选通用来显示十位的数码显示管
MOVAH,[BX+SI];
把十进制数所表示的十位数转换成对应的段码
OUTEE,AH;
数码管显示当前倒计时的十位数
PP:
MOVDX,28AH;
8255C口
INAL,DX
TESTAL,00010000B;
测试PC4(J信号)是否等于0
JZACC;
为0则跳转ACC执行紧急情况操作
POPSI
POPBX
POPAX
CMPBL,0;
比较个位数是否为0
JNZL1;
不为0跳转L1
CMPBH,0;
比较十位数是否为0
JZCOMPARE
MOVBL,09H;
十位数不为0,个位数变为9
DECBH
JMPCOMPARE
ACC:
MOVAL,24H
MOVDX,288H;
OUTDX,AL;
紧急情况,路口全为红灯
JMPPP
L1:
DECBX
JMPEXIT
COMPARE:
;
状态判断子程序
MOVDX,288H;
CMPCL,0
JZSTATE0
CMPCL,1
JZSTATE1
CMPCL,2
JZSTATE2
CMPCL,3
JZSTATE3
CMPCL,4
JZSTATE4
CMPCL,5
JZSTATE5
STATE0:
MOVAL,21H
OUTDX,AL;
东西红,南北绿,DX在上一个子程序已经赋值288H,为8255端口A地址
JMPCHANGE1
STATE1:
MOVAL,11H
东西黄,南北绿
STATE2:
MOVAL,0AH
东西绿,南北黄
STATE3:
MOVAL,0CH
东西绿,南北红
STATE4:
MOVAL,14H
东西黄,南北红
STATE5:
MOVAL,22H
东西红,南北黄
CHANGE1:
CMPTIME,0;
TIME已在数据段里定义初值为29
JZA2
DECTIME
JMPEXIT
A2:
INCCX;
CX已在程序初始化里定义初值为0
CMPCL,6
JNZA3
MOVCL,0
A3:
CMPCL,5
JZM5
JZM4
JZM3
JZM2
CMPCL,1
JZM1
JZM0
M0:
状态0:
东西红,南北绿
MOVBX,O209H
MOVTIME,29
M1:
;
状态1:
MOVBX,0004H
MOVTIME,4
M2:
状态2:
M3:
;
状态3:
MOVBX,O209H
M4:
状态4:
M5:
状态5:
EXIT:
MOVAL,20H
OUT218H,AL;
中断结束
IRET;
返回主程序
CODEENDS
ENDSTART
三.课程设计的总结和结论。
3.1设计结论。
1.判断是否为紧急情况,如是则路口全红灯,若不是则向下执行。
2.东西方向的红灯和南北方向的绿灯同时点亮30秒钟。
3.30秒钟后,东西方向的黄灯点亮5秒钟。
此时南北方向持续绿灯。
4.东西方向的黄灯点亮5秒钟后,转为东西方向的绿灯和南北方向的黄灯点亮5秒钟。
5.5秒钟后,东西方向仍维持绿灯,此时南北方向转为红灯点亮30秒钟
6.东西方向的黄灯,南北方向红灯点亮5秒钟。
7.东西方向为红灯,南北方向为黄灯点亮5秒钟。
8.5秒钟以后又转为1,重复执行
3.2设计总结。
经过这一周的微机课程设计,做关于交通灯系统的设计,我是负责整个程序的初始化以及三个模块的整合,由于时间比较紧张,所以找了个模板对照着进行修改,但是在整理时发现模板设计有许多处失误及不合理的地方,比如对8255、8253以及8259的各个端口地址,由于实验箱不同,我们8253接的片选信号是280H,8255接的片选信号是288H,8259的两个端口地址也不同,还有初始化过程,写入的控制字有问题,与设计要求不符,LED灯的代码表也错误,选通数码管时写入的控制字错误,对倒计时数字进行判断后没有进行处理,而是让程序继续往下执行,造成实验结果与预期不同等等。
还有对一些冗余的程序进行了简化。
所以又花了比较多的时间去修改。
这次课程设计任务最终顺利完成了,在设计中遇到了很多技术性的问题,最后在自己的钻研以及上网找资料,终于一个一个得解决了问题,但是也认识到自己的知识掌握的还不够,以后还需要加强锻炼。
四.参考文献。
【1】彭虎、周佩玲《微机原理里与接口技术》(第2版)
【M】北京:
电子工业出版社2008,149-187
【2】周明德.《微型计算机系统原理及应用》【M】北京:
清华大学出版社,1998
【3】李继灿.新编16/32位微型计算机原理及应用(第4版).北京:
清华大学出版社.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 技术 课程设计 报告