<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ī)定時(shí)器實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘程序-lcd1602顯示

          單片機(jī)定時(shí)器實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘程序-lcd1602顯示

          作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
          本程序所用的原理圖下載:http://www.51hei.com/f/HL-1V6.5.pdf,單片機(jī)芯片使用的stc89c52;找到1602液晶部分的原理圖即可.這是一張單片機(jī)開(kāi)發(fā)板的整體圖.

          下面是程序的源代碼:

          /**
          *功能:在LCD1602上顯示當(dāng)前時(shí)間(Time)和日期(Date)
          * 自動(dòng)計(jì)時(shí),可計(jì)時(shí)年月日(包括平年和閏年)
          * 可用按鍵調(diào)整時(shí)間和日期
          * L *****************************
          * C * Time: 00 Date: *
          * D * 00:00 2013-06-05 *
          * ******************************
          *作者:徐冉
          *日期:2013-06-05-19:10-22:50~2013-06-06-07:20-10:20
          *備注:此程序已經(jīng)通過(guò)調(diào)試,已做修改。耗時(shí):5小時(shí)30分鐘
          **/
          /****************AT89C52-RC MCU******************************/
          /********************51hei單片機(jī)實(shí)驗(yàn)板****************************/
          #include
          typedef unsigned int uint;
          typedef unsigned char uchar;
          sbit RS = P1^0;
          sbit RW = P1^1;
          sbit EN = P2^5;
          sbit wela = P2^7;
          sbit dula = P2^6;
          sbit BUSY = P0^7;
          sbit FM = P2^3;
          uchar counter,tshi, tfen, tmiao;
          uchar sshi, sge, fshi, fge, mshi, mge;
          uint nian;
          uchar yue, ri;
          uchar nqian, nbai, nshi, nge, yshi, yge, rshi, rge;
          uchar code time[] = "Time:";
          uchar code date[] = "Date:";
          //delay:xms
          void delay(uint xms)
          {
          uchar i, j;
          for(i = 0; i < xms; i++)
          for(j = 0; j < 125; j++);
          }
          //wait:
          void wait()
          {
          P0 = 0xff;
          RS = 0;
          RW = 1;
          EN = 0;
          EN = 1;
          while(BUSY == 1);
          EN = 0;
          }
          //write:cmd
          void write_cmd(uchar cmd)
          {
          wait(); //寫(xiě)數(shù)據(jù)和命令時(shí),必須進(jìn)行判忙等待?。?!
          RS = 0;
          RW = 0;
          EN = 0;
          P0 = cmd;
          EN = 1;
          EN = 0;
          }
          //write:data
          void write_data(uchar dat)
          {
          wait();//寫(xiě)入數(shù)據(jù)之前必須進(jìn)行判忙等待,否則數(shù)據(jù)將寫(xiě)入不成功?。?!
          RS = 1;
          RW = 0;
          EN = 0;
          P0 = dat;
          EN = 1;
          EN = 0;
          }
          //LCD1602:init
          void init()
          {
          nian = 2013;
          yue = 6;
          ri = 5;
          wela = 0;
          dula = 0;
          P1 = 0xff;
          delay(10);
          write_cmd(0x38);
          delay(5);
          write_cmd(0x38);
          delay(5);
          write_cmd(0x38);
          wait();
          write_cmd(0x38);
          wait();
          write_cmd(0x0c);
          wait();
          write_cmd(0x06);
          wait();
          write_cmd(0x01);
          }
          //timer1:init
          void timer1_init()
          {
          TMOD = 0x10;
          TH1 = 0xB8;
          TL1 = 0x00;
          TR1 = 1;
          EA = 1;
          ET1 = 1;

          }
          //write:byteaddress
          void write_pos(uchar add)
          {
          write_cmd(add| 0x80);
          }
          //write:string
          void send_string(uchar *str)
          {
          while(*str != 看屁屁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); })();