电气自由风

    1. 自己制作电子钟

      标签:电子钟

      #include<reg52.h> #define uchar unsigned char #define uint unsigned int #define play P0 sbit LSA=P1^0; sbit LSB=P1^1; sbit LSC=P1^2; sbit led=P2^2; //闹钟检测 sbit k1=P2^7;// 功能切换 sbit k2=P2^6;//设置加 sbit k3=P2^5;// 设置减 sbit k4=P2^4; //设置位选 sbit beet=P1^5; //蜂鸣器输出口 uchar y;//按键松开 uchar kai;//闹钟开启标志 uchar she;//设置标志 uchar t;//时间计数 uchar num;//功能切换 uchar fen; uchar shi; uchar miao; uchar yue; uchar nian; uchar ri; uchar shijian[8]; uchar shi1; //闹铃时 uchar fen1; //闹铃分 unsigned char code shuma[12]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //数码管显示数组0到9 0x7f,0x6f,0x40,0x00}; uchar brunyue[12]={31,28,31,30,31,30,31,31,30,31,30,31}; uchar runyue[12]={31,29,31,30,31,30,31,31,30,31,30,31}; void zhongshe(); void qishe(); void naoshe(); void shezhi(); void delay10ms(void) //误差 0us { unsigned char a,b,c; for(c=1;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--); } void naozhong() { uint a,m; if((shi1==shi)&&(fen1==fen)&&(kai%2)) { for(m=20;m>0;m--) for(a=10;a>0;a--) if((k1==0)||(k2==0)||(k3==0)||(k4==0)) { kai=0;break; } else beet=~beet; } } void plays() //输出显示 { unsigned char i; unsigned int j; for(i=0;i<8;i++) { switch(i) //位选,选择点亮的数码管, { case(0): LSA=0;LSB=0;LSC=0; break;//显示第0位 case(1): LSA=1;LSB=0;LSC=0; break;//显示第1位 case(2): LSA=0;LSB=1;LSC=0; break;//显示第2位 case(3): LSA=1;LSB=1;LSC=0; break;//显示第3位 case(4): LSA=0;LSB=0;LSC=1; break;//显示第4位 case(5): LSA=1;LSB=0;LSC=1; break;//显示第5位 case(6): LSA=0;LSB=1;LSC=1; break;//显示第6位 case(7): LSA=1;LSB=1;LSC=1; break;//显示第7位 } play=shuma[shijian[i]]; if(t>50) { switch(she) { case(3): if((i==0)||(i==1)) play=0x00; break; case(2): if((i==3)||(i==4)) play=0x00; break; case(1): if((i==6)||(i==7)) play=0x00; break; } } j=10; //扫描间隔时间设定 while(j--); play=0x00;//消隐 } }

      下载次数 1次 资源类型 应用文档 上传时间 2015-08-30

最近访客

< 1/1 >

统计信息

已有2人来访过

  • 芯积分:--
  • 好友:--
  • 主题:--
  • 回复:0

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言