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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機驅(qū)動點陣向上流動顯示I Love U -Love漂亮的心形

          單片機驅(qū)動點陣向上流動顯示I Love U -Love漂亮的心形

          作者: 時間:2016-12-02 來源:網(wǎng)絡 收藏
          原理圖可以從http://www.51hei.com/f/ks51.pdf 這里下載,單片機型號是stc89c51

          /**
          *功能:點陣向上流動顯示I Love U -Love是漂亮的心形
          *時間:2014年3月10日16:19:14
          *作者:寒竹子
          *備注:動畫顯示原理:動畫由32張圖片形成,每一毫秒刷新一幀圖片,每250ms變化一幀,共32幀。
          **/

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

          #include

          typedef unsigned int uint;
          typedef unsigned char uchar;

          //74HC138
          sbit ADDR0 = P1^0;
          sbit ADDR1 = P1^1;
          sbit ADDR2 = P1^2;
          sbit ADDR3 = P1^3;
          sbit ENLED = P1^4;

          //I Love U 取模編碼
          uchar code table[] = {/*寬8,高40*/
          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//開始全黑
          0xFF,0xC3,0xE7,0xE7,0xE7,0xE7,0xC3,0xFF,//I
          0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7,//heart
          0xFF,0x99,0x99,0x99,0x99,0x99,0x81,0xC3,//U
          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF//消隱,去掉亂碼
          };

          uchar counter = 0, index = 0;//圖片刷新索引(要刷新32張,每張間隔250ms)

          void timer0_init();
          void HC138_init();

          void main(void)
          {
          timer0_init();
          HC138_init();

          while (1);
          }

          /********timer0 init**********/
          void timer0_init()
          {
          TMOD |= 0x01;//T1 方式1
          TH0 = 0xFC;
          TL0 = 0x67;//裝入初值,定時1ms
          TR0 = 1;//start T0
          EA = 1;//開總中斷
          ET0 = 1;//開定時器T0中斷
          }

          /**********74HC138 init************/
          void HC138_init()
          {
          ADDR3 = 0;
          ENLED = 0;//使能U4
          }

          /**************timer0 interrupt**************/
          void timer0_int() interrupt 1
          {
          static uchar j = 0;//用于刷新每一幀圖片,動畫由32張圖片構(gòu)成

          TH0 = 0xFC;
          TL0 = 0x67;//1ms
          counter++;//ms++
          P0 = 0xFF;//消隱

          //動態(tài)刷新(刷新每一幀)
          switch (j)
          {
          case 0: ADDR2 = 0; ADDR1 = 0; ADDR0 = 0;
          break;
          case 1: ADDR2 = 0; ADDR1 = 0; ADDR0 = 1;
          break;
          case 2: ADDR2 = 0; ADDR1 = 1; ADDR0 = 0;
          break;
          case 3: ADDR2 = 0; ADDR1 = 1; ADDR0 = 1;
          break;
          case 4: ADDR2 = 1; ADDR1 = 0; ADDR0 = 0;
          break;
          case 5: ADDR2 = 1; ADDR1 = 0; ADDR0 = 1;
          break;
          case 6: ADDR2 = 1; ADDR1 = 1; ADDR0 = 0;
          break;
          case 7: ADDR2 = 1; ADDR1 = 1; ADDR0 = 1;
          break;
          default: break;
          }
          P0 = table[index + j++];//動態(tài)刷新每一幀圖片

          if (j >= 8)
          {
          j = 0;
          }

          //變化幀
          if (counter >= 250)
          {
          counter = 0;
          index++;//幀數(shù)++
          if (index >= 32)
          {
          index = 0;//最多32幀圖片
          }
          }
          }



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();