交通灯汇编语言课程设计.doc_第1页
交通灯汇编语言课程设计.doc_第2页
交通灯汇编语言课程设计.doc_第3页
交通灯汇编语言课程设计.doc_第4页
交通灯汇编语言课程设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计 题 目 名 称 交通灯系统设计 课 程 名 称 单片机 学 院 信息学院 专 业 电子信息科学与技术 班 级 姓 名 学 号 指 导 教 师 2012年12月 一、设计内容及要求假设一个十字路口为东西南北走向。开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20秒),东西路口的绿灯,闪烁若干次后(3秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20秒),南北路口的绿灯闪烁若干次后(3秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。扩展部分:用LED数码管显示时间、紧急情况下全部红灯时间暂停、行人闯红灯报警、车流量计数设计要求有具体的硬件电路和软件实现,方案切实可行,使用简单方便。二、设计原始资料单片机实验十八-交通灯控制实验;为我们开始完成相应的单片机设计提供了思路。利用系统提供的双色LED显示电路。单片机实验九-串行静态数码显示实验使用四只74LS164组成四位静态数码管显示电路,在数码管上滚动显示“0”到“F”十六进制字符。三、设计完成后提交的文件和图表1计算说明书部分说明具体实现过程,方案等,相关计算等2图纸部分:相关电路原理图、软件流程图、系统框图和源程序等五、主要参考资料 李念强 王玉泰 张鲁 张羽.单片机原理及应用机械工业出版社 童诗白 华成英 .模拟电子技术基础(第四版).高等教育出版社 目录一、设计任务与要求.11、设计任务与要求的分析1二、软件设计21、显示原理22、计数器初值计算23、每秒钟的设定24、控制系统、时间显示模块3三、硬件电路设计51、74LS164的应用52、LED显示器件工作原理 5四、安装与调试5五、结论与心得7六、参考文献7附录:1、源程序2、系统原理图摘 要本系统由单片机系统、键盘、LED 显示、数码管显示、交通灯演示系统组成。系统除基本交通灯功能外,还具有倒计时、时间设置、信号灯闪烁、信号灯颜色分时亮、分时段调整信号灯的点亮时间、紧急情况、车流量等功能。同时给出了软硬件设计方法,设计过程包括硬件电路设计和程序设计两大步骤, 关键词:AT80C51单片机、交通灯控制系统、定时循环、数码管显示、延时。一、设计任务与要求假设一个十字路口为东西南北走向。开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20秒),东西路口的绿灯,闪烁若干次后(3秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20秒),南北路口的绿灯闪烁若干次后(3秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。扩展部分:用LED数码管显示时间、紧急情况下全部红灯时间暂停、行人闯红灯报警、车流量计数。1、设计任务与要求的分析对于具体过程的分析:东西南北红灯(2S)东西绿南北红(20S)东西绿灯闪烁(3S)东西黄灯亮(1S)南北绿灯亮(20S)南北绿灯闪烁(3S)南北黄灯亮(2S).上述思路可分为两个循环:一个是在南北绿灯亮之前,南北红灯一直亮着(25S)随后是南北灯亮的过程中东西红灯一直亮着(25S)。分别用数码管定时20S,25S记录红灯和绿灯持续时间。25秒后南北方向的持续情况与东西对调这样就完成了一次整体循环。二、软件设计1、显示原理交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,延时一段时间后,东西路口的绿灯,闪烁若干次后(3秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2秒),东西路口的红灯亮,南北路口的绿灯亮,延时一段时间后,南北路口的绿灯闪烁若干次后(3秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。静态数码管显示电路由四只74LS164、四只共阴极LED数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。四只74LS164首尾相连,每只74LS164的并行输出作为LED数码管的段码。双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,共用负极,当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。2、计数器初值计算该实验采用定时/计数器T0定时,循环一秒的子程序。首先采用定时50ms,然后再计数20次的方法实现。(1)T0工作在定时方式1时,控制字TMOD配置:M1M0=01,GATE=0,C/T=0,可取方式控制字01H.(2)计算计数初值X:晶振为12MHz,所以机器周期1us。计算后将3CH送入TH0中,0E1H送入TL0中。2、计数器初值计算该实验采用定时/计数器T0定时,循环一秒的子程序。首先采用定时50ms,然后再计数20次的方法实现。(1)T0工作在定时方式1时,控制字TMOD配置:M1M0=01,GATE=0,C/T=0,可取方式控制字01H.(2)计算计数初值X:晶振为12MHz,所以机器周期1us。计算后将3CH送入TH0中,0E1H送入TL0中。3、控制系统、时间显示模块源程序如下: DISPLAY: ;数码显示MOV A, SECOND1;东西秒寄存器MOV B, #10;拆成两个10进制数DIV ABMOV DBUF+1,AMOV A,BMOV DBUF, AMOV A, SECOND2MOV B, #10 ;16进制数拆成两个10进制DIV ABMOV DBUF+3, AMOV A,BMOV DBUF+2, AMOV R0,#DBUFMOV R7,#4DP10:MOV DPTR,#LEDMAPMOV A,R0MOVC A,A+DPTRMOV R1,AINC R1DJNZ R7,DP10MOV R0,#TEMPMOV R1,#4DP12:MOV R7,#8MOV A,R0DP13:RLC AMOV DIN,CCLR CLKSETB CLKDJNZ R7,DP13INC R0DJNZ R1,DP12RETLEDMAP: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,BDB 58H,5EH,7BH,71H,0,40H ;C,D,E,F, , -三 硬件电路设计1、74LS164的应用对于74IS164,我们用来联系单片机与数码管,将单片机的P1.6与P1.7口输出信号显示在数码管中。2、LED数码管显示器件工作原理即为我们选择的led工作原理图。P10同时接G1、G3;P11同时接R1、R3;P12同时接G2、G4;P13同时接R2、R4;P16、P17分别接静态数码显示的DIN、CLK。四安装与调试1)系统各跳线器处在初始设状态。P2.1同时接G1、G3;P11同时接R1、R3;P12同时接G2、G4;P13同时接R2、R4;P16、P17分别接静态数码显示的DIN、CLK。2)启动PC机,打开Keil uVision4软件,加载程序,编译,下载,运行。3)开启protues观察十字路口交通灯效果 可见开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20秒),东西路口的绿灯,闪烁若干次后(3秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20秒),南北路口的绿灯闪烁若干次后(3秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2秒),再切换到东西路口的绿灯亮,南北路口的红灯亮(4)车流量计数(用开关代替红外设备进行模拟)(5)闯红灯报警系统(用开关代替红外设备进行模拟)五、结论与心得通过这次课程设计,加深了对很多知识的理解,自己做一个东西的时候,才会知道理论与实际的差别。这过对交通灯的设计,也学到了很多原来不熟悉或没有掌握好的知识,像查询及其数码管的应用。对于肯本上的指令理解的更深入了,原来没有记住的指令,通过这次设计,都能熟悉的运用。 通过这次设计,自己更学到了一些书本之外的知识。六、参考文献李念强 王玉泰 张鲁 张羽.单片机原理及应用机械工业出版社 童诗白 华成英 .模拟电子技术基础(第四版).高等教育出版社附录源程序 SECOND1 EQU 30H ;南北秒寄存器 SECOND2 EQU 31H ;东西秒寄存器 DBUF EQU 40H ;显示缓冲1 TEMP EQU 44H ;显示缓冲2 SAVE EQU 45H LED_G1 BIT P2.1 ;东西绿灯 LED_R1 BIT P2.3 ;东西红 LED_G2 BIT P2.4 ;南北绿灯 LED_R2 BIT P2.6 ;南北红灯 LED_Y1 BIT P2.2 ;东西黄 LED_Y2 BIT P2.5 ;南北黄 DIN BIT P1.6 ;串行显示数据 CLK BIT P1.7 ;串行显示时钟ORG 0000H LJMP START ORG 0100HORG0003H LJMP DENSTART: LCALL STATE0 ;调用状态0 MOV SECOND1,#00 ;南北秒显示初值25S MOV SECOND2,#00 ;东西秒显示初值20S LCALL DISPLAY LCALL DELAY ;调用延时 MOV TMOD,#01H ;置T0工作方式1 MOV TH0, #3CH ;置T0定时初值50mS MOV TL0, #0B0H SETB EX0 SETB EA SETB TR0 LOOP: MOV R2,#20 ;置1S计数初值 50mS*20=1S MOV R3,#20 ;红灯20S LCALL ADD_DEC MOV SECOND1,#25 ;南北秒显示初值25S MOV SECOND2,#20 ;东西秒显示初值20S LCALL DISPLAY MOV A,R2 /SUBB A,#5 /MOV R3,A /MOV R6,A LCALL STATE1 ;调用状态1WAIT1: JNB TF0,WAIT1 ;查询50mS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值50mS MOV TL0, #0B0H SETB TR0 ;启动T0 DJNZ R2,WAIT1 ;判1S到否?未到继续状态1 MOV R2,#20 ;置50mS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT1 ;状态1维持20SMOV R2,#5 ;置20mS计数初值 5*4=20 MOV R3,#3 ;绿灯闪3S MOV R4,#4 ;闪烁间隔200mS MOV SECOND1,#5 ;东西秒显示初值5S MOV SECOND2,#5 ;南北秒显示初值5S LCALL DISPLAYWAIT2: LCALL STATE2 ;调用状态2 JNB TF0,WAIT2 ;查询50mS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值50mS MOV TL0, #0B0H DJNZ R4,WAIT2 ;判200mS到否?未到继续状态2 CPL LED_G1 ;东西绿灯闪 MOV R4,#4 ;闪烁间隔200msDJNZ R2,WAIT2 ;判1S到否?未到继续状态2 MOV R2,#5 ;置50mS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT2 ;状态2维持3SMOV R2,#20 ;置1S计数初值 MOV R3,#2 ;黄灯2S MOV SECOND1,#2 ;东西秒显示初值2S MOV SECOND2,#2 ;南北秒显示初值2S LCALL DISPLAYWAIT3: LCALL STATE3 ;调用状态3 JNB TF0,WAIT3 ;查询30mS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值50mS MOV TL0, #0B0H DJNZ R2,WAIT3 ;判1S到否?未到继续状态3 MOV R2,#20 ;置1S计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT3 ;状态3维持2SMOV R2,#20 ;置50mS计数初值 MOV R3,#20 ;红灯20S MOV SECOND1,#20 ;东西秒显示初值25S MOV SECOND2,#25 ;南北秒显示初值25S LCALL DISPLAY LCALL STATE4 ;调用状态4WAIT4: JNB TF0,WAIT4 ;查询50mS到否 东西红灯SETB P1.3 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值50mS MOV TL0, #0B0H SETB TR0 DJNZ R2,WAIT4 ;判1S到否?未到继续状态4 MOV R2,#20 ;置50mS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT4 ;状态4维持20SCLR P1.3 MOV R2,#5 ;置20mS计数初值 5*4=20 MOV R4,#4 ;闪烁间隔200mS MOV R3,#3 ;绿灯闪3S MOV SECOND1,#5 ;东西秒显示初值5S MOV SECOND2,#5 ;南北秒显示初值5S LCALL DISPLAY WAIT5: LCALL STATE5 ;调用状态5 JNB TF0,WAIT5 ;查询50mS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值100mS MOV TL0, #0B0H DJNZ R4,WAIT5 ;判200mS到否?未到继续状态5 CPL LED_G2 ;南北绿灯闪 MOV R4,#4 ;闪烁200mS DJNZ R2,WAIT5 ;判1S到否?未到继续状态5 MOV R2,#5 ;置100mS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT5 ;状态5维持3S MOV R2,#20 ;置50mS计数初值 MOV R3,#2 ;黄灯2S MOV SECOND1,#2 ;东西秒显示初值2S MOV SECOND2,#2 ;南北秒显示初值2S LCALL DISPLAYWAIT6: LCALL STATE6 ;调用状态6 JNB TF0,WAIT6 ;查询100mS到否 CLR TF0 MOV TH0, #3CH ;恢复T0定时初值100mS MOV TL0, #0B0H DJNZ R2,WAIT6 ;判1S到否?未到继续状态6 MOV R2,#20 ;置100mS计数初值 DEC SECOND1 ;东西秒显示减一 DEC SECOND2 ;南北秒显示减一 LCALL DISPLAY DJNZ R3,WAIT6 ;状态6维持2SLJMP LOOP ;大循环 STATE0: ;状态0MOV P1,#0CLR LED_G1CLR LED_Y1SETB LED_R1 ;东西红灯亮CLR LED_G2CLR LED_Y2SETB LED_R2 ;南北红灯亮RETSTATE1: ;状态1SETB LED_G1 ;东西绿灯亮CLR LED_Y1CLR LED_R1CLR LED_Y2CLR LED_G2SETB LED_R2 ;南北红灯亮RETSTATE2: ;状态2CLR LED_R1CLR LED_G2SETB LED_R2 ;南北红灯亮RETSTATE3: ;状态3SETB LED_Y1 ;东西黄灯亮 CLR LED_G1CLR LED_R1CLR LED_G2CLR LED_Y2SETB LED_R2 ;南北红灯亮RETSTATE4: ;状态4CLR LED_Y1CLR LED_G1SETB LED_R1 ;东西红灯亮SETB LED_G2 ;南北绿灯亮CLR LED_Y2CLR LED_R2RETSTATE5: ;状态5CLR LED_G1CLR LED_Y1CLR LED_Y2SETB LED_R1 ;东西红灯亮CLR LED_R2RETSTATE6: ;状态6SETB LED_Y2 ;南北黄灯亮CLR LED_R2CLR LED_G2CLR LED_G1CLR LED_Y1SETB LED_R1 ;东西红灯亮RETDISPLAY: ;数码显示 MOV A, SECOND1 ;东西秒寄存器 MOV B, #10 ;16进制数拆成两个10进制数 DIV AB MOV DBUF+1,A MOV A,B MOV DBUF, AMOV A, SECOND2 ;南北秒寄存器 MOV B, #10 ;16进制数拆成两个10进制数 DIV AB MOV DBUF+3, A MOV A,B MOV DBUF+2, AMOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论