单片机交通灯课程设计报告
目 录
1设计任务---------------------------------------------------------- 1
2 设计方案--------------------------------------------------------- 1
2.1任务分析---------------------------------------------------- 1
2.2方案设计---------------------------------------------------- 1
2.3硬件方案---------------------------------------------------- 1
2.4软件方案---------------------------------------------------- 2
3 系统硬件设计----------------------------------------------------- 3
3.1单片机的最小系统-------------------------------------------- 3
3.2电源电路设计------------------------------------------------ 3
3.3数码管显示电路---------------------------------------------- 3
4 系统软件设计----------------------------------------------------- 4
4.1 主程序设计-------------------------------------------------- 4
4.2系统程序---------------------------------------------------- 4
5 调试及性能分析--------------------------------------------------- 4
5.1软件调试---------------------------------------------------- 4
5.2硬件调试---------------------------------------------------- 4
5.3系统功能调试------------------------------------------------ 5
6 遇到的问题及解决------------------------------------------------- 5
7 心得体会--------------------------------------------------------- 5
附录:------------------------------------------------------------- 6
参 考 文 献--------------------------------------------------- 10
1设计任务
利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。
2 设计方案
2.1任务分析
模拟交通灯控制器就是使用单片机来控制一些LED 和数码管,模拟真实交通灯的功能。红、黄、绿交替点亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等。
2.2方案设计
我们设计的是十字路口的红绿灯,有东西,南北两个走向,前两个灯是东西的红灯和绿灯,后两个是南北的红灯和绿灯,前两个灯不会同时亮,后两个灯不会同时亮,第1个和第3个不会同时亮,暂时没有黄灯的功能。
2.3硬件方案
根据设计的要求可知,系统的硬件原理框图如下图所示
图1 硬件原理框图
单片机可选用STC89C52,它与8051系列单片机全兼容,但其内部带有8KB的FLASH ROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。南北向和东西向各采用2个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。按键可以根据系统的需要进行复位。用三极管驱动数码管显示,三极管控制共阳位选端,控制数码管的显示。
2.4 软件方案
首先南北方向红灯、东西方向绿灯亮,南北方向红灯15秒、东西方向绿灯10秒,相应的数码管显示对应的数字并读秒,同时南北方向红色的二极管和东西方向的绿色二极管接通点亮显示,当东西方向的绿灯时间到,则东西方向的绿灯转为黄灯,同时数码管显示黄灯的时间5秒,东西方向的黄色二极管接通点亮,此时南北方向的红灯不变。南北方向的红灯和东西方向的黄灯时间同时到,此时南北方向的红灯跳转为绿灯,时间同样为10秒,东西方向有黄灯跳转为红灯,时间为15秒。当南北方向的绿灯时间到,南北绿灯跳转为黄灯,东西方向的红灯不变,当南北方向的黄灯和东西方向的红灯时间到,南北方向的黄灯跳转为红灯,东西方向的红灯跳转为绿灯。进入开始的状态,循环执行。
根据设计要求,程序框图如图所示。软件可由汇编语言完成,也可由C语言完成。软件设计可以分为以下几个功能模块:
数码管显示模块
动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。
LED红绿灯显示模块
状态1, 东西绿灯亮,南北红灯亮
状态2, 东西黄灯亮,南北红灯亮
状态3, 东西红灯亮,南北绿灯亮
状态4, 东西红灯亮,南北黄灯亮
结构框图
图2 LED红绿灯显示框图
3 系统硬件设计
3.1单片机的最小系统
STC公司生产的AT89C52单片机它是硬件电路的核心部分,时钟电路晶振使用12MHz,复位电路采取按键复位方式。
3.2电源电路设计
电源用5V直流变压器直接供电,usb接口供电。
3.3数码管显示电路
显示电路采用4个共阳数码管,用74HC244做驱动器,P0口作为数码管的输入,ULN2803作为控制位选端,P2.0,P2.1,P2.2, P2.3分别作为东西,南北四路数码管的位选端。
4 系统软件设计
4.1 主程序设计
系统程序流程图
图3 系统程序流程图
4.2系统程序
根据设计方案,设计满足要求的程序,并将程序烧写进单片机,运行程序,观察现象是否符合要求,若不符合要求继续修改程序。直至能达到要求。程序清单见附录
5 调试及性能分析
5.1软件调试
软件调试主要是利用protus仿真软件完成电路的搭建,运行以发现设计中的错误及时改正。
5.2硬件调试
硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测试结果如下:
(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,对未连接的进行修复。(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊,经测试,各连接不存在问题。(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。
5.3系统功能调试
通过通电调试系统的功能,观察系统是否正常运行,是否达到设计指标,通过修改软件完成系统的系能指标,也可以通过仿真软件进行仿真运行,调试并修改系统,以便达到最佳水准。让系统最大限度的发挥其功效。
6 遇到的问题及解决
在设计过程中,会出现了一些问题,但都是常见的小问题,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。
综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流。
由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不完善效率还不是很高等等,这需要在实践中进一步完善。
7 心得体会
这学期是我们首次接触单片机这门课程,大一的时候学长为我们展示了单片机,告诉我们这是我们以后要学习的很重要的东西,那时候只看到一块板子上可以显示数字,现在我知道了那个叫数码管。单片机刚刚学习的时候我觉得很难,代码都看不懂,更别说编程了,所以这次课设对我们来说很困难,可是随着组员之间的讨论我们解决了一些问题,也更深的了解了单片机的原理,交通灯在所有课设里面不算是难的,可是对我们来说都一样很困难。问题虽然很多但我们还是努力去解决,从计时到LED亮都很难,从书本学习的东西用在实际中才知道有多重要,最后我们只实现了简单的红绿灯而没有黄灯,这是我们的课设需要改进的。在以后的学习中我们应该勤动手,多动脑,遇到问题思考怎么解决,并且要有合作意识,团队的能力总是比一个人要大的,我们会改进作品,更好的使用单片机。
附录:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INTT0
ORG 0013H
LJMP INTT1
ORG 001BH
LJMP TT1
ORG 0100H
TT1: MOV TH1,#0D8H ;定时器1,定时10us
MOV TL1,#0F0H
DJNZ R6,EXIT
MOV R6,#100 ;定时器定时100次
MOV R1,#0FFH
EXIT: RETI
INTT0:MOV P1,#0BEH ;外部中断0,
JB P3.4,$
RETI
INTT1:MOV P1,#0BBH ;外部中断1,
JB P3.4,$
RETI
ORG 1000H
MAIN: MOV R6,#100 ;主程序;
MOV R1,#00H
MOV TMOD,#10H ;初始化
MOV TH1,#0D8H
MOV TL1,#0F0H
MOV IE,#8DH
MOV 20H,#10
MOV 21H,#5
MOV 22H,#10
MOV 23H,#15
MOV 24H,#15
SETB TR1
ST1: MOV P1,#0EBH
CJNE R1,#0FFH,TZ1
MOV R1,#00H
DEC 20H
DEC 23H
TZ1: MOV R2,20H
MOV R3,23H
LCALL DISP
MOV A,20H
CJNE A,#00H,ST1
MOV 20H,#10
ST2: MOV P1,#0EDH
CJNE R1,#0FFH,TZ2
MOV R1,#00H
DEC 21H
DEC 23H
TZ2: MOV R2,21H
MOV R3,23H
LCALL DISP
MOV A,21H
CJNE A,#00H,ST2
MOV 21H,#05
MOV 23H,#15
ST3: MOV P1,#0BEH
CJNE R1,#0FFH,TZ3
MOV R1,#00H
DEC 24H
DEC 22H
TZ3: MOV R2,24H
MOV R3,22H
LCALL DISP
MOV A,22H
CJNE A,#00H,ST3
MOV 22H,#10
ST4: MOV P1,#0DEH
CJNE R1,#0FFH,TZ4
MOV R1,#00H
DEC 24H
DEC 21H
TZ4: MOV R2,24H
MOV R3,21H
LCALL DISP
MOV A,21H
CJNE A,#00H,ST4
MOV 21H,#05
MOV 24H,#15
LJMP ST1
DISP: MOV A,R2
MOV B,#10
DIV AB
MOV 60H,A
MOV 61H,B
MOV A,R3
MOV B,#10
DIV AB
MOV 62H,A
MOV 63H,B
MOV 40H,#04H
MOV R5,#01H
MOV R0,#60H
LLP: MOV A,@R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,R5
MOV P2,A
LCALL DELAY1
MOV P2, #00H;
RL A
MOV R5,A
INC R0
DJNZ 40H,LLP
RET
DELAY1: ;延时子程序
MOV R4,#12
DL2: MOV R7,#12
DJNZ R7,$
DJNZ R4,DL2
RET
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
END
参 考 文 献
[1] 徐维祥.单片微型机原理及应用 大连理工大学出版社,2006.12
[2] 胡汉才.单片机原理与接口技术[M].北京: 清华大学大学出版社,2004.1-505.
[4] 朝青.单片机原理及接口技术(第3版).20##年10月
[5] 张迎新.单片微型计算机原理、应用及接口技术(修订版)北京:国防工业出版社,2004.1.
[6] 房小翠.单片微型计算机与机电接口技术.北京:国防工业出版社,2002.3