您的当前位置:首页正文

微机课程设计交通灯

2020-07-10 来源:意榕旅游网


成绩

南京工程学院

课程设计说明书

题 目 交通信号灯模拟控制系统的设计

课 程 名 称 微机原理及应用A 院(系、部、中心) 电力工程学院 专 业 电力工程及其自动化 班 级 学 生 姓 名 学 号 设 计 地 点 指 导 教 师

设计起止时间:2013 年3月10 日 至 15 日

目 录

一、课程设计任务书

(一)课程设计应达到的目的--------------------------------------3 (二)课程设计题目及要求----------------------------------------3 (三)课程设计任务及工作量的要求--------------------------------4 (四)主要参考文献----------------------------------------------4 (五)课程设计进度安排------------------------------------------5 (六)成绩考核--------------------------------------------------5

二、课程设计说明书

(一)课程设计目的------------------------------------------6 (二)课程设计实验设备--------------------------------------6 (三)设计思路与功能描述------------------------------------6 (四)电路原理图及其说明------------------------------------7 (五)结构框图----------------------------------------------9 (六)系统调试中的问题和解决办法----------------------------9 (七)运行情况和结论----------------------------------------9 (八)源程序清单--------------------------------------------9 (九)心得与体会-------------------------------------------16

三、附录:

(一)交通灯模拟图-----------------------------------------16 (二)参考文献---------------------------------------------17

课程设计任务书

1.课程设计应达到的目的 通过课程设计加深理解课堂教学内容,掌握微机原理的基本应用方法。通过实验熟悉微机基本接口芯片的外型、引脚、编程结构,掌握汇编语言程序设计和微机基本接口电路的设计、应用方法,做到理论联系实际。 2.课程设计题目及要求 题目:交通信号灯模拟控制系统的设计 利用STAR ES598PCI实验仪的硬件资源设计一个“带时间显示的交通信号灯模拟控制系统”。所有输入该装置信号采用STAR ES598PCI实验仪上的状态输入开关,东西、南北方向的红绿黄灯采用实验仪上的LED发光二极管模拟,东西、南北方向的信号灯变化,通行倒计时时间用数码管显示。 1、功能要求: 1) 假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。当A道和B道均有车辆要求通过时,A道和B道轮流放行。A道放行10秒钟,B道再放行10秒钟,依次轮流。绿灯转换红灯前黄灯闪烁4s。 2) 夜间工作时A道(东西方向)和B道(南北方向)只有黄灯闪烁。用一开关控制白天黑夜。 2、难度要求: 1) 基本要求:采用8255 PA口输出控制信号灯,8255 PC0输入K8控制开关信号,用循环程序软件定时实现功能要求;(60分) 2) 中级要求:采用8255 PA口输出控制信号灯,8255 PC0输入K8控制开关信号,用8253硬件定时,软件查询方式实现功能要求;(80分) 3) 高级要求:在中级要求的基础上,增加用8255 PB口动LED数码显示器显示绿灯倒计时秒数,从9倒计数到0,倒计数到4时黄灯亮。(100分)

3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕 设计要求 1、预习要求: 1)预习《STAR ES598PCI实验仪 微机原理实验指导书》附录三: 2)预习《STAR ES598PCI实验仪 微机原理实验指导书》附录二之 2.7 B2区;2.9 B4区;2.15 C5区;2.36 G5区;2.37 G6区。 3)预习《STAR ES598PCI实验仪 微机原理实验指导书》之“实验九8255控制交通灯实验”和“实验十 8253方波实验”。 4)预习本任务书,根据设计任务,预先画出电路原理图、程序流程图,编写出实验程序。 2、设计报告要求: 1)画出接口部分电路原理图,并阐述系统工作原理。 2)绘制程序流程图和源程序清单。 3)调试过程和结果。 4)要求用WORD撰写课程设计报告,上交打印版和电子稿。 3、课程设计说明书装订顺序及主要内容如下: 1)封面、目录 2)任务书 3)正文:设计思路与功能描述;电路原理图及其说明。应标示并说明每一个输入/输出信号的含义;结构框图;系统调试中的问题和解决办法;运行情况和结论;源程序清单。 4)参考资料 4.主要参考文献 [1] 李干林. 《STAR ES598PCI实验仪 微机原理实验指导书》[M] .南京工程学院,2008. [2] 李继灿.新编16/32微型计算机原理及应用[M].北京:清华大学出版社,2004 [3] 郑学坚,周斌. 微型计算机原理及应用[M] . 北京:清华大学出版社,2001. [4] 朱定华等. 微型计算机原理及应用[M]. 北京:电子工业出版社,2005. 5.课程设计进度安排 起 止 日 期 工 作 内 容 2013年3月10日(第1周)预习消化理解设计任务,设计程序流程图,编写源程序。 之前 第1周,星期一 第1周,星期二、三 第1周,星期四 第1周,星期五 第1周,星期六 6.成绩考核办法 总评成绩由三部分组成,分别是:成果演示占40%,测试成绩占30%,设计报告占30%。 1、成果演示(根据程序运行演示确定基础分); 2、口试或笔试测验(与本设计有关的问题,目的是考查设计成果是否经过自己思考独立完成); 3、课程设计报告(格式、内容、质量)。 教研室审查意见: 预习星研微机实验系统的仿真调试操作界面 学习STAR86/88实验系统的使用和操作, 进行实验8255测试和8253测试基本实验 完成要求的内容 验收 撰写课程设计报告 撰写课程设计报告 教研室主任签字: 年 月 日 院(系、部、中心)意见: 主管领导签字: 年 月 日 课程设计说明书

一、课程设计的目的

1 掌握可编程接口芯片8255、8253的应用和初始化编程方法。 2 进一步掌握8086/88汇编语言程序设计方法。

3 学习并掌握多重循环嵌套程序的设计,掌握指令执行时间的计算和软件延时程序的设计。

二、实验的设备

1 装有星研集成环境软件的计算机一台 2 Star实验箱一台

三、设计思路与功能描述

1、设计要求:

设计一个十字路口的交通信号灯(由实验仪的LED发光二极管模拟)。 采用8255 PA口输出控制信号灯,8255 PC0输入K8控制开关信号; 用8253硬件定时,软件查询方式实现如下功能:

白天模式:①东西方向和南北方向各放行10秒。绿灯转红灯前黄灯闪烁4秒。

②LED数码显示器显示倒数计时,从9倒数到0;倒数到4时黄灯亮。

夜间模式:两个方向黄灯闪烁,绿灯和红灯不亮。

2、设计思路:

(1)8255: 分析:

本设计中,交通信号灯的灯光变化和数码显示通过8255实现控制。 PA口用于输出信号控制灯光的变化(D6D5=00,D4=0),PB口用于输出信号控制数码管的显示(D2=0,D1=0),PC0用于输入K8的控制开关信号,PC1用于输入用于硬件延时的方波信号(D0=1)。PC7用于输出控制数码管工作/不工作的信号(D3=0)。故写入方式控制字为10000001B=81H。

8255输入/输出信号如下表所示: 8255-PB输出方式 引脚 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 输出信号 PB7—DP段 PB6—G段 PB5—F段 PB4—E段 PB3—D段 PB2—C段 PB1—B段 PB0—A段 PCH输出方式 引脚 输出信号 数码管的位码选择 PC7=0,则该位选中 8255-PA输出方式 引脚 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 输出信号 南北绿灯 南北黄灯 南北红灯 东西红灯 东西绿灯 东西黄灯 PC3 PC2 PC1 PC0 8253-OUT0 开关K8输入 引脚 PCL输入方式 输入信号 PC7 a. 灯光显示:送低电平则灯亮,送高电平则灯灭。

b.LED数码显示:数码管采用共阴极接法,位选信号为0则数码管工作。 a~dp段发亮条件:对应位输入1,见下表所示: 显示数字 PB输出 0 3FH 1 06H 2 5BH 3 4FH 4 66H 5 6DH 6 7DH 7 07H 8 7FH 9 6FH 白天模式:数码管工作,PC7送0,即应输入0×××××××B

夜晚模式:数码管工作,PC7送1,即应输入1×××××××B

(2)8253:

①交通信号灯亮、灭的时间及数码管的倒计时间隔都通过8253控制。 8253工作方式3,通道0,采用10进制(BCD=1),分频系数设置为3906,故初始化时命令字为00110111B=37H。CLK0接3906Hz时钟信号,GATE0接高电平,则OUT0输出为频率为2Hz方波。OUT0接8255-PC1。

主程序通过查询8255-PC1的状态,获知准确的定时信息。 (3)白天和夜间模式的切换:

通过8255读取PC0的状态后,用软件判断是执行白天还是夜间模式。

使用IN指令,将PC的状态送入寄存器AL,将PC70状态送入了AL的D0中。由于只需判断PC0的值,故将AL同00000001B相与。使用JZ判断,若结果为1,即PC0为0,则转白天模式,否则顺序执行夜间模式。

通过使用循环语句,使得每执行完一次白天或夜间模式,都重新对PC0的状态进行一次判断。一旦拨动切换开关K8,就能及时切换交通灯运行模式。

(4)硬件延时:

读取PC1的状态,判断是否为0,直到发生跳变为1,此过程执行时间为半个周期即0.25s。继续读取PC1的状态,判断是否为1,直到发生跳变为0,此过程执行时间为半个周期即0.25s。故判断PC1发生两次跳变的程序执行一次所用时间就为0.5s。将此作为延迟子程序,实现延时的效果。

3、功能描述:

(1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。当A道和B道均有车辆要求通过时,A道和B道轮流放行。A道放行10秒钟,B道再放行10秒钟,依次轮流。绿灯转换红灯前黄灯闪烁4s。

(2)夜间工作时A道(东西方向)和B道(南北方向)只有黄灯闪烁。用一开关控制白天黑夜。

四、电路原理图及其说明

8255:PA口,输出,控制LED灯

PB口,输出,控制数码管显示数字 PC0,输入,反映开关状态

PC1,输入,送入8253产生的2Hz方波 PC7,输出,控制数码管工作与否 8253:OUT0,输出,输出方波给8255 CLK0,输入,送入固有频率3906Hz

电路图如下:

电路接线实物图:

五、结构框图

(1)主程序:

8255、8253初始化

Y PC0 = 0?

N 黄灯闪烁

南北绿灯,东西红灯

显示“9”

延时1秒子程序

显示“8”

延时1秒子程序

显示“4”

延时1秒子程序

南北黄灯,东西黄灯

显示“3”

延时1秒子程序

显示“0”

延时1秒子程序

南北红灯,东西绿灯

(2)硬件延时0.5秒钟子程序: 输入PC1

Y PC1 =0? 省略部分 N 输入PC1

Y PC1 =1? N

六、系统调试中的问题和解决办法

(1)遇到的问题:刚开始调试的时候程序能编译成功,但运行起来灯闪烁错乱,数码管显示也不对。

解决的办法:检查发现,接线端口插错位,导致与程序不一致。改正接口后,运行结果就基本正确了。

(2)遇到的问题:程序有错误,显示超出范围。

解决的方法:因程序太长,无法跳回,我们在程序中间设了几个站点,如aa,bb,cc,用JMP无条件转,解决了该问题。

七、运行情况和结论

①本次设计基本完成了任务书中所要求的功能,在此基础上还达到了拨动开关能立即转换状态的功能。 ②有待改进之处:

延时程序不精确,最大存在0.5s的误差。

八、源程序清单

code segment assume cs:code

go:mov al,10000001b ;8255初始化 mov dx,0f003h out dx,al

mov al,00110111b ;8253初始化 mov dx,0e003h out dx,al

mov al,53h ;使用硬件8253延时0.5秒钟 mov dx,0e000h out dx,al mov al,19h out dx,al

l: mov dx,0f002h ;判断工作在夜间1/白天0 in al,dx and al,01h

je ll ;结果为0则转白天

mov al, 80h ;未选中PC7,不工作 mov dx,0f002h out dx,al

mov al,10111011b ;夜间黄灯闪烁,使灯全都亮 mov dx,0f000h out dx,al call delay

mov al,11111111b ;使得灯都灭掉 mov dx,0f000h out dx,al call delay jmp l

ll: mov dx,0f002h ;选中PC7,工作 mov al,7fh out dx,al

mov al,01101111b ;南北绿灯,东西红灯 (9s-4s) mov dx,0f000h out dx,al call a

call b ;mov al,11010111b ;mov dx,0f000h out dx,al call a

call c ;jmp l

mov ah,4ch int 21h

delay proc ;8253m: mov dx,0f002h ;PCin al,dx and al,02h

jz m ;n: mov dx,0f002h in al,dx and al,02h

jnz n ;ret

delay endp

aa: jmp l ;a proc

mov al,6fh ;mov dx,0f001h out dx,al

call delay ;call delay

mov dx,0f002h ; in al,dx and al,01h jnz l

mov al,7fh ;mov dx,0f001h out dx,al

南北黄灯,东西红灯(3s-1s闪烁)南北红灯,东西绿灯(9s-4s) 南北红灯,东西黄灯(3s-1s闪烁)延时0.5秒钟 1接8253的OUT0 等于\"0\"时则转,等待高电平 等于\"1\"时则转,等待低电平 无条件转l 数码管显示\"9\" 共延时1s 判断工作在夜间1/白天0 数码管显示\"8\" call delay ;共延时1s call delay

mov dx,0f002h ; 判断工作在夜间1/白天0 in al,dx and al,01h cmp al,0h

jnz aa ;为1转aa

mov al,07h ;数码管显示\"7\" mov dx,0f001h out dx,al call delay call delay mov dx,0f002h in al,dx and al,01h cmp al,0h jnz aa

mov al,7dh ;mov dx,0f001h out dx,al call delay call delay mov dx,0f002h in al,dx and al,01h cmp al,0h jnz aa jmp z

bb: jmp aa

z: mov al,6dh ;mov dx,0f001h out dx,al call delay call delay mov dx,0f002h in al,dx and al,01h cmp al,0h jnz aa

mov al,66h ;mov dx,0f001h out dx,al call delay call delay mov dx,0f002h in al,dx

数码管显示\"6\" 数码管显示\"5\" 数码管显示\"4\" and al,01h cmp al,0h jnz bb ret a endp

b proc

mov al,4fh ;数码管显示\"3\" mov dx,0f001h out dx,al

mov al,10101111b ;mov dx,0f000h out dx,al call delay

mov al,11101111b ;mov dx,0f000h out dx,al call delay mov dx,0f002h in al,dx and al,01h cmp al,0h jnz bb

mov al,5bh ;mov dx,0f001h out dx,al

mov al,10101111b ;mov dx,0f000h out dx,al call delay

mov al,11101111b ;mov dx,0f000h out dx,al call delay mov dx,0f002h in al,dx and al,01h cmp al,0h jnz bb jmp y

cc: jmp bb

y: mov al,06h ;mov dx,0f001h out dx,al

mov al,10101111b ;mov dx,0f000h

南北黄灯亮 南北黄灯暗 数码管显示\"2\" 南北黄灯亮 南北黄灯暗 数码管显示\"1\" 南北黄灯亮 out dx,al call delay

mov al,11101111b ;南北黄灯暗 mov dx,0f000h out dx,al call delay mov dx,0f002h in al,dx and al,01h jnz cc

mov al,3fh ;mov dx,0f001h out dx,al

mov al,10101111b ;mov dx,0f000h out dx,al call delay

mov al,11101111b ;mov dx,0f000h out dx,al call delay mov dx,0f002h in al,dx and al,01h jnz cc ret b endp c proc

mov al,4fh ;mov dx,0f001h out dx,al

mov al,10101111b ;mov dx,0f000h out dx,al call delay

mov al,11101111b ;mov dx,0f000h out dx,al call delay mov dx,0f002h in al,dx and al,01h cmp al,0h jnz cc jmp x

ddd: jmp cc

数码管显示\"0\" 南北黄灯亮 南北黄灯暗 数码管显示\"3\" 东西黄灯亮 东西黄灯暗 x: mov al,5bh ;数码管显示\"2\" mov dx,0f001h out dx,al

mov al,10101111b ;东西黄灯亮 mov dx,0f000h out dx,al call delay

mov al,11101111b ;东西黄灯暗 mov dx,0f000h out dx,al call delay mov dx,0f002h in al,dx and al,01h cmp al,0h jnz ddd

mov al,06h ;mov dx,0f001h out dx,al

mov al,10101111b ;mov dx,0f000h out dx,al call delay

mov al,11101111b ;mov dx,0f000h out dx,al call delay mov dx,0f002h in al,dx and al,01h cmp al,0h jnz ddd

mov al,3fh ;mov dx,0f001h out dx,al

mov al,10101111b ;mov dx,0f000h out dx,al call delay

mov al,11101111b ;mov dx,0f000h out dx,al call delay mov dx,0f002h in al,dx and al,01h

数码管显示\"1\" 东西黄灯亮 东西黄灯暗 数码管显示\"0\" 东西黄灯亮 东西黄灯暗 cmp al,0h jnz ddd ret c endp code ends end go

九、心得与体会

通过一周的课程设计,我觉得我收获了很多。首先我对于微机原理有了更加深刻的理解,真的的意识到了这门学科在实际生活中的应用。设计的过程中,我熟悉了芯片8253、8255 的功能和应用,学会了用汇编语言设计程序。在设计过程中,发现自己对老师课上所讲的许多知识点理解不透彻,概念比较模糊。通过一遍遍的研究、查找相关的资料,总算对8253和8255

有了一定的认识,对芯片的初始化和命令字,以及地址和控制口的理解也更加深入。

本次课程设计提高我们的自学能力和合作精神。从理解开始,不断思考,同时和老师同学们交流看法,在编程的过程中遇到了许多细节方面的问题,我们通过讨论一起解决了问题,最终完成要求。灵活运用课堂所学,软硬件相结合,这是本次设计的要求,也是我们此次的最大收获,希望以后可以把专业的知识运用到更多的领域中去。

附录

1、参考文献

[1] 李干林. 《STAR ES598PCI实验仪 微机原理实验指导书》[M] .南京工程学院,2008. [2] 韩念杭. 微型计算机原理实验指导书 [M] .南京工程学院,2004.

[3] 郑学坚,周斌. 微型计算机原理及应用[M] . 北京:清华大学出版社,2001. [4] 朱定华等. 微型计算机原理及应用[M]. 北京:电子工业出版社,2005.

[5] 李继灿.新编16/32微型计算机原理及应用[M].北京:清华大学出版社,2004 [6] 戴梅萼,史嘉权. 微型计算机技术及应用[M] . 北京:清华大学出版社,1996.

2、实物图

南北红,东西绿 南北红,东西黄

夜间黄灯闪烁:

因篇幅问题不能全部显示,请点此查看更多更全内容