1、急救车优先的交通灯控制系统课程设计报告院系:信息工程学院 专业:电子信息工程 姓名: 学号 : 指导老师: 设计时间:2015 年 1 月 20 日二零一五年一月二十日1内容摘要请设计一个交通灯控制电路,并且编写相应的软件,完成交通灯的管理任务。1、根据交通灯控制变化规律。假设一个十字路口为东西南北走向。初始状态 0 为东西红灯,南北红灯。然后转状态 1 南北绿灯通车,东西红灯。过 15 秒钟转状态 2,南北绿灯转亮黄灯,延时 5 秒,东西仍然红灯。再转状态 3,东西绿灯通车,南北红灯。过 15 秒钟转状态 4,东西绿灯转亮黄灯,延时 5 秒,南北仍然红灯。最后循环至状态 1。2、以按键为中断
2、申请,表示有急救车通过,所有的交通信号灯全红 10秒钟。交通灯控制系统,可由多种电路来构成,采用单片机控制,可提高电路的可靠性与稳定性,硬件电路比较简单,主要用软件来控制,控制方式灵活多样,能满足不同情况的控制,可利用中断等方式通过程序来方便的实现调时。关键字:课程设计 单片机 急救车 流程图 状态 代码 2目录一、课程设计意义和要求.31、课程设计意义.32、课程设计要求.3二、理论设计41、总体设计.42、软件设计.42.1、电路原理逻辑图72.2、程序流程图.83、硬件设计描述91、系统方框图.92、电路原理图.103、单片机简介.114、单片机的学习.125、单片机的应用领域.13四、
3、调试与仿真.3.15五、心得体会.18六、参考文献.20附录源程序代码.21急救车优先的交通灯控制系统设计一、课程设计意义和要求:1、课程设计意义大学本科学生动手能力的培养和提高是大学本科教育的一个重要内容,单片机原理及应用设计是一门应用性较强的课程。如何让学生在学好基础知识的同时,迅速掌握应用技术,实验与课程设计环节起着非常重要的作用。本课程设计的意义,是让学生通过课程设计,首先建立起单片机应用系统的概念,根据实际的系统设计要求,掌握初步的单片机系统设计方法,从硬件系统和软件系统设计两个方面得到实际的提高,为今后的毕业设计打下良好的基础。2、课程设计要求:设计制作一个模拟的十字路口交通灯控制
4、系统要求:(1)正常情况下东西与南北两个方向轮流点亮红、绿灯信号,每次持4续时间 15S,中间有 5S 的黄灯过度。(2)当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为 10 秒,急救车通过后,交通灯恢复中断前的状态。本题目以单脉冲为中断申请,表示有急救车通过。二、理论设计1、总体设计实际生活中的十字路口交通灯模拟图一 十字路口交通灯模拟图表一 交通灯南北和东西方向 LED 灯点亮的时间:南北向 绿灯亮 15 秒 黄灯亮 5 秒 红灯亮 15 秒 红灯亮 10 秒东西向 红灯亮 20 秒 绿灯亮 10秒秒黄灯亮 5秒秒红灯亮 10 秒2、软件设计5LED1L
5、ED6 分别作为南北和东西方向的红黄绿灯;数码管 0,1 作为南北方向的时间显示,数码管 2,3 作为东西方向的时间显示;定时器 T0:用于无急救车通过交通灯时的定时时间;定时器 T1:用于有急救车通过交通灯时的计时时间;外部中断 0:用于有急救车通过交通灯时去执行状态五的过程;寄存器 R0 与定时器 T0 定时 1 秒;寄存器 R1 与定时器 T1 定时 1 秒;存储单元 30H 和 31H 存储状态一的时间;存储单元 32H 存储状态二的时间;存储单元 33H 和 34H 存储状态三的时间;存储单元 35H 存储状态四的时间;存储单元 36H 存储状态五的时间;其中 R0=0,R1=0,(
6、30H)=15,(31H)=20,(32H)=5,(33H)=20,(34H)=15,(35H)=5,(36H)=1030H36H 分别是 TOBCD1TOBCD5 的入口地址,40H53H 既是 TOBCD1TOBCD5 的出口地址,也是 DISPLAY1DISPLAY5 的入口地址。表 2 进制转换的入口地址和出口地址状态 十进制转换 入口地址 出口地址1 TOBCD1 30H 40H 41H31H 42H 43H2 TOBCD2 32H 44H 45H63 TOBCD3 33H 46H 47H34H 48H 49H4 TOBCD4 35H 52H 53H5 TOBCD5 36H 50H
7、51H表 3 状态一到状态五的显示对应的参数和地址:状态 显示 显示 方向LED 灯色LED 灯(亮)开始时间(秒)40H、41H 南北 绿 LED3 15状态一DISPLAY1 42H、43H 东西 红 LED4 20南北 黄 LED2 5状态二DISPLAY244H、45H东西 红 LED4 546H、47H 南北 红 LED1 15状态三DISPLAY3 48H、49H 东西 绿 LED6 10南北 红 LED1 5状态四DISPLAY452H、53H东西 黄 LED5 57程序流程图NN状态五DISPLAY550H、51H 南北东西 红LED1、LED410开始初始化时钟程序南北绿,东
8、西红东西剩 5s南北黄,东西红南北红,东西绿南北剩 5s剩 0s?剩 0s南北红,东西黄8NN图 3 主程序流程图开始外部中断初始化延时 10 秒东南西北红灯亮5 秒倒计时显示保存灯亮状态及延时9图 4 中断程序流程图3、硬件设计描述1、系统方框图 1电 源信号灯AT80C51震荡部分复位电路图5 系统方框图2、电路原理图晶振电路:图 6 晶振电路图复位电路;10图 7 复位电路图LED 灯:图 8 LED 灯接线图113、单片机简介它内部也用和电脑功能类似的模块,比如 CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,
9、一般不超过 10 元即可用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机,排烟罩 VCD 等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国 50 年代开发的 74 系列,或者 60 年代的 CD4000 系列这些纯硬件来搞定的
10、话,电路一定是一块大 PCB 板!但是如果要是用美国 70 年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性! 由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言( 近几年,C 语言也开始广泛被应用),它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的 CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十 K 的尺寸!对于12家用 PC 的硬盘来
11、讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC 上来运行,家用 PC 的也是承受不了的。 目前最常用的单片机为 MCS-51,是由美国 INTEL 公司(生产 CPU 的英特尔)生产的,89C51 是这几年在我国非常流行的单片机,它是由美国ATMEL 公司开发生产的,其内核兼容 MCS-51 单片机。 4、 单 片 机 的 学 习1、单片机与嵌入式系统概述:包括嵌入式系统概念、单片机的特点、应用领域和发展趋势、市场主流单片机性能比较与选型、常用51核单片机介绍
12、、业内通用嵌入式系统开发方法和流程、开发板及相关开发工具的介绍和使用等; 2、单片机最小系统介绍、51单片机基本资源如并口、中断、时钟与复位、串口等的熟练使用等; 三、单片机基本资源扩展设计:包括存储器扩展设计、可编程和不可编程 I/O 接口扩展设计、I2C 总线的模拟设计等; 四、输入输出设备的设计:包括独立式按键和矩阵键盘的各种输入方法、数码管及液晶显示器的接口设计、蜂鸣器的设计;五、输入通道和输出通道的设计:包括一定模拟和数字信号量的输入、频率量的输入方法、A/D 转换原理与器件选型及其与单片机的接口设计、数字与模拟量的输出方法、功率驱动相关知识、D/A 转换原理与器件选型及其与单片机的
13、接口设计等; 13六、单片机软硬件设计和调试经验:各种软件开发和设计技巧、调试经验等; 七、开发环境和开发工具介绍:Keil uVision2 集成开发环境的使用与调试等;5、 单 片 机 的 应 用 领 域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化
14、、智能化、微型化,且功比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪) 。2、在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3、在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4、在计算机网络和通信领域中的应用14现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的
15、通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5、单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。5、调试与仿真1、状态一16图 9 南北绿东西红状态图 2、状态二图 10 南北黄东西红状态图 183、状态三图 11 南北红东西绿状态图 4、状态四图 12 南北红东西黄状态图 19状态五图 15 中断状态图六、
16、心得体会通过此次单片机的课程设计使我们对单片机有了更进一步的了解,比如在编程序时知道了设置中断的优先级,对外部中断的低电平和边沿触更加的熟悉,对中断的入口地址也熟悉了不少,同时在使用循环方面得到了提高,对单片机的硬件方面也有了一些了解,如晶振电路、复位电路、共阴数码管、共阳 led 灯等等;另外在仿真方面也熟悉了不少,虽然这次的设计不一定是最好的,但我会继续努力学习的。另外,很希望多做一些有关单片机的课程设计,从设计中增加自己的知识和能力。20通过这次的课程设计,对单片机的 I/O 口的使用的条件有更深的理解,对单片机的各个管脚功能的理解也加深了,以及在常用编程设计思路技巧(特别是汇编语言)的
17、掌握方面都能向前迈了一大步。这两周的课程设计真的有点郁闷,程序里面的好多内容不懂,但是只好硬着头皮去看去理解。但在学习过程中也充满了乐趣,当看懂了程序的一些语句,画出了要求的设计图,那我喜悦那种成就感油然而生。这次课程设计让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在课程设计中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会和同学讨论或者是同学之间相互帮助。团结就是力量,无论在现在的
18、学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。21参考文献图书1余锡存 曹国华 .单片机原理及接口技术 M.西安电子科技大学出版社,陕西,2000.72李朝青单片机原理及接口技术M北京航空航天大学出版社,北京,19993李广第等单片机基础M北京航空航天大学
19、出版社,北京,20014胡汉才.单片机原理及其接口技术 M.清华大学出版,北京,19965李全利,单片机原理及其接口技术,高等教育出版社,北京,2009.122附录一源程序代码ORG 0000H ;起始地址为 0000HLJMP MAINORG 0003H ;设置外部中断 0 子程序的入口地址LJMP INTR0ORG 000BH ;设置定时器 0 子程序的入口地址LJMP TIMER0ORG 001BH ;设置定时器 1 的子程序的入口地址LJMP TIMER1ORG 0060H;1 主程序模块MAIN:MOV IE,#8BH ;开定时器 0、1 和外部中断 0 的允许位MOV IP,#08
20、H ;设置定时器 1 中断优先级MOV TMOD,#11H ;定时器 0、1 都工作在方式 1MOV TH0,#3CHMOV TL0,#0B0H ;赋初值MOV TH1,#3CHMOV TL1,#0B0HMOV P3,#0FFHACALL X0MOV R0,#0MOV R1,#023SETB TR0SETB IT0 ;通过按键控制 P3 口设置外部中断 0 为跳沿触发方式M0:MOV A,30H ;30h 中存储的值为 15CJNE A,#0,M1MOV A,32H ;32h 中存储的值为 6CJNE A,#0,M2MOV A,34H ;34h 中存储的值为 16CJNE A,#0,M3MOV
21、 A,35H ;35h 中存储的值为 6CJNE A,#0,M4 ;35h 中的值为 0 时执行状态一ACALL X0 ;对所用寄存器和存储单元进行赋初值SJMP M0M1:ACALL TOBCD1 ;状态一的十进制转换和显示ACALL DISPLAY1SJMP M0M2:ACALL TOBCD2 ;状态二的十进制转换和显示ACALL DISPLAY2SJMP M0M3:ACALL TOBCD3 ;状态三的十进制转换和显示ACALL DISPLAY3SJMP M0M4:ACALL TOBCD4 ;状态四的十进制转换和显示ACALL DISPLAY424SJMP M0;2 定时器 0 中断模块T
22、IMER0:MOV TH0,#3CHMOV TL0,#0B0HINC R0CJNE R0,#20,RT;状态一MOV A,30HCJNE A,#0,N0SJMP N1N0:MOV A,30HDEC AMOV 30H,AMOV A,31HDEC AMOV 31H,AN1:MOV R0,#0MOV A,30HCJNE A,#0,RT ;30h 中的值为 0 时执行状态二;状态二MOV A,32HCJNE A,#0,N2SJMP N325N2:MOV A,32HDEC AMOV 32H,AN3:MOV A,32HCJNE A,#0,RT ;32h 中的值为 0 时执行状态三;状态三MOV A,34H
23、CJNE A,#0,N4SJMP N5N4:MOV A,33HDEC AMOV 33H,AMOV A,34HDEC AMOV 34H,AN5:MOV A,34HCJNE A,#0,RT; 34h 中的值为 0 时执行状态四;状态四MOV A,35HDEC AMOV 35H,A26RT:RETI;3 外部中断 0 中断模块INTR0:CLR TR0;停止定时器 0 计时SETB TR1;定时器 1 开始计时M5:MOV A,36HCJNE A,#0,M6;36h 中的初值为 10SJMP M7M6:ACALL TOBCD5;状态五的十进制转换和显示ACALL DISPLAY5MOV A,36HC
24、JNE A,#0,M5M7:CLR TR1;停止定时器 1 计时SETB TR0;定时器 0 开始计时MOV P3,#0FFH ;对 P3 赋值,引脚 P3.2 为高电平时清 IE0 为 0,外部中断停止RETI;4 定时器 1 中断模块TIMER1:MOV TH1,#3CHMOV TL1,#0B0HINC R1CJNE R1,#20,RT1MOV A,36HDEC AMOV 36H,A27MOV R1,#0RT1:RETI;5 显示模块;状态一显示程序,入口地址为 40h、 41h、42h、43hDISPLAY1:MOV P1,#78H ;led3 灯此时为南北方向绿灯, led4 此时为东
25、西方向红灯MOV DPTR,#LEDCCMOV P2,#0FEH;南北方向显示高位MOV A,40HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0FDH;南北方向显示低位MOV A,41HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0FBH ;东西方向显示高位MOV A,42HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0F7H;东西方向显示高位MOV A,43H28MOVC A,A+DPTRMOV P0,AACALL DELAYRET;状态二显示程序,入口地址为 44h、 45hDIS
26、PLAY2:MOV P1,#074H ;led2 灯此时为南北方向黄灯, led4 此时为东西方向红灯MOV DPTR,#LEDCCMOV P2,#0FEH;南北方向显示高位MOV A,44HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0FDH;南北方向显示低位MOV A,45HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0FBH;东西方向显示高位MOV A,44HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0F7H;东西方向显示低位29MOV A,45HMOVC A,A+DPTRMOV
27、 P0,AACALL DELAYRET;状态三显示程序,入口地址为 46h、 47h、48h、49hDISPLAY3:MOV P1,#0CCH ;led1 灯此时为南北方向红灯, led6 此时为东西方向绿灯MOV DPTR,#LEDCCMOV P2,#0FEH;南北方向显示高位MOV A,46HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0FDH;南北方向显示低位MOV A,47HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0FBH;东西方向显示高位MOV A,48HMOVC A,A+DPTRMOV P0,AACALL
28、DELAY30MOV P2,#0F7H;东西方向显示低位MOV A,49HMOVC A,A+DPTRMOV P0,AACALL DELAYRET;状态四显示程序,入口地址为 52h、 53hDISPLAY4:MOV P1,#0ACH ;led1 灯此时为南北方向红灯,led5 此时为东西方向黄灯MOV DPTR,#LEDCCMOV P2,#0FEH;南北方向显示高位MOV A,52HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0FDH;南北方向显示低位MOV A,53HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0FBH;
29、东西方向显示高位MOV A,52HMOVC A,A+DPTRMOV P0,A31ACALL DELAYMOV P2,#0F7H;东西方向显示低位MOV A,53HMOVC A,A+DPTRMOV P0,AACALL DELAYRET;状态五显示程序,入口地址为 50h、 51hDISPLAY5:MOV P1,#6CH ;led1 灯此时为南北方向红灯,led4 此时为东西方向红灯MOV DPTR,#LEDCCMOV P2,#0FEH;南北方向显示高位MOV A,50HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0FDH;南北方向显示低位MOV A,51HMOVC A,A+DPTRMOV P0,AACALL DELAYMOV P2,#0FBH;东西方向显示高位MOV A,50HMOVC A,A+DPTR