• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于AT89S52單片機(jī)的8×8 LED點(diǎn)陣顯示屏的設(shè)計(jì)

      2019-07-23 07:21:16孫陳英
      通信電源技術(shù) 2019年6期
      關(guān)鍵詞:低電平原理圖字符

      孫陳英

      (江蘇省江陰中等專業(yè)學(xué)校,江蘇 江陰 214400)

      0 引 言

      LED點(diǎn)陣顯示屏因具有色彩鮮艷、功耗低、工作穩(wěn)定及亮度高等優(yōu)點(diǎn),被廣泛應(yīng)用與商場(chǎng)、公交站臺(tái)、銀行及車站等公共場(chǎng)所,可以動(dòng)態(tài)流水顯示各種各樣的字符、數(shù)字及漢字。本文選用8×8 LED點(diǎn)陣(1588BS)設(shè)計(jì)一塊可以顯示“Happy Birthday!”的顯示屏來取代蛋糕上的紙質(zhì)賀卡,實(shí)現(xiàn)由靜態(tài)到動(dòng)態(tài),由無光到有光的感官效果。

      1 8×8 LED點(diǎn)陣的電路原理圖設(shè)計(jì)和字符取碼

      1.1 8×8 LED點(diǎn)陣電路原理圖設(shè)計(jì)

      8×8 LED點(diǎn)陣是由64只發(fā)光二極管以8行、8列的形式呈現(xiàn),根據(jù)發(fā)光顏色可分為單色、雙色及三色。本文選用的1588BS是單色8×8 LED點(diǎn)陣,根據(jù)其內(nèi)部結(jié)構(gòu)可知,為使某一個(gè)LED點(diǎn)亮,只需讓其對(duì)應(yīng)的列送低電平,對(duì)應(yīng)的行送高電平即可。當(dāng)需要多個(gè)LED同時(shí)被點(diǎn)亮?xí)r,只需讓其對(duì)應(yīng)的行列根據(jù)LED點(diǎn)亮情況送相應(yīng)的高低電平。

      點(diǎn)陣行列高低電平的輸入通過編寫程序來控制,程序的編寫要和電路原理圖相結(jié)合。對(duì)于單個(gè)8×8 LED點(diǎn)陣,其驅(qū)動(dòng)電路比較簡單,選用單片機(jī)最小系統(tǒng)電路,包括單片機(jī)芯片、晶振、復(fù)位及電源電路,同時(shí)用單片機(jī)的P0口加上拉電阻直接驅(qū)動(dòng)點(diǎn)陣的行,P2口直接驅(qū)動(dòng)點(diǎn)陣的列。為了便于仿真和調(diào)試,用PROTEUS仿真軟件繪制電路原理圖[1]。

      1.2 8×8 LED點(diǎn)陣的字符取碼

      分析字符在LED點(diǎn)陣的顯示原理,首先要分析字符的顯示代碼。字符的顯示通過動(dòng)態(tài)掃描顯示方式來實(shí)現(xiàn),掃描方式有行掃描和列掃描兩種。本文采用列掃描來分析顯示字符“H”的動(dòng)態(tài)掃描過程,字符H的點(diǎn)陣示意圖如圖1所示。

      圖1 字符H的點(diǎn)陣示意圖

      掃描第一列,只需給第一列送低電平,列輸入數(shù)據(jù)為01111111;根據(jù)字符“H”的字形,需要第一行至第七行的LED點(diǎn)亮;根據(jù)LED的顯示原理,行輸入數(shù)據(jù)讓需要點(diǎn)亮的LED所在行送高電平,無需點(diǎn)亮的送低電平,可以得出二進(jìn)制數(shù)據(jù)編碼為11111110;結(jié)合電路原理圖得知P0.0連接的是點(diǎn)陣第一行,而P0.7連接的是點(diǎn)陣第八行,所以將二進(jìn)制編碼轉(zhuǎn)換為十六進(jìn)制編碼為0x7F[2]。

      按照此方法依次掃描其余幾列,可以得出字符H的數(shù)據(jù)編碼如表1所示。單片機(jī)反復(fù)重復(fù)掃描第一列至第八列,雖然是逐列掃描,逐列顯示,但是可以合理控制循環(huán)掃描的時(shí)間,利用人眼的視覺滯留效應(yīng),看到的是各列同時(shí)點(diǎn)亮,出現(xiàn)一個(gè)完整的字符H。

      按照此方法可以分析得出所有字符的數(shù)據(jù)編碼,但是一般在多個(gè)字符取碼中,為了提高效率,常采用取模軟件來進(jìn)行取碼。經(jīng)取模軟件取碼得出“Happy Birthday!”中所有字符的編碼。

      表1 H字符點(diǎn)陣數(shù)據(jù)編碼

      2 8×8 LED點(diǎn)陣動(dòng)態(tài)顯示“Happy Birthday!”程序設(shè)計(jì)

      在分析得出各個(gè)字符數(shù)據(jù)編碼的基礎(chǔ)上,點(diǎn)陣行列高低電平的輸入需要通過編寫程序來實(shí)現(xiàn)[3],下面是動(dòng)態(tài)流水顯示“Happy Birthday!”的程序編寫。

      #include <reg52.h>

      #define uchar unsigned char

      #define uint unsigned int

      uchar time,yw,i;

      uchar code dat[]={

      0x7F,0x08,0x08,0x08,0x7F, // -H-

      0x24,0x54,0x54,0x38,0x40, // -a-

      0xFC,0x24,0x24,0x24,0x18, // -p-

      0xFC,0x24,0x24,0x24,0x18, // -p-

      0x9C,0xA0,0xA0,0x90,0x7C, // -y-

      0x00,0x00,0x00,0x00,0x00, // - -

      0x7F,0x49,0x49,0x49,0x36, // -B-

      0x00,0x00,0x79,0x00,0x00, // -i-

      0x04,0x78,0x04,0x04,0x08, // -r-

      0x04,0x3F,0x44,0x44,0x24, // -t-

      0x7F,0x08,0x04,0x04,0x78, // -h-

      0x38,0x44,0x44,0x28,0x7F, // -d-

      0x24,0x54,0x54,0x38,0x40, // -a-

      0x9C,0xA0,0xA0,0x90,0x7C, // -y-

      0x00,0x00,0x5F,0x00,0x00, // -!-

      0x00,0x00,0x00,0x00,0x00, // - -

      0x00,0x00,0x00,0x00,0x00, // - -

      0x00,0x00,0x00,0x00,0x00, // - -

      };

      void delay(uint x)// 延遲函數(shù)結(jié)束

      {

      uint i,j; // 聲明變量

      for(i=0;i<x;i++) // 外循環(huán) xms

      for(j=0;j<10;j++); // 內(nèi)循環(huán) 1ms

      }

      void INit()

      {

      TMOD|=0x01;//定時(shí)器0 模式1 16位定時(shí)模式

      TH0=(65536-10000)/256;//定時(shí)10.000ms

      TL0=(65536-10000)%256;

      ET0=TR0=EA=1;//定時(shí)器開始計(jì)數(shù)

      }

      main () // 主程序開始

      { // 聲明變量

      INit();

      while(1) // 無窮循環(huán)

      {

      for(i=0;i<8;i++) // 掃描 8 列

      {

      P2=~(0x01<<i);// 掃描第一列

      P0=dat [i+yw];// 輸出行數(shù)據(jù)

      delay(1); // 延遲 1ms

      P0=0x00;//清影

      } // 掃描8列 (i循環(huán))結(jié)束

      }

      }

      void timer0() interrupt 1

      {

      TH0=(65536-10000)/256;//10.000ms 進(jìn)入一次中斷

      TL0=(65536-10000)%256;

      time++;

      if(time==10)//到100.000ms時(shí)間加以實(shí)現(xiàn)移動(dòng) 用于控制移動(dòng)速度

      {

      time=0;

      yw++;

      if(yw>80)yw=0;

      }

      }

      將程序編譯完成后生成HEX文件,下載至單片機(jī),打開PROTEUS仿真軟件運(yùn)行后即可以看到動(dòng)態(tài)流水顯示“Happy Birthday!”。

      3 結(jié) 論

      文中以AT89S52芯片為硬件基礎(chǔ),完成了8×8 LED點(diǎn)陣顯示字符的的硬件和軟件設(shè)計(jì)。仿真效果表明,該方案有效可行。其中編寫單片機(jī)驅(qū)動(dòng)點(diǎn)陣程序來顯示字符是學(xué)習(xí)8×8 LED點(diǎn)陣的要點(diǎn)。

      猜你喜歡
      低電平原理圖字符
      數(shù)字電路中“邏輯非”的用法辨析
      尋找更強(qiáng)的字符映射管理器
      鐵道車輛高/低電平信號(hào)智能發(fā)生器設(shè)計(jì)
      淺談STM32核心板原理圖設(shè)計(jì)
      字符代表幾
      電路原理圖自動(dòng)布圖系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      一種USB接口字符液晶控制器設(shè)計(jì)
      電子制作(2019年19期)2019-11-23 08:41:50
      基于Protel DXP 2004層次原理圖的設(shè)計(jì)
      2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
      消失的殖民村莊和神秘字符
      西和县| 兴业县| 耒阳市| 玛纳斯县| 绍兴市| 宜昌市| 白城市| 固阳县| 瑞昌市| 清涧县| 八宿县| 张家口市| 奉新县| 荆门市| 天镇县| 荔浦县| 手机| 双峰县| 唐海县| 吉木萨尔县| 泸定县| 巨野县| 大兴区| 桓台县| 梅州市| 兴和县| 云浮市| 奉节县| 万安县| 修水县| 平谷区| 彰武县| 成武县| 清水县| 醴陵市| 梅河口市| 大安市| 抚远县| 淅川县| 遂平县| 鄯善县|