




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用课程设计报告 十字路口交通灯控制设计专 业: 电子信息工程 班 级: 0922 姓 名: 刘佳禹 学 号: 0930106203 一、实验目的1.1巩固和加深对单片机原理和接口技术知识的理解;1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;1.3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。1.6通过仿真搭建和实物搭建相结合,交叉口交通灯控制器系统设计,并掌握编程操作。二、课程设计要求设计一个十字路口交通灯控制器。用单片机控制LED灯模拟指示。模拟东西方向的十字路口交通信号控制情况。东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。三、实验原理 交通灯主要模块分别是显示模块,中断模块,串行通信模块,主要用到了计时器,P0口控制反相器,P1口接发光二极管模拟东南西北四个方向的红绿灯,P2口接数码管控制其显示的数值,P3口则选用第二功能的RXD,TXD作为串行通信的接受与发送数据端,编写相应程序。利用软件给交通灯附初始值,交通灯以初始值运行,当从串行控制端发来数据时,接受数据区域显示接收到的数据,并将其响应到单片机里,使交通灯计时初值改变为当前设定值,每次延时50MS的中断,每中断20次则为一秒,一秒后则控制显示的时间减一,以达到倒计时的目的。四、实验仪器、材料AT89C51芯片、共阳数码管、晶振、发光二极管、电解电容、陶瓷电容、按键、电阻、导线、万用表、面包板、烙铁焊锡等。五、硬件设计5.1 设计思想本实验主要有数码管、二极管同布显示;键盘扫描与录入;倒计时。依次进行仿真测试,然后将这些功能组合并调试,最终实现所有的功能。实验的流程图如下:5.2主要元器件介绍AT89C51 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。5.3 功能电路介绍实验电路图如下:六、 软件设计实验程序如下:#includecode unsigned char num=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;sbit P0_0=P00; sbit P0_1=P01; sbit P0_2=P02; sbit P0_3=P03;sbit P0_4=P04; sbit P0_5=P05;sbit P0_6=P06; sbit P0_7=P07;sbit P1_0=P10; sbit P1_1=P11;sbit P1_2=P12; sbit P1_3=P13;sbit P1_4=P14; sbit P1_5=P15; sbit P1_6=P16; sbit P1_7=P17; sbit P2_1=P21;void shortdelay()int i;for(i=1500;i0;i-);void longdelay()int i,j;for(i=200;i0;i-)for(j=20;j0;j-);char keyboard()char m,r=13;char i=0,j=0;P2=0x0f;if(P2!=0x0f)m=P2&0xff;switch(m)case 0x0e: i=0;break;case 0x0d: i=1;break;case 0x0b: i=2;break;case 0x07: i=3;break;P2=0xf0;if(P2!=0xf0)m=P2&0xff;switch(m)case 0xe0: j=0;break;case 0xd0: j=1;break;case 0xb0: j=2;break;case 0x70: j=3;break; if(i=0&j=0)r=0;if(i=0&j=1)r=1;if(i=0&j=2)r=2; if(i=0&j=3)r=3;if(i=1&j=0)r=4;if(i=1&j=1)r=5;if(i=1&j=2)r=6;if(i=1&j=3)r=7; if(i=2&j=0)r=8;if(i=2&j=1)r=9;if(i=2&j=2)r=10;if(i=2&j=3)r=11;if(i=3&j=0)r=12;if(i=3&j=1)r=13;if(i=3&j=2)r=14;if(i=3&j=3)r=15;return r;void show(char x1,char y1,char x2,char y2) P1_4=0;P1_5=0;P1_6=1;P1_7=0;P3=numx1;shortdelay();P1_4=0;P1_5=0;P1_6=0;P1_7=1;P3=numy1;shortdelay();P1_4=1;P1_5=0;P1_6=0;P1_7=0;P3=numx2;shortdelay();P1_4=0;P1_5=1;P1_6=0;P1_7=0;P3=numy2;shortdelay();void scan()char k,m=0;k=keyboard();if(k=10)for(k;k!=12;)k=keyboard();show(m,m,m,m); P1_4=1;P1_5=1;P1_6=1;P1_7=1;if(k!=13)m=k;int change(char x1,char y1,char x2,char y2)char k,m=210;int r=0;k=keyboard();/if(k=11)k=keyboard();for(k;k!=12;)k=keyboard();show(x1,y1,x2,y2);longdelay();show(x1,y1,x2,y2);longdelay();k=keyboard();show(x1,y1,x2,y2);if(k=0&x1!=9)x1+;if(k=1&x1!=0)x1-;if(k=2&y1!=9)y1+;if(k=3&y1!=0)y1-;if(k=4&x2!=9)x2+;if(k=5&x2!=0)x2-;if(k=6&y2!=9)y2+;if(k=7&y2!=0)y2-;r=x1*1000+y1*100+x2*10+y2;return r;int trafficlight(char x1,char y1,char x2,char y2)char a,b,i,k;int r=0;a=x1*10+y1;b=x2*10+y2;/k=keyboard();if(ab)P1_0=1;P1_1=0;P1_2=0;P0_0=0;P0_1=1;P0_2=0;for(x1;x1=0;x1-) for(y1;y1=0;y1-)scan();for(i=20;i0;i-)show(x1,y1,x2,y2);scan();k=keyboard();if(k=11) r=change(x1,y1,x2,y2);/r=1234;if(x2=0&y2=0)x2=(a-b)/10;y2=(a-b)-x2*10-1; P0_0=0;P0_1=0;P0_2=1;else if(y2=0&x2!=0)x2-;y2=9;else if(y2!=0)y2-;longdelay();y1=9;elseP1_0=0;P1_1=1;P1_2=0;P0_0=1;P0_1=0;P0_2=0;for(x2;x2=0;x2-) for(y2;y2=0;y2-) scan();for(i=20;i0;i-)show(x1,y1,x2,y2);scan();k=keyboard();if(k=11) r=change(x1,y1,x2,y2);if(x1=0&y1=0)x1=(b-a)/10;y1=(b-a)-x1*10-1;P1_0=0;P1_1=0;P1_2=1;else if(y1=0&x1!=0)x1-;y1=9;else if(y1!=0)y1-;longdelay();y2=9;return r;char conversion(int i)char r;switch(i)case 0:r=0;break;case 1:r=1;break;case 2:r=2;break;case 3:r=3;break;case 4:r=4;break;case 5:r=5;break;case 6:r=6;break;case 7:r=7;break;case 8:r=8;break;case 9:r=9;break;return r;void main()char x1=1,y1=0,x2=0,y2=5;int i=1234,j=5;while(1)i=trafficlight(x1,y1,x2,y2);/x=conversion(j);/show(x1,y1,x2,y2);if(i!=0)x1=conversion(i/1000);y1=conversion(i-x1*1000)/100);x2=conversion(i-x1*1000-y1*100)/10);y2=conversion(i-x1*1000-y1*100-x2*10); i=trafficlight(x2,y2,x1,y1);if(i!=0)x1=conversion(i/1000);y1=conversion(i-x1*1000)/100);x2=conversion(i-x1*1000-y1*100)/10);y2=conversion(i-x1*1000-y1*100-x2*10); 七、实验结果及分析进入键盘扫描模式:扫描模式中从左到右,上到下依次是09,余下的按键未使用(12键为返回按钮)。进入调时模式:调时模式中,第一排从左到右依次是十位加,十位减,个位加,个位减东西;第二排从左到右依次是十位加,十位减,个位加,个位减南北;左下角的按键为确定按键。调时后,更改的时间将在本次计时后生效。进入红绿灯模式:红灯黄灯;绿灯红灯;八、实验体会由于有了以前焊电路板的基础和对电路的熟悉,这次的电路板焊接没有遇到太大的困难,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宿豫公司团建活动方案策划
- 2025年智能真空断路器项目申请报告范文
- 护士群体心理咨询方案
- 皮蛋营销方案
- 长沙特殊传动方案咨询
- 天河山情人节活动策划方案
- 景区仿藤护栏施工方案
- 焦虑举例心理咨询方案
- 三八节活动策划方案模版
- 无人机经营活动方案策划
- 2025年招录考试-法院书记员考试历年参考题库含答案解析(5套典型题)
- 2025关于销售人员的劳动合同样本
- 2025中国电建成都院勘测设计分公司社会招聘笔试历年参考题库附带答案详解
- 精神科护理科普:理解与关爱慢性精神疾病患者
- 法律与道德小学生课件
- vivo公司管理制度
- DB31/T 804-2014生活饮用水卫生管理规范
- 儿童早期矫正教学课件
- 银行代销业务管理制度
- 运动素质知到课后答案智慧树章节测试答案2025年春浙江大学
- 招聘话术培训
评论
0/150
提交评论