课程设计(论文)-基于单片机的交通灯控制的设计--软件程序设计.doc_第1页
课程设计(论文)-基于单片机的交通灯控制的设计--软件程序设计.doc_第2页
课程设计(论文)-基于单片机的交通灯控制的设计--软件程序设计.doc_第3页
课程设计(论文)-基于单片机的交通灯控制的设计--软件程序设计.doc_第4页
课程设计(论文)-基于单片机的交通灯控制的设计--软件程序设计.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

沈阳理工大学课程设计 课 程 设 计 任 务 书分院信息科学与工程学院专业自动化学生姓名学号设计题目基于单片机的交通灯控制的设计 -软件程序设计课程内容及要求:内容:1. 软件程序的设计2. 利用wave设计程序3. 编程、测试4. 运行,测试要求:1.控制led灯,完成交通灯的管理任务;2.按照分析、设计、调试和测试的软、硬件开发过程完成这个控制任务。进度及安排:1 查资料 (2天)2 软件程序设计(2天)3 编程与测试(2天)、4 利用wave设计程序并运行测试(2天)5 写报告(2天)指导教师(签字): 年 月 日分院院长(签字): 年 月 日 摘要当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。因此,一个好的交通灯控制系统,将给道路拥挤、违章控制等方面给予技术革新。随着大规模集成电路及计算机技术的迅速发展,以及人工智能在控制技术方面的广泛运用,智能设备有了很大的发展,是现代科技发展的主流方向。本文介绍了一个智能交通灯系统的设计。该智能交通灯控制系统可以实现的功能有:对某市区的四个主要交通路口进行监控;各路口有固定的工作周期,并且在道路拥挤时中控中心能改变其周期;该设计介绍了以80c51单片机为路口控制核心,以磁感应传感器采集违章信号,中控室以微机为控制器对路口进行监视违章处理等操作,图象传输采用电信adsl公共网进行传输。对单片机的通信采用max232进行转换,当意外死机时本系统还有防死机等功能。关键字:8051单片机 交通灯 led显示 引脚目 录1.绪论.11.1 概述.11.2 设计目的.11.3 设计任务和内容.12.硬件电路设计.22.1180c51内部结构与外部引脚.2 2.2、led数码显示器.3 2.3、双色led.43.主程序设计.5 3.1设计思想.5 3.2绘制软件流程图.53.3、程序的源代码清单及注释.64、上机调试运行结果及分析.144.1.硬件调试.14 4.2.软件调试.15结束语.16参考文献.171.1 绪 论当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1.2 设计目的(1)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。(2)用单片机模拟实现具体应用,使个人设计能够真正使用。(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。(4)提高利用已学知识分析和解决问题的能力。(5)提高实践动手能力。1.3 设计任务和内容 题目描述:请设计一个交通灯控制电路,并且编写相应的软件,完成交通灯的管理任务。题目要求:该控制任务应该完成下列功能:1.控制led灯,完成交通灯的管理任务;2. 按照分析、设计、调试和测试的软、硬件开发过程完成这个控制任务。功能描述:要先了解实际交通灯的控制变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过20秒钟转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过20秒钟转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1.2. 单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和i/o接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的cpu功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。3. 硬件电路设计2.1、80c51内部结构与外部引脚80c51的40个引脚可分为:电源引脚2根、时钟引脚2根、控制引脚4根和i/o引脚32根。80c51单片机内部结构图如图所示。引脚功能:vss:接地端。vcc:电源端,接+5v。xtal1:接外部晶体的一个引脚。chmos单片机采用外部时钟信号时,外部时钟信号由此引入。xtal2:接外部晶体的一个引脚。hmos单片机采用外部时钟信号时,外部时钟信号由此引入。rst:复位信号输入。vcc掉电后,此引脚可接备用电源,低功耗条件下保证内部ram中的数据。ale:地址锁存允许。当单片机访问外部存储器时,该引脚的输出信号ale用于锁存p0端口的低8位地址。ale输出的频率为时钟振荡频率的1/6。对8751单片机片内eprom编程时,编程脉冲由此引脚接入。psen:程序存储器允许。输出读外部程序存储器的选通信号。取指令操作期间,psen的频率为振荡频率的1/6;但若此期间有访问外部数据存储器的操作时,则有一个机器周期中的psen信号将不会出现。ea:ea=0,单片机只访问外部程序存储器。对于8031单片机此引脚必须接地。ea=1,单片机访问内部程序存储器。对于内部有程序存储器的8xx51单片机,此引脚应接高电平,但若地址超过4kb范围(0fffh),单片机将自动访问外部程序存储器。在8751单片机片内eprom编程期间,此引脚接入21v编程电源vpp。p0.0p0.7:p0数据/低8位地址复用总线端口。p1.0p1.7:p1静态通用端口。p2.0p2.7:p2高八位地址总线动态端口。p3.0p3.7:双功能静态端口。2.2、led数码显示器数码管在单片机应用系统中主要用于显示单片机的输出数据和状态等。led显示器为发光二极管构成的显示器件。常用的led显示器有两种供应状态,既共阴极led与共阳极led。2.3、双色led.双色led是由一个红色led管芯和一个绿色led管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。5.程序设计程序设计时,首先对东西南北路口计时寄存器进行地址分配、对路口红黄绿灯分配引脚、设置显示码缓冲区、设置定时器初始时间。然后对各个状态进行编程,编程过程中应注意各个状态计时初值和显示初值的设置,以及各个状态led灯编程和调用。最后,数码显示的编程。一、 绘制硬件电路图(用protel软件)并对硬件电路进行说明;80c51的引脚:p2.1p2.6分别控制东西路口绿灯、黄灯、红灯和南北路口绿灯、黄灯、红灯。p3.0和p3.1控制led数码显示。3. 主程序的设计3.1、设计思想交通灯根据其显示情况可以分为四个状态,可以通过定时来控制每个状态的时间;通过定时也可以向led数码管中每隔1秒送一个数,显示该状态剩余的时间。3.2、绘制软件流程图(用visio软件)并对软件流程进行说明;开始 四个路口红灯亮 南北绿灯亮,东西红灯亮,延时 南北黄灯闪烁,东西红灯亮,延时 南北红灯亮,东西绿灯亮,延时 南北红灯亮,东西黄灯闪烁,延时 流程说明:程序开始进入状态0四个路口红灯亮;然后进入状态1南北绿灯亮,东西红灯亮,延时;然后进入状态2南北黄灯闪烁,东西红灯亮,延时;然后进入状态3南北红灯亮,东西绿灯亮,延时;然后进入状态4南北红灯亮,东西黄灯闪烁,延时;循环至状态1。3.3、程序的源代码清单及注释(汇编语言或c51程序);second1equ30h ;东西路口计时寄存器second2equ31h;南北路口计时寄存器 dbufequ40h;显示码缓冲区1tempequ44h;显示码缓冲区2led_g1bitp2.1;东西路口绿灯led_y1bitp2.2;东西路口黄灯led_r1bitp2.3;东西路口红灯led_g2bitp2.4;南北路口绿灯led_y2bitp2.5;南北路口黄灯led_r2bitp2.6;南北路口红灯org0000hljmp startorg0100hstart:movtmod,#01h;置t0为工作方式1movth0,#3ch;置t0定时初值50msmovtl0,#0b0hclrtf0setb tr0;启动t0clramovp1,a;关闭不相关的led;*movr2,#20;置1s计数初值,50ms*20=1smovr3,#5;红灯亮5smovsecond1,#5;东西路口计时显示初值5smovsecond2,#5;南北路口计时显示初值5slcall displaywait0:lcall state0;调用状态0jnbtf0,wait0;查询50ms到否clrtf0movth0,#3ch;恢复t0定时初值50msmovtl0,#0b0hdjnz r2,wait0;判断1s到否?未到继续状态0movr2,#20;置50ms计数初值 decsecond1;东西路口显示时间减1sdecsecond2;南北路口显示时间减1slcall displaydjnz r3,wait0;状态0维持5s;*loop:movr2,#20;置50ms计数初值movr3,#20;红灯闪20smovsecond1,#25;东西路口计时显示初值25smovsecond2,#25;南北路口计时显示初值25slcall displaywait1:lcall state1;调用状态1jnbtf0,wait1;查询100ms到否clrtf0movth0,#3ch;恢复t0定时初值100msmovtl0,#0b0hdjnz r2,wait1;判断1s到否?未到继续状态1movr2,#20;置100ms计数初值decsecond1;东西路口显示时间减1sdecsecond2;南北路口显示时间减1slcall displaydjnz r3,wait1;状态1维持20s;* mov r2,#5;置50ms计数初值5*4=20movr3,#3;绿灯闪3smovr4,#4;闪烁间隔200msmovsecond1,#5;东西路口计时显示初值5smovsecond2,#5;南北路口计时显示初值5slcall displaywait2:lcall state2;调用状态2jnbtf0,wait2;查询50ms到否clrtf0movth0,#3ch;恢复t0定时初值50msmovtl0,#0b0hdjnz r4,wait2;判断200ms到否?未到继续状态2cplled_g2;南北绿灯闪movr4,#4;闪烁间隔200msdjnz r2,wait2;判1s到否?未到继续状态2movr2,#5;置50ms计数初值decsecond1;东西路口显示时间减1sdecsecond2;南北路口显示时间减1slcall displaydjnz r3,wait2;状态2维持3s;*movr2,#20;置50ms计数初值movr3,#2;黄灯闪2smovsecond1,#2;东西路口计时显示初值2smovsecond2,#2;南北路口计时显示初值2slcall displaywait3:lcall state3;调用状态3jnbtf0,wait3;查询100ms到否clrtf0movth0,#3ch;恢复t0定时初值100msmovtl0,#0b0hdjnz r2,wait3;判断1s到否?未到继续状态3movr2,#20;置100ms计数初值decsecond1;东西路口显示时间减1sdecsecond2;南北路口显示时间减1slcall displaydjnz r3,wait3;状态3维持2s;*movr2,#20;置50ms计数初值movr3,#20;红灯闪20smovsecond1,#25;东西路口计时显示初值25smovsecond2,#25;南北路口计时显示初值25slcall displaywait4:lcall state4;调用状态4jnbtf0,wait4;查询100ms到否clrtf0movth0,#3ch;恢复t0定时初值100msmovtl0,#0b0hdjnz r2,wait4;判断1s到否?未到继续状态4movr2,#20;置100ms计数初值decsecond1;东西路口显示时间减1sdecsecond2;南北路口显示时间减1slcall displaydjnz r3,wait4;状态4维持20s;*movr2,#5;置50ms计数初值movr4,#4;红灯闪20msmovr3,#3;绿灯闪3smovsecond1,#5;东西路口计时显示初值5smovsecond2,#5;南北路口计时显示初值5slcall displaywait5:lcall state5;调用状态5jnbtf0,wait5;查询100ms到否clrtf0movth0,#3ch;恢复t0定时初值100msmovtl0,#0b0hdjnz r4,wait5;判断200ms到否?未到继续状态5cplled_g1;东西绿灯闪movr4,#4;闪烁200msdjnz r2,wait5;判断1s到否?未到继续状态5movr2,#5;置100ms计数初值decsecond1;东西路口显示时间减1sdecsecond2;南北路口显示时间减1slcall displaydjnz r3,wait5;状态5维持3s;*movr2,#20;置50ms计数初值movr3,#2;红灯闪2smovsecond1,#2;东西路口计时显示初值2smovsecond2,#2;南北路口计时显示初值2slcall displaywait6:lcall state6 ;调用状态6jnbtf0,wait6;查询100ms到否clrtf0movth0,#3ch;恢复t0定时初值100msmovtl0,#0b0hdjnz r2,wait6;判断1s到否?未到继续状态6movr2,#20;置100ms计数初值decsecond1;东西路口显示时间减1sdecsecond2;南北路口显示时间减1slcall displaydjnz r3,wait6;状态6维持2sljmp loop;大循环;*state0:;状态0setb led_r1;东西路口红灯亮clrled_y1clrled_g1clrled_g2clrled_y2setb led_r2;南北路口红灯亮retstate1:;状态1 setb led_r1 ;东西路口红灯亮clrled_y1clrled_g1clrled_r2clrled_y2setb led_g2;南北路口绿灯亮retstate2:;状态2clrled_y2clrled_r2clrled_g1clrled_y1setb led_r1;东西路口红灯亮retstate3:;状态3clrled_g2clrled_r2clrled_g1clrled_y1setb led_r1;东西路口红灯亮setb led_y2 ;南北路口黄灯亮retstate4:;状态4clrled_g2clrled_y2setb led_r2;南北路口红灯亮setb led_g1;东西路口绿灯亮clrled_y1clrled_r1retstate5:;状态5clrled_g2clrled_y2setb led_r2;南北路口红灯亮clrled_y1clrled_r1retstate6:;状态6clrled_g2clrled_y2setb led_r2 ;南北路口红灯亮clrled_g1clrled_r1setb led_y1;东西路口黄灯亮retdisplay:;数码显示mova,second1;东西路口计时寄存器movb,#10;16进制数拆成两个10进制数divabmovdbuf+3,amova,bmovdbuf+2,amova,second2;南北路口计时寄存器movb,#10;16进制数拆成两个10进制数divabmovdbuf+1,amova,bmovdbuf,amovr0,#dbufmovr1,#tempmovr7,#4dp10:movdptr,#ledmapmova,r0movc a,a+dptrmovr1,aincr0incr1djnz r7,dp10movr0,#tempmovr1,#4dp12:movr7,#8mova,r0dp13:rlcamovp3.0,cclrp3.1setb p3.1djnz r7,dp13incr0djnz r1,dp12retledmap:db 3fh,06h,5bh,4fh,66h,6dh;0,1,2,3,4,5db 7dh,07h,7fh,6fh,77h,7ch;6,7,8,9,a,bdb 58h,5eh,7bh,71h,0,40h;c,d,e,f, ,-end4、上机调试运行

温馨提示

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

评论

0/150

提交评论