网络消费网 >  5G > > 正文
c51闹钟程序
时间:2022-02-09 18:22:04
左图正面凹陷下去的是三个菜单按钮,右图边上的usb接口是供程序下载的,内部为四节镍镉电池供电电压4.8v

#include#include#define uchar unsigned char#define uint unsigned intuchar hou=0,min=0,sec=0,houc=0,minc=0,secc=0;uint m=0;bit yy=0;sbit khou=P1^1;sbit kmin=P1^0;sbit timesea=P1^2;sbit clock=P3^7;sbit clear=P3^6;sbit input=P3^5;sbit mod=P0^0;sbit mac=P2^3;uchar codewela[]={0x7f,0xbf,0xef,0xdf};uchar code dula[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xD8,0x80,0x90};uchar data shu[4];uchar data cldat[4];void display();void clsan();void display1();void keycan();void disan();void keyc();void send(uchar dat);void send1(uchar dat1);void clocking();void playing();void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=12;y>0;y--);}void main(){TMOD=0x01;TH0=(65536-5000)/256;TL0=(65536-5000)%6;EA=1;ET0=1;TR0=1;while(1){if(!timesea)playing();else clocking();if((hou==houc)&(min==minc)&!timesea){mac=0;delay(1000);mac=1;mod=~mod;}else {mac=1;mod=1;}}}

void time0()interrupt1{TH0=(65536-5000)/256;TL0=(65536-5000)%6;m++;if(m==200){m=0;sec++;}if(sec==60){sec=0;min++;}if(min==60){min=0;hou++;}if(hou==24){hou=0;min=0;sec=0;}}void playing(){display();keycan();disan();}void display(){uchar a=4,k;while(a--){P2=0xff;if((m<100)&(a==1))k=0x80;else k=0x00;send(dula[shu[a]]-k);P2=wela[a];delay(2);clear=0;P2=0xff;clear=1;}}void disan(){shu[0]=hou/10;shu[1]=hou;shu[2]=min/10;shu[3]=min;

}void send(uchar dat){uchar a=8;while(a--){clock=0;input=0x80&dat;clock=1;dat<<=1;}}

void keycan(){if(kmin==0){mod=0;delay(10);while(kmin==0)display();mod=1;if(min>59)min=0;else min++;}

if(khou==0){mod=0;delay(50);while(khou==0)display();mod=1;if(hou>23)hou=0;else hou++;}

}void clocking(){keyc();clsan();clsan();display1();}void display1(){uchar d=4,k;while(d--){P2=0xff;if(d==1)k=0x80;else k=0x00;send1(dula[cldat[d]]-k);P2=wela[d];delay(2);clear=0;P2=0xff;clear=1;}}void keyc(){if(khou==0){mac=0;delay(50);mac=1;while(khou==0)display1();if(houc>23)houc=0;else houc++;}

if(kmin==0){mac=0;delay(50);mac=1;while(kmin==0)display1();if(minc>23)minc=0;else minc++;}

}void send1(uchar dat1){uchar a=8;while(a--){clock=0;input=0x80&dat1;clock=1;dat1<<=1;}}void clsan(){cldat[0]=houc/10;cldat[1]=houc;cldat[2]=minc/10;cldat[3]=minc;}

关键词: c51闹钟程

版权声明:
    凡注明来网络消费网的作品,版权均属网络消费网所有,未经授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明"来源:网络消费网"。违反上述声明者,本网将追究其相关法律责任。
    除来源署名为网络消费网稿件外,其他所转载内容之原创性、真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考并自行核实。
热文

网站首页 |网站简介 | 关于我们 | 广告业务 | 投稿信箱
 

Copyright © 2000-2020 www.sosol.com.cn All Rights Reserved.
 

中国网络消费网 版权所有 未经书面授权 不得复制或建立镜像
 

联系邮箱:920 891 263@qq.com

备案号:京ICP备2022016840号-15

营业执照公示信息