微机原理课程设计交通信号灯模拟控制系统的设计说明.docx
《微机原理课程设计交通信号灯模拟控制系统的设计说明.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计交通信号灯模拟控制系统的设计说明.docx(30页珍藏版)》请在冰点文库上搜索。
微机原理课程设计交通信号灯模拟控制系统的设计说明
下载可编辑
工程学院
课程设计任务书
课程名称微机原理及应用A
院(系、部、中心)电力学院
专
业
电气工程及其自动化
班
级
电力093
起
止
日
期
2012.6.4~2010.6.12
指
导
教
师
鞠阳徐懂礼
.专业.整理.
下载可编辑
1.课程设计应达到的目的
通过课程设计加深理解课堂教学容,掌握微机原理的基本应用方法。
通过实验熟悉微机基本接口芯片的外型、引脚、编程结构,掌握汇编语言程序设计和微机基本接口电路的设计、应用方法,做到理论联系实际。
2.课程设计题目及要求
题目:
交通信号灯模拟控制系统的设计
利用STARES598PCI实验仪的硬件资源设计一个“带时间显示的交通信号灯模拟控制系统”。
所有输入该装置信号采用STARES598PCI实验仪上的状态输入开关,东西、南北方向的红绿黄灯采用实验仪上的LED发光二极管模拟,东西、南北方向的信号灯变化,通行倒计时时间用数码管显示。
1、功能要求:
1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。
当A道和B道均有车辆要求通过时,A道和B道轮流放行。
A道放行10秒钟,B道再放行10秒钟,依次轮流。
绿灯转换红灯前黄灯亮4秒钟。
2)夜间工作时A道(东西方向)和B道(南北方向)的黄灯闪烁,绿灯和红灯不亮(实验时用开关K8控制)。
3)开关K8=0,则工作在以上功能
(1);开关K8=1,则工作在以上功能
(2)。
2、难度要求:
1)基本要求:
采用8255PA口输出控制信号灯,8255PC0输入K8控制开关信号,
用循环程序软件定时实现功能要求;(60分)
2)中级要求:
采用8255PA口输出控制信号灯,8255PC0输入K8控制开关信号,
用8253硬件定时,软件查询方式实现功能要求;(80分)
3)高级要求:
在中级要求的基础上,增加用8255PB口动LED数码显示器显示绿
灯倒计时秒数,从9倒计数到0,倒计数到4时黄灯亮。
(100分)
.专业.整理.
下载可编辑
3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕
设计要求
1、预习要求:
1)预习《STARES598PCI实验仪微机原理实验指导书》附录三:
2)预习《STARES598PCI实验仪微机原理实验指导书》附录二之
2.7B2区;2.9B4区;2.15C5区;2.36G5区;2.37G6区。
3)预习《STARES598PCI实验仪微机原理实验指导书》之“实验九8255控制交通
灯实验”和“实验十8253方波实验”。
4)预习本任务书,根据设计任务,预先画出电路原理图、程序流程图,编写出实验程序。
2、设计报告要求:
1)画出接口部分电路原理图,并阐述系统工作原理。
2)绘制程序流程图和源程序清单。
3)调试过程和结果。
4)要求用WORD撰写课程设计报告,上交打印版和电子稿。
3、课程设计说明书装订顺序及主要容如下:
1)封面、目录
2)任务书
3)正文:
设计思路与功能描述;电路原理图及其说明。
应标示并说明每一个输入/
输出信号的含义;结构框图;系统调试中的问题和解决办法;运行情况和结论;源程序
清单。
4)参考资料
4.主要参考文献
[1]干林.《STARES598PCI实验仪微机原理实验指导书》[M].工程学院,2008.
[2]继灿.新编16/32微型计算机原理及应用[M].北京:
清华大学,2004
[3]学坚,周斌.微型计算机原理及应用[M].北京:
清华大学,2001.
[4]朱定华等.微型计算机原理及应用[M].北京:
电子工业,2005.
.专业.整理.
下载可编辑
5.课程设计进度安排
起止日期工作容
2012年6月4日(第16周)预习消化理解设计任务,设计程序流程图,编写源程序。
之前
预习星研微机实验系统的仿真调试操作界面
第16周,星期一
学习STAR86/88实验系统的使用和操作,
进行实验8255测试和8253测试基本实验
第16周,星期二、三
完成基本要求的容
第16周,星期四
完成中级和高级要求的容
第16周,星期五
验收
第16周,星期六
撰写课程设计报告
6.成绩考核办法
总评成绩由三部分组成,分别是:
成果演示占40%,测试成绩占30%,设计报告占30%。
1、成果演示(根据程序运行演示确定基础分);
2、口试或笔试测验(与本设计有关的问题,目的是考查设计成果是否经过自己思考独立完成);
3、课程设计报告(格式、容、质量)。
教研室审查意见:
教研室主任签字:
年月日
院(系、部、中心)意见:
主管领导签字:
年月日
.专业.整理.
下载可编辑
设计说明书
课程设计要求:
设计一个十字路口的交通信号灯。
采用8255PA口输出控制信号灯,8255PC0输入K8控制开关信
号,用8253硬件定时,软件查询方式实现如下功能。
白天模式:
①东西方向和南北方向各放行10秒。
绿灯转红灯前黄灯闪烁4秒。
②LED数码显示器显示倒数计时,从9倒数到0;倒数到4时黄灯亮。
夜间模式:
两个方向黄灯闪烁,绿灯和红灯不亮。
1、设计思路与功能描述
(1)设计思路
①8255
交通信号灯的灯光变化和数码显示通过8255实现控制。
8255是一种具有多种功能的可编程并行通信接口电路芯片。
芯片包括A、B、C三个数据端口、A组
控制部件、B组控制部件、读写逻辑控制电路、数据总线缓冲器。
8255有三种工作方式,其中方式0是
基本输入/输出方式,适用于无条件传送和查询方式的接口电路。
本设计中,PA口用于输出信号控制灯光的变化(D6D5=00,D4=0),PB口用于输出信号控制数码管的
显示(D2=0,D1=0),PC0用于输入K8的控制开关信号,PC1用于输入用于硬件延时的方波信号(D0=1)。
PC7用于输出控制数码管工作/不工作的信号(D3=0)。
故写入方式控制字为10000001B=81H。
8255-PB输出方式
引脚
输出信号
PB7
PB7—DP段
PB6
PB6—G段
PB5
PB5—F段
PB4
PB4—E段
PB3PB3—D段
PB2
PB2—C段
PB1
PB1—B段
PB0
PB0—A段
8255A输入/输出信号接线方案如下表所示:
PCH输出方式
8255-PA输出方式
PCL输入方式
引脚
输出信号
引脚
输出信号
引脚
输入信号
数码管的
PA7
不用(灭)
PC7
位码选择
PA6
南北红灯
PC7=0,则
PA5
南北黄灯
该位选中
PA4
南北绿灯
PA3
不用(灭)
PC3
PA2
东西红灯
PC2
PA1
东西黄灯
PC1
8253-OUT0
PA0
东西绿灯
PC0
开关K8输入
a.灯光显示:
送低电平则灯亮,送高电平则灯灭。
东西绿灯,南北红灯:
PA0~PA7应输出01111101B=7DH
东西闪灯,南北红灯:
黄灯亮,红灯亮
PA0~PA7应输出10111101B=0BDH
黄灯灭,红灯亮
PA0~PA7应输出11111101B=0FDH
东西红灯,南北绿灯:
PA0~PA7应输出11010111B=0D7H
东西红灯,南北黄闪:
红灯亮,黄灯亮
PA0~PA7应输出11011011B=0DBH
红灯亮,黄灯灭
PA0~PA7应输出11011111B=0DFH
两个路口都黄灯闪烁:
两个黄灯亮:
PA0~PA7应输出10111011B=0BBH
两个黄灯灭:
PA0~PA7应输出11111111B=0FFH
b.LED数码显示:
数码管采用共阴极接法,位选信号为0则数码管工作。
a~dp段发亮条件:
对应位输入1,见下表所示:
.专业.整理.
下载可编辑
显示数字0123456789
PB输出3FH06H5BH4FH66H6DH7DH07H7FH6FH
白天模式:
数码管工作,PC7送0,即应输入0×××××××B,例如送01111111B=7FH
夜天模式:
数码管工作,PC7送1,即应输入1×××××××B,例如送10000000B=80H
②8253
交通信号灯亮、灭的时间及数码管的倒计时间隔都通过8253控制。
8253可编程定时/计数器是Intel公司生产的通用外围接口芯片,它有三个独立的16位计数器,计
数围为0~2MHz。
8253有6种工作方式,其中方式三是方波发生器方式。
本设计中选用通道0,CLK0接1953HZ的时钟信号,GATE0接高电平VCC,OUT0接8255的PC1。
因为
需要产生周期为0.5s的方波,即产生2Hz的方波而固有频率为1953Hz,故分频系数N=1953/2=976。
由
于选用了通道0(SC1SC0=00),工作在方式3(M2M1M0=011),对计数器进行读写/操作时,先送低8
位,再送高8位(RW1RW0=11),计数器的数值采用10进制(BCD=1),故初始化时命令字为00110111B=37H。
③白天和夜间模式的切换
通过8255读取PC0的状态后,用软件判断是执行白天还是夜间模式。
使用IN指令,将PC的状态送入寄存器AL,将PC70状态送入了AL的D0中。
由于只需判断PC0的
值,故将AL同00000001B相与。
使用JZ判断,若结果为1,即PC0为0,则转白天模式,否则顺序执行
夜间模式。
通过使用循环语句,使得每执行完一次白天或夜间模式,都重新对PC0的状态进行一次判断。
一旦
拨动切换开关K8,就能及时切换交通灯运行模式。
④硬件延时
由于本设计中,每次倒数计时的间隔为1秒;而黄灯闪烁一次用时共计1秒,其中前0.5秒为黄灯
亮,后0.5秒为黄灯灭。
故8253选用通道0,CLK0接1953HZ的时钟信号,分频系数设为976,OUT0输
出周期为0.5s的方波。
主程序通过查询8255的PC1接收到的状态,获知准确的定时信息。
读取PC1的状态,判断是否为0,直到发生跳变为1,此过程执行时间为半个周期即0.25s。
继续读
取PC1的状态,判断是否为1,直到发生跳变为0,此过程执行时间为半个周期即0.25s。
故判断PC1发
生两次跳变的程序执行一次所用时间就为0.5s。
将此作为延迟子程序,实现延时的效果。
(2)功能描述
①开关K8拨到0,实现白天模式:
东西方向和南北方向各放行10秒。
a.东西亮绿灯,南北亮红灯,数码管从9倒数计时到4
b.东西闪黄灯,南北亮红灯,数码管从3倒数计时到0
c.东西亮红灯,南北亮绿灯,数码管从9倒数计时到4
d.东西亮红灯,南北闪黄灯,数码管从3倒数计时到0
如此a->b->c->d作为一组循环。
每组白天模式的循环结束后重新查询开关K8的状态,可实现模式的切换。
②开关K8拨到1,实现夜间模式:
两个路口都是黄灯闪烁。
数码管没有数字显示。
黄灯每闪烁一次为1s,作为一组循环。
每组夜间模式的循环结束后重新查询开关K8的状态,可实现模式的切换。
.专业.整理.
下载可编辑
2、电路图
(1)电路原理图
说明:
.专业.整理.
下载可编辑
5255:
PA口,输出,控制LED灯
PB口,输出,控制数码管显示数字
PC0,输入,反映开关状态
PC1,输入,送入8253产生的2Hz方波
PC7,输出,控制数码管工作与否
8253:
OUT0,输出,输出方波给8255
CLK0,输入,送入固有频率3906Hz
(2)实物图
3、结构框图
(1)延时子程序
输入
PC1
PC1=0?
Y
N
输入
PC1
PC1=1?
Y
N
返回
.专业.整理.
下载可编辑
(2)主程序
8255、8253初始化
Y
PC0=0?
N
黄灯闪烁
南北绿灯,东西红灯
显示“9”
延时1秒子程序
显示“8”
延时1秒子程序
。
。
显示“4”
延时1秒子程序
南北黄灯,东西黄灯省略部分
显示“3”
延时1秒子程序
。
。
显示“0”
延时1秒子程序
南北红灯,东西绿灯
.专业.整理.
下载可编辑
4、运行情况和结论
(1)实际情况
判断
拨到0
开关K8
东西绿灯
拨到1
南北红灯
东西黄闪
南北红灯
东西红灯
南北绿灯
东西红灯
南北黄闪
两个黄灯
闪烁一次
运行时的图片
.专业.整理.
下载可编辑
(2)结论
①本设计基本完成了任务书中所要求的功能。
a.白天模式:
①东西方向和南北方向各放行10秒。
绿灯转红灯前黄灯闪烁4秒。
②LED数码显示器显示倒数计时,从9倒数到0;倒数到4时黄灯亮。
b.夜间模式:
两个方向黄灯闪烁,绿灯和红灯不亮。
②有待改进之处:
a.夜间模式能在1s切换到白天模式。
但在白天模式必须等一个循环结束后才能切换。
b.1s延时程序不精确,最大存在0.5s的误差。
5、系统调试中的问题和解决办法
遇到的问题:
不能立刻从白天模式切换到夜晚模式
解决的方法:
修改了代码,在白天每次灯闪烁的后面判断是否切换,如果切换就跳到黄灯循环模式,
由于程序长度限制,需要每隔一段设置一个中间点jmp.
6、源程序清单
codesegment
assumecs:
code
go:
moval,10000001b;8255初始化
movdx,0f003h
outdx,al
moval,00110111b;8253初始化,产生2HZ方波
movdx,0e003h
outdx,al
moval,53h
movdx,0e000h
outdx,al
moval,19h
outdx,al
l:
movdx,0f002h;判断工作状态
inal,dx
andal,01h
cmpal,0h
jell
movdx,0f002h;数码管灭
moval,80h
outdx,al
moval,10111011b;使灯全都亮
movdx,0f000h
outdx,al
.专业.整理.
下载可编辑
calldelay
;
延时
moval,11111111b
;
使灯全都亮
movdx,0f000h
outdx,al
calldelay
jmpl
ll:
movdx,0f002h
;
数码管灭
moval,7fh
outdx,al
moval,01101111b
;
南北绿灯,东西红灯
movdx,0f000h
outdx,al
calla
callb
;
南北黄灯,东西红灯
moval,11010111b
;
南北红灯,东西绿灯
movdx,0f000h
outdx,al
calla
callc
;
南北红灯,东西黄灯
jmpl
movah,4ch
int21h
delayproc;8253延时0.5秒钟
m:
movdx,0f002h
inal,dx
andal,02h
jzm
n:
movdx,0f002hinal,dx
andal,02h
jnzn
ret
delayendp
aa:
jmpl;中间点aa,跳回l
aproc
moval,6fh;数码管显示"9"
movdx,0f001h
outdx,al
calldelay
calldelay;延时两个0.5秒,即1秒
.专业.整理.
下载可编辑
movdx,0f002h;判断工作状态
inal,dx
andal,01h
cmpal,0h
jnzl;跳回l
moval,7fh;数码管显示"8"
movdx,0f001h
outdx,al
calldelay
calldelay
movdx,0f002h
inal,dx
andal,01h
cmpal,0h
jnzaa;跳回中间点aa
moval,07h;数码管显示"7"
movdx,0f001h
outdx,al
calldelay
calldelay
movdx,0f002h
inal,dx
andal,01h
cmpal,0h
jnzaa
moval,7dh;数码管显示"6"
movdx,0f001h
outdx,al
calldelay
calldelay
movdx,0f002h
inal,dx
andal,01h
cmpal,0h
jnzaa
jmpz
bb:
jmpaa;中间点bb,跳回aa
.专业.整理.
下载可编辑
z:
moval,6dh;数码管显示"5"
movdx,0f001h
outdx,al
calldelay
calldelay
movdx,0f002h
inal,dx
andal,01h
cmpal,0h
jnzaa
moval,66h;数码管显示"4"
movdx,0f001h
outdx,al
calldelay
calldelay
movdx,0f002h
inal,dx
andal,01h
cmpal,0h
jnzbb
ret
aendp
bproc
moval,4fh;数码管显示"3"
movdx,0f001h
outdx,al
moval,10101111b;南北黄灯亮
movdx,0f000h
outdx,al
calldelay;延时0.5秒
moval,11101111b;南北黄灯灭
movdx,0f000h
outdx,al
calldelay
movdx,0f002h
inal,dx
andal,01h
cmpal,0h
jnzbb
.专业.整理.
下载可编辑
moval,5bh;数码管显示"2"
movdx,0f001h
outdx,al
moval,10101111b
movdx,0f000h
outdx,al
calldelay
moval,11101111b
movdx,0f000h
outdx,al
calldelay
movdx,0f002h
inal,dx
andal,01h
cmpal,0h
jnzbb
jmpy
cc:
jmpbb;中间点cc,跳回bb
y:
moval,06h;数码管显示"1"
movdx,0f001h
outdx,al
moval,10101111b
movdx,0f000h
outdx,al
calldelay
moval,11101111b
movdx,0f000h
outdx,al
calldelay
movdx,0f002h
inal,dx
andal,01h
cmpal,0h
jnzcc
moval,3fh;数码管显示"0"
movdx,0f001h
outdx,al
moval,10101111b
movdx,0f000h
outdx,al
.专业.整理.
下载可编辑
calldelay
moval,11101111b
movdx,0f000h
outdx,al
calldelay
movdx,0f002h
inal,dx
andal,01h
cmpal,0h
jnzcc
ret
bendp
cproc
moval,4fh;数码管显示"3"
movdx,0f001h
outdx,al
moval,10101111b;东西黄灯亮
movdx,0f000h
outdx,al
calldelay;延时0.5秒
moval,11101111b;东西黄灯亮
movdx,0f000h
outdx,al
calldelay
movdx,0f002h
inal,dx
andal,01h
cmpal,0h
jnzcc
jmpx
ddd:
jmpcc;中间点ddd,跳回cc
x:
moval,5bh;数码管显示"2"
movdx,0f001h
outdx,al
moval,10101111b
movdx,0f000h
outdx,al
calldelay
moval,11101111b
movdx,0f000h
.专业.整理.
下载可编辑
outdx,al
calldelay
movdx,0f002h
inal,dx
a