收藏 分销(赏)

基于单片机的无线交通灯设计与实现十字路口带倒计时的交通信号灯控制电气工程及其自动化课程设计报告书.docx

上传人:可**** 文档编号:842035 上传时间:2024-03-28 格式:DOCX 页数:17 大小:994.28KB
下载 相关 举报
基于单片机的无线交通灯设计与实现十字路口带倒计时的交通信号灯控制电气工程及其自动化课程设计报告书.docx_第1页
第1页 / 共17页
基于单片机的无线交通灯设计与实现十字路口带倒计时的交通信号灯控制电气工程及其自动化课程设计报告书.docx_第2页
第2页 / 共17页
基于单片机的无线交通灯设计与实现十字路口带倒计时的交通信号灯控制电气工程及其自动化课程设计报告书.docx_第3页
第3页 / 共17页
基于单片机的无线交通灯设计与实现十字路口带倒计时的交通信号灯控制电气工程及其自动化课程设计报告书.docx_第4页
第4页 / 共17页
基于单片机的无线交通灯设计与实现十字路口带倒计时的交通信号灯控制电气工程及其自动化课程设计报告书.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、 目录1设计要求12设计方案12.1设计思路12.2设计框图13设计原理及电路图23.1 硬件原理23.1.1 ATC89C52介绍23.1.2 单片机最小系统23.1.3 发射/接收芯片332电路图43.2.1 控制电路43.2.2 被控制电路图43.2.3 无线交通灯整体电路图64设计程序64.1 Keil C51软件介绍64.2 设计流程图74.3 设计程序代码85 Proteus仿真135.1 Proteus软件介绍135.2 仿真结果13总结15参考文献161设计要求(1) 采用单片机AT89C52实现红绿灯的自动工作,红灯、绿灯默认情况下点亮时间为60秒,并且可以接受远端发来的时间

2、延迟命令。(2) 采用单片机AT89C52实现对远端交通灯时间延迟的控制2设计方案2.1设计思路交通灯上电以后,在没有远端控制命令的情况下,按照原先默认的工作方式工作,在接收到远端延时控制命令后,随之改变其工作方以满足控制命令的要求;信号发射设备端可产生时间延迟控制命令。两者有相应的显示设备,使交通灯系统更合理化,人性化。2.2设计框图(1)控制模块红灯(绿灯)时间延时要求nrp2401发射模块延时命令信号产生单片机AT89C52LED延时显示图2-1 控制模块框图(2)被控制模块单片机AT89C52工作方式延时命令信号Nrp2401接收模块LED倒计时显示 图2-2 被控制模块框图3设计原理

3、及电路图3.1 硬件原理3.1.1 ATC89C52介绍AT89C52提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。图3-1 AT89C523.1.2 单片机最小系统图3-2 复位 晶振电路复位电路:由电容串联电阻

4、构成,由图并结合电容电压不能突变的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就要让RC组合可以在RST脚上产生不少于2个机周期的高电平;复位输入高电平有效,当振荡器工作是,RST引脚出现两个机器周期以上的高电平,使单片机复位。此电路除具有上电复位功能外,若要复位只需按“RST”键,此电源Vcc经电阻分压,在RST端产生一个复位高电平;3.1.3 发射/接收芯片n

5、RF2401是单片射频收发芯片,工作于2.42.5GHz ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA,多种低功率工作模式,节能设计更方便。其DuoCeiverTM技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。nRF2401适用于多种无线通信的场合,如无线数据传输系统、无线鼠标、遥控开锁、遥控玩具等。图3-3 nRF401无线传输模块32电路图3.2.1 控制电路控制电路图如图3-4所示,其中,开关控时间延长的开与

6、关;LED数码管分显示红灯和绿灯分别延长的时间,最长延长时间为60秒,当超过60秒后,红灯、绿灯恢复为默认值。图3-4 控制电路图3.2.2 被控制电路图被控制电路图如图3-5所示,其中,数码管分别在红灯、绿灯最后9秒亮起并自动倒数,具有提示作用。图3-5 被控制电路3.2.3 无线交通灯整体电路图图3-6 无线交通灯电路图4设计程序4.1 Keil C51软件介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一

7、个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。4.2 设计流程图(1)控制模块流程图如图4-1所示。开始是否按键吗否是绿灯延时否红灯已延时60秒绿灯已延时60秒否是加时5秒加时5秒恢复默认值恢复默认值图4-1 控制模块流程图(2) 红灯、绿灯、黄灯工作流程图如图4-2所示开始绿灯亮,黄灯、红灯灭9秒倒计时显示延时黄灯亮,绿灯、红灯灭延时9秒倒计时显示红灯亮,绿灯、黄灯灭延时图4-2 红绿黄灯三灯工作流程图(3) 中断处理模块流程图如图4-3所示是中断否是绿灯延时否红

8、灯已延时60秒绿灯已延时60秒否是加时5秒加时5秒恢复默认值恢复默认值图4-3 中断处理模块流程图4.3 设计程序代码根据流程图,编写程序代码。(1) 发送模块#include#include#define uchar unsigned charsbit key0=P10;sbit key1=P11;uchar data_0;uchar counter0;uchar counter1;void initUart(void);void senddata(uchar dat);void delay(int m);void main(void)counter0=0;counter1=0;key0=0

9、;key1=0;P2=0;initUart();while(1)while(key0!=key1)/按键扫描if(key0=1)/按键0delay(20);/去抖动if(key0=1)data_0=0x55;senddata(data_0);/发送绿灯延时命令if(counter0=0x0c)/判断延时总长度是否满足60scounter0=0x00;P2=counter0|counter1;elsecounter0=counter0+1;P2=counter0|counter1;else if(key1=1)/按键1delay(20);/去拌动if(key1=1)data_0=0xcc;sen

10、ddata(data_0);/发送红灯延时命令if(counter1=0xc0)/判断延时总长度是否满足60scounter1=0x00;P2=counter1|counter0;elsecounter1=counter1+16;P2=counter1|counter0;void initUart(void)/串口初始化,波特率为9600PCON=0x00;SCON=0x40;TMOD=TMOD|0x20;TH1=0xfd;TL1=0xfd;ES=0;EA=0;TR1=1;void senddata(uchar dat)/命令发送函数SBUF=dat;while(TI!=1);TI=0;del

11、ay(1000);void delay(m)/延时,单位msuchar ucCounter;while(m)for(ucCounter=0;ucCounter239;ucCounter+)m-;(2) 接收模块#include#include#define uchar unsigned charsbit led_red=P10;/红灯sbit led_yellow=P11;/黄灯sbit led_green=P12;/绿灯sbit select=P13;/倒计时颜色选择uchar dat=0x00;uchar tab010=0x00,0x30,0x6d,0x79,0x33,0x5b,0x5f,

12、0x70,0x7f,0x7b;/数字表uchar m,n;unsigned int i,temp,count;void initUart(void);void time_delay(unsigned int t);void main()m=10;n=10;P0=0;P2=0;initUart();while(1)led_green=1;led_red=0;led_yellow=0;time_delay(m);led_green=0;led_yellow=1;time_delay(3);led_yellow=0;led_red=1;time_delay(n);void initUart(void

13、)/串口初始化,波特率为9600PCON=0x00;/波特率不加倍 SCON=0x50;/串口工作在方式1,允许接收 TMOD=TMOD|0x20;/定时器1工作在方式2 TH1=0xfd; TL1=0xfd; ES=1;/开串口中断 EA=1;/开总中断 TR1=1;void time_delay(unsigned int t)/延时,单位sTMOD=TMOD|0x01;/定时器0工作方式1TH0=(65536-19556)8;TL0=(65536-19556)%256;ET0=0;TR0=1;count=t;temp=40*t;for(i=0;i8; TL0=(65536-19556)%2

14、56;TF0=0;TR0=1;break;if(led_green|led_red)if(i+1)%40=0)count-;/倒数至9秒if(count=9)if(led_green)P2=tab0count;else if(led_red)P0=tab0count;void serial_int(void) interrupt 4/串口中断处理程序EA=0;dat=SBUF;switch(dat)case 0x55:if(m=120)m=10;elsem=m+5;break;case 0xcc:if(n=120)n=10;elsen=n+5;break;RI=0;EA=1;5 Proteus

15、仿真5.1 Proteus软件介绍5.2 仿真结果(1)上电后初始状态如图5-1所示,绿灯延时时间为0秒,红灯延时时间为0秒,绿灯亮,黄灯灭,红灯灭,允许通行。图5-1 运行初始状态(2) 倒计时9秒,数码管亮起并自动倒数,效果图如图5-2所示。图5-2 倒计时效果图(3) 按一下红灯延时按键,产生红灯延时一个5秒的信号,红灯延时10秒的效果图如图5-3所示图5-3 红灯延时10秒总结在此次课题中,首先遇到的问题是单片机原理(即什么是单片机)及开发环境,对这些概念没怎么了解,经过图书馆资料才弄清楚这些问题。单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术

16、把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。在实现按键按一次亮灯时间增加5秒时,但仿真过程中总是得不到正确结果,可能出现按键按一次出现延时10秒,25秒,40秒等等,经过上网查找资料得知该过程没有进行消抖处理。经过软件消抖后,仿真结果正确。参考文献1 谢自美电子线路设计实验测试M武汉:华中理工大学出版社,1992.2 楼然笛单片机开发M北京:人民邮电出版社,1994.3 付家才单片机控制工程实践技术M北京:化学工业出版社 2004.3.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 网络/通信

移动网页_全站_页脚广告1

关于我们      联系我们       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号  |  icp.png浙ICP备2021020529号-1 浙B2-2024(办理中)  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服