<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)2408點(diǎn)陣時(shí)鐘電子制作

          單片機(jī)2408點(diǎn)陣時(shí)鐘電子制作

          作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏

          void main()
          {
          init(); //調(diào)用初始化函數(shù)
          P0=0xff; P1=0x00; P3=0x00; P2=0x00;
          for(c=0;c<10;c++) delay(255);
          P1=0xff; P3=0xff; P2=0xff; //測(cè)試點(diǎn)陣屏全亮3秒.
          P0=0x00; P1=0x00; P3=0x00; P2=0x00;
          for(c=0;c<10;c++) delay(255);
          P1=0xff; P3=0xff; P2=0xff; //測(cè)試點(diǎn)陣屏全滅3秒.
          P0=0xff; P1=0x00; P3=0x00; P2=0x00;
          for(c=0;c<10;c++) delay(255);
          P1=0xff; P3=0xff; P2=0xff; //測(cè)試點(diǎn)陣屏全亮3秒.
          P0=0x00; P1=0x00; P3=0x00; P2=0x00;
          for(c=0;c<10;c++) delay(255);
          P1=0xff; P3=0xff; P2=0xff; //測(cè)試點(diǎn)陣屏全滅3秒.
          c=0;
          while(1) //主程序循環(huán)
          {
          switch(keymode) //鍵盤(pán)處理程序
          {
          case 0x00:
          if(KEY==0) { keymode=1; keycount=2;}
          break;
          case 0x01:
          if(keycount==0)
          { if(KEY==0)
          { keymode=2; keydate=1;D7=0;} else {keymode=0; break;}
          }
          else
          {
          keycount--;
          break;}
          case 0x02:
          if(KEY==1)
          { keymode=0; D7=1; break;}
          else
          {keymode=3; keycount=50; break; }
          case 0x03:
          if(KEY==1)
          { keymode=0; D7=1; break;}
          else
          if(keycount==0)
          { keymode=4; D6=1; break; }
          else
          { keycount--; break;}
          case 0x04:
          if(KEY==1)
          {keymode=0; D7=1; break;}
          else
          break;

          default: break;
          }
          //以下的鍵值調(diào)時(shí)間處理
          if(D7==1)
          {
          if(D6==0) {
          if(c==1) hour++;
          if(hour==24) hour=0;
          if(c==2) minute++;
          if(minute==60) minute=0;
          D7=0; }
          else
          {c++; if(c>2) c=0; D6=0; D7=0;}
          }


          disbuf[0]=(second);
          disbuf[1]=(second/10);
          disbuf[2]=(minute);
          disbuf[3]=(minute/10);
          disbuf[4]=(hour);
          disbuf[5]=(hour/10);
          display(); //調(diào)用顯示函數(shù)

          }
          }

          void init()
          {
          TMOD=1;TH0=0X3C;TL0=0XB0; //定時(shí)器0模式1,50毫秒
          ET0=1;TR0=1;EA=1; //開(kāi)定時(shí)器0中斷、啟動(dòng)定時(shí)器0、開(kāi)總中斷
          }

          void display( )
          {
          unsigned char i,j=0; //j為列位置變量


          for(i=0;i<5;i++) //時(shí)十位
          {
          if(disbuf[5]==0) P0=0x00; //時(shí)十分為0時(shí)不顯示
          else P0=ASCII86[disbuf[5]];
          P1=seg[j][0]; P3=seg[j][1]; P2=seg[j][2];
          delay(1);
          P1=0xff; P3=0xff; P2=0xff;
          j++;
          }
          j++; //隔一列

          for(i=0;i<5;i++) //時(shí)個(gè)位
          {
          if(c==1&&SHAN)P0=0x00;
          else P0=ASCII86[disbuf[4]]; //調(diào)時(shí)狀態(tài)時(shí)個(gè)位閃爍
          P1=seg[j][0]; P3=seg[j][1]; P2=seg[j][2];
          delay(1);
          P1=0xff; P3=0xff; P2=0xff;
          j++;
          }
          if(!SHAN) {P0=0x81;} else P0=0x00; //秒閃

          P1=seg[j][0]; P3=seg[j][1]; P2=seg[j][2];
          delay(1);
          P1=0xff; P3=0xff; P2=0xff;
          j++;
          for(i=0;i<5;i++) //分十位
          {
          P0=ASCII86[disbuf[3]];
          P1=seg[j][0]; P3=seg[j][1]; P2=seg[j][2];
          delay(1);
          P1=0xff; P3=0xff; P2=0xff;
          j++;
          }
          j++;
          for(i=0;i<5;i++) //分個(gè)位
          {
          if(c==2&&SHAN)P0=0x00;
          else P0=ASCII86[disbuf[2]]; //調(diào)分狀態(tài)時(shí)分閃爍
          P1=seg[j][0]; P3=seg[j][1]; P2=seg[j][2];
          delay(1);
          P1=0xff; P3=0xff; P2=0xff;
          j++;
          }

          本文引用地址:http://www.ex-cimer.com/article/201611/321448.htm

          }

          void delay(uchar t)
          {
          uchar i; //定義變量
          for(;t>0;t--) //如果t大于0,t減1(外層循環(huán))
          for(i=124;i>0;i--); //i等于124,如果i大于0,i減1
          }


          void timer0() interrupt 1 //定時(shí)器0(中斷1)
          {
          uchar tim1,tim2; //定義臨時(shí)變量
          TL0=TL0+0XB0;TH0=0X3C; //重裝定時(shí)器初值
          tim1++; //每中斷一次tim1加1
          if(tim1==10) //中斷10(0.5秒)
          {
          SHAN=!SHAN; //閃爍標(biāo)志取反
          tim1=0;tim2++; //tim1清零,tim2加1
          if(tim2==2) //到了1秒
          {
          tim2=0;second++; //tim2清零,秒加1
          if(second>=60) //如果秒到60
          {
          second=0;minute++; //秒變0,分加1
          if(minute>=60) //如果分到60
          {
          minute=0;hour++; //分變0,時(shí)加1
          if(hour>=24) hour=0; //如果時(shí)到24,時(shí)變0
          }
          }
          }
          }
          }


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();