
1、任务要求 1 项目名称 2 功能描述(如果有,需要注明技术指标) 3 交通灯硬件实现方案(一般为框图+原理图,本项目简单,直接给原理图) 4 软件流程图(可做分级流程图) 5 代码清单(有必要的注释) 6 本项目相关技术还可以应用在什么系统中(如洗衣机清洗过程的控制) 7 遇到的主要问题及解决方法(包括解决方案 和 获得方案的方法、过程) 8 本次工程的主要收获(技术上的、个人能力、调试手段、资料查寻及阅读、小组合作等等均可) 9 小组成员的分工 10 对综合训练的评价和建议 11 对课程的评价和建议 2、任务分析与设计思路 2.1 设计思路 本次设计的题目是“红绿灯设计”。目前我们接触到的交通灯都位于十字路口,而且一般简单的交通灯为东西方向各三盏灯,南北各三盏灯,一共十二盏灯。东西方向的灯一致,南北方向的灯一致,故只需要按东西为一组,南北为一组,两组交错亮灭来设计控制系统即可达到交通灯系统的控制目的。 2.2方案的设计 我们根据一般普通交通灯的变化规律,要求:东西红灯亮,南北绿灯亮,通行25秒,然后南北绿灯闪烁5秒后南北黄灯闪烁5秒;南北红灯亮,东西绿灯亮,通行25秒,然后东西绿灯闪烁后东西黄灯闪烁,然后再回到东西红灯进入循环。 3、总设计 3.1功能求说明 我们用I/O接线口的P1.0到P1.7来控制交通灯以及一个复位装置。P1.3接一个应急按钮,按下第一次放开,南北方向绿灯一直亮,东西方向红灯一直亮,按下放开第二次,南北绿灯闪3秒黄灯亮2秒后变红灯,东西方向变为绿灯,之后沿着之前的设置一直循环。 具体情况如下: P1.0 东西红灯
P1.1 东西绿灯
P1.2 东西黄灯
P1.3 应急控制
P1.4
P1.5 南北红灯
P1.6 南北绿灯
P1.7 南北黄灯
3.2硬件方案设计
3.3软件方案设计
1.本次单片机交通灯课程设计的程序流程图如下:
2单片机交通灯电路图
3.2单片机交通灯代码清单:
org 0000h ljmp main org 000bh ljmp inti0 org 0030h main:mov tmod,#01h mov ie,#82h mov th0,#4ch mov tl0,#00h mov sp,#60h mov 31h,#30 ;东西绿灯初值30秒 mov 32h,#30 ;南北红灯初值30秒 clr 4fh ;清标志位 clr p1.1 ;开东西绿灯 clr p1.5 ;开南北红灯 setb tr0 ;启动T0 loop:lcall key ;调用应急按键判断 ljmp loop inti0:push psw clr ea mov th0,#4ch mov tl0,#00h inc 35h mov a,35h cjne a,#20,out ;判1秒是否到时 mov 35h,#00 jb 4fh,yi ;判别标志位 dec 31h ;东西时间每秒减1 dec 32h ;南北时间每秒减1 mov a,31h cjne a,#05,out ;判是否到25秒 setb p1.1 ;东西绿灯闪灭3秒 lcall del500ms clr p1.1 lcall del500ms setb p1.1 lcall del500ms clr p1.1 lcall del500ms setb p1.1 lcall del500ms clr p1.1 lcall del500ms setb p1.1 ;灭东西绿灯 sjmp er out:setb ea pop psw reti er:clr p1.2 ;东西黄灯亮2秒 mov 33h,#4 ;延时2秒 loop1:lcall del500ms djnz 33h,loop1 setb p1.2 ;2秒后灭东西黄灯 clr p2.1 mov 31h,#20 ;东西时间赋20秒初值 mov 32h,#20 ;南北时间赋20秒初值 setb 4fh setb p1.5 ;关南北红灯 clr p1.0 ;点亮东西红灯 clr p1.6 ;点亮南北绿灯 sjmp out yi:dec 31h ;东西时间每秒减1 dec 32h ;南北时间每秒减1 mov a,31h cjne a,#5,out ;判是否到15秒 setb p2.7 ; setb p1.6 ;南北绿灯闪灭3秒 lcall del500ms clr p1.6 lcall del500ms setb p1.6 lcall del500ms clr p1.6 lcall del500ms setb p1.6 lcall del500ms clr p1.6 lcall del500ms setb p1.6 ;关南北绿灯 clr p1.7 ;南北黄灯亮2秒 mov 34h,#4 ;延时2秒 loop2:lcall del500ms djnz 34h,loop2 setb p1.7 ;2秒后灭南北黄灯 clr p2.7 ; mov 31h,#30 ;东西时间重赋30秒初值 mov 32h,#30 ;南北时间重赋30秒初值 clr p1.1 ;点亮东西绿灯 clr p1.5 ;点亮南北红灯 setb p1.0 ;关东西红灯 clr 4fh ljmp out table:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;0-9数字 del1ms:mov r7,#10 ;1ms延时子程序 d1:mov r6,#50 djnz r6,$ djnz r7,d1 ret del500ms:mov r5,#5 ;500ms延时子程序 del3:mov r4,#200 del4:mov r3,#250 djnz r3,$ djnz r4,del4 djnz r5,del3 ret key:jb p1.3,keyout jnb p1.3,$ clr ea inc 36h mov a,36h cjne a,#2,key4 mov 36h,#00 setb p1.6 ;东西绿灯闪灭3秒 lcall del500ms clr p1.6 lcall del500ms setb p1.6 lcall del500ms clr p1.6 lcall del500ms setb p1.6 lcall del500ms clr p1.6 lcall del500ms setb p1.6 ;灭东西绿灯 clr p1.7 ;东西黄灯亮2秒 mov 33h,#4 ;延时2秒 loop3:lcall del500ms djnz 33h,loop3 setb p1.7 ;2秒后灭东西黄灯 setb p1.0 ;关东西红灯 setb p1.6 ;关南北绿灯 clr p1.1 ;开西绿灯 clr p1.5 ;开南北红灯 setb ea sjmp keyout key4:clr p1.6 ;开南北绿灯 clr p1.0 ;开东西红灯 setb p1.1 setb p1.2 setb p1.3 setb p1.4 setb p1.5 setb p1.7 keyout:ret end
4、课题相关问题 1.本次单片机课程设计的项目相关技术
①电饭煲的煮饭过程的控制
②电冰箱冷藏与冷冻的调节过程
③空调的自动调温过程
④门口的自动控制车辆通行的栏杆
⑤时钟的自动报时系统
2.遇到的主要问题及解决方法
①刚开始什么都不懂,程序怎么设计,代码怎么写,一片 空白无从下手。后来通过网上查阅知识,模仿别人设计的工程琢磨学习,找到门路。
②电脑软件的使用不熟悉,以及keil3无法将asm文件生成hex文件,以及后来在 proteus软件中找不到所需的元件。后来我们通过下载keil4解决了生不成hex文件的问题,通过百度找到一个“常用工具检索表”,通过检索表在proteus中找到相应的元件。
③代码看不懂不会写,不断的百度搜索了解汇编语言怎么写 怎么用。
3.本次工程的主要收获
在这次工程的设计中,首先基本学会了keil和proteus的使用,明白其各自的功能和作用,然后了解汇编语言,掌握了一些简单的汇编语言。
小组成员的分工
:负责查找资料,代码.
:负责画图和查找工具。
:负责说明文档的编写。
注:其余我们共同商量处理
对综合训练的评价和建议
这样的综合训练更加有效率比起单单的考试,这样我们所学的东西才能够真正的使用在实际生活中,而不是停留在试卷上,我们也不会成为那种高才低能的学生。
6.对课程的评价和建议
教学速度快容量多,一节学了很多东西,有点儿吸收不过来,关键是课时短,希望学校能把这门课程的学时延伸些,这样学的东西更加坚实,将来在生活中工作中更能得心应手。
|