版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、原理图吉首大学单片机交通灯设计局部放大33 D6 B4 U5 7>XTAL1PO.ODOP0.1MMP0.2/AD2XTAL2PO.l/iMWP0.47AO4P0.S/AD5P0.AD6rsfP0.7P7陀.tWP2.1 也P2 2JAI0PSEMR2 3LM1坐P24A12EARzaJAiaP2 GJAl 4P271AI5P1P3.(WR>DP1.1P3.i/r>rP1 2ra.jjiiinn-F1 .5PJ.3J0NTilP1.1 MSP3.4/T0 Pi MlPI .5po.tw/nP1 7P3 7崗厂327 g2425262721in辽12n141?1Bl7P:7 0
2、FT7目pTcpT?coooooooT0S5'ABCDEFG DP 12ooooooooooBO:。B1ABCDEFG DP12OOOOOOOOo 1 “ e *e c cc r- 33ZJQQQCC800ms op 一 w2-3 D D6-7口D00000000CM化i寸OQ-OaCiCiCi口程序代码#i nclude<reg51.H>#defi ne uchar un sig ned char#defi ne uint un sig ned intuchar code table=/ 共阴极数码管码表0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7
3、d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0xC9,0xFF,0x40;/ 设置码 , 测试码 , 不计时码void delay(uint x);/ 延时函数void display(uchar,uchar,uchar,uchar); / 数码管显示函数 void mkeys(); / 键盘函数 void traffic(); /交通灯函数uchar num,num1,num2, /1 南北 2 东西 shi1,ge1,shi2,ge2, value1,value2,/ 南北 绿灯时间 黄灯时间 value3,value4,/ 东西 绿灯时
4、间 黄灯时间 count1,count2,flag1,flag2; /南北标记 东西标记void main()TMOD=0x01;TH0=(65536-45872)/256; TL0=(65536-45872)%256;EA=1;ET0=1;TR0=1;/* 初状态 */ value1=15; / 南北 黄绿灯默认值 value2=5;value3=10; / 东西 黄绿灯默认值 value4=5;num1=value1; / 南北数码管先绿灯时间 num2=value2+value1;/ 东西红灯时间 shi1=num1/10;ge1=num1%10; shi2=num2/10;ge2=nu
5、m2%10;P1=0x41;/ 初始状态 : 东西红灯 南北绿灯20 15while(1) if(num=20) / 定时器 1snum=0;num1-;num2-;traffic();shi1=num1/10; ge1=num1%10;shi2=num2/10;ge2=num2%10;mkeys();display(shi1,ge1,shi2,ge2);void traffic() / 红绿灯主控制程序 if(num1=0)count1+;if(count1=1)P1=0x42;/ 东西红灯 南北黄灯 5 5 num1=value2;if(count1=2) num1=value3+valu
6、e4;/ 东西绿灯 南北红灯 10 15 P1=0x14;if(count1=3)P1=0x41;/ 东西黄灯 南北红灯5 5num1=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;数码管显示子函数void display(uchar shi1,uchar ge1,u
7、char shi2,uchar ge2) / uchar temp;temp=P2;P2=0xfe; P0=tableshi1;delay(5);P2=0xfd; P0=tablege1;delay(5);P2=0xfb; P0=tableshi2;delay(5);P2=0xf7; P0=tablege2;delay(5);void delay(uint x)/ 延时子函数 uint i,j; for(i=x;i>0;i-) for(j=110;j>0;j-);void mkeys() /4*4 矩阵键盘功能子函数 uchar temp,key;P3=0xfe;/ 第一行线tem
8、p=P3;temp=temp&0xf0;if(temp!=0xf0)delay(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xee:key=0;break;case 0xde:key=1;break;case 0xbe:key=2;break;case 0x7e:key=3;break;while(temp!=0xf0)temp=P3;temp=temp&0xf0;if(key=0) /按键 1:暂停TR0=TR0; / 定时器取反 flag1=flag1;/ 南北能够设置标志 0
9、 有效 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;ge
10、2=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)case 0xed:key=0;break;case 0xdd:key=1;break;case 0xbd:key=2;bre
11、ak;case 0x7d: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)num1
12、=value2;if(num2!=159) num1+; value2=num1;shi1=num1/10;ge1=num1%10;num2=value1+value2;/shi2=num2/10;ge2=num2%10;/ 按键 6: 设置南北黄灯时间 +显示东西红灯时间if(key=2&&P1=0x44&&value1>3) / 合理,绿灯最小值计时 3s ,绿灯不再减少 num1=value1;按键 7: 设置南北绿灯时间num1-;value1=num1;shi1=num1/10;ge1=num1%10;num2=value1+value2;/ 显
13、示东西红灯时间 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&0x
14、f0;if(temp!=0xf0)temp=P3;switch(temp)case 0xeb:key=0;break;case 0xdb: key=1;break;case 0xbb:key=2;break;case 0x7b: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
15、+value4;/ 显示南北红灯时间 shi1=num1/10;ge1=num1%10;/ 按键 10: 设置东西黄灯时间 +if(key=1&&P1=0x44) 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-;
16、 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=P
17、3;temp=temp&0xf0; if(temp!=0xf0)delay(10);temp=P3; temp=temp&0xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xe7: key=0; break;case 0xd7: key=1; break;case 0xb7: key=2; break;case 0x77: key=3; break;while(temp!=0xf0)temp=P3; temp=temp&0xf0;东西红灯常南北红灯常 if(key=0&&P1=0x44) / 按键 13: 南北紧急情况 :南北绿灯常亮 亮P1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工上下班交通安全培训
- 注册会计师税法中其他税种车辆购置税车船税印花税的适用范围
- 某麻纺厂设备安装规范
- 某木材厂锯材质量标准
- 2026合肥源创新人才发展有限公司社会招聘5人备考题库及参考答案详解(a卷)
- 2026贵州贵阳观山湖区远大小学教师招聘备考题库附答案详解(精练)
- 2026四川自贡市中医医院编外人员招聘10人备考题库及一套完整答案详解
- 纺织品印染质量检验办法
- 2026广东广州市爱莎文华高中招聘备考题库及答案详解(真题汇编)
- 2026广东广州市白云区石门第一实验幼儿园招聘3人备考题库及参考答案详解(新)
- 国开2026年《公共政策概论》形成性考核任务1-4答案
- 红十字站工作制度
- 2025年浙江省宁波市海曙区统编版六年级下册小升初考试语文试卷
- 2026年春季苏教版(2024)三年级下册数学教学计划附教学进度表
- 网络安全普法课件
- 2025河北石家庄市某大型国有企业招聘3人(公共基础知识)综合能力测试题附答案
- 2025年城市卫生公共设施提高项目可行性研究报告
- 孕产妇多学科协作沟通方案
- 病人走失的案例分析与经验教训
- 股是股非蒋文辉课件
- 隧道掘进机维护方案
评论
0/150
提交评论