基于单片机的LED路灯时控光控模拟系统设计.docVIP

  • 0
  • 0
  • 约3.63千字
  • 约 6页
  • 2019-11-05 发布于浙江
  • 举报

基于单片机的LED路灯时控光控模拟系统设计.doc

基于单片机的LED路灯时控光控模拟系统设计 原理图中的滑动变阻器实际使用光敏电阻。 程序如下 #includereg52.h #define uchar unsigned char #define uint unsigned int sbit key_0=P2^3; sbit key_1=P2^2; sbit key_2=P2^1; sbit key_3=P2^0; sbit wela_0=P2^7; sbit wela_1=P2^6; sbit wela_2=P2^5; sbit wela_3=P2^4; sbit ludeng=P1^0; sbit inlamp1=P1^2; sbit inlamp2=P1^4; sbit guangmin=P1^6; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned int hour,min,STH,STM,LH,LM,f1,f0; uint aa; void delay(uint u) //延时子程序 { uint x,y ; for(x=u;x0;x--) for(y=110;y0;y--); } void display(uchar h,uchar m) //动态扫描子程序,扫描周期为50ms { uchar hhour,lhour,hmin,lmin; hhour=h/10; lhour=h%10; hmin=m/10; lmin=m%10; P0=table[hhour]; P2=0x8f; //P0口加上拉电阻才能显示高电平。不然是高阻态。 delay(2); P0=table[lhour]; P2=0x4f; delay(2); P0=table[hmin]; P2=0x2f; delay(2); P0=table[lmin]; P2=0x1f; delay(2); } void main() { EA=1; TMOD=0x11; TH0=0x4b; TL0=0xfd; TH1=0x4b; TL1=0xfd; TR0=1; TR1=1; ET0=1; ET1=1; EX0=1;EX1=1;IT0=1;IT1=1; PX0=1;PX1=0; hour=12; min=0; STH=19; STM=0; LH=5; LM=0; aa=0; while(1) { if(key_0==0) {delay(2);if(key_0==0){hour++; } //在检测按键按下时,按键需要一个消除 //抖动的延时 if(hour==24)hour=0; while(key_0!=1)display(hour,min);} if(key_1==0) {delay(2);if(key_1==0){min++; } if(min==60)min=0; while(key_1!=1)display(hour,min);} if(hour==STH) //条件符合点亮路灯 { if(min==STM) ludeng=0; TR1=0; } if(hour==LH) //条件符合熄灭路灯 { if(min==LM) ludeng=1; TR1=1; } display(hour,min); } } void time1()

文档评论(0)

1亿VIP精品文档

相关文档