基于單片機的LED點陣廣告牌設計.doc_第1頁
基于單片機的LED點陣廣告牌設計.doc_第2頁
基于單片機的LED點陣廣告牌設計.doc_第3頁
基于單片機的LED點陣廣告牌設計.doc_第4頁
基于單片機的LED點陣廣告牌設計.doc_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于單片機的 LED 點陣廣告牌設計 摘要摘要 本設計使用 AT89C51 系列高速單片機作為主控制模塊 利用簡單的外圍電 路來驅動 64 16 的點陣 LED 顯示屏 利用 AT89C51 系列高速單片機本身強大 的功能 可以很方便的實現單片機與 PC 機間的數據傳輸及存儲 并能利用軟 件方便的進行顯示內容的多樣變化 另一方面點陣顯示屏廣泛的應用于醫院 機場 銀行等公共場所 所以本設計具有很強的現實應用性 本 LED 顯示屏能夠以動態掃描的方式同時顯示 4 個 16 16 點陣漢字 并能 通過上位機軟件修改顯示內容和顯示效果等等 把字符內碼存儲在空閑的單片 機程序存儲器空間 使本 LED 顯示系統能掉電存儲 1024 個字符 設計中采用 了 SPI 接口的 GB2312 標準字庫 支持所有的國標字符和 ASCII 標準字符的顯 示 因為采用串行傳輸方式 使本系統的可擴展性得到提升 便于多個顯示單 元的級聯 本文從 LED 的顯示原理入手 詳細闡述了 LED 動態顯示的過程 以及硬 件電路的設計 計算和軟件的算法 關鍵詞 動態顯示 單片機 點陣字庫 AbstractAbstract This design uses STC12C series MCU as a main controller and depends on a simple external circuit to drive 96 16 the lattice LED display By using its own powerful functions and capacity of internal E2PROM it is easy to accomplish the MCU and PC and E2PROM for internal storage data transmission equipment and it also can be used conveniently to show a variety of content changes The other dot matrix display is widely used in hospitals airports banks and other public places Therefore the design has a strong practical application The LED Display dynamic scan can show the way at the same time six 16 16 dot matrix Chinese characters and PC software can modify the content and effect shows and so on IAP used in the application of programmable technology the characters within the code stored in the SCM free program memory space so that the LED display system can store 1 024 brown out characters SPI used in the design of the interface standard GB2312 character to support all the GB2312 standard ASCII characters and characters of the show Because serial transmission used so that the system can be enhanced scalability for a number of display units of the cascade This article from the start LED display principle elaborated on the LED display dynamic process as well as hardware circuit design computing and software algorithms KeyKey Words Words MCU Serial Data Transfer Llattice Llibrary 目錄目錄 1 LED 概述 6 1 1 LED 電子顯示屏概述 6 1 2 LED 電子顯示屏的分類 6 2 顯示原理及控制方式分析 7 2 1 LED 點陣模塊結構 7 2 2 LED 動態顯示原理 7 2 3 LED 常見的控制方式 8 3 硬件電路設計 10 3 1 系統硬件概述 10 3 2 16 16LED 點陣顯示制作 11 3 2 1 16 16LED 點陣的內部結構及工作原理 11 3 2 2 用 8 8LED 點陣構成 16 16LED 點陣 12 3 3 主控單片機的接口說明 14 3 4 LED 顯示驅動電路 14 4 字模生成 16 4 1 字模簡介 16 4 1 1 LED 顯示屏領域字模實現技術 16 4 1 2 軟件控制系統字模提取的分析與設計 16 4 2 字模存儲技術 17 4 3 字庫生成 17 5 軟件設計 19 5 1 程序設計總體思路和結構 19 5 1 1 程序設計總體思路 19 5 1 2 程序流程圖 19 5 2 各模塊程序設計 20 5 2 1 系統初始化 20 5 2 2 LED 動態顯示 20 5 2 3 漢字顯示的原理 20 6 系統功能測試 22 6 1 單元模塊電路測試 22 6 2 系統整體功能測試 22 總結 23 致謝 24 參考文獻 25 附錄 26 引引 言言 LED Light Emitting Diode 發光二極管 簡稱 LED 是一種能夠將電 能轉化為可見光的固態的半導體器件 它可以直接把電轉化為光 LED 的心臟 是一個半導體的晶片 晶片的一端附在一個支架上 一端是負極 另一端連接 電源的正極使整個晶片被環氧樹脂封裝起來 半導體晶片由兩部分組成 一部 分是 P 型半導體 在它里面空穴占主導地位 另一端是 N 型半導體 在這邊主 要是電子 但這兩種半導體連接起來的時候 它們之間就形成一個 P N 結 當電流通過導線作用于這個晶片的時候 電子就會被推向 P 區 在 P 區里電子 跟空穴復合 然后就會以光子的形式發出能量 這就是 LED 發光的原理 多個 LED 發光燈組成固定的字符或圖形進行顯示 即形成 LED 點陣圖文顯 示屏 其主要特征是只控制 LED 點陣中各發光器件的通斷 發光或熄滅 而不 控制 LED 的發光強弱 LED 點陣的漢字顯示方式是先根據所需要的漢字提取漢 字點陣 如 16 16 點陣 將點陣文件存入 ROM 形成新的漢字編碼 而在使 用時則需要先根據新的漢字編碼組成語句 再由 MCU 根據新編碼提取相應的點 陣進行漢字顯示 LED 點陣顯示具有如下特點 1 電壓 LED 使用低壓電源 供電電壓在 6 24V 之間 根據產品不同 而異 所以它是一種比使用高壓電源更安全的電源 2 效能 消耗能量比同光效的白熾燈減少 80 3 適用性 每個單元 LED 小片是 3 5mm 的正方形 所以可以制備成各 種形狀的器件 并且適合于易變的環境 4 穩定性 10 萬小時 光衰為初始的 50 5 響應時間 其白熾燈的響應時間為毫秒級 LED 燈的響應時間為納 秒級 6 對環境污染 無有害金屬汞 7 顏色 改變電流可以變色 發光二極管方便地通過化學修飾方法 調整材料的能帶結構和帶隙 實現紅黃綠蘭橙多色發光 由于 LED 的眾多優勢 在市場中得到了廣泛的應用 主要應用領域有 1 信號指示應用 信號照明是 LED 單色光應用比較廣泛也是比較早的 一個領域 約占 LED 應用市場的 4 左右 2 顯示應用 指示牌 廣告牌 大屏幕顯示等 LED 用于顯示屏幕的 應用約占 LED 應用的 20 25 顯示屏幕可分為單色和彩色 3 照明應用 便攜燈具 汽車用燈 特殊照明 由于 LED 尺寸小 便 于動態的亮度和顏色控制 因此比較適合用于建筑裝飾照明 背光照明 普通 電子設備功能顯示背光源 筆記本電腦背光源 大尺寸超大尺寸 LCD 顯示器背 光源等 以及投影儀用 RGB 光源 1 1 LEDLED 概述概述 1 11 1 LEDLED 電子顯示屏概述電子顯示屏概述 LED 電子顯示屏 Light Emitting Diode Panel 是由幾百 幾十萬個半 導體發光二極管構成的像素點 按矩陣均勻排列組成 利用不同的半導體材料 可以制造不同色彩的 LED 像素點 目前應用最廣的是紅色 綠色 黃色 而藍 色和純綠色 LED 的開發已經達到了實用階段 LED 顯示屏是一種通過控制半導 體發光二極管的亮度的方式 來顯示文字 圖形 圖像 動畫 行情 視頻 錄像信號等各種信息的顯示屏幕 LED 顯示屏分為圖文顯示屏和條幅顯示屏 均由 LED 矩陣塊組成 圖文顯 示屏可與計算機同步顯示漢字 英文文本和圖形 而條幅顯示屏則適用于小容 量的字符信息顯示 LED 顯示屏因為其像素單元是主動發光的 具有亮度高 視角廣 工作電壓低 功耗小 壽命長 耐沖擊和性能穩定等優點 因而被廣 泛應用于車站 碼頭 機場 商場 醫院 賓館 銀行 證券市場 建筑市場 拍賣行 工業企業管理和其它公共場所 LED 顯示屏的發展前景極為廣闊 目前正朝著更高亮度 更高氣候耐受性 更高的發光密度 更高的發光均勻性 可靠性 全色化方向發展 1 21 2 LEDLED 電子顯示屏的分類電子顯示屏的分類 按顏色分類 單基色顯示屏 單一顏色 紅色或綠色 雙基色顯示屏 紅和綠雙基色 256 級灰度 可以顯示 65536 種顏色 全彩色顯示屏 紅 綠 藍三基色 256 級灰度的全彩色顯示屏可以顯示一千 六百多萬種顏色 按顯示器件分類 LED 數碼顯示屏 顯示器件為 7 段碼數碼管 適于制作時鐘屏 利率屏等 顯 示數字的電子顯示屏 LED 點陣圖文顯示屏 顯示器件是由許多均勻排列的發光二極管組成的點陣顯 示模塊 適于播放文字 圖像信息 按使用場合分類 室內顯示屏 發光點較小 一般 3mm 8mm 顯示面積一般零點幾至十幾平 方米 室外顯示屏 面積一般幾十平方米至幾百平方米 亮度高 可在陽光下工作 具有防風 防雨 防水功能 按發光點直徑分類 室內屏 3mm 3 75mm 5mm 室外屏 10mm 12mm 16mm 19mm 21mm 26mm 室外屏發光的基本單元為發光筒 發光筒的原理是將一組紅 綠 藍發光二極 管封在一個塑料筒內共同發光增強亮度 2 2 顯示原理及控制方式分析顯示原理及控制方式分析 2 12 1 LEDLED 點陣模塊結構點陣模塊結構 八十年代以來出現了組合型 LED 點陣顯示器模塊 以發光二極管為像素 它用高亮度發光二極管芯陣列組合后 環氧樹脂和塑模封裝而成 這種一體化 封裝的點陣 LED 模塊 具有高亮度 引腳少 視角大 壽命長 耐濕 耐冷熱 耐腐蝕等特點 LED 點陣規模常見的有 4 4 4 8 5 7 5 8 8 8 16 16 等等 根據像素顏色的數目可分為單色 雙基色 三基色等 像素顏色不同 所 顯示的文字 圖象等內容的顏色也不同 單色點陣只能顯示固定色彩如紅 綠 黃等單色 雙基色和三基色點陣顯示內容的顏色由像素內不同顏色發光二極管 點亮組合方式決定 如紅綠都亮時可顯示黃色 如果按照脈沖方式控制二極管 的點亮時間 則可實現 256 或更高級灰度顯示 即可實現真彩色顯示 圖 2 1 示出最常見的 8 8 單色 LED 點陣顯示器的內部電路結構和外型規格 其它型號點陣的結構與引腳可試驗獲得 圖 2 1 8 8 單色 LED 模塊內部電路 LED 點陣顯示器單塊使用時 既可代替數碼管顯示數字 也可顯示各種中 西文字及符號 如 5x7 點陣顯示器用于顯示西文字母 5 8 點陣顯示器用于顯 示中西文 8x8 點陣可以用于顯示簡單的中文文字 也可用于簡單圖形顯示 用多塊點陣顯示器組合則可構成大屏幕顯示器 但這類實用裝置常通過 PC 機或 單片機控制驅動 2 22 2 LEDLED 動態顯示原理動態顯示原理 LED 點陣顯示系統中各模塊的顯示方式 有靜態和動態顯示兩種 靜態顯 示原理簡單 控制方便 但硬件接線復雜 在實際應用中一般采用動態顯示方 式 動態顯示采用掃描的方式工作 由峰值較大的窄脈沖電壓驅動 從上到下 逐次不斷地對顯示屏的各行進行選通 同時又向各列送出表示圖形或文字信息 的列數據信號 反復循環以上操作 就可顯示各種圖形或文字信息 點陣式 LED 漢字廣告屏絕大部分是采用動態掃描顯示方式 這種顯示方式 巧妙地利用了人眼的視覺暫留特性 將連續的幾幀畫面高速的循環顯示 只要 幀速率高于 24 幀 秒 人眼看起來就是一個完整的 相對靜止的畫面 最典型 的例子就是電影放映機 在電子領域中 因為這種動態掃描顯示方式極大的縮 減了發光單元的信號線數量 因此在 LED 顯示技術中被廣泛使用 以 8 8 點陣模塊為例 說明一下其使用方法及控制過程 圖 2 1 中 紅色 水平線 Y0 Y1 Y7 叫做行線 接內部發光二極管的陽極 每一行 8 個 LED 的 陽極都接在本行的行線上 相鄰兩行線間絕緣 同樣 藍色豎直線 X0 X1 X7 叫做列線 接內部每列 8 個 LED 的陰極 相鄰兩列線間絕緣 在這種形式的 LED 點陣模塊中 若在某行線上施加高電平 用 1 表示 在某列線上施加低電平 用 0 表示 則行線和列線的交叉點處的 LED 就會 有電流流過而發光 比如 Y7 為 1 X0 為 0 則右下角的 LED 點亮 再如 Y0 為 1 X0 到 X7 均為 0 則最上面一行 8 個 LED 全點亮 現描述一下用動態掃描顯示的方式 顯示字符 B 的過程 其過程如圖 2 2 圖 2 2 用動態掃描顯示字符 B 的過程 2 32 3 LEDLED 常見的控制方式常見的控制方式 目前常見的是并行傳輸方式 見附錄 1 1 通過 8 位鎖存器將 8 位總線上 的列數據進行鎖存顯示 各 8 位鎖存器的片選信號由譯碼器提供 此種方式的 優點是傳輸速度快 對微控制器 MCU 的通信速度要求較低 但是這種方案最 大的缺點是不便于隨意擴展顯示單元的數目 每增加一個 16 16 點陣的全角漢 字顯示單元 就需要在之前的電路上多增加兩根地址線 這就要求在 PCB 布線 的時候要留有充足的地址線冗余量 再一個缺點是 每個單元的 PCB 隨著安放 位置的不同 布線結構也不相同 不利于廠家批量生產 并行傳輸需要的芯片 較多 因此市場上已經出現用 FPGA CPLD 等高密度可編程邏輯器件 PLD 來取 代傳統鎖存器 IC 的方案 成本有所下降 但可擴展性仍舊較差 因此 并行傳 輸方式適用于顯示單元數目確定的條屏 隨著廣告屏顯示內容的多媒體化 對控制器傳輸速度 運算能力的要求越 來越高 因此控制器的種類也在不斷發展以適應要求 從最初的 8051 單片機 到 PIC 單片機 又到 FPGA 直到現在的 ARM 處理器 不同功能檔次的廣告屏對 應著不同的處理器 一 以傳統 8051 單片機為控制器的 LED 顯示屏 因受到單片機運算速度及 通信速率的限制 LED 動態顯示的刷新率不可能做得太高 對顯示效果和移動 算法的處理也比較吃力 在實際顯示效果上有比較明顯的閃爍感 除此之外 傳統 8051 單片機的內部資源貧乏 僅 128 字節的數據存儲器 幾 K 字節的程序 存儲器 無 E2PROM SPI 這就需要對單片機擴展外設 無疑增加了硬件成本 因此 8051 控制的條屏只能用于顯示內容及其簡單 不需要經常更改顯示內容 的場合 二 以 PIC 單片機為控制器的 LED 顯示屏 因 PIC 單片機是 RISC 架構的工 業專用單片機 處理指令的速度有所增加 抗干擾能力優秀 型號種類繁多 作為條屏的控制器 可以明顯的改善顯示效果 同時 PIC 單片機內部的資源較 豐富 可節省外部電路設計難度 同時降低了硬件成本 因此 以 PIC 單片機 為控制器的條屏目前仍是單色條屏市場的主流 三 以 FPGA 復雜可編程邏輯門陣列 為控制器的 LED 顯示屏 FPGA 以高 速 并行著稱 是近年來新興的可編程邏輯器件 用他作為 LED 顯示屏的控制 器 能夠高速的處理色階 PWM 信號 高速的完成動態掃描邏輯 高速的完成字 符移動算法 因此被運用于雙基色 三基色的顯示系統 但是其成本較高 開 發難度較大 四 以 ARM 32 位 RISC 架構高性能微處理器 為控制器的 LED 顯示屏 ARM 有著極高的指令效率 極高的時鐘頻率 因此其運算能力非常強大 內部 資源也十分豐富 極大的簡化了硬件設計的難度 縮短了開發周期 在條屏的 運用中 能用 ARM 來實現花樣繁多的顯示方式 以及高色階 多像素的全彩屏 驅動 ARM 與 FPGA 的組合更是功能強大 除了海量存儲技術 無線更新技術外 還能實時地顯示視頻信號 因此 以 ARM 為控制器的顯示屏常為視頻全彩屏 3 3 硬件電路設計硬件電路設計 3 13 1 系統硬件概述系統硬件概述 整個電路由單片機 89C51 8 個 74LS373 1 個 74HC154 1 個 74LS138 4 個 16 16 的 LED 該電路所設計的電子屏可顯示多個漢字 需要 4 個 16 16 LED 點陣模塊 可組成 16 64 的條形點陣 AT89C51 是一種帶 4KB 可編程可擦除 只讀存儲器 的低電壓 高性能微處 理器 俗稱單 片機 單片機的可擦除只讀存儲器可以反復擦除100 次 該 器件采用 ATMEL 高密度非易失存儲器制造技術制造 與工業標準的MCS 51 指令集和輸出管腳相兼容 由于將多功能8 位 CPU 和閃爍存儲器組合在單 個芯片中 ATMEL 的 AT89C51 是一種高效微控制器 AT89C2051 是它的一種 精簡版本 AT89C51 單片機為很多嵌入式控制系統提供了一種靈活性高且價 廉的方案 AT89C51 引腳即外觀如圖 3 1 所示 圖 3 1 AT89C51 的管腳圖 譯碼器是組合邏輯電路的一個重要的器件 74LS138 的輸出是低電平有 效 故實現邏輯功能時 輸出端不可接或門及或非門 74LS138 與前面不 同 其有使能端 故使能端必須加以處理 否則無法實現需要的邏輯功能 發光二極管點亮只須使其正向導通即可 根據LED 的公共極是陽極還是陰 極分為兩類譯碼器 即針對共陽極的低電平有效的譯碼器 針對共陰極 LED 的高電平輸出有效的譯碼器 74LS373 是低功耗肖特基 TTL8D 鎖存器 內有 8 個相同的 D 型 三態同相 鎖存器 由兩個控制端 11 腳 G 或 EN 1 腳 OUT CONT OE 控制 當 OE 接地時 若 G 為高電平 74LS373 接收由 PPU 輸出的地址信號 如果 G 為低電平 則將 地址信號鎖存 工作原理 74LS373 的輸出端 O0 O7 可直接與總線相連 當三 態允許控制端 OE 為低電平時 O0 O7 為正常邏輯狀態 可用來驅動負載或總 線 當 OE 為高電平時 O0 O7 呈高阻態 即不驅動總線 也不為總線的負載 但鎖存器內部的邏輯操作不受影響 當鎖存允許端 LE 為高電平時 O 隨數據 D 而變 當 LE 為低電平時 O 被鎖存在已建立的數據電平 74LS373 引腳即外 觀如圖 3 2 所示 圖 3 2 74LS373 引腳圖 74HC154 為 4 線 12 線譯碼器 當選通端 G1 G2 均為低電平時 可 將地址端 ABCD 的二進制 編碼在一個對應的輸出端 以低電平譯出 若將 G1 和 G2 中的一個作為數據輸入端 由 ABCD 對輸出尋址 還可作 1 線 16 線數據分配器 工作環境溫度為 0 70 對社會的要求非常適合 LED 50 年前人們已經了解半導體材料可產生光 線的基本知識 第一個商用二極管產生于1960 年 LED 是英文 light emitting diode 發光二極管 的縮寫 它的基本結構是一塊電致發光的半 導體材料 置于一個有引線的架子上 然后四周用環氧7 樹脂密封 即固 體封裝 所以能起到保護內部芯線的 作用 所以 LED 的抗震性能好 該電路的顯示采用逐行掃描方式 工作時 由 單片機取出第一行需要顯示的內容經延時一段時間后再進行下一行點陣數據的 顯示 需要注意的是 每次只能選通一行數據 即要通過不斷的逐行掃描來實 現漢字或字符的顯示 3 2 16 16LED 點陣顯示制作點陣顯示制作 3 2 1 16 16LED 點陣的內部結構及工作原理點陣的內部結構及工作原理 以 UCDOS 中文宋體字庫為例 每一個字由 16 行 16 列的點陣組成顯示 即 國家標準漢字庫中的每一個字均由 256 點陣來表示 我們可以把每一個點理解 為一個像素 而把每一個字的字形理解為一幅圖像 事實上這個漢字屏不僅可 以顯示漢字 也可以顯示在 256 像素范圍內的任何圖形 這里我們以 高 字 說明 如圖 3 3 所示 圖 3 3 16 16LED 漢字顯示 用 8 位的 AT89C51 單片機控制 由于單片機的總線為 8 位 一個字需要拆 分為 2 個部分 一般把它拆分為上部和下部 上部由 8 16 點陣組成 下部也 由 8 16 點陣組成 在本例中單片機首先顯示的是左上角的第一列的上半部分 即第 0 列的 p00 p07 口 方向為 p00 到 p07 顯示漢字 高 時 p02 點亮 由 上往下排列 為 p0 0 滅 p0 1 滅 p0 2 滅 p0 3 滅 p0 4 滅 p0 5 亮 p0 6 滅 p0 7 滅 即二進制 00000100 轉換為 16 進制為 04h 上半部第一列完成 后 繼續掃描下半部的第一列 為了接線的方 便 我們仍設計成由上往下掃描 即從 p27 向 p20 方向掃 描 從上圖可以看到 這一列全部為不亮 即為 00000000 16 進制則為 00h 然后單片機轉向上半部第二列 仍為 p01 點亮 為 00000100 即 16 進制 04h 這一列完成后繼續進行下半部分的掃描 p20 點亮 為二進制 00000010 即 16 進制 02h 依照這個方法 繼續進行下面的掃描 一共掃描 32 個 8 位 可以得 出漢字 高 的掃描代碼為 02h 00h 01h 04h 0FFh 0FEh 00h 00h 1Fh 0F0h 10h 10h 10h 10h 1Fh 0F0h 00h 04h 7Fh 0FEh 40h 04h 4Fh 0E4h 48h 24h 48h 24h 4Fh 0E4h 40h 0Ch 由這個原理可以看出 無論顯示何種字體或圖像 都可以用這個方法來分 析出它的掃描代碼從而顯示在屏幕上 不過現在有很多現成的漢字字模生成軟 件 就不必自己去畫表格算代碼了 3 2 23 2 2 用用 8 8LED8 8LED 點陣構成點陣構成 16 16LED16 16LED 點陣點陣 Proteus 中只有 5 7 和 8 8 等 LED 點陣 并沒有 16 16LED 點陣 而在 實際應用中 要良好地顯示一個漢字 則至少需要 16 16 點陣 下面我們就首 先介紹使用 8 8 點陣構建 16 16 點陣的方法 并構建一塊 16 16LED 點陣 用于本例的顯示任務 首先 從 Proteus7 1 的元件庫中找到 MATRIX 8X8 RED 元器件 并將四塊該 元器件放入 Proteus 文檔區編輯窗口中 此時需要注意 如果該元器件保持初始 的位置 沒有轉動方向 我們要首先將其左轉 90 使其水平放置 那么此 時它的左面 8 個引腳是其行線 右邊 8 個引腳是其列線 當然 如果你是將右 轉 則右邊 8 個引腳是行線 然后我們將四個元器件對應的行線和列線分別 進行連接 使每一條行線引腳接一行 16 個 LED 列線也相同 并注意要將行線 和列線引出一定長度的引腳 以便下面我們使用 連接好的 16 16 點陣如圖 3 4 所示 成如上圖的 16 16 點陣只是第一步 這樣分開的數塊并不能達到好的顯示 效果 下面我們要將其進一步組合 組合實際上很簡單 首先選中如上圖中右側 的兩塊 8 8 點陣 然后拖動并使其與左側的兩塊相并攏 如圖 3 5 所示 圖 3 5 可以看到原來的連線已經自動隱藏了 至于線上的交點 我們不要去動 然后 我們再來最后一步 選中下側的兩塊點陣 并拖動使其與上側的兩塊并 攏 最后的效果如圖 3 6 所示 看到 原來雜亂的連線現在已經幾乎全部隱藏了 一塊 16 16 的 LED 點陣做成了 需要注意 做成的 LED 點陣的行線為左側的 16 個引腳 下側的 16 個引腳為其列線 而且其行線為高電平有效 列線為低 電平有效 然后 我們將其保存 以便以后使用 圖 3 4 點陣模塊組合 圖 3 6 3 33 3 主控單片機主控單片機的接口說明的接口說明 P0 口 P0 口是一組 8 位漏極開路型雙向 I O 口 也即地址 數據總線 復制用口 作為輸入口時 每位能吸收電流的方式驅動8 個 TTL 邏輯門電 路 對端口寫入 1 可作為高阻抗輸入端用 在訪問外部數據存儲器或程序 存儲器時 這組口線分時轉換地址 低8 位 和數據總線復用 在訪問期 激活內部上拉電阻 在 Flash 編程時 PO 口接收指令節 而在程序校檢時 輸出指令字節 校檢時 要求外接上拉電阻 P1 口 P1 口是一個帶內部上拉電阻的 8 位雙向 I O 口 P1 的輸出 緩沖級可驅動 吸收或輸出電流 4 個 TTL 邏輯門電路 對端口寫 1 通過內部的上拉電阻把端口拉到高電平 此時可作輸入口 作輸入口時 因 為內部存在上拉電阻 某個引腳被外部信號拉低時會輸出一個電流 I Flash 編程和程序校檢期間 P1 接收低 8 位地址 P2 口 P2 口是一個帶內部上拉電阻的 8 位雙向 I O 口 P1 的輸出緩沖 級可驅動 吸收或輸出電流 4 個 TTL 邏輯門電路 對端口寫 1 通過 內部的上拉電阻把端口拉到高電平 此時可作輸入口 作輸入口時 因為內 部存在上拉電阻 某個引腳被外部信號拉低時會輸出一個電流I 在訪問 外部數據存儲器或 16 位地址的外部數據存儲 例如執行MOVX DPTR 指令 時 P2 口送出高 8 位地址數據 在訪問 8 位地址的外部數據存儲器 如執 行 MOVX RI 指令 時 P2 口線上的內容 也即特殊功能寄存器 SFR 區 中 R2 寄存器的內容 在整個訪問期間不改變 Flash 編程和校檢時 P2 亦接收高位地址和其他控制信號 P3 口 P3 口是一個帶內部上拉電阻的 8 位雙向 I O 口 P3 口輸出緩 沖級可驅動 吸收或輸出電流 4 個 TTL 邏輯門電路 對 P3 口寫入 1 時 它們被內部上拉電阻拉高并可作輸入端口 作輸入端時 被外部拉低的 P3 口將用上拉電阻 輸出電流 I P3 口還接收一些用于 Flash 閃速存儲器編 程和程序校檢的控制信號 RST 復位輸入 當震蕩器工作時 RST 引腳出現兩個機器周期以上高電平 將使單片機復位 ALE PROG 當訪問外部程序存儲器或數據存儲器時 ALE 地址鎖存允許 輸 出脈沖用于所存地址的低 8 位字節 即使不訪問外部存儲器 ALE 乃以時鐘振 動頻率的 1 6 輸出固定的正脈沖信號 因此它可對外輸出時鐘或用于定時目的 要注意的是 每當訪問外部數據存儲器時將跳過一個 ALE 脈沖 3 4 LED 顯示驅動電路顯示驅動電路 LED 顯示驅動電路如圖 3 7 所示 圖 3 7 顯示驅動電路圖 4 4 字模生成字模生成 4 14 1 字模簡介字模簡介 文字的字模是一組數字 但它的意義卻與數字的意義有著根本的變化 它 是用數字的各位信息來記載英文或漢字的形狀 1 在電腦硬件中 根本沒有漢字這個概念 也沒有英文的概念 其認識的概 念只有 內碼 將 ASCII 表的高 128 個很少用到的數值以兩個為一組來表示漢 字 即漢字的內碼 而剩下的低 128 位則留給英文字符使用 即英文的內碼 如果你用啟動盤啟動系統后用 DIR 命令可能得到一串串莫名其妙的字符 但那 確確實實是漢字 如果你啟動 UCDOS 或其他的漢字系統后 就會看到那是一個 個熟悉的漢字 在硬件系統內 英文的字模信息一般固化在 ROM 里 即使在沒 有進入系統的 CMOS 里 也可以讓你看到英文字符 而在 DOS 下 中文的字模信 息一般記錄在漢字庫文件里 將制作好的字模放到一個個標準的庫中 這就是點 陣字庫文件 4 1 14 1 1 LEDLED 顯示屏領域字模實現技術顯示屏領域字模實現技術 在通過軟件實現的技術中 目前有許多字模生成軟件 軟件打開后輸入漢 字 點 檢取 十六進制數據的漢字代碼即可自動生成 把我們所需要的豎排 數據復制到我們的程序中即可 在通過硬件實現字模提取的技術中 有在單片 機系統中增加硬漢字庫的方法 主控器發送的漢字是其機內碼 用兩個字節來 表示一個漢字 根據機內碼 顯示單元控制模塊從漢字庫中查取顯示字模 實 現漢字顯示 由于帶有硬漢字庫 進行動態文字顯示時 通用智能顯示單元僅 接受漢字的機內碼即可 這樣數據通訊量大大減少 因此 動態文字顯示速度 快 4 1 24 1 2 軟件控制系統字模提取的分析與設計軟件控制系統字模提取的分析與設計 而在 LED 顯示屏控制系統具體應用的 Windows 操作系統下如何提取字模信 息是設計的核心 軟件控制系統在實際編輯過程中 要求各種字體 字號的文 字都能被編輯 保存 所以系統在設計時 把文本區理解為由眾多的象素點構 成 而把不同字體 字號的文字理解為一幅圖像 因為所開啟的文本區大小與 LED 顯示屏的大小對應 所以采用 16 16 點陣為單位 把文本區內的每個像素 點都看成一個二維數組 由于系統中各種顏色都有對應的值 賦予每個不同顏 色的像素點不同的對應值 再把每個點賦予一個 int 型的值 這樣保存下來的 信息就是二進制數據 通過這樣的設計 我們不僅可以把任何字型 任何大小 的文字保存下來 還可以顯示以 256 個像素點陣為單位的任何圖形 在軟件控 制系統中實現字模的提取 也就避免了在單片機中加載硬漢字庫模塊 從而簡 化了硬件模塊的設計 以下以單色屏為例 介紹系統采用字模保存的算法設計 定義 COLORREF zimo color 為像素點的顏色 判斷某個點的顏色值 如 果值為 Oxffffff 說明此點為白色 賦予此點值 0 由于單色屏只有紅色和不 顯色兩種 所以可以簡單賦值為除白色外其余點賦值為 1 CClientDC dc this CFile myfile unsigned int zimo 192 384 0 unsigned char zimo data 192 48 0 COLORREF zimo color int row col this HideCaret for row 0 row 192 row for col 0 col 384 col zimo color do GetPixel col row if zimo color Oxffffff zimo row col 0 else zimo row col 1 定義 unsigned int zimo 192 384 0 文本區像素點 以 8 位為一字節 因為在隨后的串行通訊中 傳輸的數據是 8 位的二進制數據 定義 unsigned char zimo data 192 48 0 4 24 2 字模存儲技術字模存儲技術 目前使用最廣泛的技術是 通過上位機軟件將待顯示的字符串轉換為對應 的點陣字模數據 通過燒寫的方式將這些字模數據按一定的順序編址后存儲在 E2PROM 中 在條屏顯示的過程中按規定的方式取出 E2PROM 中的字模數據進行處 理 對于一個 16 16 點陣的漢字字模數據 需要連續 32 字節的 E2PROM 空間來 存儲 照此計算 若有 256 個需要顯示的字符 則至少需要 32B 256 8192 字 節 8KB 的 E2PROM 存儲空間 通常的單片機內部沒有集成這么大容量的 E2PROM 因此這種方案 需要在單片機外部擴展大容量的 E2PROM 增加硬件成 本 上位機程序設計由于涉及到漢字取模 取模算法的難度較大 在多字下載 的時候傳輸時間也較長 諸多弊端使本設計放棄了傳統方案 而本設計創新使 用了專用的點陣字庫芯片 成本僅為 8 元 內含各種點陣規格的 GB2312 ASCII 等標準字庫 專用字庫芯片采用微型 SO 8 封裝 使用高速同步 串行 SPI 接口進行讀寫操作 節省了控制器的 I O 在本設計中 單片機內部 的小容量 E2PROM 用于存儲待顯示漢字的 GB2312 標準機內碼 每個全角字符的 內碼占 2 字節 則在同樣需要顯示 256 個漢字的情況下 這種方案僅占用 512 字節的 E2PROM 空間 4 34 3 字庫生成字庫生成 因為本設計中為行掃描 列輸入 所以 魏 的自摸代碼為 DB 49H 40H 4AH 51H 4CH 6AH 7FH 0C4H 4CH 4AH 8AH 71H 88H 42H 3FH 84H DB64H 98H 0A5H 0E0H 3EH 0BEH 24H 81H 24H 89H 7FH 81H 20H 07H 00H 00 佳 字代碼為 DB 01H 00H 02H 00H 04H 00H 1FH 0FFH 0E2H 02H 12H 22H 12H 22H 12H 22H DB 12H 22H 0FFH 0FEH 12H 22H 12H 22H 32H 62H 16H 26H 02H 02H 00H 00H 鋒 字代碼為 DB 01H 40H 02H 40H 0EH 40H 0F3H 0FEH 12H 44H 12H 48H 09H 00H 11H 28H DB 0F2H 0A8H 2AH 0A8H 25H 0FFH 2AH 0A8H 32H 0A8H 23H 28H 02H 00H 00H 00H 5 5 軟件設計軟件設計 5 15 1 程序設計總體思路和結構程序設計總體思路和結構 5 1 15 1 1 程序設計總體思路程序設計總體思路 用簡短的匯編程序設計 實現 LED 點陣顯示內容 并使顯示的內容在屏幕 上從左到右的滾動顯示 系統采用模塊化結構 包括主程序 延時程序 顯示 子程序和串行口中斷程序 用 AT89C51 74LS373 74LS138 74HC154 芯片和 4 個 16 16LED 點陣顯示器構 成一個完整的 16 位點陣 LED 顯示系統 5 1 25 1 2 程序流程圖程序流程圖 程序主要由開始 初始化 主程序 字庫組成 其中主程序和子程序的流 程 圖如圖 5 1 所示 圖 5 1 單片機漢字顯示程序流程圖 5 25 2 各模塊程序設計各模塊程序設計 5 2 15 2 1 系統初始化系統初始化 ORG 0000H AJMP START ORG 000BH LJMP TIME0 ORG 0030H START MOV R1 00H MOV R2 00H MOV R3 00H MOV R4 00H MOV R5 00H 5 2 25 2 2 LEDLED 動態顯示動態顯示 顯示要求漢字在顯示屏上按從左到右的順序一個個的出現 設計時可采用 如下方法 首先將 LED 顯示屏對應的顯示緩沖區全部清零 即 LED 顯示空白 然后每間隔一個 軟定時器 設定的動態顯示時間 顯示緩沖區依次加入一個 漢字點陣數據并進行掃描顯示 這樣就可達到動態顯示的效果 實現 LED 從左 向右移動顯示程序 TIME0 INC R5 CJNE R5 3 NEXT MOV R5 0 INC DPTR INC DPTR INC R1 CJNE R1 144 NEXT MOV R1 0 MOV DPTR TAB NEXT MOV TH0 3CH MOV TL0 0B0H RETI 5 2 35 2 3 漢字顯示的原理漢字顯示的原理 我們以中文宋體字庫為例 每一個字由 16 行 16 列的點陣組成顯示 即國 標漢字庫中的每一個字均由 256 點陣來表示 我們可以把每一個點理解為一個 像素 而把每一個字的字形理解為一幅圖像 事實上這個漢字屏不僅可以顯示 漢字 也可以顯示在 256 像素范圍內的任何圖形 LED 點陣漢字顯示程序 MAIN MOV P1 R2 MOV A R3 MOVC A A DPTR MOV P2 A INC R3 MOV A R3 MOVC A A DPTR MOV P0 A INC R3 MOV P3 R4 LCALL DELAY1MS INC R2 CJNE R2 16 MAIN MOV R2 0 INC R4 CJNE R4 3 MAIN MOV R3 0 MOV R4 0 LJMP MAIN 6 6 系統功能測試系統功能測試 6 16 1 單元模塊電路測試單元模塊電路測試 在 proteus 仿真軟件中運行測試 AT89C51 74LS373 74LS138 74HC154 等 芯片和 LED 顯示器均能正常運行并完整的顯示出了我所要的效果 所以各個模 塊功能正常 6 26 2 系統整體功能測試系統整體功能測試 在仿真軟件 proteus 中運行測試系統整體功能 一切正常 實現了漢字的 左移滾動顯示 完整的顯示出了 陜西理工學院 浮動漢字 圖 6 1 單片機漢字顯示系統測試圖 總總結結 在本設計中我用簡短的匯編程序在 LED 顯示屏實現了漢字的左移滾動顯示 在設計中采用的芯片有 AT89C51 74LS373 74LS138 74HC154 和 4 個 16 16LED 點陣顯示器 其特點 1 內容能從右向左浮動顯示 2 硬件結構簡 單 應用廣泛 3 LED 數碼管動態掃描顯示 工作效率高 價格低廉等 通過本次 64 16 位點陣 LED 的設計 理論知識學習和實際設計的結合鍛 煉了我的綜合運用所學的專業基礎知識解決實際工程問題的能力 同時也提高 我查閱文獻資料 設計手冊 設計規范以及電腦制圖等其他專業能力水平 而 且通過對整體的掌控 對局部的取舍 以及對細節的斟酌處理 都使我的能力 得到了鍛煉 經驗得到了豐富 為后繼的學習和工作奠定的基礎 參考文獻參考文獻 1 李建忠編著 單片機原理及應用 西安 西安電子科技大學出版社 2002 2 李群芳 肖看編著 單片機原理 接口及應用 北京 清華大學出版社 2005 3 于海生編著 微型計算機控制技術 北京 清華大學出版社 2008 4 戴梅萼 史嘉權編著 微型計算機技術及應用 第 3 版 北京 清華大學出版 社 2008 5 江曉安 董秀峰編著 數字電子技術 第二版 西安 西安電子科技大學出版 社 2005 附錄附錄 附錄 源程序代碼 ORG 0000H 初始化 AJMP START ORG 000BH LJMP TIME0 ORG 0030H START MOV R1 00H MOV R2 00H MOV R3 00H MOV R4 00H MOV R5 00H MOV TMOD 01H MOV TH0 3CH MOV TL0 0B0H MOV IE 82H SETB TR0 MOV DPTR TAB MAIN MOV P1 R2 單片機輸出 MOV A R3 MOVC A A DPTR MOV P2 A INC R3 MOV A R3 MOVC A A DPTR MOV P0 A INC R3 MOV P3 R4 LCALL DELAY1MS INC R2 CJNE R2 16 MAIN MOV R2 0 INC R4 CJNE R4 4 MAIN MOV R3 0 MOV R4 0 LJMP MAIN TIME0 INC R5 移動顯示 CJNE R5 3 NEXT MOV R5 0 INC DPTR INC DPTR INC R1 CJNE R1 144 NEXT MOV R1 0 MOV DPTR TAB NEXT MOV TH0 3CH MOV TL0 0B0H RETI DELAY1MS MOV R7 2 延時 DEL MOV R6 250 DJNZ R6 DJNZ R7 DEL RET TAB DB 000H 000H 01FH 0FCH 010H 000H 025H 000H 03BH 004H 000H 048H 00AH 050H 0 09H 060H 陜 DB 07FH 0C0H 010H 0A0H 012H 090H 014H 088H 000H 08CH 000H 004H 000H 004H 0 00H 000H DB 00H 00H 7FH 0FFH 44H 20H 5AH 10H 61H 0E1H 10H 82H 14H 84H 12H 88H DB 10H 0B0H 0FFH 0C0H 10H 0B0H 12H 88H 34H 86H 11H 83H 00H 82H 00H 00H DB 000H 000H 003H 000H 002H 0F8H 022H 010H 022H 050H 03FH 090H 022H 010H 0 22H 010H DB 07FH 090H 044H 090H 044H 090H 004H 00CH 004H 030H 007H 0C0H 000H 000H 0 00H 000H DB 000H 010H 011H 010H 011H 020H 01FH 0E0H 022H 048H 000H 048H 038H 008H 0 27H 048H DB 025H 048H 03FH 0F0H 04AH 090H 042H 090H 07EH 010H 000H 010H 000H 000H 0 00H 000H DB 000H 000H 000H 010H 000H 010H 000H 010H 008H 010H 008H 010H 008H 0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論