资源描述:
《时钟-闹钟-智能控制程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、时时钟-闹钟-智能控制程序/*--------------------------------------------------------------时钟_闹钟_智能控制(C程序)*定时器T0中断服务中产生时钟数据*用动态扫描显示8个数码管。*P0口接七段数码管的段码,P2.2、P2.3、P2.4口接数码管的位控制码。*按键接在P1口,按下按键,对应的端口位就是0.*采用多功能按键设计,A、B个按键调节功能代码,选择要调节的参数;C、D按键循环调节选中的参数的值。*闹铃声音信号从P1.5口输出;时间控制接口从P1.6输
2、出,控制指示灯接P3.7口。---------------------------------------------------------------*/#include#defineuintunsignedint#defineucharunsignedcharcharhour,min,sec,flag,num0,num;ucharc1_hour,c1_min;ucharcont1_sh,cont1_sm;ucharcont1_eh,cont1_em;sbitsound=P1^5;sbitcont_l
3、ed=P3^7;sbitcontrol=P1^6;sbitkey_a=P1^0;sbitkey_b=P1^1;sbitkey_c=P1^2;sbitkey_d=P1^3;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x8c,0xbf};voiddelayms(uintxms)
4、//延时xms{uinti,j;for(i=xms;i>0;i--)for(j=120;j>0;j--);}voidinit(){hour=13;min=31;sec=30;c1_hour=12;c1_min=33;cont1_sh=12;cont1_sm=32;cont1_eh=12;cont1_em=33;TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;//TH1=(65536-5000)/256;//TL1=(65536-5000)%256;EA=1;ET0
5、=1;//ET1=1;TR0=1;//TR1=1;}voiddisplay(ucharnum,uchardat){P0=table[dat];//P0口为段码接口P2=0xe3+4*num;//74ls138输出端作为位码接口delayms(2);}voiddis_time(){uchari;i=hour/10;display(0,i);i=hour%10;display(1,i);display(2,27);i=min/10;display(3,i);i=min%10;display(4,i);display(5,27)
6、;i=sec/10;display(6,i);i=sec%10;display(7,i);}voiddis_adj(ucharsj1,ucharsj2,ucharsj3){uchart;display(0,26);t=sj1/10;display(1,t);t=sj1%10;display(2,t);display(3,27);t=sj2/10;display(4,t);t=sj2%10;display(5,t+10);t=sj3/10;display(6,t);t=sj3%10;display(7,t);}voiddis
7、_all(){switch(flag){case0:dis_time();break;case1:case2:dis_adj(flag,hour,min);break;case3:case4:dis_adj(flag,c1_hour,c1_min);break;case5:case6:dis_adj(flag,cont1_sh,cont1_sm);break;case7:case8:dis_adj(flag,cont1_eh,cont1_em);break;}}voidt_control(){if(!flag){if((c
8、1_hour==hour)&&(c1_min==min))sound=0;if((min==c1_min+1)&&(c1_hour==hour))sound=1;if((cont1_sh==hour)&&(cont1_sm==min)){cont_led=0;control=0;}if((cont1_e