




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第一节系统总体方案 21.1设计要求 21.2设计任务 21.3总体设计 2第二节硬件设计 32.1单片机选型 3引脚结构图 32.2硬件电路图 4第三节软件设计 53.1设计流程图 53.2紧急中断流程图 63.3设计程序及说明 63.4主要函数说明 11第四节Proteus软件仿真 114.1正常运行 114.2黄灯闪烁 124.3通行转换 124.4设置信号灯时间 13绿灯时间 13黄灯时间 134.5设置后启动运行 14第五节课程设计体会 14第六节参考文献 14附录 151、同组人姓名 152、实验分工 151〕程序设计: 152〕电路设计: 15第一节系统总体方案1.1设计要求1〕南北方向〔主干道〕车道和东西方向〔支干道〕车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为80秒、支干道每次通行间为60秒。2〕在绿灯转为红灯时,要求黄灯先亮3秒钟,才能变换运行车道;3〕黄灯亮时,要求每秒闪亮一次。4〕东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示〔采用计时的方法〕。1.2设计任务1〕东西、南北车辆交替运行2〕绿灯转为红灯时,黄灯闪亮〔间隔3秒〕。3〕能显示剩余时间。4〕能对交通运行进行控制。5〕能够对时间进行修改并正常运行。1.3总体设计单片机单片机按键电路复位电路晶振电路数码显示LED显示第二节硬件设计2.1单片机选型AT89C51引脚结构图2.2硬件电路图第三节软件设计3.1设计流程图调支路通行子程调支路通行子程开始中断初始化调主干道黄灯闪烁子程调主干道通行子程序调支路黄灯闪烁子程判断是否有开关中断?中断处理中断返回〔到子程序处〕NOYES 3.2紧急中断流程图断点入栈保护断点入栈保护状态参数设置送状态字至端口状态响应断点返回开始开始3.3设计程序及说明#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={//共阴极数码管码表1-F0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0xC9,0xFF,0x40};//设置码,测试码,不计时码voiddelay(uintx);//延时函数voiddisplay(uchar,uchar,uchar,uchar);//数码管显示函数voidmkeys();//键盘函数voidtraffic();//交通灯函数ucharnum,num1,num2,//1南北2东西shi1,ge1,shi2,ge2,value1,value2,//南北绿灯时间黄灯时间value3,value4,//东西绿灯时间黄灯时间count1,count2,flag1,flag2;//南北标记东西标记voidmain(){TMOD=0x01;TH0=(65536-45872)/256;TL0=(65536-45872)%256;EA=1;ET0=1;TR0=1;/*初状态*/value1=60;//南北黄绿灯默认值value2=3;value3=80;//东西黄绿灯默认值value4=3;num1=value1;//南北数码管先绿灯时间num2=value2+value1;//东西红灯时间shi1=num1/10;ge1=num1%10;shi2=num2/10;ge2=num2%10;P1=0x41;//初始状态:东西红灯南北绿灯while(1){if(num==20)//定时器1s{num=0;num1--;num2--;traffic();shi1=num1/10;ge1=num1%10;shi2=num2/10;ge2=num2%10;}mkeys();//扫描按键display(shi1,ge1,shi2,ge2);//调用数码管显示函数}}voidtraffic()//红绿灯主控制程序{if(num1==0){count1++;if(count1==1){P1=0x42;//东西红灯南北黄灯num1=value2;}if(count1==2){num1=value3+value4;//东西绿灯南北红灯P1=0x14;}if(count1==3){P1=0x41;//东西黄灯南北红灯num1=value4;count1=0;}}if(num2==0){count2++;if(count2==1){//P1=0x14;//东西绿灯南北红灯num2=value3;}if(count2==2){P1=0x24;//东西黄灯南北红灯num2=value4;}if(count2==3){num2=value1+value2;//东西红灯南北绿灯num1=value1;count2=0;}}}voiddisplay(ucharshi1,ucharge1,ucharshi2,ucharge2)//数码管显示子函数{uchartemp;temp=P2;P2=0xfe;P0=table[shi1];delay(5);P2=0xfd;P0=table[ge1];delay(5);P2=0xfb;P0=table[shi2];delay(5);P2=0xf7;P0=table[ge2];delay(5);}voiddelay(uintx)//延时子函数{uinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}voidmkeys()//4*4矩阵键盘功能子函数{uchartemp,key;P3=0xfe;//第一行线temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xee:key=0;break;case0xde:key=1;break;case0xbe:key=2;break;case0x7e:key=3;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}if(key==0){//按键1:暂停TR0=~TR0;//定时器取反flag1=~flag1;//南北能够设置标志0有效flag2=~flag2;//东西能够设置标志}if(key==1&&flag1==0){//按键2:设置时间按钮TR0=0;P1=0x44;//禁止东南西北车辆全为红灯可以设置shi1=ge1=shi2=ge2=16;}if(key==2&&flag2==0){//按键3:设置完成重启TR0=1;num=0;//定时器初始化P1=0x41;//重新开始初状态num1=value1;//南北数码管先绿灯时间num2=value2+value1;//东西红灯时间shi1=num1/10;ge1=num1%10;shi2=num2/10;ge2=num2%10;}if(key==3&&P1==0x44){//按键4:测试交通灯各个设备的好坏P1=0xff;delay(1000);P1=~P1;shi1=ge1=shi2=ge2=17;P1=0x44;}}}P3=0xfd;//第二行线temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xed:key=0;break;case0xdd:key=1;break;case0xbd:key=2;break;case0x7d:key=3;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}if(key==0&&P1==0x44){//按键5:设置南北绿灯时间+num1=value1;if(num2!=159){//@@@@保证交通合理,红灯最大值计时159s,绿灯不再增加num1++;value1=num1;}shi1=num1/10;ge1=num1%10;num2=value1+value2;//显示东西红灯时间shi2=num2/10;ge2=num2%10;}if(key==1&&P1==0x44){//按键6:设置南北黄灯时间+num1=value2;if(num2!=159){num1++;value2=num1;}shi1=num1/10;ge1=num1%10;num2=value1+value2;//显示东西红灯时间shi2=num2/10;ge2=num2%10;}if(key==2&&P1==0x44&&value1>3){//按键7:设置南北绿灯时间-@@@@保证交通合理,绿灯最小值计时3s,绿灯不再减少num1=value1;num1--;value1=num1;shi1=num1/10;ge1=num1%10;num2=value1+value2;//显示东西红灯时间shi2=num2/10;ge2=num2%10;}if(key==3&&P1==0x44&&value2>3){//按键8:设置南北黄灯时间-num1=value2;num1--;value2=num1;shi1=num1/10;ge1=num1%10;num2=value1+value2;//显示东西红灯时间shi2=num2/10;ge2=num2%10;}}}P3=0xfb;//第三行线temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xeb:key=0;break;case0xdb:key=1;break;case0xbb:key=2;break;case0x7b:key=3;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}if(key==0&&P1==0x44){//按键9:设置东西绿灯时间+num2=value3;if(num1!=159){num2++;value3=num2;}shi2=num2/10;ge2=num2%10;num1=value3+value4;//显示南北红灯时间shi1=num1/10;ge1=num1%10;}if(key==1&&P1==0x44){//按键10:设置东西黄灯时间+num2=value4;if(num1!=159){num2++;value4=num2;}shi2=num2/10;ge2=num2%10;num1=value3+value4;//显示南北红灯时间shi1=num1/10;ge1=num1%10;}if(key==2&&P1==0x44&&value3>3){//按键11:设置东西绿灯时间-num2=value3;num2--;value3=num2;shi2=num2/10;ge2=num2%10;num1=value3+value4;//显示南北红灯时间shi1=num1/10;ge1=num1%10;}if(key==3&&P1==0x44&&value4>3){//按键12:设置东西黄灯时间-num2=value4;num2--;value4=num2;shi2=num2/10;ge2=num2%10;num1=value3+value4;//显示南北红灯时间shi1=num1/10;ge1=num1%10;}}}P3=0xf7;//第四行线2个按键未用temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0){temp=P3;switch(temp){case0xe7:key=0;break;case0xd7:key=1;break;case0xb7:key=2;break;case0x77:key=3;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}if(key==0&&P1==0x44){//按键13:南北紧急情况:南北绿灯常亮东西红灯常亮P1=0x41;shi1=g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢压延加工的装备改造与技术升级考核试卷
- 基于深度学习的竹塑周转箱需求预测与调度研究
- 远洋货物运输的极地挑战考核试卷
- 新肇地区葡萄花油层构造脊发育特征及其对油气分布的控制作用
- 基于EVA的福莱特企业价值评估研究
- 单位之间经济合作协议
- 党校考试试题及答案数学
- 党务干部考试试题及答案
- 抚州职业技术学院《文献检索和科技论文写作》2023-2024学年第二学期期末试卷
- 郑州工程技术学院《文学翻译》2023-2024学年第二学期期末试卷
- 餐饮从业人员有害生物防治知识培训
- 制作水果电池及实验报告
- 碳碳复合材料
- 某水库除险加固工程监理实施细则
- 2025年民航气象中心公开招聘应届毕业生6人高频重点提升(共500题)附带答案详解
- T-ACEF 148-2024 危险废物物联网智能监控设备技术要求
- 营业性演出管理条例
- 【MOOC】仪器分析-北京化工大学 中国大学慕课MOOC答案
- 高等数学基础-002-国开机考复习资料
- 信息与电子工程导论(浙江大学)知到智慧树章节答案
- 公安调解和解协议书范本
评论
0/150
提交评论