新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > 創(chuàng)意設計之DIY搖擺LED時鐘

        創(chuàng)意設計之DIY搖擺LED時鐘

        作者: 時間:2012-03-21 來源:網(wǎng)絡 收藏
        x00, // -e-44

          0x10,0x7E,0x90,0x90,0x40,0x00, // -f-45

          0x19,0x25,0x25,0x25,0x1E,0x00, // -g-46

          0xFE,0x10,0x20,0x20,0x1E,0x00, // -h-47

          0x00,0x00,0x9E,0x00,0x00,0x00, // -i-48

          0x00,0x01,0x11,0x9E,0x00,0x00, // -j-49

          0xFE,0x08,0x14,0x22,0x02,0x00, // -k-50

          0x00,0x82,0xFE,0x02,0x00,0x00, // -l-51

          0x1E,0x20,0x1E,0x20,0x1E,0x00, // -m-52

          0x20,0x1E,0x20,0x20,0x1E,0x00, // -n-53

          0x1C,0x22,0x22,0x22,0x1C,0x00, // -o-54

          0x3F,0x24,0x24,0x24,0x18,0x00, // -p-55

          0x18,0x24,0x24,0x24,0x3F,0x00, // -q-56

          0x20,0x1E,0x20,0x20,0x10,0x00, // -r-57

          0x12,0x2A,0x2A,0x2A,0x24,0x00, // -s-58

          0x20,0xFC,0x22,0x22,0x24,0x00, // -t-59

          0x3C,0x02,0x02,0x3C,0x02,0x00, // -u-60

          0x38,0x04,0x02,0x04,0x38,0x00, // -v-61

          0x3C,0x02,0x3C,0x02,0x3C,0x00, // -w-62

          0x22,0x14,0x08,0x14,0x22,0x00, // -x-63

          0x39,0x05,0x05,0x09,0x3E,0x00, // -y-64

          0x22,0x26,0x2A,0x32,0x22,0x00, // -z-65

          };

          unsigned int TZ,Ti;

          unsigned char ii,jj,nn,mm,tt, Ms;

          /*延時函數(shù)*/

          void DelayMs(unsigned int msec)

          {

          unsigned int x,y;

          for(x=0; x=msec;x++)

          {

          for(y=0;y=110;y++);

          }

          }

          /*鍵盤去抖處理函數(shù)*/

          unsigned char ChKey(bit Key)

          {

          if(Key==0){

          DelayMs(30);

          if(Key==0) return(1);

          }

          }

          /*定時器中斷0處理(時鐘)函數(shù)*/

          void timer0(void) interrupt 1 using 1

          {

          TH0=-(5000/256);

          TL0=-(5000%256);

          TR0=1;

          BUFFER[0]=BUFFER[0]+1;

          if (BUFFER[0]>201){

          BUFFER[0]=0; BUFFER[1]=BUFFER[1]+1;

          Ms=!Ms;

          if (BUFFER[1]==60){

          BUFFER[1]=0;BUFFER[2]=BUFFER[2]+1;

          if (BUFFER[2]==60){

          BUFFER[2]=0;BUFFER[3]=BUFFER[3]+1;

          if (BUFFER[3]==24) BUFFER[3]=0;

          }

          }

          }

          }

          /*定時器中斷1處理(LED驅(qū)動)函數(shù)*/

          void timer1(void) interrupt 3 using 1

          {

          TH1=(Ti+tt*15)/256; TL1=(Ti+tt*15)%256;

          if((put1==1)(ii7)(Ms*w[ii]==0)) P2=~ASCIIDOC[v[ii]*6+jj]; else P2=0xff;

          jj++; tt++;

          if(jj>5) {ii++; jj=0;};

          if(ii>10) {ii=0;put1=~put1; put2=~put2;tt=0;}

          }

          /*主程序*/

          void main(void)

          {

          Ms=1;

          Ti=-2100; //根據(jù)實際調(diào)整

          mm=14;

          put1=0;put2=1;

          /*初始化定時中斷0*/

          TMOD=0x11;

          TH0=-5000/256; TL0=-5000%256;

          TR0=1;ET0=1;

          /*初始化定時中斷1*/

          TH1=Ti/256; TL1=Ti%256;

          TR1=1;ET1=1;

          /* 七個顯示位置,中間為":" 符 */

          v[0]=10;

          v[1]=10;

          v[2]=10;

          v[3]=13;

          v[4]=10;

          v[5]=10;

          v[6]=10;

          /*正常運行狀態(tài),讓中間":"符閃現(xiàn)*/

          w[1]=0;

          w[2]=0;

          w[3]=1;

          w[4]=0;

          w[5]=0;

          /*搖擺棒初始啟動*/

          do {

          mm--;

          DelayMs(120+mm*5);

          put1=~put1; put2=~put2;

          }while(mm>0);

          /*啟動顯示*/

          ii=0;jj=0;

          EA=1;

          /*正式運行*/

          for(;;){

          while(1){

          /*顯示時和分*/

          v[1]=BUFFER[3]/10;

          v[2]=BUFFER[3]-v[1]*10;

          v[4]=BUFFER[2]/10;

          v[5]=BUFFER[2]-v[4]*10;

          /*按鍵處理*/

          if(ChKey(set0)==1){ //調(diào)整項鍵

          if(TZ2) TZ++; else TZ=0;

          /*閃現(xiàn)調(diào)整項*/

          switch(TZ){

          case 0:w[1]=0;w[2]=0;w[3]=1;w[4]=0;w[5]=0;break;//正常時秒閃

          case 1:w[1]=0;w[2]=0;w[3]=0;w[4]=1;w[5]=1;break;//調(diào)分時分閃

          case 2:w[1]=1;w[2]=1;w[3]=0;w[4]=0;w[5]=0;break;//調(diào)時時時閃

          }

          };

          DelayMs(300);

          if(ChKey(set1)==1){ if(BUFFER[TZ+1]

          // 加法鍵

          if(ChKey(set2)==1){ if(BUFFER[TZ+1]>0) BUFFER[TZ+1]--; else BUFFER[TZ+1]=maxnum[TZ-1];DelayMs(300);};

          // 減法鍵

          DelayMs(300);

          }

          }

          }

          四. 結(jié)語

          本制作的最大問題是操聲和振動問題,盡管做了努力,還是沒有完全解決,還有改善余地。由于設計沒有考慮回擺時的顯示,顯示有明顯閃爍現(xiàn)象,也需要進一步完善。

        DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY



        上一頁 1 2 下一頁

        關(guān)鍵詞: LED時鐘 DIY 創(chuàng)意設計

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 龙口市| 琼结县| 隆林| 云林县| 百色市| 临泽县| 栾川县| 从化市| 富民县| 道真| 天柱县| 昌平区| 嫩江县| 彰武县| 瓦房店市| 无棣县| 花垣县| 威海市| 溧阳市| 湖州市| 富阳市| 故城县| 富裕县| 东乌| 都江堰市| 新丰县| 手机| 谢通门县| 平舆县| 鄂温| 成武县| 承德市| 武冈市| 临城县| 荔浦县| 襄垣县| 金寨县| 梁平县| 呈贡县| 安龙县| 宁强县|