ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:772.78KB ,
资源ID:13328556      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13328556.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的无线交通灯设计与实现十字路口带倒计时的交通信号灯控制电气工程及其自动化课程设计报告书文档格式.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

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

2、 控制模块框图(2)被控制模块工作方式延时命令信号Nrp2401接收模块LED倒计时显示图2-2 被控制模块框图3设计原理及电路图3.1 硬件原理3.1.1 ATC89C52介绍AT89C52提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件

3、工作直到下一个硬件复位。图3-1 AT89C523.1.2 单片机最小系统图3-2 复位 晶振电路复位电路:由电容串联电阻构成,由图并结合电容电压不能突变的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就要让RC组合可以在RST脚上产生不少于2个机周期的高电平;复位输入高电平有效,当振荡器工作是,RST引脚出现两个机器周期以上的高电平,使单片机复位。此电路除具有上电

4、复位功能外,若要复位只需按“RST”键,此电源Vcc经电阻分压,在RST端产生一个复位高电平;3.1.3 发射/接收芯片nRF2401是单片射频收发芯片,工作于2.42.5GHz ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA,多种低功率工作模式,节能设计更方便。其DuoCeiverTM技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。nRF2401适用于多种无线通信的场合,如无线数据传输系统、无线鼠标、遥控开锁、遥控玩

5、具等。图3-3 nRF401无线传输模块32电路图3.2.1 控制电路控制电路图如图3-4所示,其中,开关控时间延长的开与关;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

6、语言在功能上、结构性、可读性、可维护性上有明显的优势。因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。4.2 设计流程图(1)控制模块流程图如图4-1所示。开始是否加时5秒恢复默认值图4-1 控制模块流程图(2) 红灯、绿灯、黄灯工作流程图如图4-2所示绿灯亮,黄灯、红灯灭9秒倒计时显示延时黄灯亮,绿灯、红灯灭红灯亮,绿灯、黄灯灭图4-2 红绿黄灯三灯工作流程图(3) 中断处理模块流程图如图4-3所示

7、中断图4-3 中断处理模块流程图4.3 设计程序代码根据流程图,编写程序代码。(1) 发送模块#includestdio.h#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; key1=0; P2=0; initUart(); whi

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

9、er1=0xc0)/判断延时总长度是否满足60s counter1=0x00; P2=counter1|counter0; else counter1=counter1+16; void initUart(void)/串口初始化,波特率为9600 PCON=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; delay(1000);void delay(m)/延时,单位ms ucha

10、r ucCounter; while(m) for(ucCounter=0;ucCountersbit 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,0x70,0x7f,0x7b;/数字表uchar m,n;unsigned int i,temp,count;void time_delay(unsigned int t);void main() m=

11、10; n=10; P0=0; led_green=1; led_red=0; led_yellow=0; time_delay(m); led_green=0; led_yellow=1; time_delay(3); led_red=1; time_delay(n); void initUart(void)/串口初始化,波特率为9600 PCON=0x00;/波特率不加倍 SCON=0x50;/串口工作在方式1,允许接收/定时器1工作在方式2 ES=1;/开串口中断 EA=1;/开总中断 void time_delay(unsigned int t)/延时,单位s TMOD=TMOD|0x01;/定时器0工作方式1 TH0=(65536-19556)8; TL0=(65536-19556)%256; ET0=0; TR0=1; count=t; temp=40*t; for(i=0;i TL0=(65536-19556)%25

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1