单片机课程设计报告题目:单片机课程设计院(系)工学院专业电子信息工程年级 08-1 姓名学号指导教师2011年 12月25日摘要道路交通信号灯是交通安全产品中的一个类别,是为了加强道路交通管理,减少交通事故的发生,提高道路使用效率,改善交通状况的一种重要工具。
适用于十字、丁字等交叉路口,由道路交通信号控制机控制,指导车辆和行人安全有序地通行。
交通信号灯的种类有:机动车道信号灯,人行横道信号灯,非机动车道信号灯,方向指示信号灯,移动式交通信号灯,太阳能闪光警告信号灯,收费站天棚信号灯. 单片机概述:单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
一、设计任务与要求(1)A 道和B道上均有车辆要求通过时,A、B道轮流放行。
A道放行5分钟(调试时改为5 秒钟),B道放行4 分钟(调试时改为4 秒钟)。
(2)一道有车而另一道无车(实验时用开关K0 和K1 控制),交通灯控制系统能立即让有车道放行。
(3)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2 开关模拟,有紧急车时UINT0 为高电平。
(4)绿灯转换为红灯时黄灯亮1秒钟。
二、方案设计与论证1.总体设计方案东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。
设东西道比南北道的车流量大,指示灯燃亮的方案如表1表1方案(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。
时间为60秒。
(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。
(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。
时间为80秒。
东西方向车流大通行时间长。
(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。
(5)此表可根据车流量动态设定红绿灯初始值。
2.电源提供方案为使模块稳定工作,须有可靠电源。
因此考虑了两种电源方案:方案一:采用独立的稳压电源。
此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。
方案二:采用单片机控制模块提供电源。
改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。
综上所述,我选择第二种方案。
三、单元电路设计下图图2为交通信号灯DXP仿真所用总原理图图1总原理图四、元器件清单交通信号灯的成品所需的硬件及所用工具如下表2:元件序号型号数量备注主芯片EPF10K10LC84-4 1片无LED 灯通用型6只红.黄.绿各2个焊接工具家用型1套无焊板通用型1个无开关通用型4只无PC机一般家用型即可1台带有VHDL开发工具导线通用型若干无七段数码管通用型4个无表2原件清单五、软件部分1.每秒钟的设定延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。
2.计数器硬件延时(1) 计数器初值计算定时器工作时必须给计数器送计数器初值,这个值是送到TH 和TL 中的。
他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。
因此,我们可以把计数器记满为零所需的计数值设定为C 和计数初值设定为TC 可得到如下计算通式:TC=M-C 式中,M 为计数器摸值,该值和计数器工作方式有关。
在方式0时M 为213 ;在方式1时M 的值为216;在方式2和3为28(2) 计算公式:T=(M -TC )T 计数或TC=M-T/T 计数 T 计数是单片机时钟周期TCLK的12倍;TC为定时初值如单片机的主脉冲频率为TCLK12MHZ ,经过12分频 方式0 TMAX=213 *1微秒=8.192毫秒 方式1 TMAX=216 *1微秒=65.536毫秒显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题.3.程序源代码(见附录)六、 调试与分析1. 将写好的程序代码按下列步骤操作调试(1)输入项目文件名(File/Project/Name) 交通信号灯模拟:Traffic lights (2)输入源文件:交通灯信号灯模拟:打开Traffic lights 作调试 (3)指定CPLD 型号(Assign/Device) (4)设置管脚、下载方式和逻辑综合的方式(Assign/Global Project Device Option,Assign/Global Logic Synthesis)(5)保存并检查源文件(File/project/Save & Check) (6)指定管脚(Max+plus Ⅱ/Floorplan Editor) (7)保存和编译源文件(File/project/Save & Compile)(8)生成波形文件(Max+plusⅡ/Waveform Editor)2.调试真值表下表3为仿真调试时输出信号的真值表:表3调试真值表(1)功能子程序的调试。
能子程序的调试包括运算、采样、数字滤波以及PID运算等子程序的调试。
在调试功能子程序时,许多参数都是未知的,要根据其所需的条件,给出假定的数据,使其运行,如果能完成预定的处理功能或与手工计算的结果相符,就说明该子程序己调试通过。
调试时由小到大,由里到外。
例如,调试PID算法子程序时,先调通其包含的各个运算子程序和参数处理子程序,然后将它们连起来进行通调。
通调时,也是假定一些数据、参数和初始条件,然后运行程序。
当运算结果与手工计算的结果相同时,该算法子程序则调试完成,反之,就要进行相应的修改。
其它子程序的调试同理;(2)程序流程的调试。
序流程的调试主要是查看程序运行的步骤是否正确,在某时刻程序运行所处的位置是否正确,是否能正确运行各个中断服务程序。
在调试过程中,先将PID算法子程序屏蔽,输出可控硅导通时间用一个固定的常数代替,在各个中断服务子程序设置断点,然后运行程序,查看程序是否能运行到所有的断点,若所有断点都能运行到,则程序流程基本正确。
去掉所有断点,再一次运行程序,查看可控硅状态,从而判断程序流程正确,反之,若程序流程不正确,做相应的修改后,重新调试;(3)功能程序与算法程序的通调。
完成整个程序流程的调试后,将PID 等算法子程序加入,在算法子程序前或后设置断点,运行整个程序。
当程序在断点处暂停时,查看PID 计算的控制量与手工计算的值是否相同。
多运行几次,若每次的结果都正确,则说明程序各个部分互相没有矛盾,反之,则说明算法子程序和其它子程序之间有影响,需要做相应的修改后重新调。
3.调试流程如下图:图2调试流程图七、 总结与心得回想这两周的课程设计过程,既有快乐又有烦恼。
18周时,被通知要进行2周的课程设计。
当时有点懵,感觉学的东西很少,很零散,不知该怎么连到一起,而且又要考研时间很紧,又要课程设计,是不是太难为我们了。
第一天基本上都是在看书,把基本知识再熟悉一边。
到了周三上午的时候,老师发下来课程设计讲义,从这上面我得到了不少启发,然后我们组把整个程序的思路理清了,开始着手写程序。
第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的。
但是,到了第二周,我们由不得不再次陷入困境。
在整个程序的编写过程中。
最难的就是修改和删除这两个模块,这也是我们第二周要解决的重点问题。
开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了。
困难之时,我们组的其他人,帮助了我,完成了修改和删除。
这样的话,整个程序基本上全部完成了,就剩下完善工作了。
虽然过程不是很顺利但结果还是可以说及格了。
下面是在课程设计中的一些个人总结:(1)正所谓天道酬勤,学习单片机没有捷径,要坚持不懈,重在积累。
(2)别崇拜高手,别相信天才,大部分人都不是天才,要相信自己。
(3)单片机是一门实践性很强的课程,要多动手,多做实验。
(4)要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程能力。
(5)要多交流。
技术是靠不断的积累和交流才会进步的,封闭自守只会更加落后。
两周的课程设计已经结束了。
很感谢老师和同学的帮助,以后会更加努力的!!!!八、参考文献1.《Protel Dxp2004简明教程与考证指南》电子工业出版社2.《vhdl 数字系统设计》 MARK ZWOLINSKI著3.《硬件描述语言VHDL》机械工业出版社4.《maxplus II简明教程》人教出版社5.《51单片机应用从零开始》作者: 杨欣,王玉凤,刘湘九、附录CSEG AT 0000HLJMP STARTORG 0003HLJMP INT0SerORG 000BHLjmp TIMESerCSEG AT 0030HSTART: SETB IT0SETB EASETB EX0MOV A ,P1ANL A ,#0C0HCJNE A, #0C0H,JIXIMOV TMOD,#01HMOV TH0,#0FFHMOV TL0,#0FFHSETB ET0SETB TR0JIXI: MOV P1,#0CH ;东西路口绿灯亮;南北路口红灯亮ACALL DELAY5S ;延时5秒MOV P1,#12H ;东西路口黄灯亮;南北路口黄灯亮ACALL DELAY1S ;延时1秒MOV P1,#21H ;东西路口红灯亮;南北路口绿灯亮ACALL DELAY4S ;延时4秒MOV P1,#12H ;东西路口黄灯亮;南北路口黄灯亮ACALL DELAY1S ;延时1秒LJMP JIXITIMESer :MOV A ,P1ANL A ,#0C0HJB ACC.7,EXITMOV 40H,AMOV A,#21HMOV P1,AMOV A,40HJB ACC.6,EXITMOV A,#0CHMOV P1,AEXIT:RETIINT0SER:MOV P1,#24H ;两个红灯亮,黄灯、绿灯灭RETIDELAY5S:MOV R4,#250Delay3: MOV R3,#99Delay2: mov R2,#100Delay1: DJNZ R2,Delay1DJNZ R3,Delay2DJNZ R4,Delay3RETDELAY1S:MOV R4,#50DELAY4: MOV R3,#99DELAY5: MOV R2,#100Delay6: DJNZ R2,Delay6DJNZ R3,Delay5DJNZ R4,Delay4RETDELAY4S:MOV R4,#200DELAY7: MOV R3,#99DELAY8: MOV R2,#100Delay9: DJNZ R2,Delay9DJNZ R3,Delay8DJNZ R4,Delay7RETEND电气信息工程系单片机课程设计成绩评定表专业:电子班级: 08-1 学号:姓名:时间:年月日。