基于8086的智能交通灯的设计 下载本文

out dx,al then1:mov dx,portc in al,dx test al,04h

jnz putin1;检测KK2,KK2=1,则执行putin1;否则顺序执行 mov dx,porta

mov al,10101010b;绿灯皆亮,红灯皆灭 out dx,al

switch:mov dx,portc in al,dx

test al,08h;检测kk3,kk3=1,执行then1;kk3=0,执行then2 jnz then1

putin2:mov dx,porta

mov al,0ffh;红灯绿灯皆灭 out dx,al

then2:mov dx,portc in al,dx

test al,01h;检测kk1,kk1=1,执行putin2;kk1=0,顺序执行 jnz putin2

mov dx,porta

mov al,10100101b;南北方向绿灯亮、东西方向红灯亮 out dx,al mov cx,200

next1:call delay;调用延时程序,延时20秒 loop next1 mov dx,porta

mov al,01011010b;南北方向红灯亮、东西方向绿灯亮 out dx,al mov cx,200

next2:call delay;调用延时程序,延时20秒 loop next2

jmp switch;跳回switch,继续查询KK3状态

delay:mov dx,ptcon8253;初始化8253 mov al,0b0h out dx,al

mov ax,18750;设置初始值 mov dx,port2 out dx,al

mov al,ah out dx,al wait1:mov dx,portc in al,dx

test al,08h;程序执行过程中检测kk3状态 jnz then1

test al,01h;程序执行过程中检测kk1状态 jnz putin2 mov dx,portc in al,dx test al,02h jz wait1 ret code ends

end start;程序结束 end

4.2程序流程图

设置数据段 初始化8255 执行功能1 红灯皆亮,绿灯皆灭 是 KK2是否为1? 否 绿灯皆亮,红灯皆灭 是 KK3是否为1? 否

执行功能2 南北红灯,东西绿灯,延时20秒 否 KK1是否为1? 否 南北绿灯,东西红灯,延时20秒 是 是 灯全灭 5调试记录及结果分析

5.1调试记录

系统总共实现两个功能,一个是实现全红全绿的选择控制,另一个是实现东西南北不同方向红绿灯的循环点亮。我另外附加了一个开关KK3来对以上两个功能进行选择。

第一步,分别编写控制两个功能的程序,并分别进行调试。对第一个功能程序进行调试,未发现有问题。对第二个功能程序进行调试也未发现问题。

第二步,在增加KK3的基础上对两个程序进行整合,通过switch程序对两个功能程序进行选择。调试过程中发现,调节KK3的状态并不能即时响应,而是要等待一段时间才能响应,解决方法,在wait1程序中增加了

test al,08h;程序执行过程中检测kk3状态 jnz then1 问题得以解决。 5.2结果分析

(1)KK3=1时,KK2=0,红灯全亮,绿灯全灭;KK2=1,红灯全灭,绿灯全亮。

(2)KK3=0时,KK1=0,南北方向红灯全亮,东西方向绿灯全亮,延时20秒,南北方向绿灯全亮,东西方向红灯全亮,延时20秒??不断循环,如果在循环过程中使KK1=0,红灯绿灯全灭。

(3)在程序执行过程中,根据KK3的状态可以即时响应以分别实现KK1和KK2的功能。

6设计总结

此次课程设计收获到了许多课堂以外的东西。通过去网上和图书馆查阅很多资料,更加深化了许多汇编语言程序的设计思想,扩展了编程视野,而不是仅仅再局限于书本中几条简短的程序,而且更重要的是明白写程序的整体思路与编程细节。在系统加电调试中,学会了如何发现问题之后使用单步执行的方式查找出并解决问题的重要方法和思路。

通过此次课程设计,掌握了如何编写程序,编写程序工作的基本过程及其各阶段的基本任务,自学完成了程序流程框图,从而对课本上的知识有了更深的理解。

在本次课程设计中,把死板的课本知识变得生动有趣,从而激发了学习的积极性。把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对微机原理与接口技术有了更加深刻的认识,是对所学《新版汇编语言程序设计》,《单片机原理及接口技术》和《微型计算机原理及接口技术》的进一步升华。

课程结束了,从刚开始什么都不会到对汇编有了进一步的理解,再到可以结合硬件设计出完整的可执行的程序,离不开老师大三一学年对我们的辛勤教导,在此对老师的辛勤付出表示最诚挚的感谢!

7参考资料

【1】 李伯成:《微型计算机原理及接口技术》,清华大学出版社2008年版。 【2】 李朝青:《单片机原理及接口技术》,北京航空航天出版社2008年版。 【3】 钱晓捷:《新版汇编语言程序设计》,电子工业出版社2006年版。