微机课程设计交通灯控制.docx
- 文档编号:30252211
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:19
- 大小:750.27KB
微机课程设计交通灯控制.docx
《微机课程设计交通灯控制.docx》由会员分享,可在线阅读,更多相关《微机课程设计交通灯控制.docx(19页珍藏版)》请在冰豆网上搜索。
微机课程设计交通灯控制
课程设计说明书(论文)
题目交通信号灯模拟控制系统
课程名称微机原理及应用B
院系
专业电力系统及其自动化
班级
学生姓名
学号
设计地点工程实践中心8-216
指导教师
设计起止时间:
2011年6月13日至2011年6月17日
1.课程设计应达到的目的
通过课程设计加深理解课堂教学内容,掌握微机原理的基本应用方法。
通过实验熟悉微机基本接口芯片的外型、引脚、编程结构,掌握汇编语言程序设计和微机基本接口电路的设计、应用方法,做到理论联系实际。
2.课程设计题目及要求
题目:
交通信号灯模拟控制系统的设计
利用STARES598PCI实验仪的硬件资源设计一个“带时间显示的交通信号灯模拟控制系统”。
所有输入该装置信号采用STARES598PCI实验仪上的状态输入开关,东西、南北方向的红绿黄灯采用实验仪上的LED发光二极管模拟,东西、南北方向的信号灯变化,通行倒计时时间用数码管显示。
1、功能要求:
1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。
当A道和B道均有车辆要求通过时,A道和B道轮流放行。
A道放行7秒钟,B道再放行5秒钟,依次轮流。
绿灯转换红灯时黄灯亮1秒钟。
2)一道有车,另一道无车时(实验时用开关K5和K6控制),交通控制系统能立即让有车道放行。
3)有紧急车辆要求通过时,系统要能禁止普通车辆通过,A、B道均为红灯,紧急车由K7开关模拟,有紧急车时另有一红灯闪烁。
2、难度要求:
1)基本要求:
采用8255输出控制信号灯,8255输入K5、K6、K7控制开关信号,用循环程序软件定时实现功能要求;(60分)
2)中级要求:
采用8255输出控制信号灯,8255输入K5、K6、K7控制开关信号,用8253硬件定时,软件查询方式实现功能要求;(80分)
3)高级要求:
在中级要求的基础上,增加用8255输出驱动LED数码显示器显示绿灯倒计时秒数,黄灯时不显示时间。
(100分)
3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕
设计要求
1、预习要求:
1)预习本《课程设计任务书》。
了解STARES598PCI实验仪的硬件环境和资源,了解各个硬件模块的电路原理和接口连接方法。
2)预习《微机原理及接口实验指导书》,熟悉星研集成软件的使用方法。
3)预习本《课程设计任务书》。
预习实验一和实验二的相关内容,研究其实验原理和实现方法。
4)预习本任务书,根据设计任务,预先画出电路原理图、程序流程图,编写出实验程序。
2、设计报告要求:
1)画出接口部分电路原理图,并阐述系统工作原理。
2)绘制程序流程图和源程序清单。
3)调试过程和结果。
4)要求用WORD撰写课程设计报告,上交打印版和电子稿。
3、课程设计说明书装订顺序及主要内容如下:
1)封面、目录
2)任务书(不含附录)
3)正文:
设计思路与功能描述;电路原理图及其说明。
应标示并说明每一个输入/输出信号的含义;结构框图;系统调试中的问题和解决办法;运行情况和结论;源程序清单。
4)参考资料
4.主要参考文献
[1]韩念杭.微型计算机原理实验指导书[M].南京工程学院,2004.
[2]李干林.微机原理及接口实验指导书[M].南京工程学院,2009.
[3]李继灿.新编16/32微型计算机原理及应用[M].北京:
清华大学出版社,2004
[4]朱定华等.微型计算机原理及应用[M].北京:
电子工业出版社,2005.
[5]郑学坚,周斌.微型计算机原理及应用[M].北京:
清华大学出版社,2001.
5.课程设计进度安排
起止日期
工作内容
●课程设计开始之前
星期一
星期二、三
星期四
星期五
星期六
预习消化理解设计任务,设计程序流程图,编写源程序。
预习星研微机实验系统的仿真调试操作界面
学习STAR86/88实验系统的使用和操作,
进行实验一、二8255测试和8253测试基本实验
完成基本要求的内容
完成中级和高级要求的内容
验收
撰写课程设计报告
6.成绩考核办法
总评成绩由三部分组成,分别是:
成果演示占40%,测试成绩占30%,设计报告占30%。
1、成果演示(根据程序运行演示确定基础分);
2、口试或笔试测验(与本设计有关的问题,目的是考查设计成果是否经过自己思考独立完成);
3、课程设计报告(格式、内容、质量)。
教研室审查意见:
同意
教研室主任签字:
2011年月日
院(系、部、中心)意见:
主管领导签字:
年月日
目录
1.设计要求………………………………………………….….7
1.1设计内容….………………………………..……………………7
1.2功能要求……………………………….…..…………………7
1.3难度要求…………………………….………..………………7
2.方案说明………………………………………………..……7
2.1硬件系统工作原理说明…………………….………………………7
2.1.1电路接线方案………………………..…….…………………7
2.1.2定时问题………….…………..……..…….…………………8
2.1.3工作状态………………..…………………………………….8
2.2参考流程图说明………………………….………………………..8
2.2.1流程图设计思想………………………………………………8
2.2.2实验流程图…………..…….…...……………………………9
3.源程序清单………………………………………………………10
4.调试过程和结果…………………………………………………..13
4.1总接线图….………………………………..…………………..13
4.2LED模拟的交通灯显示情况………………………….………..…..14
4.3数码管模拟的交通灯倒计时……………………….………..……..15
5.心得体会…………………………………………………………..15
6.参考文献…………………………………………………………..16
1.设计要求
1.1设计内容
利用STARES598PCI实验仪的硬件资源设计一个“带时间显示的交通信号灯迷你控制系统”。
所有输入该装置的信号均采用STARES598PCI实验仪上的状态输入开关输入,东西,南北方向的红绿黄灯均采用实验仪上的LED发光二极管模拟,东西,南北方向的信号灯变化,通行倒计时时间用数码管显示。
1.2.功能要求
(1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。
当A道和B道均有车辆要求通过时,A道和B道轮流放行。
A道放行7秒,B道再放行5秒,一次轮流。
绿灯转换红灯时黄灯亮1秒。
(2)一道有车,另一道无车时(实验时用开关K5和K6控制),交通控制系统能立即让有车道放行。
(3)有紧急车辆要求通过时,系统要能禁止普通车辆通过,A、B道均为红灯,紧急车辆用K7开关来模拟控制,有紧急车辆时另有一红灯闪烁。
1.3难度要求
(1)基本要求:
采用8255A输出控制信号灯,8255A输入K5、K6、K7控制开关信号,用循环程序软件定时实现功能要求。
(60分)
(2)中级要求:
采用8255A输出控制信号灯,8255A输入K5、K6、K7控制开关信号,用8253硬件定时、软件查询方式实现功能要求。
(80分)
(3)高级要求:
在中级要求的基础上,增加用8255A输出驱动LED数码显示器显示绿灯倒计时的秒数,黄灯时不显示时间。
(100分)
2.方案说明
2.1硬件系统工作原理说明
2.1.1电路接线方案
设计任务中的A道代表东西方向,B道代表南北方向
交通信号灯由实验仪的LED发光二极管模拟,由8255A-PA输出控制,见下表:
带时间显示的交通信号灯模拟控制系统8255A输入/输出信号一览表(供参考)
带时间显示的交通信号灯模拟控制系统及8255A输入/输出信号一览表
8255A-PB输出方式
PCH输入方式
8255A-PA输出方式
PCL输出方式
引脚
输出信号
引脚
输入信号
引脚
输出信号
引脚
输出信号
PB7
驱动数码管字形
PC7
K7
PA7
东西绿灯
PB6
PC6
K6
PA6
东西黄灯
PB5
PC5
K5
PA5
东西红灯
PB4
PC4
8253-OUT2
PA4
PB3
PA3
南北绿灯
PC3
PB2
PA2
南北黄灯
PC2
PB1
PA1
南北红灯
PC1
PB0
PA0
紧急车辆闪光
PC0
数码管的位码选择
2.1.2定时问题
用8253#2工作方式0进行500ms定时,CLK2接125kHz时钟信号,GATE2接高电平,OUT2接8255-PC4。
主程序通过查询8255-PC4的状态,获知准确的定时信息。
也可以采用软件延时,500ms延时子程序参见实验一。
2.1.3工作状态
根据设计任务功能要求,依K5、K6、K7的状态分为四种工作状态:
状态0:
K5、K6、K7均断开(1电平)或K5、K6均闭合K7断开,A、B道交替通行;
状态1:
仅K5闭合,A道有车、B道无车;
状态2:
仅K6闭合,A道无车,B道有车;K5和K6均闭合,A、B道都有车,A、B道交替通行;
状态3:
K7闭合,有紧急车辆通行。
2.2参考流程图说明
2.2.1流程图设计思想
1、主程序每0.5秒循环一次,每次查询三个开关状态,及时响应开关状态的变化。
其中CNT0和CNT3分别用于记录状态0和状态3工作进程的进程计数器,可以用寄存器或内存变量实现。
2、常用的工作状态0是A、B道交替通行,一个周期用时14秒。
用CNT0以0.5秒为单位进行加1计数,从0到27循环计数,CNT0/2就可知本周期进行到第几秒了。
根据设计任务功能要求,第0秒,A道红灯、B道黄灯;第1~7秒,A道绿灯、B道红灯;第8秒,A道黄灯、B道红灯;第9~13秒,A道红灯、B道绿灯。
3、工作状态3中,CNT3只有2种状态(0和0FFH),用于控制紧急车辆的灯光闪烁。
4、时间显示采用实验仪的数码管显示。
只用一个数码显示器显示绿灯通行倒计时,A道显示数=8-CNT0/2,B道显示数=14-CNT0/2。
参考流程图2。
5、如果用2个数码显示器分别显示A道、B道的倒计时,则需要用到动态显示扫描技术,难度较大,定为加分项目。
在500ms延时子程序中循环调用动态显示扫描子程序,定时器的定时周期应缩短到5ms。
参考流程图3。
此功能难度较大,定为加分项目。
2个数码管的位码选择(低电平有效)有8255的PC3、PC0来确定,接线到数码管选择脚接口JP41(注意JP41的接插方法:
JP41只接插一半,用PCL接JP41的1-4引脚。
如果PCL与JP41完全连接,PC4对应位会显示倒计时数码)。
显示内容由8255的B口接线到数码管段码接口JP42。
2.2.2实验流程图
3.源程序清单
.MODELTINY
COM_ADDREQU0B003H
T0_ADDREQU0B000H
T1_ADDREQU0B001H
T2_ADDREQU0B002H
COM_ADDEQU0F003H
PA_ADDEQU0F000H
PB_ADDEQU0F001H
PC_ADDEQU0F002H
.STACK300
.DATA
;********************数码管显示*********************:
LED_DATADB00111111B;数码管显示0
DB00000110B;数码管显示1
DB01011011B;数码管显示2
DB01001111B;数码管显示3
DB01100110B;数码管显示4
DB01101101B;数码管显示5
DB01111101B;数码管显示6
DB00000111B;数码管显示7
DB01111111B;数码管显示8
DB01101111B;数码管显示9
CNT0DB?
CNT3DB?
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVDX,COM_ADD;8255初始化
MOVAL,88H;AL=10001000.PA、PB、PCL输出,方式0PCH输入
OUTDX,AL将AL中的字节内容输出到由DX所指定的端口
MOVDX,PA_ADD;A口初始化
MOVAL,0FFH;AL=11111111
OUTDX,AL;将AL中的字节内容输出到由DX所指定的端口
MOVDX,PC_ADD;C口初始化
INAL,DX;从DX所指的端口中读取一个字节内容送AL
ANDAL,0F0H;1111000,保留高位,低位为0
OUTDX,AL;将AL中的字节内容输出到由DX所指定的端口
MOVDX,COM_ADDR;8253初始化
MOVAL,0B0H;AL=10110000,选计数器2,读计数结果;写计数初值。
方式0,用二进制表示
OUTDX,AL;将AL中的字节内容输出到由DX所指定的端口
MOVCNT0,0;CNT0=0
MOVCNT3,0;CNT3=0
LEABX,LED_DATA;将LEA_DATA的原操作数的偏移地址送到BX通用寄存器中
LP:
CALLDL500MS;延迟5秒
MOVDX,PC_ADD;C口初始化
INAL,DX;从DX所指的端口中读取一个字节内容送AL
TESTAL,80H;ALAND10000000H,检测K7
JNEK72;如果PC7=0,结果为0,JNE=0,不执行K7。
如果PC7=1,JNE=1,执行K72,为特殊情况
TESTAL,20H;00100000,检测PC5
JNEK51;如果PC5=0,结果为0,JNE=0,不执行K51。
如果相反,则执行K51
TESTAL,40H;01000000,PC6
JNEK61;如果PC6=0,结果=0,JNE=0,不执行K61。
如果相反,则执行K61
MOVCNT3,0
MOVCH,CNT0
SHRCH,1;CNT3=0,CH右移1位相当于CH/2
JZL1;CH/2=0时,转L1
CMPCH,8;比较CH/2和8
JSL2;CH/2〈8,转L2,CH<16
JZL3;CH/2=8,CH=16
MOVDX,PA_ADD
MOVAL,0D7H;11010111
OUTDX,AL;A红B绿
MOVDX,PB_ADD
MOVAL,14;启动数码管
SUBAL,CH;AL-CH/2
XLAT;AL=AL+BX,代码转换指令
OUTDX,AL;显示倒计时。
L0:
INCCNT0;CNT0=CNT0+1
CMPCNT0,28;CNT0-28
JNZLP
MOVCNT0,0
JMPLP
L1:
MOVDX,PA_ADD;A口初始化
MOVAL,0DBH;11011011
OUTDX,AL;A红B黄
MOVDX,PB_ADD;B口初始化
MOVAL,00H;AL=00000000
OUTDX,AL
JMPL0
K72:
JMPK7;跳K7
K51:
MOVDX,PC_ADD;C口初始化
INAL,DX;从DX所指的端口中读取一个字节内容送AL
TESTAL,40H;01000000,PC6
JNEK62;如果PC6=0,结果=0,JNE=0,不执行K62。
如果相反,则K62
JMPK5;跳K5
K61:
JMPK6;跳K6
K62:
MOVDX,PA_ADD;A口初始化
MOVAL,0BBH;10111011,K8亮0.5S
OUTDX,AL;将AL中的字节内容输出到由DX所指定的端口
CALLDL500MS;延迟0.5秒
MOVDX,PA_ADD;A口初始化
MOVAL,0FFH;11111111K8灭0.5S
OUTDX,AL;将AL中的字节内容输出到由DX所指定的端口
JMPLP;跳回LP
L2:
MOVDX,PA_ADD
MOVAL,7DH;01111101
OUTDX,AL;A绿B红
MOVDX,PB_ADD;输出倒计时数字
MOVAL,8
SUBAL,CH;AL=AL-CH/2=8-CH/2
XLAT;AL=AL+BX
OUTDX,AL
JMPL0
L3:
MOVDX,PA_ADD;A口初始化
MOVAL,0BDH;AL=10111101
OUTDX,AL;A黄B红
MOVDX,PB_ADD;B口初始化
MOVAL,00H;AL=00000000
OUTDX,AL
JMPL0
K7:
MOVCH,CNT3;CNT3=0,CH=0
CMPCH,0;将CH与0相减但不回送结果,置标志位ZF=0
JZK71;若ZF=0,则执行K71
MOVDX,PA_ADD;A口初始化
MOVAL,0DDH;AL=11011101
K71:
MOVDX,PA_ADD;A口初始化
MOVAL,0CCH;11001100,K8亮0.5S
OUTDX,AL;将AL中的字节内容输出到由DX所指定的端口
CALLDL500MS;延迟0.5秒
MOVDX,PA_ADD;A口初始化
MOVAL,0DDH;11011101K8灭0.5S
OUTDX,AL;将AL中的字节内容输出到由DX所指定的端口
MOVDX,PB_ADD
MOVAL,00H
OUTDX,AL
NEGCH;CH=0
MOVCNT3,CH;CNT3=0,K7灭
MOVCNT0,0
JMPLP;再次跳回LP
K5:
MOVDX,PA_ADD;初始化A口
MOVAL,7DH;AL=01111101
OUTDX,AL;亮A绿B红
JMPK56;跳K56
K6:
MOVDX,PA_ADD;A口初始化
MOVAL,0D7H;11010111
OUTDX,AL;亮A红B绿
K56:
MOVDX,PB_ADD;初始化B口
MOVAL,00H;AL=00000000
OUTDX,AL;数码管停止显示
MOVCNT0,0
MOVCNT3,0
JMPLP
DL500MSPROCNEAR
MOVDX,T2_ADDR
MOVAX,62500;频率125,62500*(1/125)=0.5S
OUTDX,AL
MOVAL,AH
OUTDX,AL
DELAY:
MOVDX,PC_ADD
INAL,DX
TESTAL,10H;设置“准备就绪”(ready)信息在D4位到PC4,TEST为ALAND10H
JEDELAY;AND后PC4为0时,JE=1,执行DELAY。
AND后为1,JE=0,不执行DELAY
RET
ENDP
ENDSTART
4.调试过程和结果
4.1总接线图
4.2LED模拟的交通灯显示情况
4.3数码管模拟的交通灯倒计时
5.心得体会
这次微机原理课程设计历时两天半,虽然学习的时间比较短,但是通过与同学之间的交流学到很多很多原来不懂的东西,同时也巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图画出来,但是我开始总觉得这样做没必要,很浪费时间。
但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。
因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。
其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解芯片的内容以确保程序的正确性上都有了很大程度的提高。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
我会努力弥补这些问题的出现。
致谢在本次课程设计中,老师无论是在理论上还是实践中,都给予我很大的帮助,使我得到不少的提高。
这对于我以后的工作和学习都是一种巨大的帮助。
特别是他那份作为老师的耐心和责任心,不仅进一步加深了我对他的敬重也促使我不断地严格要求自己。
6.参考文献
[1]韩念杭.微型计算机原理实验指导书[M].南京工程学院,2004.
[2]李干林.微机原理及接口实验指导书[M].南京工程学院,2009.
[3]李继灿.新编16/32微型计算机原理及应用[M].北京:
清华大学出版社,2004
[4]朱定华等.微型计算机原理及应用[M].北京:
电子工业出版社,2005.
[5]郑学坚,周斌.微型计算机原理及应用[M].北京:
清华大学出版社,2001.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 课程设计 交通灯 控制