基于单片机的交通灯设计_第1页
基于单片机的交通灯设计_第2页
基于单片机的交通灯设计_第3页
基于单片机的交通灯设计_第4页
基于单片机的交通灯设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、郑州航空工业管理学院单片机课程设计说明书2014 级 专业 班级题 目学号姓名指导教师二。一六年十二月十五日交 通灯 的基本原理单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。 单片机微型计算机简称单片机, 特别适用于控制领域, 故又称为微控制器。 单片机由单块集成电路芯片构成, 内部包含有计算机的基本功能部件: 中央处理器、 存储器和 I/O 接口电路等。 因此, 单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。近年来随着科技的飞速发展,单片机的应用正在不断地走向深入。 在实时检测和自动控制的单片机应用系统中, 单片机往往是作为一个核心部件来使用, 仅

2、单片机方面知识是不够的, 还 应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。交通灯是城市交通的重要指挥系统,与人们的日常生活密切相关。随着经济的快速发展,城市中的车辆逐渐增多,交通拥堵和堵塞现象日趋严重,引起交通事故频发等一系列问题, 因此设计一个灵活、 稳定、 便捷的多功能交通灯控制系统具有必要性和现实性。 本次设计的意义在于通过对具体的控制系统的设计, 掌握微机控制系统设计的一般方法和处理问题的思路, 特别是一些常用的技术手段。 在实践设计过程中, 积累设计经验, 开拓思维空间, 全面提高个人的综合能力。本系统由单片机硬/软件系统,8位8段数码管和LED灯显示系统。和电

3、 路控制电路等组成,较好的模拟了交通路面的控制。倒计时电路主要是由双位共阴数码管和74HC573NS区动模块组成,控制信号通过单片机的端口 P1 口进行信号的传输。倒计时电路负责的是显示红绿灯持续显示的时间。 当绿灯或者红灯持续显示时, 数码管显示该状态的持续时间,在黄灯闪烁显示时,起到倒计时秒数的作用。红绿灯功能电路主要是由各色的发光二极管和74HC573NE动模块组成,控制信号跟数码管一样都是通过P1 口进行传输。红绿灯电路负责的是各个车行道和人行道通行状态的显示。系统经初始化可以开始自动运行,数码管有倒计时显示功能,即1、具有直行、左转、右转、停止四个指示灯;2、指示灯有倒计时显示功能,

4、直行+右转20 秒,左转+右转10 秒,停止 +右转 30 秒,按此规律不断循环;3、直行和左转灯灭掉前3 秒能够闪烁提示(每秒两次) ;4、能够调整直行、左转、停止指示灯的时间。二、 交 通灯的硬件设计本设计单片机主要是用于控制交通灯的演示系统, 故只需要单片机最小系统即可完成。 此电路由单片机、 时钟电路、 电源、 复位电路 4 个组成部分组 成。下图分别为单片机原理图、交通灯系统电路图。 图 1 单片机系统原理图 图 2 交通灯系统原理图复位电路复位方式有多种,本设计采用按键复位。接线图如图 3 复位电路,在复位期间(即RST为高电平期间),P0 口为高组态,P1P3 口输出高电平; 外

5、部程序存储器读选通信号PSENTC效。地址锁存信号 ALE也为高电平。在设定的定时时间内必须在RST 引脚产生一个由高到低的电平变化,以清内部定时器 .图 3 复位电路图晶振电路选取原则:传统做法,但能够实现所需,即最简单也最是实用。电容选取30pF,晶振为 12MHz图 4 晶振电路图供电电路由主电源和备用电源组成。主电源主要是由变压器、6A 整流桥、4 个二极管, 2 个 104pf 电容,二个电解电容以及7805 三端稳压管组成。这个部分为系统提供主要的供电,输出电压为5V 直流。备用电源主要是由4 位原件名称数量焊接位置电源部分USB座1USBUS瞰1双排针(2)1CONN1跳帽210

6、4电容7C2,5,6,7,8,9,11LED灯1D1电阻2K1R2最小系统部分40针座1U1STC89C521晶振12MHz1Y1电容20pF2C3,C4复位键1SW_RST1电阻10K1R1蜂鸣器1LS1 +三极管90159Q1Q9电阻3301R3键盘显示、通信部分16针座1U2MAX2321单排针(5)1UART按键16KEY1KEY16单排针(3)1SWITCH1跳帽14 位 LED2DIGILED1,2电阻8R14R21电阻3308R6R13的5号电池盒组成。这个部分在主电源断电时能够几乎瞬时的为系统提供电源,输出电压也是5V直流。该电源直接接到单片机的电源端图5主电源和备用电源切换功

7、能电路原件清单三、交通灯的软件设计交通灯程序#include <>#include<>#define uchar unsigned char#define uint unsigned int unsignedcharcodeTab= 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0xbf,0xf f,0xce;sbit up=P3A1;sbit down=P3A2;sbit set=P3A3;sbit S8 = P2A0;sbit S7 = P2A1;sbit S6 = P2A2;sbit S5 = P2A3;sb

8、it S4 = P2A4;sbit S3 = P2A5;sbit S2 = P2A6;sbit S1 = P2A7;ucharfenduan1=20,fenduan2=10,fenduan3= 3;uchar times=0;uchar second=0;uchar bsecond=0;uchar sss=0;uchardisData8=7,12,1,10,11,11,6,7;void keydisplay();void display();void Delay()unsigned char i;for(i=0;i<255;i+);void ISR_Timer0(void) interr

9、upt 1.TH0=0x3c;TL0=0xb0;times+;if (times = 10)bsecond+;times=0; void display(uchar *point) P0= Tab*(point);S1 = 0;/ 开 S1 显示Delay();S1 = 1;/ 关 S1 显示P0= Tab*(point+1);S2 = 0;/ 开 S2 显示Delay();S2 = 1;/ 关 S2 显示P0= Tab*(point+2);S3 = 0;/ 开 S3 显示Delay();S3 = 1;/ 关 S3 显示P0= Tab*(point+3);S4 = 0;/ 开 S4 显示Del

10、ay();S4 = 1;/ 关 S4 显示P0= Tab*(point+4);S5 = 0;/ 开 S1 显示Delay();S5 = 1;/ 关 S1 显示P0= Tab*(point+5);S6 = 0;/ 开 S2 显示Delay();S6 = 1;/ 关 S2 显示P0= Tab*(point+6);S7 = 0;/ 开 S3显示Delay();S7 = 1;/ 关 S3 显示P0= Tab*(point+7);S8 = 0;/开 S4显Delay();S8 = 1;/关 S4 显示void delayAJ(uchar a)uchar i;while(a-)for(i=0;i<1

11、25;i+);display(disData);void key()if(set=0)delayAJ(10); 消抖 / 消 抖时间可根据实际情况设定if(set=0) sss+; delayAJ(10);while(!set)delayAJ(10);if(sss%4=1)if(up=0)delayAJ(10);if(up=0) fenduan1+;if(fenduan1=100)fenduan1=0;while(!up) delayAJ(10);if(down=0)delayAJ(10);if(down=0) fenduan1-;if(fenduan1=-1)fenduan1=99;whil

12、e(!down) delayAJ(10);if(sss%4=2)if(up=0)delayAJ(10);if(up=0)fenduan2+;if(fenduan2=100) fenduan2=0;while(!up) delayAJ(10);if(down=0) delayAJ(10); if(down=0) fenduan2-;if(fenduan2=-1)fenduan2=99;while(!down) delayAJ(10);if(sss%4=3)if(up=0) delayAJ(10); if(up=0) fenduan3+; if(fenduan3=100)fenduan3=0;wh

13、ile(!up)delayAJ(10);if(down=0)delayAJ(10);if(down=0) fenduan3-;if(fenduan3=-1)fenduan3=99;while(!down) delayAJ(10);void keydisplay()bsecond=0;if(sss%4=1)disData0=11;disData2=1;disData3=11;disData6=fenduan1/10;disData7=fenduan1%10;if(sss%4=2)disData0=7;disData2=11;disData3=11;disData6=fenduan2/10;dis

14、Data7=fenduan2%10;if(sss%4=3)disData0=11;disData2=11;disData3=10;disData6=fenduan3/10;disData7=fenduan3%10;void xianshi()second=bsecond/2;if(second>fenduan1+fenduan2+f enduan3+1)bsecond=0;if(second<=fenduan1)disData0=11;disData1=12;disData2=1;disData3=11;disData6=(fenduan1-second)/10;disData7=

15、(fenduan1-second)% 10;if(fenduan1-second<=3)&&(bsecond%2=0)disData0=11;disData1=11;disData2=11;disData3=11;else if(second>fenduan1)&&(second<=fenduan2+fenduan1)disData0=7;disData1=12;disData2=11;disData3=11;disData6=(fenduan1+fenduan2-second+1)/10;disData7=(fenduan1+fenduan2

16、-second+1)%10;if(fenduan1+fenduan2-second+1<=3)&&(bsecond%2=0)disData0=11;disData1=11;disData2=11;disData3=11;elseif(second>fenduan2+fenduan1)&&(s econd<=fenduan2+fenduan1+fenduan3 )disData0=11;disData1=12;disData2=11;程序流程图四、课程设计总结disData3=10;disData6=(fenduan1+fenduan2 +fen

17、duan3-second+1)/10;disData7=(fenduan1+fenduan2+fen duan3-second+1)%10;if(fenduan1+fenduan2+fenduan 3-second+1<=3)&&(bsecond%2=0) disData0=11;disData1=11;disData2=11;disData3=11;if(second>fenduan1+fenduan2+fendu an3+1)bsecond=0;void main()TMOD |=0x01;/T0 16 位定时器TH0=0x3c;TL0=0xb0;ET0=1;TR0=1;EA=1;while(1)key();if(sss%4=0)xianshi();elsekeydisplay();display(disData);本次课程设计中,重新巩固了单片机理论课时,感觉到的内容很多,知识点很杂、很繁琐。通过自己的努力也更进一步掌握了单片机的内容构造和工作原理,以及接外部电路的情况。当然光有理论知识那只是“纸上谈兵”, 还需实际动手去实践。真正把所学的用到日常生活中,理论联系实际,做出 实物模型。这次单片机课程设计,我们设计的是简易十字路口交通灯设计, 通过这次课程设计我

温馨提示

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

评论

0/150

提交评论