日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 12864液晶電子時鐘+溫度顯示

          12864液晶電子時鐘+溫度顯示

          作者: 時間:2012-08-06 來源:網(wǎng)絡 收藏

          void delay(uint t)
          {
          uint i,j;
          for(i=120;i>0;i--);
          for(j=t;j>0;j--);
          }
          /**********************************************************
          void delay_us(uchar t) //延時計算公式:5+2*t
          {
          while(--t);
          }
          ***********************************************************/
          void read_busy()
          {
          EN=0;
          RW=1;
          RS=0;
          EN=1;
          while(P00x80);
          EN=0;
          }
          void write_com(uchar com) //寫命令
          {
          read_busy();
          EN=1;
          RS=0;
          RW=0;
          P0=com;
          delay(1);
          EN=0;

          }
          void write_dat(uchar dat) //寫數(shù)據(jù)
          {
          read_busy();
          EN=1;
          RS=1;
          RW=0;
          P0=dat;
          delay(1);
          EN=0;
          }

          控制閃爍的函數(shù)如下:

          void shan(void)
          {
          uchar i;
          write_com(0x94); //將數(shù)據(jù)寫在0x94地址上
          if(f==1) //按鍵按一下年開份始閃爍
          {
          {
          tab2[8]=' '; //向要閃爍的位置寫空格
          tab2[9]=' ';
          }
          for (i=8;i=15;i++)
          {
          write_dat(tab2[i]); //寫數(shù)據(jù)
          }
          goto return1;
          }
          if(f==2) //按鍵按兩下月份開始閃爍
          {
          {
          tab2[11]=' ';
          tab3[12]=' ';

          }

          for (i=8;i=15;i++)
          {
          write_dat(tab2[i]);
          }
          goto return1;
          }
          if(f==3) //按鍵按三下,日期開始閃爍
          {
          {
          tab2[14]=' ';
          tab2[15]=' ';
          }
          for (i=8;i=15;i++)
          {
          write_dat(tab2[i]);
          }

          goto return1;
          }
          write_com(0x8b);
          if(f==4) //按鍵按四下,小時開始閃爍
          {
          {
          tab3[6]=' ';
          tab3[7]=' ';
          }
          for (i=6;i=13;i++)
          {
          write_dat(tab3[i]);
          }

          goto return1;
          }
          if(f==5) //按鍵按五下,分鐘開始閃爍
          {
          {
          tab3[9]=' ';
          tab3[10]=' ';
          }
          for (i=6;i=13;i++)
          {
          write_dat(tab3[i]);
          }

          goto return1;
          }
          if(f==6) //按鍵按六下,秒開始閃爍
          {
          {
          tab3[12]=' ';
          tab3[13]=' ';
          }
          for (i=6;i=13;i++)
          {
          write_dat(tab3[i]);
          }

          goto return1;
          }
          if(f==7) //按鍵按七下,調(diào)時完畢,停止閃爍,開始走時
          {
          {
          for (i=6;i=13;i++)
          {
          write_dat(tab3[i]);
          TR0=1; //時間設定完畢,打開定時器
          }
          }
          }

          return1:_nop_();

          }

          顯示數(shù)組:

          uchar code tab1[]="時鐘 + ";
          uchar tab2[16]="日期:20";
          uchar tab3[14]="時間:";
          uchar tab4[12]="當前溫度:" ;

          定時器初始化,ASCii碼轉換

          /**********************************************************
          程序功能:液晶顯示電子時鐘(包括年月日時分秒),具有閃爍,移位,調(diào)時功能
          并顯示當前溫度
          程序編譯環(huán)境:keil4
          程序運行環(huán)境:HJM-1
          整理人:張家越 QQ:435835181
          整理時間:2011-04-17

          *********************************************************/
          #include reg52.h>
          #include"lcd.h"
          #include intrins.h>
          #include "flash.h"
          #include"scan.h"
          #include "18B20.h"
          uchar tempreture[2];
          #define uchar unsigned char
          #define uint unsigned int
          uchar utime; //定時20ms,每20ms,utime++
          void shan(); //控制閃爍函數(shù)
          void tkey(void); //按鍵處理函數(shù)

          void init_clock() //定時器初始化函數(shù)
          {
          TMOD=0x01;
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%256;
          ET0=1 ;
          EA=1;
          TR0=1;
          }
          void iscii_change() //將需要顯示的時間轉換成ISCii碼
          {
          tab3[6]=clock[3]/10+0x30;
          tab3[7]=clock[3]%10+0x30;

          tab3[8]=0x3a;
          tab3[9]=clock[4]/10+0x30;
          tab3[10]=clock[4]%10+0x30;

          tab3[11]=0x3a;
          tab3[12]=clock[5]/10+0x30;
          tab3[13]=clock[5]%10+0x30;

          tab2[8]=clock[0]/10+0x30;
          tab2[9]=clock[0]%10+0x30;
          tab2[10]=0x2d;
          tab2[11]=clock[1]/10+0x30;
          tab2[12]=clock[1]%10+0x30;
          tab2[13]=0x2d;
          tab2[14]=clock[2]/10+0x30;
          tab2[15]=clock[2]%10+0x30;

          tab4[10]=temp/10+0x30;
          tab4[11]=temp%10+0x30;
          }
          void display() //顯示函數(shù)
          {
          uchar i;
          write_com(0x80);
          for(i=0;i16;i++)
          {
          write_dat(tab1[i]);
          }
          write_com(0x90);
          for(i=0;i16;i++)
          {
          write_dat(tab2[i]);
          }
          write_com(0x88);
          for(i=0;i14;i++)
          {
          write_dat(tab3[i]);
          delay(1);
          }
          write_com(0x98);
          for(i=0;i12;i++)
          {
          write_dat(tab4[i]);
          }
          }
          void main()
          {
          init_clock();
          init_12864();

          while(1)
          {
          Read_temp();
          iscii_change();
          display();
          tkey();
          shan();


          }

          }



          評論


          相關推薦

          技術專區(qū)

          關閉