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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(红绿灯课程设计报告.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

红绿灯课程设计报告.docx

1、红绿灯课程设计报告北 华 航 天 工 业 学 院单片机课程设计报告设计课题: 十字路口交通灯控制专业班级: B11203 学生姓名: 赵雪志 指导教师: 王晓 设计时间: 2013-6-11 1 设计任务利用单片机设计一个十字路口交通灯控制器设计要求:利用单片机的定时器产生秒信号,控制十字路口的红、绿、黄灯交替点亮和熄灭,并且用6只LED数码管显示十字路口两个方向的剩余时间。要求能用按键设置两个方向的通行时间(绿、红灯点亮的时间 )和暂缓通行时间(黄灯点亮的时间 )。系统的工作应符合一般交通灯控制的要求。2 硬件设计与系统总体方案图2.1AT89C52 单片机简介AT89C52 是一种低功耗、

2、高性能CMOS8 位微控制器。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C52 具有以下标准功能:8K 字节Flash,256 字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6 位向量2级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,CPU 停止工作,允许RAM、定时器计数器、串口、中断继续工作。鉴于以上的优点本系统采用AT89C52 作为主控芯片,实现对整个系统的控制。2.

3、2 系统硬件电路设计(1)显示灯开关显示灯开关(2) 按键电路(3)显示电路(4)总电路图3 源程序#include #define unit unsigned int /宏定义#define uchar unsigned charsbit red=P10; /设置P1,控制三个发光二极管sbit yellow=P12;sbit green=P14;sbit beep=P23;sbit dula=P26; /设置位选接口sbit wela=P27; /设置段选接口sbit K1=P34; /设置独立键盘接口sbit K2=P35;sbit K3=P36;sbit K4=P37;uchar co

4、de table= /定义数码表0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar R=10,Y=5,G=10,numl,nums,temp,flag,flag1,r1,r2,y1,y2,g1,g2; /定义变量void init(); /声明初始化程序void display(uchar r1,uchar r2,uchar y1,uchar y2,uchar g1,uchar g2); /声明显示程序void delay_1ms(unit z) /1ms延时程序 unit

5、x,y; for(x=z;x0;x-) for(y=110;y0;y-); void delay(void);void main() /主函数 init(); while(1) if(K1=0) R-; delay_1ms(5); display(r1,r2,y1,y2,g1,g2); while(!K1); display(r1,r2,y1,y2,g1,g2); void init() /初始化函数 P1=0xff; /初始化P1 dula=1; /初始化数码管 P0=0x3f; dula=0; wela=1; P0=0xc0; wela=0; TMOD=0x11; /设置定时计数方式 TH

6、0=(65536-50000)/256; /设置初值 TL0=(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; /开总中断 ET0=1; /开定时器T0中断 ET1=1; /开定时器T1中断 TR0=1; /打开定时器T0 TR1=1; /打开定时器T1void timer0() interrupt 1 /发光二极管中断服务子程序 TH0=(65536-50000)/256; /装入初值 TL0=(65536-50000)%256; switch(temp) case 0: numl+; /红灯 red

7、=0; /打开红灯 yellow=1; flag=0; /生成标志位 if(numl=200) numl=0; temp=1; break; case 1: numl+; /黄灯 yellow=0; red=1; beep=1; flag=1; if(numl=100) numl=0; temp=2; break; case 2: numl+; /绿灯 green=0; yellow=1; flag=2; if(numl=200) numl=0; temp=3; break; case 3: numl+; /黄灯 yellow=0; green=1; flag=3; if(numl=100)

8、numl=0; temp=0; break; void timer1() interrupt 3 /数码管显示服务子程序 TH1=(65536-50000)/256; TL1=(65536-50000)%256; r1=R/10; /分别将R、Y、G个位和十位的值赋给数码管的六位显示 r2=R%10; y1=Y/10; y2=Y%10; g1=G/10; g2=G%10; switch(flag) case 0: nums+; Y=5; beep=!beep; /红灯开始计时 if(nums=20) /每一秒减一 R-; nums=0; break; case 1: nums+; /黄灯开始计

9、时 R=10; if(nums=20) Y-; nums=0; break; case 2: nums+; /绿灯开始计时 Y=5; if(nums=20) G-; nums=0; break; case 3: nums+; /黄灯开始计时 G=10; if(nums=20) Y-; nums=0; break; void display(uchar r1,uchar r2,uchar y1,uchar y2,uchar g1,uchar g2) /数码管显示程序 dula=1; P0=tabler1; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; del

10、ay_1ms(1); dula=1; P0=tabler2; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay_1ms(1); dula=1; P0=tabley1; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay_1ms(1); dula=1; P0=tabley2; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay_1ms(1); dula=1; P0=tableg1; dula=0; P0=0xff; wela=1; P0=0xef; wela=0;

11、 delay_1ms(1); dula=1; P0=tableg2; dula=0; P0=0xff; wela=1; P0=0xdf; wela=0; delay_1ms(1); 5 课程设计体会经过一个星期的课程设计,过程曲折可谓一语难尽。在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。通过这次课程设计,加强了我们动手、思考和解决问题的能力。让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,

12、可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。特别是电路完成后,所有的焊接都与我们设计的方案一样,但当我们接通电源是,所看到的结果与我们料想的完全不同,三盏灯都亮了,我们也都知道,任何实验都不可能一次就成功的,我们认真的去检查,可是检查了好久都没有任何发现,只知道单片机的IO 口的输出与我们所输入的程序不相符合,我们逐步排查,最先检查LED 灯电路的接法是否合理,然后检查时钟电路的晶振是否有问题,然后再检查复位电路是否完好,最后功夫不负有心人,我们把复位电路接地电阻断开后,就发现LED 灯有规律的熄灭了,经过我们的认真检查,对位选控制位口的改正,最后电路基本上都实现了我预先设计的功能。这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2