资源描述
《急救车优先的交通灯控制系统》课程设计说明书
专业班级:10级自动化(3)班
姓 名:周玉玲 李旭 王志繁 胡浩远
学 号:080310167 080310160
080310133 100210049
指导老师:刘 娟
设计时间:2012年12月21日
物理与电气工程学院
二零一二年十二月二十一日
内容摘要
请设计一个交通灯控制电路,并且编写相应的软件,完成交通灯的管理任务。
1、根据交通灯控制变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过15秒钟转状态2,南北绿灯转亮黄灯闪烁,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过15秒钟转状态4,东西绿灯转亮黄灯闪烁,延时几秒,南北仍然红灯。最后循环至状态1。
2、以按键为中断申请,表示有急救车通过,所有的交通信号灯全红10秒钟。
交通灯控制系统,可由多种电路来构成,采用单片机控制,可提高电路的可靠性与稳定性,硬件电路比较简单,主要用软件来控制,控制方式灵活多样,能满足不同情况的控制,可利用中断等方式通过程序来方便的实现调时。
关键字:课程设计 单片机 急救车 流程图 状态 代码
目录
一、课程设计意义和要求...........................................3
1、课程设计意义.............................................3
2、课程设计要求.............................................3
二、理论设计....................................................4
1、总体设计.................................................4
2、软件设计.................................................4
2.1、电路原理逻辑图......................................7
2.2、程序流程图...........................................8
三、 硬件设计描述................................................9
1、系统方框图...............................................9
2、电路原理图...............................................10
3、单片机简介...............................................11
4、单片机的学习.............................................12
5、单片机的应用领域.........................................13
四、调试与仿真..................................................15
五、心得体会....................................................18
六、参考文献....................................................20
附录
源程序代码.....................................................21
急救车优先的交通灯控制系统设计
一、课程设计意义和要求:
1、课程设计意义
大学本科学生动手能力的培养和提高是大学本科教育的一个重要内容,《单片机原理及应用》是一门应用性较强的课程。如何让学生在学好基础知识的同时,迅速掌握应用技术,实验与课程设计环节起着非常重要的作用。本课程设计的意义,是让学生通过课程设计,首先建立起单片机应用系统的概念,根据实际的系统设计要求,掌握初步的单片机系统设计方法,从硬件系统和软件系统设计两个方面得到实际的提高,为今后的毕业设计打下良好的基础。
2、课程设计要求:
设计制作一个模拟的十字路口交通灯控制系统要求:
1.正常情况下东西与南北两个方向轮流点亮红、绿灯信号,每次持续时间15S,中间有5S的黄灯过度。
2.东西与南北两个方向各设一个紧急切换按钮。某个方向按下时,该方向紧急切换为绿灯,以便于特种车辆通过。
3.扩展实验箱上的74LS273做为输出口,控制六个发光二极管亮灭,模拟交通灯管理。
4.当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。本题目以单脉冲为中断申请,表示有急救车通过。
二、理论设计
1、总体设计
实际生活中的十字路口交通灯模拟
图一 十字路口交通灯模拟图
表一 交通灯南北和东西方向LED灯点亮的时间:
南北向
绿灯亮15秒
黄灯亮5秒
红灯亮15秒
红灯亮10秒
东西向
红灯亮20秒
绿灯亮10秒
黄灯亮5秒
红灯亮10秒
2、软件设计
LED4—LED9分别作为南北和东西方向的红黄绿灯;
数码管0,1作为南北方向的时间显示,数码管6,7作为东西方向的时间显示;
定时器T0:用于无急救车通过交通灯时的定时时间;
定时器T1:用于有急救车通过交通灯时的计时时间;
外部中断0:用于有急救车通过交通灯时去执行状态五的过程;
寄存器R0与定时器T0定时1秒;
寄存器R1与定时器T1定时1秒;
存储单元30H和31H存储状态一的时间;
存储单元32H存储状态二的时间;
存储单元33H和34H存储状态三的时间;
存储单元35H存储状态四的时间;
存储单元36H存储状态五的时间;
其中R0=0,R1=0,(30H)=15,(31H)=18,(32H)=5,(33H)=15,(34H)=10,(35H)=5,(36H)=10
30H—36H分别是TOBCD1—TOBCD5的入口地址,40H—53H既是TOBCD1—TOBCD5的出口地址,也是 DISPLAY1—DISPLAY5的入口地址。
表2 进制转换的入口地址和出口地址
状态
十进制转换
入口地址
出口地址
1
TOBCD1
30H
40H 41H
31H
42H 43H
2
TOBCD2
32H
44H 45H
3
TOBCD3
33H
46H 47H
34H
48H 49H
4
TOBCD4
35H
52H 53H
5
TOBCD5
36H
50H 51H
表3 状态一到状态五的显示对应的参数和地址:
状态
显示
显示
方向
LED灯色
LED灯(亮)
开始时间(秒)
状态一
DISPLAY1
40H、41H
南北
绿
LED6
15
42H、43H
东西
红
LED9
20
状态二
DISPLAY2
44H、45H
南北
黄
LED4
5
东西
红
LED9
5
状态三
DISPLAY3
46H、47H
南北
红
LED8
15
48H、49H
东西
绿
LED7
10
状态四
DISPLAY4
52H、53H
南北
红
LED8
5
东西
黄
LED5
5
状态五
DISPLAY5
50H、51H
南北东西
红
LED8、LED9
10
电路原理逻辑图
图2 电路原理逻辑图
程序流程图
开始
初始化时钟程序
南北绿,东西红
东西剩5s
南北黄,东西红
南北红,东西绿
南北剩5s
剩0s?
剩0s
南北红,东西黄
N
N
N
N
图3 主程序流程图
开始
外部中断初始化
延时5秒
东南西北红灯亮
5秒倒计时显示
保存灯亮状态及延时
图4 中断程序流程图
三、 硬件设计描述
1、系统方框图
电 源
信号灯
AT80C51
震荡部分
复位电路
图5 系统方框图
2、电路原理图
晶振电路:
图6 晶振电路图
复位电路;
图7 复位电路图
LED灯:
图8 LED灯接线图
3、单片机简介
它内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机,排烟罩VCD等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性! 由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言(近几年,C语言也开始广泛被应用),它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。 目前最常用的单片机为MCS-51,是由美国INTEL公司(生产CPU的英特尔)生产的,89C51是这几年在我国非常流行的单片机,它是由美国ATMEL 公司开发生产的,其内核兼容MCS-51单片机。
4、 单片机的学习
一、 单片机与嵌入式系统概述:包括嵌入式系统概念、单片机的特点、应用领域和发展趋势、市场主流单片机性能比较与选型、常用51核单片机介绍、业内通用嵌入式系统开发方法和流程、开发板及相关开发工具的介绍和使用等;
二、 单片机最小系统介绍、51单片机基本资源如并口、中断、时钟与复位、串口等的熟练使用等;
三、单片机基本资源扩展设计:包括存储器扩展设计、可编程和不可编程I/O接口扩展设计、I2C总线的模拟设计等;
四、输入输出设备的设计:包括独立式按键和矩阵键盘的各种输入方法、数码管及液晶显示器的接口设计、蜂鸣器的设计;
五、输入通道和输出通道的设计:包括一定模拟和数字信号量的输入、频率量的输入方法、A/D转换原理与器件选型及其与单片机的接口设计、数字与模拟量的输出方法、功率驱动相关知识、D/A转换原理与器件选型及其与单片机的接口设计等;
六、单片机软硬件设计和调试经验:各种软件开发和设计技巧、调试经验等;
七、开发环境和开发工具介绍:Keil uVision2集成开发环境的使用与调试等;
5、单片机的应用领域
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
1. 在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。
2、在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3、 在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
4、 在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
5、 单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
五、 调试与仿真
1、状态一
图9 1s到15s状态图
2、状态二 图10 15s到18s状态图
3、状态三 图11 20s到30秒状态图
4、状态四 图12 黄灯闪烁图
图13 黄灯闪烁图
状态五 图15 中断状态图
六、心得体会
通过此次单片机的课程设计使我们对单片机有了更进一步的了解,比如在编程序时知道了设置中断的优先级,对外部中断的低电平和边沿触更加的熟悉,对中断的入口地址也熟悉了不少,同时在使用循环方面得到了提高,对单片机的硬件方面也有了一些了解,如晶振电路、复位电路、共阴数码管、共阳led灯等等;另外在仿真方面也熟悉了不少,以前都没仿真过,虽然这次的设计不一定是最好的,但我们会继续努力学习的。另外,很希望多做一些有关单片机的课程设计,从设计中增加自己的知识和能力。
通过这次的实训,对单片机的I/O口的使用的条件有更深的理解,对单片机的各个管脚功能的理解也加深了,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。这两周的实习真的有点郁闷,程序里面的好多内容不懂,自我感觉是单片机我们所学的内容还不足以编出这两个程序,但是只好硬着头皮去看去理解。但在学习过程中也充满了乐趣,当看懂了程序的一些语句,画出了要求的设计图,那我喜悦那种成就感油然而生。
这次实习让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。
单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。
参考文献
图书
[1]周荷琴 吴秀清. 微机原理与接口技术[M].中国科学技术出版社,2004.5
[2]余锡存 曹国华.单片机原理及接口技术[M].西安电子科技大学出版社,陕西,2000.7
[3]雷丽文 等.微机原理与接口技术[M].电子工业出版社,北京,1997
[4]李朝青.单片机原理及接口技术[M].北京航空航天大学出版社,北京,1999
[5]李广第等.单片机基础[M].北京航空航天大学出版社,北京,2001
[6]胡汉才.单片机原理及其接口技术 [M].清华大学出版,北京,1996
[7]李全利,单片机原理及其接口技术,高等教育出版社,北京,2009.1
附录一
源程序代码
ORG 0000H ;起始地址为0000H
LJMP MAIN
ORG 0003H ;设置外部中断0子程序的入口地址
LJMP INTR0
ORG 000BH ;设置定时器0子程序的入口地址
LJMP TIMER0
ORG 001BH ;设置定时器1的子程序的入口地址
LJMP TIMER1
ORG 0060H
1主程序模块
MAIN:MOV IE,#8BH ;开定时器0、1和外部中断0的允许位
MOV IP,#08H ;设置定时器1中断优先级
MOV TMOD,#11H;定时器0、1都工作在方式1
MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000)MOD 256
MOV TH1,#(65536-50000)/256
MOV TL1,#(65536-50000)MOD 256
MOV P3,#0FFH
ACALL X0
MOV R0,#0
MOV R1,#0
SETB TR0
CLR IT0 ;通过按键控制P3口设置外部中断0为电平触发方式
M0:MOV A,30H ;30h中存储的值为15
CJNE A,#0,M1
MOV A,32H ;32h中存储的值为5
CJNE A,#0,M2
MOV A,34H ;34h中存储的值为10
CJNE A,#0,M3
MOV A,35H ;35h中存储的值为5
CJNE A,#0,M4 ;35h中的值为0时执行状态一
ACALL X0 ;对所用寄存器和存储单元进行赋初值
SJMP M0
M1:ACALL TOBCD1 ;状态一的十进制转换和显示
ACALL DISPLAY1
SJMP M0
M2:ACALL TOBCD2 ;状态二的十进制转换和显示
ACALL DISPLAY2
SJMP M0
M3:ACALL TOBCD3 ;状态三的十进制转换和显示
ACALL DISPLAY3
SJMP M0
M4:ACALL TOBCD4 ;状态四的十进制转换和显示
ACALL DISPLAY4
SJMP M0
2定时器0中断模块
TIMER0:MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000)MOD 256
INC R0
CJNE R0,#20,RT
状态一
MOV A,30H
CJNE A,#0,N0
SJMP N1
N0:MOV A,30H
DEC A
MOV 30H,A
MOV A,31H
DEC A
MOV 31H,A
N1:MOV R0,#0
MOV A,30H
CJNE A,#0,RT ;30h中的值为0时执行状态二
状态二
MOV A,32H
CJNE A,#0,N2
SJMP N3
N2:MOV A,32H
DEC A
MOV 32H,A
N3:
MOV A,32H
CJNE A,#0,RT ;32h中的值为0时执行状态三
状态三
MOV A,34H
CJNE A,#0,N4
SJMP N5
N4:MOV A,33H
DEC A
MOV 33H,A
MOV A,34H
DEC A
MOV 34H,A
N5:
MOV A,34H
CJNE A,#0,RT; 34h中的值为0时执行状态四
状态四
MOV A,35H
DEC A
MOV 35H,A
RT:RETI
3外部中断0中断模块
INTR0:CLR TR0;停止定时器0计时
SETB TR1;定时器1开始计时
M5:MOV A,36H
CJNE A,#0,M6;36h中的初值为10
SJMP M7
M6:ACALL TOBCD5;状态五的十进制转换和显示
ACALL DISPLAY5
MOV A,36H
CJNE A,#0,M5
M7:CLR TR1;停止定时器1计时
SETB TR0;定时器0开始计时
MOV P3,#0FFH ;对P3赋值,引脚P3.2为高电平时清IE0为0,外部中断停止
RETI
4定时器1中断模块
TIMER1:MOV TH1,#(65536-50000)/256
MOV TL1,#(65536-50000)MOD 256
INC R1
CJNE R1,#20,RT1
MOV A,36H
DEC A
MOV 36H,A
MOV R1,#0
RT1:RETI
5显示模块
状态一显示程序,入口地址为40h、41h、42h、43h
DISPLAY1:MOV P1,#6FH ;led6灯此时为南北方向绿灯,led9此时为东西方向红灯
MOV DPTR,#LEDCC
MOV P2,#0;南北方向显示高位
MOV A,40H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#1;南北方向显示低位
MOV A,41H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#6 ;东西方向显示高位
MOV A,42H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#7;东西方向显示高位
MOV A,43H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
RET
状态二显示程序,入口地址为44h、45h
DISPLAY2:MOV P1,#7BH ;led4灯此时为南北方向黄灯,led9此时为东西方向红灯
MOV DPTR,#LEDCC
MOV P2,#0;南北方向显示高位
MOV A,44H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#1;南北方向显示低位
MOV A,45H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#6;东西方向显示高位
MOV A,44H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#7;东西方向显示低位
MOV A,45H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
RET
状态三显示程序,入口地址为46h、47h、48h、49h
DISPLAY3:MOV P1,#9FH ;led8灯此时为南北方向红灯,led7此时为东西方向绿灯
MOV DPTR,#LEDCC
MOV P2,#0;南北方向显示高位
MOV A,46H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#1;南北方向显示低位
MOV A,47H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#6;东西方向显示高位
MOV A,48H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#7;东西方向显示低位
MOV A,49H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
RET
状态四显示程序,入口地址为52h、53h
DISPLAY4:MOV P1,#0B7H
MOV DPTR,#LEDCC
MOV P2,#0;南北方向显示高位
MOV A,52H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#1;南北方向显示低位
MOV A,53H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#6;东西方向显示高位
MOV A,52H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#7;东西方向显示低位
MOV A,53H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
RET
状态五显示程序,入口地址为50h、51h
DISPLAY5:MOV P1,#3FH
MOV DPTR,#LEDCC
MOV P2,#0;南北方向显示高位
MOV A,50H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#1;南北方向显示低位
MOV A,51H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#6;东西方向显示高位
MOV A,50H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P2,#7;东西方向显示低位
MOV A,51H
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
RET
6、十进制转换模块
状态一转换程序,入口地址30h、31h,出口地址40h、41h、42h、43h
TOBCD1: MOV A,30H
MOV B,#10
DIV AB
MOV 41H,B
MOV 40H,A
MOV A,31H
MOV B,#10
DIV AB
MOV 43H,B
MOV 42H,A
RET
状态二转换程序,入口地址32h,出口地址44h、45h
TOBCD2: MOV A,32H
MOV B,#10
DIV AB
MOV 45H,B
MOV 44H,A
RET
状态三转换程序,入口地址33h、34h,出口地址46h、47h、48h、49h
TOBCD3: MOV A,33H
MOV B,#10
DIV AB
MOV 47H,B
MOV 46H,A
MOV A,34H
MOV B,#10
DIV AB
MOV 49H,B
MOV 48H,A
RET
状态四转换程序,入口地址35h,出口地址52h、53h
TOBCD4: MOV A,35H
MOV B,#10
DIV AB
MOV 53H,B
MOV 52H,A
RET
状态五转换程序,入口地址36h,出口地址50h、51h
TOBCD5: MOV A,36H
MOV B,#10
DIV AB
MOV 51H,B
MOV 50H,A
RET
7、存储器赋值模块
X0:MOV 30H,#15
MOV 31H,#20
MOV 32H,#5
MOV 33H,#15
MOV 34H,#10
MOV 35H,#5
MOV 36H,#10
8延时程序模块
DELAY:MOV R7,#250
DJNZ R7,$
RET
LEDCC: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
RET
END
展开阅读全文