基于单片机的交通灯设计c程序_第1页
基于单片机的交通灯设计c程序_第2页
基于单片机的交通灯设计c程序_第3页
基于单片机的交通灯设计c程序_第4页
基于单片机的交通灯设计c程序_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

#includesbit RED_E = P10;sbit YELLOW_E = P11;sbit GREEN_E = P12;sbit RED_N = P13;sbit YELLOW_N = P14;sbit GREEN_N = P15;sbit s1 = P24;sbit s2 = P25;sbit s3 = P26;sbit s4 = P27;sbit type = P16;sbit k1 = P20;sbit k2 = P21;sbit k3 = P22;sbit k4 = P23;#define uchar unsigned char/宏定义#define uint unsigned intvoid cpuInit();void Display();void key_analyse();void smec(unsigned char x);void Display2();void t0_time();void kv_set_E();void kv_set_N();void pc_EN();/void kv_set_pc();void set_pc();uchar R_E,Y_E,G_E,R_N,Y_N,G_N;uchar Flash_Count = 0,Operation_Type=1,key,Set_flag,flag=0,x=0,x1=0,x2=0,x3=0,m1,m2,flag_pc=0,temp;uchar led_seg_code10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;int a=0;uchar time;int t,t2,t3,t4;void cpuInit() /初始化TMOD=0x21; /定时器0按方式1工作/PCON=0x7f;SCON=0x70; ET0=1; EA=1;TH0=0x3C; /定时50ms (11.0592M) TL0=0x0B0; TH1=0x0f3;TL1=0x0f3;ES=1;TR1=1;P1=0x0ff; /关LEDs1=1; s2=1; s3=1; s4=1;P0=0x00;P2=0x0ff;R_E=14;Y_E=4;G_E=15;R_N=19;Y_N=4;G_N=10;void Display() /普通模式下显示/uchar time;/int t,t2;uchar i;/int j;m1=P0;m2=P0;switch(Operation_Type)case 1:RED_E=1; YELLOW_E=1; GREEN_E=0;RED_N=0; YELLOW_N=1; GREEN_N=1;if(x=0)i=G_E;x=1;time=R_N;t=time/10;t2=(int)time%10;t3=i/10;t4=(int)i%10;P0=led_seg_codet2;s2=0;s2=1;P0=led_seg_codet4;s4=0;s4=1;P0=led_seg_codet;s1=0;s1=1;P0=led_seg_codet3;s3=0;s3=1;if(flag=1)flag=0;i-;time-;t=time/10;t2=(int)time%10;t3=i/10;t4=(int)i%10;P0=led_seg_codet2;s2=0;s2=1;P0=led_seg_codet4;s4=0;s4=1;P0=led_seg_codet;s1=0;s1=1;P0=led_seg_codet3;s3=0;s3=1;if(i=0)x=0;Operation_Type=2;break;case 2:GREEN_E=1;YELLOW_E=0;P0=led_seg_codet2;s2=0;s4=0;s2=1;s4=1;P0=led_seg_codet;s1=0;s3=0;s1=1;s3=1;if(flag=1)flag=0;x1+;time-;t=time/10;t2=(int)time%10;P0=led_seg_codet2;s2=0;s4=0;s2=1;s4=1;P0=led_seg_codet;s1=0;s3=0;s1=1;s3=1;if(x1=4)x1=0;Operation_Type=3;break;case 3:RED_E=0; YELLOW_E=1; GREEN_E=1;RED_N=1; YELLOW_N=1; GREEN_N=0;if(x2=0)i=G_N;x2=1;time=R_E;t=time/10;t2=(int)time%10;t3=i/10;t4=(int)i%10;P0=led_seg_codet2;s4=0;s4=1;P0=led_seg_codet4;s2=0;s2=1;P0=led_seg_codet;s3=0;s3=1;P0=led_seg_codet3;s1=0;s1=1;if(flag=1)flag=0;i-;time-;t=time/10;t2=(int)time%10;t3=i/10;t4=(int)i%10;P0=led_seg_codet2;s4=0;s4=1;P0=led_seg_codet4;s2=0;s2=1;P0=led_seg_codet;s3=0;s3=1;P0=led_seg_codet3;s1=0;s1=1;if(i=0)x2=0;Operation_Type=4;break;case 4:GREEN_N=1;YELLOW_N=0;P0=led_seg_codet2;s2=0;s4=0;s2=1;s4=1;P0=led_seg_codet;s1=0;s3=0;s1=1;s3=1;if(flag=1)flag=0;x3+;time-;t=time/10;t2=(int)time%10;P0=led_seg_codet2;s2=0;s4=0;s2=1;s4=1;P0=led_seg_codet;s1=0;s3=0;s1=1;s3=1;if(x3=4)x3=0;Operation_Type=1;break;/void delay1ms()/1ms延时/int i,j;/for(i=2;i0;i-)/for(j=248;j0;j-);/void key_analyse()unsigned char key_value;key_value=P2;if(key_value&0x0f)!=0x0f)/ 有键按下smec(150);key_value=key_value&0x0f;key=key_value;switch(key) case 0x0e: key=0; kv_set_E(); break; /进入东西功能键case 0x07: key=0; kv_set_N(); break; /进入南北功能键 /case 0x0d: key=0; kv_set_pc(); break; /进入PC机修改 /case 0x06: key=0; kv_down_E(); break; /东西减/case 0x09: key=0; kv_up_N(); break; /南北加/case 0x05: key=0; kv_down_N(); break; /南北减 /case 0x07: key=0; Kv_Enter(); break; /确定键 default: break; if(type=0)smec(150);Display2();void kv_set_E()/uchar time2;/int tt,tt2;int n1=0,n2=0;unsigned char key_s,key_d;key_s=P0;key_d=P2;P2=0x0ff;/time2=G_E;/t=time/10;/t2=(int)time%10;while(1) /k4为确定键if(k4=0)smec(150);k4=1;/P2=0x0ff;/P0=0x0ff;break;/time=G_E;/tt=time2/10;/tt2=(int)time2%10;/P0=led_seg_codett2;/s2=0;/s2=1;/P0=led_seg_codett;/s1=0;/s1=1;if(k2=0)smec(150);+G_E; /东西加/time2=G_E;+R_N;n1+;/t=time/10;/t2=(int)time%10;s1=0;P0=led_seg_coden1;/s2=0;/s2=1;/P0=led_seg_codet;/s1=0;/s1=1;k2=1;if(k3=0)smec(150);-G_E; /东西减/time2=G_E;-R_N;n2+;s1=0;P0=led_seg_coden2;k3=1;/P0=key_s;/P2=key_d;void kv_set_N()/uchar time2;/int tt,tt2;int n1=0,n2=0;unsigned char key_s,key_d;key_s=P0;key_d=P2;P2=0x0ff;/time2=G_E;while(1) /k1为确定键if(k1=0)smec(150);k1=1;/P2=0x0ff;/P0=0x0ff;break;/tt=time2/10;/tt2=(int)time2%10;/P0=led_seg_codett2;/s2=0;/s2=1;/P0=led_seg_codett;/s1=0;/s1=1;if(k2=0)smec(150);+G_N; /南北加+R_E;/time2=G_N;n1+;s1=0;P0=led_seg_coden1;k2=1;if(k3=0)smec(150);-G_N; /南北减-R_E;/time2=G_N;n2+;s1=0;P0=led_seg_coden2;k3=1;/P0=key_s;/P2=key_d; /void kv_set_pc()/int i=1;/while(i)/while(RI=0)/if(k3=0) /k3键退出/smec(150);/i=0;/break;/RI=0;/G_E=SBUF;/void Display2()/智能模式下显示int i=10;s1=1; s2=1; s3=1; s4=1;while(i)if(flag=1)flag=0;i-;RED_E=1; YELLOW_E=1; GREEN_E=0;RED_N=0; YELLOW_N=1; GREEN_N=1;void pc_EN()if(flag_pc=1)flag_pc=0;G_E=temp;R_N=G_E+4;void smec(unsigned char x)/1MS unsigned int j; while(x-) for(j=0;j80;j+); /void Uart_sc2(uchar byte)/SB

温馨提示

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

评论

0/150

提交评论