色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于1602液晶的溫度感應(yīng)器

          基于1602液晶的溫度感應(yīng)器

          作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
          1602液晶單片機(jī)初學(xué)者必學(xué)的資源,其操作簡(jiǎn)單,可讀可寫(xiě),相比數(shù)碼管而言,其顯示更為簡(jiǎn)單。這里就不再介紹1602的具體特點(diǎn)和功能,可以去百度一下,可以搜索到很多資料。下面是我結(jié)合天祥視頻寫(xiě)的一個(gè)溫度感應(yīng)器

          --------------------------------------------------------------------------------------------------

          本文引用地址:http://cafeforensic.com/article/201611/321148.htm

          #include
          #define uint unsigned int
          #define uchar unsigned char
          uchar code table[]="The Tem is C";// 初始化溫度
          uchar code table1[]="00:00:00"; //初始化時(shí)間
          uchar code table2[]="MON TUE WEN THU FRI SAT SUN";//周日表
          uchar code wendu[]="0123456789"; //溫度顯示表
          sbit lcdrs=P1^4; //讀取命令選擇
          sbit lcdrw=P1^5; //讀/寫(xiě)數(shù)據(jù)選擇
          sbit lcden=P1^6; //使能信號(hào)

          uint num;
          uchar count,shi,fen,miao,xq,t,tt;
          void delay(uint z);


          void write_com(uchar com)
          {
          lcdrs=0;
          P2=com;
          delay(5);
          lcden=1;
          delay(5);
          lcden=0;
          }

          void write_date(uchar date)
          {
          lcdrs=1;
          P2=date;
          delay(5);
          lcden=1;
          delay(5);
          lcden=0;
          }

          void init()
          {
          lcden=0;
          lcdrw=0;
          write_com(0x38);
          write_com(0x0c);
          write_com(0x06);
          write_com(0x80);

          write_com(0x80+0x40);
          for(num=0;num<16;num++)
          write_date(table[num]);

          write_com(0x80+0x0c);
          for(num=0;num<3;num++)
          write_date(table2[num]);

          write_com(0x80+0x02);
          for(num=0;num<8;num++)
          write_date(table1[num]);
          TMOD=0x01;
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%6;
          EA=1;
          ET0=1;//開(kāi)定時(shí)器0中斷
          TR0=1;//啟動(dòng)定時(shí)器
          }

          void write_sfm(uchar add,uchar date) //第一個(gè)參數(shù)為地址,第二個(gè)參數(shù)為數(shù)據(jù) 修改時(shí)間
          {
          uchar shi,ge;
          shi=date/10;
          ge=date;
          write_com(0x80+0x02+add); //先確定地址
          write_date(0x30+shi); //數(shù)值分別送
          write_date(0x30+ge);
          }
          void write_xq(uchar xq)//參數(shù)代表位置
          {
          write_com(0x80+0x0c);
          for(num=xq;numwrite_date(table2[num]);
          }


          void showtime()
          {
          xq=0;

          if(count==20)
          {
          count=0;
          miao++;
          if(miao==60)
          {
          miao=0;
          fen++;
          if(fen==60)
          {
          fen=0;
          shi++;
          if(shi==24)
          {
          shi=0;
          xq+=4;
          if(xq==28)
          xq=0;
          write_xq(xq);
          }
          write_sfm(0,shi);
          }
          write_sfm(3,fen);
          }
          write_sfm(6,miao);
          }
          }

          void main()
          {
          init();
          showtime();
          while(1)
          {
          showtime();
          if(t==20)
          {
          t=0;
          tt++;
          if(tt==30)//30s采集一次溫度
          {
          tt=0;
          }
          }
          }

          }

          void timer0() interrupt 1
          {
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%6;
          count++;t++;
          }
          void delay(uint z)
          {
          uchar x,y;
          for(x=z;x>0;x--)
          for(y=110;y>0;y--);
          }



          評(píng)論


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

          關(guān)閉