开发工具:
文件大小: 6kb
下载次数: 1
上传时间: 2009-06-09
详细说明: #include #include #define uchar unsigned char #define uint unsigned int uchar duan_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar duan_code1[]={0xc0,0xf9,0x64,0x70,0x59,0x52}; sbit led0=P1^4; sbit led1=P1^5; s bit led2=P1^6; sbit led3=P1^7; sbit KK=P2^4; sbit KK1=P2^6; sbit K1=P2^0; sbit K2=P2^1; sbit K3=P2^2; sbit K4=P2^3; sbit K5=P3^3; sbit speak=P3^2; uint counter; uchar time_1s; uchar disbuff[4]; uchar time[3]; uchar m; uchar n; uchar x; uchar f0; uchar z; //开关闹钟 0关,1开 uchar j; uchar w; uchar fen,shi,fen1,fen2,shi1,shi2; uchar hour,min; void delayms(uint ms); void display(); void key_scan(); void buzzer(); void dispclock(); void init() { time[0]=time[1]=time[2]=0; shi=6; fen=0; hour=shi; min=fen; n=0; x=0; f0=0; z=0; j=0; w=0; TMOD=0x11; TH0=0xf8; TL0=0x44; TH1=0xfa; TL1=0x88; KK=0; KK1=0; EA=1; ET1=1; TR1=1; ET0=1; TR0=1; } void timer0() interrupt 1 //2ms { TH0=0xf8; TL0=0x44; counter++; if(counter>=500) { counter=0; time_1s=1; } } void timer1() interrupt 3 //0.9ms { TH1=0xfc; TL1=0x88; display(); } void dis_buf() { disbuff[0]=time[1]%10; disbuff[1]=time[1]/10; disbuff[2]=time[2]%10; disbuff[3]=time[2]/10; } void dis_clock() { fen2=fen/10; fen1=fen%10; shi2=shi/10; shi1=shi%10; } void display() //时间显示 { led0=led1=led2=led3=1; dis_buf(); if(m==0) { led0=0; P0=duan_code[disbuff[m]]; } else if(m==1) { led1=0; P0=duan_code1[disbuff[m]]; if(counter>=250) { P0=duan_code1[disbuff[m]]&0xbf; } } else if(m==2) { led2=0; P0=duan_code[disbuff[m]]; if(counter>=250) { P0=duan_code[disbuff[m]]&0x7f; } } else if(m==3) { if(time[2]>=10) { led3=0; P0=duan_code[disbuff[m]]; } else led3=1; } if(++m>4) m=0; } void dispclock() //闹钟显示 { dis_clock(); led0=0; P0=duan_code[fen1]; delayms(2); led0=1; led1=0; P0=duan_code1[fen2]; delayms(2); led1=1; led2=0; P0=duan_code[shi1]; delayms(2); led2=1; if(shi>=10) { led3=0; P0=duan_code[shi2]; delayms(2); led3=1; } else led3=1; } void main() { init(); while(1) { key_scan(); if(w==1) { w++; buzzer(); } if(w==3) { w++; buzzer(); } if(w==5) { w=0; buzzer(); } if(n==1) //闹钟调时 { TR1=0; if(x==0) { if(K2==0) {dispclock(); // delayms(10); if(K2==0) { shi++; if(shi>=24) { shi=0; } while(K2==0); } } if(K3==0) {dispclock(); //delayms(10); if(K3==0) { fen++; if(fen>=60) {fen=0; } while(K3==0); } } } else if(x==1) { if(shi>=12) { shi=shi-12; } /* if(K2==0) { dispclock(); //delayms(10); if(K2==0) { shi++; if(shi>=12) { shi=0; } while(K2==0); } }*/ } else if(x==2) { if(shi<12) { shi=shi+12; } /* if(K2==0) {dispclock(); // delayms(10); if(K2==0) { shi++; if(shi>=24) { shi=0; } while(K2==0); } }*/ } if(K3==0) {dispclock(); //delayms(10); if(K3==0) { fen++; if(fen>=60) {fen=0; } while(K3==0); } } dispclock(); hour=shi; min=fen; } if(n==2) //调时 { TR1=1; if(time_1s==1&&x==1) { if(time[2]>=12) { time[2]=time[2]-12; } time_1s=0; time[0]++; if(time[0]>=60) { time[0]=0; time[1]++; if(time[1]>=60) { time[1]=0; buzzer(); time[2]++; if(time[2]>=12) { time[2]=0; } } } } if(time_1s==1&&x==2) { // if(z==1) // { if(time[2]<12) { time[2]=time[2]+12; } // } if(f0==1) //滴滴 { buzzer(); } time_1s=0; time[0]++; if(time[0]>=60) { time[0]=0; time[1]++; if(time[1]>=60) { time[1]=0; buzzer(); time[2]++; if(time[2]>=24) { time[2]=0; } } } } if(time_1s==1&&x==0) { if(f0==1) //滴滴 { buzzer(); } time_1s=0; time[0]++; if(time[0]>=60) { time[0]=0; time[1]++; if(time[1]>=60) { time[1]=0; buzzer(); time[2]++; if(time[2]>=24) { time[2]=0; } } } } if(hour==time[2]&&min==time[1]) { if(x==2) { buzzer(); } } if(x==1) { if(K2==0) {delayms(10); if(K2==0) { time[2]++; if(time[2]>=12) { time[2]=0; // z++ ; //12计数标志 // if(z>1) // { // z=0; // } } while(K2==0); } } } else if(K2==0) {delayms(10); if(K2==0) { time[2]++; if(time[2]>=24) { time[2]=0; } while(K2==0); } } if(K3==0) {delayms(10); if(K3==0) { time[1]++; if(time[1]>=60) {time[1]=0; } while(K3==0); } } } 花了两个星期终于完成了数字钟的制作程序,以上是程序的一部分,欢迎大家支持啊 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.