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

下载本文档

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

文档简介

PAGEPAGE0基于51单片机的交通灯设计1前言近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多,在学习了单片机的有关知识之后,运用相关知识来设计完成交通信号灯。2功能概述2.1设计任务:通灯的硬件和软件设计2.2设计目的1.进一步熟悉和掌握单片机的结构和工作原理。2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5.通过完成一个包括电路设计和程序开发的完整过程,为我们今后从事相应工作打下基础。3设计思路按照常规我们假设一个十字路口为东西南北走向。初始状态为状态1,南北方向绿灯通车,东西方向红灯。经过过一段时间(55S)转换状态2,南北方向由绿灯转亮黄灯,延时5S,东西方向仍然红灯。再转换到状态3,东西方向绿灯通车,南北方向红灯。过一段时间(55S)转换到状态4,东西方向由绿灯转亮黄灯,延时5S,南北方向仍然红灯。最后循环至南北绿灯,东西红灯。在这些状态下,有时钟倒数计时。当按下S1键时,进入绿灯时间设置模式,第二次按下S1键,进入黄灯设置模式,第三次按下S1键,设置时间结束。4芯片介绍AT89S52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89S52单片机可为您提供许多较复杂系统控制应用场合。AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89S52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。主要功能特性:•兼容MCS51指令系统 •8k可反复擦写(>1000次)FlashROM•32个双向I/O口 •256x8bit内部RAM•3个16位可编程定时/计数器中断 •时钟频率0-24MHz•2个串行中断 •可编程UART串行通道•2个外部中断源 •共6个中断源•2个读写中断口线•3级加密位•低功耗空闲和掉电模式 •软件设置睡眠和唤醒功能5硬件设计6软件程序设计6.1定时器初始化定时器/计数器是单片机中最常用、最重要的功能模块之一,本次实训通过交通灯控制器实例来演示定时器的使用。首先介绍交通灯以及定时器/计数器的基础知识,接着介绍本实例的硬件电路构成,然后逐步分析定时器的编程以及程序的全貌。定时器/计数器的4种工作方式下的逻辑结构如表所示。M1M2工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,为初值自动重装的8位定时器/计数器11方式3,仅T0有效,将T0分为两个8位定时器/计数器定时器工作在工作方式1,是初值自动重装的16位定时器/计数器,在12MHz晶振条件下,16位定时器的最长定时时间是65.535ms,为了方便计算取定时时间为1ms,所以,定时1s需要定时器中断100次。下面计算定时器的初值。定时器初值TC=M-T/t=65535-1000/1=64535,因此TH0=d8H,TL0=f0H.定时器初始化程序如下,定时器T0设定为工作方式1,初始值为d8f0H,自动重装入值为d8f0H。TMOD|=0x01;//定时器T0设置10msin12McrystalTH0=0xd8;//设定时器T0的初始值,并自动重载TL0=0xf0;ET0=1;//打开中断TR0=1; //启动定时器EA=1;//中断允许总控制位使能6.2程序流程图流程图如下:6.3程序设计(见附件)7总结本次单片机的实训,回顾起整个过程,我们仍感慨颇多,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我发现单片机原理应用行很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的不足,许多的原理,程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。附件#include<reg52.h>bitred_green=0,red_yellow=1,green_red=0,yellow_red=0;sbitKEY1=P3^0;sbitKEY2=P3^1;sbitKEY3=P3^2;unsignedcharsecond=55,counts=0,green_time=55,yellow_time=5;//红灯55s,黄灯5scodeunsignedchartab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴数码管0-9unsignedcharStrTab[4];//定义缓冲区voidDelay(unsignedintcnt){while(--cnt);}voidtime(void)interrupt1using1{ staticunsignedcharcount=0; TH0=0xd8;//重新赋值,10ms中断一次 TL0=0xf0; count++; if(count==100){ count=0; second--; //秒减1 if(second==0) { if(red_yellow) { red_yellow=0;green_red=1; second=yellow_time; P1=0xf6;//车道红灯,人行道黄灯,5s } elseif(green_red) { green_red=0;yellow_red=1; second=green_time; P1=0xed;//车道绿灯,人行道红灯,55s } elseif(yellow_red) { yellow_red=0;red_green=1; second=yellow_time; P1=0xf9;//车道黄灯5s,人行道红灯,5s } elseif(red_green) { red_green=0;red_yellow=1; second=green_time; P1=0xde;//车道红灯,人行道绿灯,55s } } }}voidSettime(void){ if(!KEY1)//按键去抖以及动作{ Delay(10000); if(!KEY1) { counts++; if(counts==3)//设置完成 { counts=0;red_green=0,red_yellow=1,green_red=0,yellow_red=0;// second=green_time;P1=0xde; } } } if(counts==1&&!KEY2)//绿灯时间+ { Delay(10000); if(counts==1&&!KEY2) { green_time++; if(green_time==100)green_time=55; } } if(counts==1&&!KEY3)//绿灯时间- { Delay(10000); if(counts==1&&!KEY3) { green_time--; if(green_time==0)green_time=55; } } if(counts==2&&!KEY2)//黄灯时间+ { Delay(10000); if(counts==2&&!KEY2) { yellow_time++; if(yellow_time==100)yellow_time=5; } } if(counts==2&&!KEY3)//黄灯时间- { Delay(10000); if(counts==2&&!KEY3) { yellow_time--; if(yellow_time==0)yellow_time=5; } } }voidDisplay(void)//显示函数{ if(counts==0) { if(red_yellow) { StrTab[0]=tab[(second+yellow_time)/10]; StrTab[1]=tab[(second+yellow_time)%10]; StrTab[2]=tab[(second)/10]; StrTab[3]=tab[(second)%10]; } if(green_red||red_green) { StrTab[0]=tab[second/10]; StrTab[1]=tab[second%10]; StrTab[2]=tab[second/10]; StrTab[3]=tab[second%10]; } if(yellow_red) { StrTab[0]=tab[second/10]; StrTab[1]=tab[second%10]; StrTab[2]=tab[(second+yellow_time)/10]; StrTab[3]=tab[(second+yellow_time)%10]; } } if(!(counts==0)) { StrTab[0]=tab[green_time/10]; StrTab[1]=tab[green_time%10]; StrTab[2]=tab[yellow_time/10]; StrTab[3]=tab[yellow_time%10]; }}voidtime1(void)interrupt3using0//定时器1用来动态扫描{staticunsignedcharnum;TH1=0xF8;//重入初值 TL1=0xf0; num++; if(num==4)num=0;//扫描4次,使用4个数码管 if(counts==0) { switch(num) { case0:P2=0;P0=StrTab[0];break;//分别调用缓冲区的值进行扫描 case1:P2=1;P0=StrTab[1];break; case2:P2=2;P0=StrTab[2];break; case3:P2=3;P0=StrTab[3];break; default:break; } } if(counts==1) { switch(num) { case0:P2=0;P0=StrTab[0];break;//分别调用缓冲区的值进行扫描 case1:P2=1;P0=StrTab[1];break; case2:P2=4;;break; case3:P2=4;;break; default:break; } } if(counts==2) { switch(num) { case0:P2=4;break;//分别调用缓冲区的值进行扫描 case1:P2=4;break; case2:P2=2;P0=StrTab[2];break; case3:P2=3;P0=StrTab[3];break; default:break; } } }voidmain(void){ TMOD|=0x01;//定时器T0设置10msin12Mcrystal TH0=0xd8; TL0=0xf0; ET0=1;//打开中断 TR0=1; //启动定时器 TMOD|=0x10;//定时器1用于动态扫描 TH1=0xF8; TL1=0xf0; ET1=1; TR1=1;EA=1; P1=0xde;//车道红灯,人行道绿灯,55s while(1) { Settime(); Display(); }}基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用单片机在高楼恒压供水系统中的应用基于ATmega16单片机的流量控制器的开发基于MSP430单片机的远程抄表系统及智能网络水表的设计基于MSP430单片机具有数据存储与回放功能的嵌入式电子血压计的设计基于单片机的氨分解率检测系统的研究与开发锅炉的单片机控制

温馨提示

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

评论

0/150

提交评论