中南大学微机课程设计报告.docx
- 文档编号:4157483
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:16
- 大小:232.87KB
中南大学微机课程设计报告.docx
《中南大学微机课程设计报告.docx》由会员分享,可在线阅读,更多相关《中南大学微机课程设计报告.docx(16页珍藏版)》请在冰点文库上搜索。
中南大学微机课程设计报告
微机课程设计报告
课设题目:
交通灯控制系统
班级:
自动化0908
姓名:
薛映欣
学号:
0909093329
指导教师:
李志民
目录
1、需求分析
1、系统设计的意义…………………………………3
2、设计内容…………………………………………3
3、设计目的…………………………………………3
4、设计要求…………………………………………3
5、系统功能…………………………………………4
2、总体设计
1、交通灯工作过程…………………………………4
3、设计仿真图、设计流程图
1、系统仿真图………………………………………5
2、流程图……………………………………………6
3、8253、8255A结构及功能………………………8
4、系统程序分析…………………………………10
5、总结与体会……………………………………13
6、参考文献………………………………………13
一、需求分析
1系统设计的意义:
随着社会经济的发展,城市问题越来越引起人们的关注。
人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。
城市交通控制系统是用于城市交通数据检测、交通信号灯控制与交通疏通的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。
随着城市机动车量的不断增加,组多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速通道,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。
然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。
而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。
所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速通道,缓解主干道与匝道、城市同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
那么靠什么来实现这井然秩序呢?
靠的就是交通信号灯的自动指挥系统。
交通灯的控制方式很多,本系统采用可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现本系统的各种功能。
同时,本系统实用性强,操作简单。
2、设计内容
采用8255A设计交通灯控制的接口方案,根据设计的方案搭建电路,画出程序流程图,并编写程序进行调试
3、设计目的
综合运用《微机原理与应用》课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计能力及实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。
针对此次课程设计主要是运用本课程的理论知识进行交通灯控制分析及设计,掌握8255A方式0的使用与编程方法,通从而复习巩固了课堂所学的理论知识,提高了对所学知识的综合应用能力。
4、设计要求:
(1)、分别用C语言和汇编语言编程完成硬件接口功能设计;
(2)、硬件电路基于80x86微机接口;
(3)、程序功能要求:
小键盘给定、数码管(屏幕)显示;
(4)、同时具备急救车应急响应功能和时间倒计时显示功能。
5、系统功能
根据要求,我所设计的系统主要主要是基于普通的十字路口,交通灯的控制分为东西和南北两组,每组用红、黄、绿进行交通管理,除了基本的功能外,还添加了七段译码器时间显示模块和一种紧急情况处理模块,比方说急救车恰好遇到了红灯,可通过控制,让急救车所在的干道尽快变成绿灯而通车。
2、总体设计
1、交通灯工作过程
考虑普通十字路口,交通灯的控制可分东西向和南北向两组,每组可用红、黄、绿三个灯进行交通管理,所以本方案要点是对12个交通灯进行控制。
由于灯光控制只需要开、关两个状态,所以可以采用开关量实施控制。
开关量的输出可以采用8255A的端口,由于开关量有6位,所以采用8位端口,又因为灯光控制不需要联络信号,所以按照方式0输出即可。
时间显示模块采用七段数字显示器显示,运用共阴极接法,选用8255A的B口输出来控制七段数字显示器,其中低四位来控制个位的显示,高四位来控制十位的显示。
我们知道七段数字显示器的段选是七个信号,用B口的高、低四位分别来控制十位、个位显示器显然是不行的,为了解决这个问题,我设计的是让B口输出的是经DAS指令调整过的压缩的BCD数,让译码器的输出来控制十位、个位显示器,同样B口按照方式0输出即可。
延时模块采用8253来设计,让计数器0、1级联使用,让计数器0的输出OUT0作为计数器1的时钟输入(CLK1),让计数器1的输出信号接到8255A的C口的0位,让处理器反复的读取PC0的值,当有脉冲进来的时候,也就是设计的时间结束时,才执行下一步,达到延时的目的。
为了满足设计,让8255A的C口按照方式0输入即可,让计数器0工作在方式2,让计数器1工作在方式0。
当计数器0的CLK采用2Mhz,初值为2000,计数器1初值为500时,计数器1输出一个就是意味着延时0.5秒。
计数器的端口地址为40H~43H,8255A的端口地址为60H~64H。
3、设计仿真图、设计流程图
1、系统仿真图
2、流程图
主函数流程图
延时0.5秒子函数流程图时间显示模块函数流程图
3、8253、8255A结构及功能
(1)8255具有两类控制字
A、方式选择控制字
B、c口复位/置位控制寄存器
(2)8253定时器/计数器的结构及功能
A、8253计数器的结构
B、8253定时/计数器的功能
可编程定时器芯片可以产生精确的时间间隔,形成各种脉冲序列,灵活性强。
依所需时间间隔,设置计数器的时间常数,在一外部脉冲驱动下进行减1计数,计数值为0时,产生输出信号,供系统使用。
8253的每个通道均可以通过编程选择6种工作方式之一,这6种工作方式是:
方式0:
计数到零产生中断请求;方式1:
硬件可重复触发的单稳态触发器;方式2:
分频器;方式3:
方波发生器(用得最多的方式);方式4:
软件触发选通;方式5:
硬件触发选通;
C、8253定时/计数器的实现方法
利用CPU执行某一指令需要一定机器周期的原理,在软件编程时循环执行一段指令,从而产生累积的定时。
4、系统程序分析
.MODELSMALL
.8086
.STACK
.CODE
.STARTUP
START:
MOVDX,0206H
MOVAL,89H
OUTDX,AL;A、B口方式0输出,C口输入
MOVDX,0202H
MOVAL,88H;让显示器显示00
DAS
OUTDX,AL
MOVDX,0200H
MOVAL,11H;让两干道均依次亮红黄绿灯0.5秒
OUTDX,AL
CALLDELAY
CALLDELAY
MOVDX,0200H
MOVAL,22H
OUTDX,AL
CALLDELAY
CALLDELAY
MOVDX,0200H
MOVAL,44H
OUTDX,AL
CALLDELAY
CALLDELAY
STEP1:
MOVDX,0200H
MOVAL,41H;设置亮灯情况(14H)
MOVAH,AL;保存亮灯状态
OUTDX,AL;东西干道亮红灯、南北干道亮绿灯
MOVAL,30H;设置亮灯时间为30秒
CALLDISPLAY1;调用时间显示模块函数
STEP2:
MOVDX,0200H
MOVAL,21H;设置亮灯情况(22H)
MOVAH,AL;保存亮灯状态
OUTDX,AL;东西、南北干道均亮黄灯
MOVAL,5H;设置亮灯时间为5秒
CALLDISPLAY1;调用时间显示模块函数
STEP3:
MOVDX,0200H
MOVAL,14H;设置亮灯情况(41H)
MOVAH,AL;保存亮灯状态
OUTDX,AL;东西干道亮绿灯、南北干道亮红灯
MOVAL,30H;设置亮灯时间为30秒
CALLDISPLAY1;调用时间显示模块函数
STEP4:
MOVDX,0200H
MOVAL,12H;设置亮灯情况(22H)
MOVAH,AL;保存亮灯状态
OUTDX,AL;东西、南北干道均亮黄灯
MOVAL,5H;设置亮灯时间为5秒
CALLDISPLAY1;调用时间显示模块函数
JMPSTEP1
;延时0.5秒子函数
DELAYPROC
PUSHAX;将当前AX入栈保存
MOVDX,0406H
MOVAL,34H;设定8253计数器0的工作方式2
OUTDX,AL
MOVDX,0400H
MOVAX,2000;给计数器0装入初值(2000)
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,0406H
MOVAL,70H;设定8253计数器1的工作方式0
OUTDX,AL
MOVDX,0402H
MOVAX,250;给计数器1装入初值(500)
OUTDX,AL
MOVAL,AH
OUTDX,AL
AGAIN1:
MOVDX,0204H
INAL,DX;检测计数器1的输出信号
ANDAL,1
JZAGAIN1;信号没来继续检测,否则结束
POPAX
RET
DELAYENDP
DISPLAY1PROC
PUSHAX;AX入栈保存
AGAIN2:
MOVDX,0202H
OUTDX,AL;显示器显示当前剩余时间
PUSHAX;AX入栈保存
CMPAL,3;剩余时间是否多余3秒
JGD1;高于3秒,跳转到D1
;低于3秒,灯开始闪烁
MOVDX,0200H
MOVAL,0;低于三秒,灯熄0.5秒
OUTDX,AL
MOVDX,0204H
INAL,DX;检测是否有紧急信号
ANDAL,2
JNZEXIT;有紧急信号则跳出子函数
CALLDELAY;熄灯延时0.5秒
MOVDX,0204H
INAL,DX;检测是否有紧急信号
ANDAL,2
JNZEXIT;有紧急信号则跳出子函数
MOVAL,AH;灯亮0.5秒
MOVDX,0200H
OUTDX,AL
JMPD2
D1:
MOVDX,0204H
INAL,DX;检测是否有紧急信号
ANDAL,2
JNZEXIT;有紧急信号则跳出子函数
CALLDELAY;延时0.5秒
MOVDX,0204H
INAL,DX;检测是否有紧急信号
ANDAL,2
JNZEXIT;有紧急信号则跳出子函数
D2:
CALLDELAY;延时0.5秒
MOVDX,0204H
INAL,DX;检测是否有紧急信号
ANDAL,2
JNZEXIT;有紧急信号则跳出子函数
POPAX;恢复AX
DECAL;把剩余时间减1秒
DAS;调整AL
CMPAL,0;剩余时间不小于0就继续显示
JNLAGAIN2;否则就结束该子函数
EXIT:
POPAX
D3:
MOVDX,0200H
MOVAL,11H;让两干道均依次亮红黄绿灯0.5秒
OUTDX,AL
MOVDX,0202H
MOVAL,0;让显示器显示00
DAS
OUTDX,AL
MOVDX,0204H
INAL,DX;检测是否有紧急信号
ANDAL,2
JNZD3;有紧急信号则跳出子函数
RET
DISPLAY1ENDP
END
5、总结与体会
这次课程设计的主要任务是根据课堂所学知识,运用8255A进行交通灯控制的设计。
按照设计的要求,我查阅了相关的资料,先设计出了单元电路,在此基础上设计出了整个系统的电路图。
通过此次课程设计,我对8255A、8253的工作方式有了深刻的理解和认识,由于灯光控制只需要开、关两个状态,所以可以采用开关量实施控制。
开关量的输出可以采用8255A的端口,由于开关量有6位,所以采用8位端口,又因为灯光控制不需要联络信号,所以按照方式0输出即可。
时间显示模块采用七段数字显示器显示,运用共阴极接法,选用8255A的B口输出来控制七段数字显示器,其中低四位来控制个位的显示,高四位来控制十位的显示。
延时模块采用8253来设计,让计数器0、1级联使用,让计数器0的输出OUT0作为计数器1的时钟输入(CLK1),让计数器1的输出信号接到8255A的C口的0位,让处理器反复的读取PC0的值,当有脉冲进来的时候,也就是设计的时间结束时,才执行下一步,达到延时的目的。
这次的课程设计通过对微机原理这门课程有了进一步的认识,加深了理解,巩固了所学的的知识,在设计时,要考虑到8255A、8253不同工作方式的差异,通过查阅很多资料,拓展了知识面,在这一过程中,我也学到了很多东西。
在设计时,根据要求选择合适的工作方式显得十分的重要。
该次课程设计是利用课堂所学的知识来解决一个实际的问题,生动有趣,提到了我们运用知识的能力。
通过课程设计,对于自己使用Proteus的技巧是一个很大的提高,如何让布局合理、如何让电路简单的设计是一种锻炼,同时也是一个娱乐的过程。
总之,课程设计作为一种教学方式,巩固了我们课堂上所学的知识,提高了我们对知识学习的热情,锻炼了我们运用知识解决实际问题的能力,让我们收获了很多。
6、参考文献
[1]周荷清,吴秀清微型计算机原理与接口技术.中国科技大学出版社,2008
[2]舒贞权,任伟利·微机计算机原理[M]·西安:
西安交通大学出版社,1997
[3]顾元刚,韩燕汇编语言与微机原理教程[M]·北京:
电子工业出版社,2000
[4]楼顺天,周社佳.微机原理与接口技术[M]·北京:
科学出版社,2006
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 微机 课程设计 报告