单片机交通灯课程设计程序及仿真_第1页
单片机交通灯课程设计程序及仿真_第2页
单片机交通灯课程设计程序及仿真_第3页
单片机交通灯课程设计程序及仿真_第4页
单片机交通灯课程设计程序及仿真_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include<at89x51.h>#defineucharunsignedchar#defineuintunsignedint/*****定义各个控制位*****/sbitsn_left=P1^4; //南北左行sbitsn_go=P1^5; //南北直行sbitsn_yellow=P1^6; //南北黄灯sbitsn_man_green=P1^3; //南北人行道绿灯sbit sn_man_red=P3^0;//南北人行道红灯sbitew_left=P1^0; //东西左行sbitew_go=P1^1; //东西直行sbitew_yellow=P1^2; //东西黄灯sbitew_man_green=P3^1; //东西人行道绿灯sbitew_man_red=P1^7; //东西人行道红灯sbitsn_led1=P2^0; //南北LED显示器十位控制器sbitsn_led2=P2^1; //南北LED显示器各位控制器sbitew_led1=P2^2; //东西LED显示器十位控制器sbitew_led2=P2^3; //东西LED显示器各位控制器//sbittime_led1=P2^4; //附加LED显示器十位控制器//sbittime_led2=P2^5; //附加LED显示器各位控制器//sbitkey1=P2^6; //功能按键1//sbitkey2=P2^7; //功能按键2/*****定义共阴极LED显示器的字段码0~9******/ucharcodetable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};uintcount;//秒计数器ucharflag,second;//同行标志,显示数据变量//ucharT0h,T0l;//定时器T0计数初值变量/****函数声明****///延时子程序(晶振12MHz)voidDelayms(ucharms){uchari; while(ms--) { for(i=1;i<60;i++); //原为120调改2 i=1时需13个机器周期 } } voidstate1() { sn_left=0;//南北左行绿灯 sn_man_green=0;//南北人行道绿灯关 sn_man_red=1;//南北人行道红灯亮 sn_go=1;//南北直行红灯 sn_yellow=0; ew_man_green=0;//东西人行道绿灯关 ew_man_red=1;//东西人行道红灯亮 ew_left=1;//东西左行红灯 ew_go=1;//东西直行红灯 ew_yellow=0; } voidstate2() { sn_left=1;//南北左行红灯 sn_man_green=0;//南北人行道绿灯关 sn_man_red=1;//南北人行道红灯开 sn_go=0;//南北直行绿灯 sn_yellow=0; ew_man_green=1;//东西人行道绿灯开 ew_man_red=0;//东西人行道红灯关 ew_left=1;//东西左行红灯 ew_go=1;//东西直行红灯 ew_yellow=0; } voidstate3() { sn_left=1;//南北左行红灯 sn_man_green=0;//南北人行道绿灯关 sn_man_red=1;//南北人行道红灯亮 sn_go=1;//南北直行红灯 sn_yellow=1; //南北黄灯亮 ew_man_green=0;//东西人行道绿灯关 ew_man_red=1;//东西人行道红灯亮 ew_left=1;//东西左行红灯 ew_go=1;//东西直行红灯 ew_yellow=1; } voidstate4() { sn_left=1;//南北左行红灯 sn_man_green=0;//南北人行道绿灯关 sn_man_red=1;//南北人行道红灯亮 sn_go=1;//南北直行红灯 sn_yellow=0; //南北黄灯关 ew_man_green=0;//东西人行道绿灯关 ew_man_red=1;//东西人行道红灯亮 ew_left=0;//东西左行绿灯 ew_go=1;//东西直行红灯 ew_yellow=0; } voidstate5() { sn_left=1;//南北左行红灯 sn_man_green=1;//南北人行道绿灯开 sn_man_red=0;//南北人行道红灯关 sn_go=1;//南北直行红灯 sn_yellow=0; ew_man_green=0;//东西人行道绿灯关 ew_man_red=1;//东西人行道红灯开 ew_left=1;//东西左行红灯 ew_go=0;//东西直行绿灯 ew_yellow=0;} voidstate6() { sn_left=1;//南北左行红灯 sn_man_green=0;//南北人行道绿灯亮 sn_man_red=1;//南北人行道红灯关 sn_go=1;//南北直行红灯 sn_yellow=0; //南北黄灯关 ew_man_green=0;//东西人行道绿灯关 ew_man_red=1;//东西人行道红灯亮 ew_left=1;//东西左行红灯 ew_go=1;//东西直行红灯 ew_yellow=1; //东西黄灯亮 } voidmain() { flag=1; //状态标识初始化为1 second=15; //初始化南北左转时间15s (为调程序设为2本为‘15‘ count=0; //设定技术初值 sn_led1=1;//初始化各个指示灯状态 sn_led2=1; ew_led1=1; ew_led2=1; TMOD=0x11; TH0=0xF8;//0xFC;//0x1C; //FC18为延时1ms TL0=0x30;//0x18;//0x66; //F830为延时两毫秒 EA=1; ET1=1; ET0=1; TR0=1; while(1); //无法跳到T1 } voidisr_t0()interrupt1 { TH0=0xF8;//0xFC;//0x1C; //FC18为延时1ms TL0=0x30;//0x18;//0x66; //F830为延时两毫秒 TH1=0xF8;//0xFC;//PreloadH; TL1=0x30;//0x18;//PreloadL; TR1=1; if(flag==1|flag==2|flag==3) //显示南北方向剩余时间 { P0=table[second/10]; sn_led1=0; Delayms(1); sn_led1=1; P0=table[second%10]; sn_led2=0; Delayms(1); sn_led2=1; } if(flag==4|flag==5|flag==6)//显示东西方向剩余时间 { P0=table[second/10]; ew_led1=0; Delayms(1); ew_led1=1; P0=table[second%10]; ew_led2=0; Delayms(1); ew_led2=1; } //TH0=0xF8;//0xff;//0x1C; //TL0=0x30;//0xfa;//0x66; TR0=0;} /***定时器TI定时50ms中断服务程序,顺序完成各个状态下的指示灯的控制***/ voidisr_t1()interrupt3 { count++; TH1=0xF8;//0xFC;//PreloadH; TL1=0x30;//0x18;//PreloadL; TH0=0xF8;//0xFC;//0x1C; //FC18为延时1ms TL0=0x30;//0x18;//0x66; //F830为延时两毫秒 TR0=1; switch(flag) { case1: { state1(); if(count==240) / { count=0; if(second>0) { second--; } else { second=20; flag=2; } } }break; case2: { state2(); if(count==240) { count=0; if(second>0) { second--; } else { second=3; flag=3; } } }break; case3: { state3(); if(count==240) { count=0; if(second>0) { second--; } else { second=15; flag=4; } } }break; case4: { state4(); if(count==240) { count=0; if(second>0) { second--; } else { second=20; flag=5; } } }break; case5: { state5(); if(count==240) { count=0; if(second>0) { second--; } else {

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论