基于單片機(jī)控制的8X8點(diǎn)陣漢字顯示屏的設(shè)計(jì)_第1頁(yè)
基于單片機(jī)控制的8X8點(diǎn)陣漢字顯示屏的設(shè)計(jì)_第2頁(yè)
基于單片機(jī)控制的8X8點(diǎn)陣漢字顯示屏的設(shè)計(jì)_第3頁(yè)
基于單片機(jī)控制的8X8點(diǎn)陣漢字顯示屏的設(shè)計(jì)_第4頁(yè)
基于單片機(jī)控制的8X8點(diǎn)陣漢字顯示屏的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于單片機(jī)控制的點(diǎn)陣漢字顯示屏的設(shè)計(jì) 【摘要】該設(shè)計(jì)是一款以單片機(jī) AT89c51 為控制器的 LED 點(diǎn)陣顯示屏系 統(tǒng)。該系統(tǒng)可實(shí)現(xiàn)漢字的靜態(tài)和動(dòng)態(tài)特效顯示。系統(tǒng)采用 PC 機(jī)作為上 位機(jī),上位機(jī)向單片機(jī)發(fā)送控制命令和上位機(jī)所存儲(chǔ)的顯示代碼, AT89c51 單片機(jī)接收并處理 PC 機(jī)的控制命令以及顯示代碼,由顯示驅(qū)動(dòng) 模塊驅(qū)動(dòng)一個(gè) 1616 分辨率的 LED 點(diǎn)陣顯示屏的掃描顯示。PC 機(jī)與單 片機(jī)之間的通信采用 RS232C 通信標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn)。 【關(guān)鍵字】AT89c51;LED 點(diǎn)陣顯示;串行通信 DesignDesign andand RealizationRealization ofo

2、f thethe LatticeLattice ScreenScreen ofof LEDLED BasedBased onon AT89C51AT89C51 Abstract:Abstract: This paper introduces a design of the LED lattice display system base on MCU AT89c51. The system can display Chinese characters of the show and from top to bottom and move around the magic show. And ca

3、n be cascaded to expand the screen size to achieve increased content purposes. The PC sends control commands and displays code to microcontroller, AT89c51 receives control commands from PC and shows the code, Driver module drives a 1616-resolution LED lattice LEDs panel display scan showed. Communic

4、ation between PC and the microcontroller using RS-232C communications standards. KeyKey words:words: AT89c51;lattice LEDs panel display;serial communication 目錄目錄 引言1 1.課題相關(guān)知識(shí)2 1.1 AT89C51 簡(jiǎn)介 2 1.2 串并轉(zhuǎn)換器 74LS164 簡(jiǎn)介 2 1.3 鎖存器 74L373 簡(jiǎn)介 3 1.4 DSP 簡(jiǎn)介 3 1.5 EDA 簡(jiǎn)介 4 2.系統(tǒng)設(shè)計(jì)方案5 2.1 通信系統(tǒng)設(shè)計(jì)5 2.2 LED 點(diǎn)陣顯示屏設(shè)計(jì)5

5、 2.3 硬件設(shè)計(jì)方案圖6 2.4 系統(tǒng)軟件編譯器的選擇7 2.5 上位機(jī)控制傳輸軟件設(shè)計(jì)7 3. 硬件開(kāi)發(fā) 8 3.1 硬件整體設(shè)計(jì)概述及功能分析8 3.2 控制系統(tǒng)設(shè)計(jì)8 3.3 譯碼電路設(shè)計(jì) 10 3.4 列驅(qū)動(dòng)電路設(shè)計(jì) 10 3.5 通信系統(tǒng)硬件設(shè)計(jì) 11 3.6 電源設(shè)計(jì) 11 3.7 LED 顯示屏設(shè)計(jì) 12 4. 軟件設(shè)計(jì)及開(kāi)發(fā)14 4.1 程序設(shè)計(jì)流程圖 14 4.2 LED 顯示屏的顯示方式的設(shè)計(jì) 15 4.2.1 點(diǎn)陣數(shù)據(jù)表達(dá)方式的設(shè)計(jì)15 4.2.2 顯示程序的設(shè)計(jì)16 4.3 通信設(shè)計(jì) 18 5. 系統(tǒng)測(cè)試20 5.1 系統(tǒng)硬件部分調(diào)試方法 20 5.1.1 串口調(diào)試

6、20 5.2 系統(tǒng)聯(lián)合調(diào)試及結(jié)果 20 總 結(jié)22 致 謝23 參考文獻(xiàn) 24 科技外文翻譯 25 附錄 A 硬件原理圖32 附錄 B 仿真圖33 附錄 C 設(shè)計(jì)程序34 引言 隨著現(xiàn)代計(jì)算機(jī)技術(shù)和自動(dòng)化技術(shù)的發(fā)展,帶動(dòng)了嵌入式技術(shù)的飛速 發(fā)展。以單片機(jī)作為控制中心的嵌入式系統(tǒng)在實(shí)際生活中應(yīng)用越來(lái)越廣泛。 該設(shè)計(jì)課題使我們能夠掌握 LED 顯示屏的基本顯示原理和設(shè)計(jì)方法,對(duì) LED 顯示屏這個(gè)行業(yè)有了較為深刻的了解和認(rèn)識(shí)。并且對(duì)大學(xué)期間所學(xué)習(xí) 的一些理論進(jìn)行了實(shí)踐,使我們對(duì)所學(xué)過(guò)的理論知識(shí)有了新的認(rèn)識(shí)。并且 通過(guò)該設(shè)計(jì)課題掌握了 51 單片機(jī)的的軟硬件開(kāi)發(fā)工具的使用方法,為以 后從事相關(guān)行業(yè)的

7、工作積累了實(shí)際工作經(jīng)驗(yàn)。目前我國(guó)的信息行業(yè)發(fā)展迅 速,作為主要平面顯示媒介的 LED 顯示屏的作用也越練越廣泛,相關(guān)的從 業(yè)人員也會(huì)越來(lái)越緊缺。但同時(shí)應(yīng)該清楚的認(rèn)識(shí)到我國(guó)的 LED 技術(shù)雖然發(fā) 展迅速但和世界先進(jìn)水平還有一定的差距。因此此課題不論是對(duì)自己的就 業(yè)還是對(duì)我國(guó) LED 顯示技術(shù)的發(fā)展都有非?,F(xiàn)實(shí)與積極的意義。 1.課題相關(guān)知識(shí) 1.1AT89C511.1AT89C51 簡(jiǎn)介簡(jiǎn)介 AT89C51 是美國(guó) ATMEL 公司生產(chǎn)的低功耗,高性能 CMOS8 位單片機(jī), 片內(nèi)含 4k bytes 的可系統(tǒng)編程的 Flash 只讀程序存儲(chǔ)器,器件采用 ATMEL 公司的高密度、非易失性存儲(chǔ)技

8、術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) 8051 指令系統(tǒng)及引腳。 它集 Flash 程序存儲(chǔ)器既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及 通用 8 位微處理器于單片芯片中,ATMEL 公司的功能強(qiáng)大,低價(jià)位 AT89C51 單片機(jī)可提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制 領(lǐng)域。AT989C51 具有以下特點(diǎn): 與 MCS-51 產(chǎn)品指令系統(tǒng)完全兼容 4k 字節(jié)在系統(tǒng)編程(ISP)Flash 閃速存儲(chǔ)器 1000 次擦寫周期 4.05.5V 的工作電壓范圍 全靜態(tài)工作模式:0Hz33MHz 三級(jí)程序加密鎖 1288 字節(jié)內(nèi)部 RAM 32 個(gè)可編程 I/O 口線 2 個(gè) 16 位定時(shí)/計(jì)數(shù)器 6 個(gè)中

9、斷源 全雙工串行 UART 通道系統(tǒng) 看門狗(WDT)及雙數(shù)據(jù)指針 掉電標(biāo)識(shí)和快速編程特性 靈活的 低功耗空閑和掉電模式 中斷可從空閑模喚醒在系統(tǒng)編程(ISP 字節(jié)或頁(yè)寫模式) AT89C51 提供以下標(biāo)準(zhǔn)功能:4k 字節(jié) Flash 閃速存儲(chǔ)器,128 字節(jié)內(nèi) 部 RAM,32 個(gè) I/O 口線,看門狗(WDT),兩個(gè)數(shù)據(jù)指針,兩個(gè) 16 位定時(shí) /計(jì)數(shù)器,一個(gè) 5 向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩 器及時(shí)鐘電路。同時(shí),AT89C51 可降至 0Hz 的靜態(tài)邏輯操作,并支持兩種 軟件可選的節(jié)電工作模式??臻e方式停止 CPU 的工作,但允許 RAM,定時(shí)/ 計(jì)數(shù)器,串行通信口及

10、中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的內(nèi)容, 但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。 1.21.2 串并轉(zhuǎn)換器串并轉(zhuǎn)換器 74LS16474LS164 簡(jiǎn)介簡(jiǎn)介 列譯碼采用的是芯片 74LS164。如果不采用譯碼電路完全依靠單片機(jī) 的端口輸出來(lái)控制 1616 的 LED 點(diǎn)陣屏顯示,需要 32 個(gè)端口。而采用了 譯碼電路后僅僅需要 79 個(gè)端口便可實(shí)現(xiàn)控制顯示。大大減少了 I/O 口 的占用數(shù)目,為單片機(jī)擴(kuò)展其他功能預(yù)留下來(lái)了空間。 74LS164 為一個(gè) 8 位數(shù)據(jù)的串并轉(zhuǎn)換器。當(dāng)清除端(CLEAR)為低電平 時(shí),輸出端(QAQH)均為低電平。串行數(shù)據(jù)輸入端(A,B

11、)可控制數(shù)據(jù)。 當(dāng) A、B 任意一個(gè)為低電平,則禁止新數(shù)據(jù)輸入,在時(shí)鐘端(CLOCK)脈沖 上升沿作用下 Q0 為低電平。當(dāng) A、B 有一個(gè)為高電平,則另一個(gè)就允許輸 入數(shù)據(jù),并在 CLOCK 上升沿作用下決定 Q0 的狀態(tài)。 參數(shù)最小 值 標(biāo)準(zhǔn) 值 最大 值 單位 高電平輸 入電壓 2V 低電平輸 入電壓 0.8V 高電平輸 出電壓 2.43.2-V 低電平輸 出電壓 0.20.4V 時(shí)鐘頻率 025MHZ 表 3.1 74LS164 工作參數(shù) 這就要求單片機(jī)的引腳輸出的高低電平要在芯片的識(shí)別范圍內(nèi),由于采用 了列選通行傳送顯示代碼的方法所以行譯碼電路上也加上了 74L373 鎖存 芯片。這

12、就要求 74LS164 芯片的輸出要滿足鎖存芯片的高低電平區(qū)分范圍 和頻率要求。 1.31.3 鎖存器鎖存器 74L37374L373 簡(jiǎn)介簡(jiǎn)介 74LS373 為八 D 鎖存器(3S,鎖存允許輸入有回環(huán)特性)。373 為三態(tài) 輸出的八 D 透明鎖存器,共有 54/74S373 和 54/74LS373 兩種線路結(jié)構(gòu)形 式當(dāng)三態(tài)允許控制端 OE 為低電平時(shí),O0O7 為正常邏輯狀態(tài),可用來(lái)驅(qū) 動(dòng)負(fù)載或總線。當(dāng) OE 為高電平時(shí),O0O7 呈高阻態(tài),即不驅(qū)動(dòng)總線,也 不為總線的負(fù)載,但鎖存器內(nèi)部的邏輯操作不受影響。當(dāng)鎖存允許端 LE 為高電平時(shí),O 隨數(shù)據(jù) D 而變。當(dāng) LE 為低電平時(shí),O 被

13、鎖存在已建立的 數(shù)據(jù)電平。 參數(shù)最小值額定值最大值單位 電源電壓 4.7555.25V 輸入高電平 電壓 2V 輸入低電平 電壓 0.8V 輸出高電平 電壓 2.6 mA 輸出低電平 電壓 24mA 表 3.2 74LS373 工作參數(shù)表 由表與表比較可以看出,74LS164 的輸出條件與 74LS373 的輸入條 件相匹配,理論上可以實(shí)現(xiàn)鎖存器對(duì)譯碼器的數(shù)據(jù)鎖存。 1.41.4 DSPDSP 簡(jiǎn)介簡(jiǎn)介 DSP 又叫數(shù)字信號(hào)處理器。顧名思義,DSP 主要用于數(shù)字信號(hào)處理領(lǐng) 域,非常適合高密度,重復(fù)運(yùn)算及大數(shù)據(jù)容量的信號(hào)處理?,F(xiàn)在已經(jīng)廣泛 應(yīng)用于通信、便攜式計(jì)算機(jī)和便攜式儀表、雷達(dá)、圖像、航空、

14、家用電器、 醫(yī)療設(shè)備等領(lǐng)域,DSP 具有修正的哈佛結(jié)構(gòu),多總線技術(shù)以及流水線結(jié)構(gòu)。 將程序與數(shù)據(jù)存儲(chǔ)器分開(kāi),使用多總線,取指令和取數(shù)據(jù)同時(shí)進(jìn)行,以及 流水線技術(shù),這使得速度有了較大的提高。DSP 區(qū)別于一般微處理器的另 一重要標(biāo)志是硬件乘法器以及特殊指令,一般微處理器用軟件實(shí)現(xiàn)乘法, 逐條執(zhí)行指令,速度慢。而 DSP 依靠硬件乘法器單周期完成乘法運(yùn)算,而 且還具有專門的信號(hào)處理指令,如 TM320 系列的 FIRS ,LMS,MACD 指令 等。 1.51.5 EDAEDA 簡(jiǎn)介簡(jiǎn)介 EDA(即 Electronic Design Automation) 即電子設(shè)計(jì)自動(dòng)化,它是 以計(jì)算機(jī)為工具

15、,在 EDA 軟件平臺(tái)上,對(duì)用硬件描述語(yǔ)言 HDL 完成的設(shè) 計(jì)文件自動(dòng)地邏輯編譯、邏輯化簡(jiǎn)、邏輯分割、邏輯綜合及優(yōu)化、邏輯 布局布線、邏輯仿真,直至對(duì)于特定目標(biāo)芯片進(jìn)行適配編譯、邏輯影射 和編程下載等。設(shè)計(jì)者只需用 HDL 語(yǔ)言完成系統(tǒng)功能的描述,借助 EDA 工具就可得到設(shè)計(jì)結(jié)果,將編譯后的代碼下載到目標(biāo)芯片就可在硬件上實(shí) 現(xiàn)。由于 FPGA/CPLD 可以通過(guò)軟件編程對(duì)該硬件的結(jié)構(gòu)和工作方式進(jìn)行 重構(gòu),修改軟件程序就相當(dāng)于改變了硬件,軟件編寫可以采用自頂向下 的設(shè)計(jì)方案,而且可以多個(gè)人分工并行工作這樣便縮短了開(kāi)發(fā)周期和上 市時(shí)間,有利于在激烈的市場(chǎng)競(jìng)爭(zhēng)中搶占先機(jī)。而且 MCU 和 DSP

16、 都是通 過(guò)串行執(zhí)行指令來(lái)實(shí)現(xiàn)特定功能,不可避免低速,而 FPGA/CPLD 則可實(shí) 現(xiàn)硬件上的并行工作,在實(shí)時(shí)測(cè)控和高速應(yīng)用領(lǐng)域前景廣闊;另一方面, FPGA/CPLP 器件在功能開(kāi)發(fā)上是軟件實(shí)現(xiàn)的,但物理機(jī)制卻和純硬件電 路一樣,十分可靠。 三種設(shè)計(jì)方式相比較各有優(yōu)點(diǎn)且都能夠?qū)崿F(xiàn)控制功能,但單片機(jī)的 技術(shù)門檻較低開(kāi)發(fā)成本也較低非常適合初學(xué)者進(jìn)行學(xué)習(xí)和鍛煉使用?,F(xiàn) 在市場(chǎng)上常用的單片機(jī)主要有 MCS-51、AVR、ARM、PIC 等。其中應(yīng)用最 廣泛的單片機(jī)首推 Intel 的 51 系列,由于產(chǎn)品硬件結(jié)構(gòu)合理,指令系統(tǒng) 規(guī)范,加之生產(chǎn)歷史“悠久” ,有先入為主的優(yōu)勢(shì)常作為單片機(jī)學(xué)習(xí)的教 材

17、。且 51 系列的 I/O 腳的設(shè)置和使用非常簡(jiǎn)單,當(dāng)該腳作輸入腳使用時(shí), 只須將該腳設(shè)置為高電平(復(fù)位時(shí),各 I/O 口均置高電平) 。當(dāng)該腳作輸 出腳使用時(shí),則為高電平或低電平均可。所以在控制部分方案的選擇中 選定 51 系列單片機(jī)作為控制部分的核心器件。 2.系統(tǒng)設(shè)計(jì)方案 2.12.1 通信系統(tǒng)通信系統(tǒng)設(shè)計(jì)設(shè)計(jì) 通信部分要滿足的設(shè)計(jì)要求就是穩(wěn)定、快速、簡(jiǎn)單易實(shí)現(xiàn)。因?yàn)橥ǔ?情況下顯示屏和上位機(jī)的距離不會(huì)很遠(yuǎn),所以通信距離的要求不是很高。 本設(shè)計(jì)則采用串行通信。 串行通信數(shù)據(jù)是一位一位順序傳送,只用很少幾根通信線,串行傳送 的速度低,但傳送的距離長(zhǎng),因此串行適用于長(zhǎng)距離而速度要求不高的場(chǎng)

18、合。在串行發(fā)送時(shí),數(shù)據(jù)是一位一位按順序進(jìn)行的,而計(jì)算機(jī)內(nèi)部的數(shù)據(jù) 是并行的。因此,當(dāng)計(jì)算機(jī)向外發(fā)送數(shù)據(jù)時(shí),必須將并行數(shù)據(jù)轉(zhuǎn)換為串行 數(shù)據(jù)再發(fā)送。反之,又必須將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)輸入計(jì)算機(jī)中。這 種轉(zhuǎn)換即可以用硬件實(shí)現(xiàn)也可以用軟件實(shí)現(xiàn)。單由軟件實(shí)現(xiàn)會(huì)增加 CPU 負(fù) 擔(dān),降低其利用率,故目前常采用硬件實(shí)現(xiàn)。通用的通用異步接收/發(fā)送 器,簡(jiǎn)稱 UART(Universal Asynchromous Receeiver/Trabsnitter)是完 成這一功能的硬件電路。在單片機(jī)芯片中,UART 已經(jīng)集成在其中,作為其 組成部分,構(gòu)成一個(gè)串行口。 綜上所述,題目設(shè)計(jì)已經(jīng)選定了單片機(jī)為開(kāi)發(fā)方式而單

19、片機(jī)的 UART 已經(jīng)集成在單片機(jī)內(nèi),所以通信系統(tǒng)選擇串行通信為通信方式。 2.22.2 LEDLED 點(diǎn)陣顯示屏點(diǎn)陣顯示屏設(shè)計(jì)設(shè)計(jì) 顯示部分包括了一塊至少可以顯示一個(gè)漢字的顯示屏,以及驅(qū)動(dòng)該 顯示屏的驅(qū)動(dòng)電路。由于單片機(jī)的 I/O 口有限要不能直接用 I/O 口來(lái)驅(qū) 動(dòng) LED 顯示屏,所以需要對(duì)單片機(jī) IO 口進(jìn)行擴(kuò)展增加單片機(jī)并行輸出的 能力。 LED 顯示屏是由一個(gè)一個(gè)的發(fā)光二極管點(diǎn)陣構(gòu)成的,要構(gòu)成大屏幕的 LED 顯示屏就需要多個(gè)發(fā)光二極管。構(gòu)成 LED 屏幕的方法有兩種,一是由 單個(gè)的發(fā)光二極管逐點(diǎn)連接起來(lái),如圖 2.2 所示;二是選用一些由單個(gè)發(fā) 光二極管構(gòu)成的 LED 點(diǎn)陣子模

20、塊構(gòu)成大的 LED 點(diǎn)陣模塊。目前市場(chǎng)上普遍 采用的點(diǎn)陣模塊有 88、1616 幾種;這兩種屏幕構(gòu)成方法各有有缺點(diǎn), 單個(gè)發(fā)光二極管構(gòu)成顯示屏優(yōu)點(diǎn)在于當(dāng)單個(gè)的發(fā)光二極管出現(xiàn)問(wèn)題時(shí)只需 更換一個(gè)二極管即可,檢修的成本較低,缺點(diǎn)在于連接線路復(fù)雜;而點(diǎn)陣 模塊構(gòu)成的方法卻正好與之相反,模塊構(gòu)成省約了大量的連線,不過(guò)當(dāng)一 個(gè) LED 出現(xiàn)問(wèn)題時(shí)同在一個(gè)模塊的所有 LED 都必須被更換。 采取模塊構(gòu)成的方法來(lái)制作一個(gè) LED 點(diǎn)陣顯示屏。為了避免模塊的缺 點(diǎn),選擇點(diǎn)陣數(shù)較小的模塊來(lái)減小出現(xiàn)這一問(wèn)題的風(fēng)險(xiǎn)。所以構(gòu)建一個(gè) 1616 的 LED 點(diǎn)陣屏選用四塊 88 點(diǎn)陣模塊。 發(fā)光二極管(light emi

21、tting diode, LED),是一種把電能變成光能 的特種器件,當(dāng)向 LED 器件施加正向電壓時(shí),有電流流過(guò)器件的正向電流 使其發(fā)光。 圖 2.2 LED 點(diǎn)陣圖 一個(gè) 1616 的 LED 顯示屏行和列各有 16 支引腳,不能單靠 51 單片機(jī)的 端口驅(qū)動(dòng)所以必須要對(duì)單片機(jī)的端口個(gè)數(shù)進(jìn)行擴(kuò)展。經(jīng)常采用的端口擴(kuò)展 方法是用串并轉(zhuǎn)換芯片進(jìn)行譯碼。常用的串并轉(zhuǎn)換芯片有 74LS154(4 線- 16 線譯碼器) 、74LS164(8 位串并轉(zhuǎn)換器) 、74HC595 等。51 系列單片機(jī) 端口低電平時(shí),吸入電流可達(dá),具有一定的驅(qū)動(dòng)能力;而為高電 平時(shí),輸出電流僅數(shù)十 甚至更小(電流實(shí)際上是由

22、腳的上拉電流形成 的) ,基本上沒(méi)有驅(qū)動(dòng)能力,所以單片機(jī)不能直接驅(qū)動(dòng) LED 顯示屏顯示。 在單片機(jī)和顯示屏之間還需要增加以功能放大位目的的驅(qū)動(dòng)電路。 2.32.3 硬件設(shè)計(jì)方案硬件設(shè)計(jì)方案圖圖 最終方案如圖 2.3 所示,以 PC 機(jī)作為上位機(jī)存儲(chǔ)和處理顯示內(nèi)容用 串行通信的方式將顯示內(nèi)容和控制指令傳輸?shù)絾纹瑱C(jī)系統(tǒng),單片機(jī)根據(jù) 上位機(jī)傳輸來(lái)的內(nèi)容和指令通過(guò)端口譯碼擴(kuò)展后驅(qū)動(dòng) 4 塊 88LED 點(diǎn)陣 模塊構(gòu)成的 1616 的 LED 點(diǎn)陣顯示屏。題目將以此方案為指導(dǎo)思想展開(kāi) 具體的硬件電路設(shè)計(jì)。 PC機(jī) 16x16LED 顯示屏 單 片 機(jī) 顯 示 驅(qū) 動(dòng) 電 路 譯 碼 電 路 串 行 通

23、 信 圖 2.3 硬件設(shè)計(jì)方案 2.42.4 系統(tǒng)軟件編譯器系統(tǒng)軟件編譯器的選擇的選擇 C 語(yǔ)言編寫的程序并不能被單片機(jī)直接執(zhí)行還需要編譯為單片機(jī)可執(zhí) 行的機(jī)器語(yǔ)言。因此在系統(tǒng)軟件設(shè)計(jì)中,編譯器必不可少。支持 MCS51 用 C 語(yǔ)言編程的編譯器主要有兩種:Franklin C51 編譯器和 KEILC51 編譯器。該設(shè)計(jì)選擇在單片機(jī)開(kāi)發(fā)中普遍使用的 KEIL C51 來(lái)進(jìn) 行編譯。 因此軟件設(shè)計(jì)最終方案為采用 C 語(yǔ)言為程序語(yǔ)言,KELC 為編譯工具按照控 制、通信、顯示等幾個(gè)功能模塊來(lái)編寫程序。 2.52.5 上位機(jī)上位機(jī)控制傳輸軟件控制傳輸軟件設(shè)計(jì)設(shè)計(jì) 其中系統(tǒng)采用現(xiàn)在已經(jīng)非常普遍的 P

24、C 機(jī)作為上位機(jī),這樣對(duì)該顯示 系統(tǒng)的硬件要求便降低了,增加了系統(tǒng)的通用性。上位機(jī)的作用是存儲(chǔ) 并處理顯示內(nèi)容,然后通過(guò)通信系統(tǒng)傳送到控制系統(tǒng)驅(qū)動(dòng)顯示。 LED 顯示上位機(jī)的內(nèi)容一般有實(shí)時(shí)顯示和存儲(chǔ)顯示兩種方法。實(shí)時(shí) 顯示及上位機(jī)屏幕上的內(nèi)容同時(shí)顯示在 LED 顯示屏上,上位機(jī)上內(nèi)容變 化 LED 顯示屏也跟著變化。存儲(chǔ)顯示是將顯示內(nèi)容處理過(guò)后存儲(chǔ)在上位 機(jī)中通過(guò)通信系統(tǒng)傳輸?shù)斤@示屏顯示。兩種顯示方法相比較:實(shí)時(shí)顯示 屏幕能及時(shí)反應(yīng)上位機(jī)內(nèi)容的變化,顯示的效果和內(nèi)容的實(shí)時(shí)性好多用 于新聞播報(bào)、實(shí)況轉(zhuǎn)播用,但實(shí)時(shí)顯示硬件開(kāi)銷大,對(duì)通信系統(tǒng)要求高, 工藝復(fù)雜,成本高;存儲(chǔ)顯示雖實(shí)時(shí)性不高但硬件開(kāi)銷

25、小,成本低廉。 課題設(shè)計(jì)題目對(duì)顯示的實(shí)時(shí)性要求較低且所設(shè)計(jì)的顯示屏尺寸不大同時(shí) 顯示的內(nèi)容不多,所以實(shí)時(shí)顯示就沒(méi)有必要。所以上位機(jī)選擇存儲(chǔ)顯示 的方法,控制 LED 顯示屏的顯示內(nèi)容。 3. 硬件開(kāi)發(fā) 3.13.1 硬件整體設(shè)計(jì)概述硬件整體設(shè)計(jì)概述及功能分析及功能分析 顯示系統(tǒng)具體設(shè)計(jì)主要由上位機(jī),通信系統(tǒng),單片機(jī)系統(tǒng),譯碼電路, 顯示驅(qū)動(dòng)電路和 1616 的點(diǎn)陣屏六部分組成。具體工作流程為:上位 PC 機(jī)通過(guò)通信系統(tǒng)向單片機(jī)發(fā)送控制指令和顯示代碼內(nèi)容,單片機(jī)接收后執(zhí) 行控制指令處理顯示代碼將顯示內(nèi)容通過(guò) I/O 口串行輸出并且控制譯碼電 路完成串并轉(zhuǎn)換并行輸出,最后由顯示驅(qū)動(dòng)電路進(jìn)行電壓和電

26、流的處理以 達(dá)到 LED 顯示屏的顯示電流,電壓要求進(jìn)而使顯示屏顯示內(nèi)容。 根據(jù)硬件的功能結(jié)構(gòu)圖選取合適器件,器件不但要求能實(shí)現(xiàn)所要求的功能 還要能兼容至整個(gè)系統(tǒng)之中。通過(guò)查閱資料和對(duì)比最終的硬件原理圖如圖 3.1 所示。 電源 MAX232 PC機(jī) AT89C51 74LS164 74LS164 74LS164 74LS164 74LS373 74LS373 三極管 點(diǎn)陣模塊陽(yáng) 極 點(diǎn)陣模塊陰 極 圖 3.1 硬件原理圖 該系統(tǒng)所要實(shí)現(xiàn)的功能和要求有以下幾點(diǎn): (1)LED 顯示屏的面積必須滿足至少顯示一個(gè)漢字的標(biāo)準(zhǔn)。并且顯示要清 晰。 (2)驅(qū)動(dòng)電路要能提供 LED 顯示所需范圍內(nèi)的電壓和

27、電流要求。 (3)譯碼電路的高低電平的區(qū)分能力以及譯碼的輸入輸出頻率必須滿足 單片機(jī)以及驅(qū)動(dòng)電路的要求。 (4)單片機(jī)要能接收上位機(jī)的指令和顯示內(nèi)容且能夠處理后控制 LED 顯 示屏的顯示,并且端口驅(qū)動(dòng)能力要足以驅(qū)動(dòng)譯碼電路。執(zhí)行頻率要能達(dá)到 掃描顯示的最低要求。 (5)單片機(jī)由 ISP 下載線下載程序和供電,可不設(shè)立專用供電電源。 (6)由串口完成單片機(jī)與上位機(jī)的通信,通信速度和數(shù)據(jù)傳輸?shù)目煽啃?要達(dá)到顯示要求。 3.23.2 控制系統(tǒng)設(shè)計(jì)控制系統(tǒng)設(shè)計(jì) 控制電路設(shè)計(jì)中采用的是單片機(jī)系統(tǒng),該系統(tǒng)必須要是工作在一個(gè) 最小系統(tǒng)(指單片機(jī)的可以的最小配置系統(tǒng))。AT89C51 的最小系統(tǒng)包 括了外界

28、時(shí)鐘電路和復(fù)位電路,選定一定數(shù)量的 IO 口作為控制口控制外 部的各種器件和數(shù)據(jù)的輸出。根據(jù)功能選擇一定的單片機(jī)端口添加外圍 的器件,具體電路如圖 3.2 所示。 在該系統(tǒng)中,P1 各口主要用作 LED 顯示數(shù)據(jù)的控制輸出。由于端口 的驅(qū)動(dòng)能力有限所以該端口外接了 5K 的上拉電阻來(lái)提高驅(qū)動(dòng)能力。其中 P1.5P1.6P1.7 還復(fù)用為 ISP 下載功能口。具體接法為: P1.0,P1.1,P1.4,P1.5 分別接四塊 74LS164 的 A 端,向 74LS164 送入串 行數(shù)據(jù)經(jīng)過(guò)其轉(zhuǎn)換后并行輸出;P1.2 和 P1.6 分別接列和行的 74LS164 的 CLOCK 端,產(chǎn)生移位脈沖是

29、串行數(shù)據(jù)并行輸出;P1.3 和 P1.7 接列和行的 CLEAR 端,在一組數(shù)據(jù)完成串并轉(zhuǎn)換后清除 164 芯片中的內(nèi)容轉(zhuǎn)換新的數(shù) 據(jù);其中 P1.5P1.6P1.7 還復(fù)用為 ISP 下載功能口。P2.0 接 164 芯片的使 能控制端,當(dāng)為高電平使允許輸出;P2.2 和 P2.3 接鎖存器 74LS373 的 OE 和 LE 端控制鎖存器的工作狀態(tài)。 端口 30,EA/VPP:外部訪問(wèn)允許。欲使 CPU 僅訪問(wèn)外部程序存儲(chǔ)器 (地址為 0000HFFFFH),EA 端必須保持低電平(接地)。因?yàn)闆](méi)有擴(kuò) 展外部程序存儲(chǔ)器所以將 EA 置為高電平。 圖 3.2 控制部分電路圖 由于 P3 口是

30、特殊功能口,在該系統(tǒng)中基本是采用其第二功能。其第 二功能和實(shí)際運(yùn)用如表 3.1 所示: 表 3.1 AT89C51P3 口第二功能的應(yīng)用 端口第二功能實(shí)際作用 P3.0 RXD(串行輸 入口) 與上位機(jī)通信的數(shù) 據(jù)輸入口 P3.1 TXD(串行輸出 口) 與上位機(jī)通信的數(shù) 據(jù)輸出口 P3.2 外部中斷 0做按鍵中斷,控制 顯示狀態(tài) P3.3 外部中斷 1做按鍵中斷,控制 運(yùn)行模式 AT89C51 單片機(jī)的 P1 在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組 口線分時(shí)轉(zhuǎn)換地址(低 8 位)和數(shù)據(jù)總線復(fù)用,P2 口在訪問(wèn)外部程序存 儲(chǔ)器或 16 位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口送出高 8 位地址數(shù)據(jù)

31、。所 以 P1 和 P2 口留為外部數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器的擴(kuò)展用,以備內(nèi)部存 儲(chǔ)器和程序存儲(chǔ)器不夠用的情況時(shí)使用。 3.33.3 譯碼電路設(shè)計(jì)譯碼電路設(shè)計(jì) 譯碼電路的功能是為了解決單片機(jī) I/O 端口不足。行譯碼所用器件 為串并轉(zhuǎn)換器 74LS164 和鎖存器 74LS373。具體電路如圖 3.3 所示,代 碼的方法所以行譯碼電路上也加上了 74L373 鎖存芯片。這就要求 74LS164 芯片的輸出要滿足鎖存芯片的高低電平區(qū)分范圍和頻率要求 圖 3.3 行譯碼電路圖 。 3.43.4 列驅(qū)動(dòng)電路設(shè)計(jì)列驅(qū)動(dòng)電路設(shè)計(jì) 列驅(qū)動(dòng)采用 ULN2803。ULN2803 是一種高電壓大電流達(dá)林頓管陣列內(nèi)

32、 部結(jié)構(gòu),該陣列中的八個(gè) NPN 達(dá)林頓連接晶體管是低邏輯電平數(shù)字電路 (如 TTL,CMOS 或 PMOS)和大電流高電壓的燈,繼電器,打印機(jī)錘和其 他類似負(fù)載間的接口的理想器件。廣泛用于計(jì)算機(jī),工業(yè)和消費(fèi)類產(chǎn)品 中。所有器件有集電極開(kāi)路輸出和用于瞬變抑制的續(xù)流箝位二極管。集 電極輸出功率可達(dá) 50V600mA。 ULN2803 作為列驅(qū)動(dòng)執(zhí)行的是列選的工作,當(dāng)選通的列輸入高電平時(shí) 其對(duì)應(yīng)的輸輸出低電平。相對(duì)應(yīng)的輸出取反,并能提供較大的灌電流來(lái) 吸收行驅(qū)動(dòng)流出進(jìn)過(guò)顯示屏后的電流。具體電路如圖 3.7 所示。 圖 3.7 列驅(qū)動(dòng)原理圖 3.53.5 通信系統(tǒng)硬件設(shè)計(jì)通信系統(tǒng)硬件設(shè)計(jì) AT89C

33、51 單片機(jī)具有全雙工串行 UART 通道,支持單片機(jī)進(jìn)行數(shù)據(jù)的 串行傳輸。除了單片機(jī)要與 PC 機(jī)制定通信協(xié)議,確定發(fā)送速率外還需要 解決的問(wèn)題就是信號(hào)電平問(wèn)題。RS-232C 標(biāo)準(zhǔn)規(guī)定了 PC 機(jī)發(fā)送數(shù)據(jù)總線 TXD 和接收數(shù)據(jù)總線 RXD 采用 EIA 電平,即傳送數(shù)字“1”時(shí)傳輸線上的 電平在315V 之間;傳送數(shù)字“0”時(shí),傳輸線上的電平在 315 之間。但單片機(jī)串行口采用正邏輯 TTL 電平,即數(shù)字“1”時(shí) 為5V 數(shù)字“0”時(shí)為-5V,所以單片機(jī)與計(jì)算機(jī)不能直接相連進(jìn)行通信 必須將 RS-232C 與 TTL 電平進(jìn)行轉(zhuǎn)換。 在通用的電平轉(zhuǎn)換芯片中 MAX232 系列的芯片以集成

34、度高,單5V 電 源工作,只需外接 5 個(gè)小電容即可完成 RS-232C 與 TTL 電平之間的轉(zhuǎn)換而 成為單片機(jī)系統(tǒng)中的常用芯片。在該顯示系統(tǒng)中,MAX232 為通信系統(tǒng)中 最重要的硬件組成部分。電路如圖 3.8 所示: C1+ 1 VDD 2 C1- 3 C2+ 4 C2- 5 VEE 6 T2OUT 7 R2IN 8 R2OUT 9 T2IN 10 T1IN 11 R1OUT 12 R1IN 13 T1OUT 14 GND 15 VCC 16 5 MAX232ACPE 1 2 3 4 5 6 7 8 9 11 10 1 D Connector 9 C1 104 C2 104 C3 104

35、 C4 104 VCC P3.1 TX P3.0 RX VCC 圖 3.8 串口通信系統(tǒng)電路圖 3.63.6 電源設(shè)計(jì)電源設(shè)計(jì) 在系統(tǒng)中 MAX232、74LS164、74LS373、AT89S51 都需要 5V 的供電電 壓,在系統(tǒng)開(kāi)發(fā)過(guò)程中可以使用電腦 USB 供電。在實(shí)際的大屏幕 LED 顯 示屏設(shè)計(jì)中,用電腦 USB 供電明顯不切實(shí)際。此時(shí)需要對(duì)民用的 220V 進(jìn) 行降壓整流為 5V 直流電壓為顯示系統(tǒng)供電。電路圖如圖 3.9 所示。 圖 3.9 電源原理圖 如圖所示,用 220V 轉(zhuǎn) 12V 的變壓器進(jìn)行降壓后再通過(guò)一個(gè)橋式整流電路 將交流電整流為直流電。最后通過(guò) 5V 三端穩(wěn)壓模

36、塊 LM7805 得出穩(wěn)定的 5V 輸出。 3.73.7 LEDLED 顯示屏顯示屏設(shè)計(jì)設(shè)計(jì) LED 顯示屏主要采用內(nèi)部譯碼器級(jí)連和多個(gè)單片機(jī)系統(tǒng)級(jí)連的方法。 譯碼器級(jí)連如圖 3.10 所示。 將第 1 個(gè) 74LS164 的 Q7 端接第 2 個(gè) 74LS164 的 A 端,將第 2 個(gè) 74LS164 的 Q7 端接第 3 個(gè) 74LS164 的 A 端,如此炮制當(dāng) N 塊 74LS164 相 級(jí)連時(shí)就變?yōu)橐粋€(gè)串行輸入 7N 口輸出的串并轉(zhuǎn)換器。這種級(jí)連的優(yōu)點(diǎn) 在于一塊單片機(jī)可以同時(shí)控制更多的 LED 點(diǎn)陣顯示屏,且 74LS164 的價(jià) 格低廉整體成本得到了降低。但是這種級(jí)連方法也存在一

37、定的缺點(diǎn),51 系列的單片機(jī)的晶振頻率不高 74LS164 級(jí)連過(guò)多會(huì)增加一次掃描的時(shí)間 從而導(dǎo)致顯示出現(xiàn)閃爍。從端口輸出的顯示數(shù)據(jù)的顯示也要作出相應(yīng)的 改變。 圖 3.10 74LSL64 級(jí)連 構(gòu)建 LED 顯示屏的另一種方法是將以較小的 LED 顯示系統(tǒng)做為模塊 進(jìn)行級(jí)連。如圖 3-11 所示,由獨(dú)立的 LED 顯示系統(tǒng)組成一個(gè)大的 LED 顯 示系統(tǒng)。其中各子顯示系統(tǒng)之間在功能和控制上都是相互獨(dú)立的,將畫 面拆分為幾塊小畫面再分別送入到各子系統(tǒng)中,各子系統(tǒng)同步顯示便可 以得到一幅大的畫面。使用這種級(jí)連的辦法可以避免 51 單片機(jī)晶振頻率 低的弱點(diǎn),更容易實(shí)現(xiàn)大屏幕的顯示。但這種方法仍然

38、存在難點(diǎn),一是 各獨(dú)立的子系統(tǒng)的通信和協(xié)調(diào)性要求更高了,如果要實(shí)現(xiàn)顯示內(nèi)容的實(shí) 時(shí)性必須需要上位機(jī)不斷更新顯示內(nèi)容則增加了上位機(jī)的通信數(shù)據(jù)量, 逐個(gè)的單片機(jī)傳送數(shù)據(jù)也會(huì)影響整個(gè)畫面的更新速度。 電源上位機(jī) 單片機(jī)系統(tǒng) 驅(qū)動(dòng)電路 譯碼電路 單片機(jī)系統(tǒng) 譯碼電路 驅(qū)動(dòng)電路驅(qū)動(dòng)電路 譯碼電路 單片機(jī)系統(tǒng) LED點(diǎn)整模塊LED點(diǎn)整模塊LED點(diǎn)整模塊 圖 3.11 由子系統(tǒng)構(gòu)建 LED 顯示屏 在實(shí)際應(yīng)用中通常采用內(nèi)部擴(kuò)展和外部級(jí)連聯(lián)合使用的方法來(lái)構(gòu)建 大屏幕 LED 顯示屏幕。即增加單個(gè)顯示系統(tǒng)顯示屏幕大小的同時(shí)又將單 個(gè)的顯示系統(tǒng)級(jí)連。詳細(xì)硬件原理圖見(jiàn)附錄 A。 4. 軟件設(shè)計(jì)及開(kāi)發(fā) 4.14.1

39、程序設(shè)計(jì)程序設(shè)計(jì)流程圖流程圖 系統(tǒng)軟件采用 C 語(yǔ)言編寫,按照模塊化的設(shè)計(jì)思路設(shè)計(jì)。首先分析 程序所要實(shí)現(xiàn)的功能,程序要實(shí)現(xiàn)串口通信,靜態(tài)顯示,動(dòng)態(tài)顯示三大 功能。其功能結(jié)構(gòu)如圖 2.4 所示。通信程序接收上位機(jī)數(shù)據(jù),交給主程 序處理再通過(guò)控制程序選擇不同的顯示程序進(jìn)行顯示。主程序的工作流 程如圖 4.1 所示: 開(kāi)始 初始化系統(tǒng) 從顯示數(shù)組讀取 數(shù)據(jù)到顯示寄存 器 讀取顯示控制命 令選擇顯示方式 調(diào)用相應(yīng)顯示 程序 結(jié)束 是否顯示正常 Y 中斷開(kāi)始 I=1? 起始位? 接收顯示數(shù)據(jù)及控 制命令 將顯示數(shù)據(jù)移入顯 示數(shù)組,將控制命 令賦值給控制字符 中斷結(jié)束 Y N N 圖 4.1 主程序流程

40、圖 程序開(kāi)始時(shí)首先必須對(duì)單片機(jī)進(jìn)行初始化,其中初始化的內(nèi)容包括: 中斷優(yōu)先級(jí)的設(shè)定,中斷初始化,串行通信時(shí)通信方式的選擇和波特率 的設(shè)定,各 IO 口功能的設(shè)定等。初始化完成后程序進(jìn)入待機(jī)狀態(tài)等待中 斷的發(fā)生,該程序中主要用到了兩個(gè)外部中斷源和串行中斷。外部中斷 源由按鍵的電平變化觸發(fā),外部中斷主要功能是選擇 LED 點(diǎn)陣顯示屏的 控制方式是由按鍵控制還是上位機(jī)控制和顯示狀態(tài)是靜態(tài)顯示還是動(dòng)態(tài) 顯示。串行中斷包括發(fā)送中斷和接收中斷都是由軟件觸發(fā)。中斷產(chǎn)生后 由預(yù)先初始化時(shí)設(shè)定跳轉(zhuǎn)執(zhí)行中斷子程序。中斷程序設(shè)定了 LED 點(diǎn)陣顯 示屏所要顯示的內(nèi)容和顯示的方式,最后執(zhí)行的是各種顯示程序。按照 設(shè)定

41、的方式和內(nèi)容顯示出所需要的內(nèi)容。 4.24.2 LEDLED 顯示屏的顯示方式顯示屏的顯示方式的設(shè)計(jì)的設(shè)計(jì) LED 點(diǎn)陣屏顯示方式主要由靜態(tài)顯示和動(dòng)態(tài)掃描顯示兩種。對(duì)靜態(tài) 顯示來(lái)說(shuō),每一個(gè)發(fā)光二極管都需要一套驅(qū)動(dòng)電路,一幀畫面輸入以后 便可一勞永逸地顯示,除非我們改變了顯示內(nèi)容,需要重新輸出新的點(diǎn) 陣數(shù)據(jù)這種方式系統(tǒng)原理相對(duì)簡(jiǎn)單一些,但所需的譯碼驅(qū)動(dòng)裝量很多, 引線多而繁雜,不便于大屏幕的制造,成本高,其可靠性也較低。 另一種動(dòng)態(tài)掃描顯示是把整個(gè) LED 屏幕分成若干部分,每一幅畫面 的顯示是顯示完一部分后,又顯示第二部分直到顯示完最后一部分 又重新開(kāi)始顯示第一部分,重復(fù)循環(huán)進(jìn)行在重復(fù)掃描速度

42、足夠快的情 況下,我們看到的就是一幅穩(wěn)定的畫面也就是說(shuō)采用動(dòng)態(tài)掃描顯示需 要不斷進(jìn)行畫面的刷新。 讀取所需 要顯示的 數(shù)據(jù)至顯 示寄存器 選通第1列 從數(shù)據(jù)中讀取 第16列對(duì)應(yīng)的 行數(shù)據(jù) 從數(shù)據(jù)中讀取 第2列對(duì)應(yīng)的行 數(shù)據(jù) 從數(shù)據(jù)中讀取 第1列對(duì)應(yīng)的行 數(shù)據(jù) 16x16LED 選通第16列選通第2列 16x16LED16x16LED 按數(shù)據(jù)導(dǎo)通 相應(yīng)行 選通LED第 1列 選通LED第 2列 選通LED第 16列 按數(shù)據(jù)導(dǎo)通 相應(yīng)行 按數(shù)據(jù)導(dǎo)通 相應(yīng)行 圖 4.2 掃描顯示程序原理圖 4.2.14.2.1 點(diǎn)陣數(shù)據(jù)表達(dá)方式點(diǎn)陣數(shù)據(jù)表達(dá)方式的設(shè)計(jì)的設(shè)計(jì) 該顯示系統(tǒng)的顯示數(shù)據(jù)采取縱向取模方向正向的

43、數(shù)據(jù)存儲(chǔ)方式如圖 4.3 圖 4.3 點(diǎn)陣數(shù)據(jù)原理圖 即數(shù)據(jù)是縱向的,一個(gè)像素對(duì)應(yīng)一個(gè)位。8 個(gè)像素對(duì)應(yīng)一個(gè)字節(jié), 字節(jié)的位順序是上高下低,比如從上到下 8 個(gè)點(diǎn)的狀態(tài)是“*-*-” (*為黑點(diǎn),-為白點(diǎn)),則轉(zhuǎn)換的字模數(shù)據(jù)是 0 x82(B1000_0010)。如圖 (4-3)所示,一幅 1616 的點(diǎn)陣畫面點(diǎn)陣數(shù)據(jù)按照 B1B2B3B31B32 存 儲(chǔ)。所以一幅畫面的數(shù)據(jù)量為 32 字節(jié)。畫面顯示時(shí)選通的第 i 列對(duì)應(yīng)的 數(shù)組元素為第 i 和 i+16 個(gè)元素。 4.2.24.2.2 顯示程序的設(shè)計(jì)顯示程序的設(shè)計(jì) 顯示程序分為靜態(tài)顯示程序、左移顯示、右移顯示、上移顯示、下移 顯示五種種顯示

44、方式。其中上下左右移動(dòng)程序都調(diào)用了靜態(tài)顯示程序?yàn)?子程序。靜態(tài)顯示程序流程圖如圖 4.4 所示: 開(kāi)始 初始化 讀取顯示數(shù) 依次選通列,行 74LS164的CLOCK端 置低,鎖存器禁止 輸出 對(duì)應(yīng)行數(shù)組元素與 0X01相與,相與結(jié) 果寫入單片機(jī)端口 輸出 數(shù)組元素右移一 位,對(duì)應(yīng) 74LS164CLOCK端置 高 右移次數(shù)是否 為8? 結(jié)束 鎖存器允許輸出 Y 圖 4.4 靜態(tài)顯示程序流程圖 靜態(tài)顯示采用的是列掃描的顯示方式,選通一列后按照列與數(shù)據(jù)元 素的對(duì)應(yīng)關(guān)系第 i 列對(duì)應(yīng)的行數(shù)據(jù)為數(shù)組中的第 i 和第 i+16 個(gè)元素。將 對(duì)應(yīng)元素的由低至高位依次從端口輸出具體做法為將元素向右邏輯移位

45、 后再與 0X01 相與,所得結(jié)果通過(guò)單片機(jī)端口輸出到串并轉(zhuǎn)換器的 A 端, 鎖存在鎖存器里完成一列數(shù)據(jù)移位后再將其輸出。如此依次循環(huán)選通各 列來(lái)顯示所需畫面。 開(kāi)始 讀入顯示數(shù)組 顯示 顯示數(shù)組元素在數(shù) 組中的位置上/下 移一位 移位次數(shù)是否 為16位? 結(jié)束 N Y 開(kāi)始 讀入顯示數(shù)組 顯示 顯示數(shù)組元素邏輯 左/右移一位 移位次數(shù)是否 為16位? 結(jié)束 Y N 圖 4.5 左右移/上下移程序流程圖 動(dòng)態(tài)顯示程序流程如圖 4.5 所示,根據(jù)顯示數(shù)據(jù)的存儲(chǔ)原理通過(guò)改 變實(shí)際 LED 列與數(shù)據(jù)邏輯列的方法來(lái)實(shí)現(xiàn)程序的左右移動(dòng)。顯示數(shù)據(jù)與 列的對(duì)應(yīng)關(guān)系為:第 i 列對(duì)應(yīng)的數(shù)據(jù)為數(shù)組中 i 和第

46、2i 個(gè)數(shù)據(jù)。所以 當(dāng) ULN2803 選通時(shí),而送入后一列的數(shù)據(jù)則相當(dāng)于畫面左移移位,同理 送入前一列數(shù)據(jù)相當(dāng)于右移一位。如此循環(huán)則產(chǎn)生一幅穩(wěn)定運(yùn)動(dòng)的畫面。 4.34.3 通信設(shè)計(jì)通信設(shè)計(jì) 系統(tǒng)采用串行中斷的方式進(jìn)行通信。MCS-51 單片機(jī)的五個(gè)中斷源兩 種類型:一類是外部中斷源;另一類是內(nèi)部中斷源,包括兩個(gè)定時(shí)器/計(jì) 數(shù)器(T0 和 T1)的溢出中斷和串行口的接收和發(fā)送中斷。MCS-51 單片 機(jī)設(shè)置了 4 個(gè)專用寄存器用于中斷控制,分別為定時(shí)器控制寄存器 (TCON) ,串行口中斷控制器(SCON) ,中斷允許控制寄存器(IE) ,中斷 優(yōu)先級(jí)控制寄存器(IP) 。編程時(shí)通過(guò)設(shè)置其狀態(tài)

47、來(lái)管理中斷系統(tǒng)。 在編輯中斷程序時(shí)首先是將中斷控制寄存器(IE)初始化。其控制位 分布如表。EA 為中斷允許總控制位,EA=1 時(shí) CPU 開(kāi)發(fā)中斷;EA1 時(shí)。 CPU 屏蔽所有中斷。ES、ET、EX1、ET0、EX0 為對(duì)應(yīng)的串行口中斷、定時(shí) 器/計(jì)數(shù)器 1 中斷、外部中斷 1 中斷、定時(shí)器/計(jì)數(shù)器 0 中斷、外部中斷 0 中斷的中斷允許位。對(duì)應(yīng)位為 1 時(shí)允許其中斷,對(duì)應(yīng)位為 0 時(shí),禁止 其中斷。 表 4.1 中斷允許寄存器格式 所以初始化時(shí)設(shè)定中斷允許寄存器初值為 0XFF,指令為 IE=0XFF。 程序設(shè)計(jì)時(shí)還要考慮到中斷優(yōu)先級(jí)的問(wèn)題。因?yàn)椴煌闹袛嗤瑫r(shí)產(chǎn)生而 CPU 響應(yīng)的順序取

48、決于內(nèi)部查詢順序。 設(shè)置串口工作方式 1,波特率 9600,計(jì)算可得計(jì)數(shù)器初值的十六進(jìn)制 表示為 0XFD。通信協(xié)議如表 4.2 所示: 數(shù)據(jù) 結(jié)構(gòu) 第 1 個(gè)字節(jié)第 2 至第 33 個(gè) 字節(jié) 第 34 個(gè)字節(jié) 內(nèi)容起始標(biāo)志位S顯示數(shù)據(jù)控制指令 作用判斷是否開(kāi)始接 收數(shù)據(jù) LED 的顯示內(nèi) 容 控制 LED 顯 示方式 D7D6D5D4D3D2D1D0 EAESET1EX1ET0EX0 表 4.2 串口通信數(shù)據(jù)結(jié)構(gòu) 具體串口中斷程序流程圖如圖 4.6 所示,在主程序中先進(jìn)行了串行 中斷的初始化,初始化內(nèi)容包括了串行工作方式選擇,波特率的設(shè)定, 計(jì)數(shù)初值的設(shè)定。程序開(kāi)始進(jìn)入中斷等待,當(dāng) PC 機(jī)

49、向單片機(jī)發(fā)送數(shù)據(jù)時(shí) 產(chǎn)生中斷接收允許位 RI 置 1,將 SBUF(緩沖寄存器)中的值輸入到暫存 器中進(jìn)行數(shù)據(jù)處理。首先判斷數(shù)據(jù)是否設(shè)定的起始標(biāo)志位S如果是則 開(kāi)始接收起始位后的 33 個(gè)字節(jié),不是則中斷返回繼續(xù)等待。接收到第 34 個(gè)字節(jié)后便將收到的數(shù)據(jù)發(fā)送回 PC 機(jī)進(jìn)行驗(yàn)證比較。 RI=1? 接收串口數(shù)據(jù) 起始位S 接收起始位后 33 位數(shù)據(jù) 接收到第 34 位? 將第 2 位起的 32 位數(shù)據(jù)發(fā)回 PC 機(jī) N N N Y Y Y 中斷開(kāi)始 中斷返回 圖 4.6 通信程序流程圖 所有軟件編寫完成后都必須經(jīng)過(guò)編譯才能被單片機(jī)識(shí)別使用。為了減 小軟件的修改和優(yōu)化難度,先把各子程序?qū)憺橐粋€(gè)可

50、單獨(dú)執(zhí)行的完整程 序。各子程序編譯沒(méi)有錯(cuò)誤后再輸入單片機(jī)進(jìn)行驗(yàn)證,這兩項(xiàng)都通過(guò)后 再將所有的程序整合到一起形成一個(gè)完整的程序再進(jìn)行編譯和驗(yàn)證。詳 細(xì)程序見(jiàn)附錄 B。 5. 系統(tǒng)測(cè)試 硬件制作和軟件編寫過(guò)后,得出實(shí)物如圖 5.1 所示。實(shí)物完成后必須 對(duì)其進(jìn)行調(diào)試,檢 查設(shè)計(jì)功能是否實(shí)現(xiàn)了。軟件硬件完成后開(kāi)始進(jìn)行調(diào)試。調(diào)試可分為硬件 調(diào)試,軟件調(diào)試和系統(tǒng)聯(lián)合調(diào)試。 5.15.1 系統(tǒng)硬件部分調(diào)試系統(tǒng)硬件部分調(diào)試方法方法 硬件調(diào)試主要是調(diào)試各部分的焊接是否合格和各芯片的輸出輸入電 壓是否符合設(shè)計(jì)要求,最后測(cè)試各硬件部分能否完成設(shè)計(jì)功能。因此把 硬件調(diào)試按照以下四部分分步來(lái)進(jìn)行: (1)測(cè)試所有焊點(diǎn)

51、是否有短路和虛焊的現(xiàn)象存在; (2)通電測(cè)試所有硬件芯片的輸入輸出電壓是否在設(shè)計(jì)要求的范圍內(nèi); (3)測(cè)試 ISP 下栽線的功能是否能夠?qū)崿F(xiàn); (4)測(cè)試串口系統(tǒng)的通信功能是否能夠?qū)崿F(xiàn)。 由于最重要的顯示系統(tǒng)功能的測(cè)試需要軟件配合所以在硬件調(diào)試部 分只測(cè)試單片機(jī)復(fù)位電平,功能部分測(cè)試放在系統(tǒng)聯(lián)合調(diào)試部分來(lái)完成。 5.1.15.1.1 串口調(diào)試串口調(diào)試 串口部分的作用為單片機(jī)與 PC 機(jī)之間通信,要檢查硬件是否正常工 作可以采用將 MAX232 芯片的單片機(jī)端輸出口與輸入口直接相連的辦法來(lái) 測(cè)試。具體電路圖如圖 5-2 所示,將 MAX232 的第 10 端和第 9 端直接短 接。功能上表示將單

52、片機(jī)的輸出口與輸入口直接相連,單片機(jī)收到數(shù)據(jù) 的同時(shí)就將數(shù)據(jù)發(fā)送回 PC 機(jī)。如果發(fā)送的數(shù)據(jù)能夠被接收則證明串口通 信部分的硬件是正常的。將串口與電腦 COM1 相接,通過(guò)串口調(diào)試助手發(fā) 送不同位數(shù)的數(shù)據(jù)再在把發(fā)送的數(shù)據(jù)與接收數(shù)據(jù)相比較。 C1+ 1 VDD 2 C1- 3 C2+ 4 C2- 5 VEE 6 T2OUT 7 R2IN 8 R2OUT 9 T2IN 10 T1IN 11 R1OUT 12 R1IN 13 T1OUT 14 GND 15 VCC 16 5 MAX232ACPE 1 2 3 4 5 6 7 8 9 11 10 1 D Connector 9 C1 104 C2 10

53、4 C3 104 C4 104 VCC P3.1 TX P3.0 RX VCC 圖 5.2 串口硬件調(diào)試 5.25.2 系統(tǒng)聯(lián)合調(diào)試系統(tǒng)聯(lián)合調(diào)試及結(jié)果及結(jié)果 經(jīng)過(guò)硬件調(diào)試和軟件調(diào)試,排除了硬件的連接問(wèn)題和驗(yàn)證了串口功 能的可實(shí)現(xiàn)性。其余功能的軟件便可以在此基礎(chǔ)上調(diào)試驗(yàn)證其功能的正 確性。聯(lián)合調(diào)試的具體方法如下: (1)編寫一個(gè)逐點(diǎn)掃描的顯示程序,再結(jié)合硬件電路運(yùn)行。這樣做的目 的在于檢測(cè)各器件是否能夠正常運(yùn)行和顯示屏的各個(gè) LED 燈是否有損壞。 結(jié)果顯示顯示屏中只有邊角出有一個(gè) LED 燈被燒壞,其他器件邏輯功能運(yùn) 行正常。 (2)將靜態(tài)顯示子程序與各種動(dòng)態(tài)顯示程序結(jié)合硬件電路進(jìn)行調(diào)試。系

54、統(tǒng)運(yùn)行時(shí)顯示如圖 5-1 所示,顯示圖像比較清晰,各動(dòng)態(tài)顯示效果也能夠 實(shí)現(xiàn)。但顯示存在兩個(gè)問(wèn)題。一是發(fā)光點(diǎn)的下方會(huì)出現(xiàn)一個(gè)很微弱的亮點(diǎn), 影響了整體的顯示效果。二是同一列的 LED 燈被點(diǎn)亮的數(shù)量與其亮度出反 比,即如果同一列的燈都被點(diǎn)亮則亮度比只點(diǎn)亮幾個(gè)時(shí)要暗一點(diǎn)。 (3)將串口通信,顯示,硬件聯(lián)合調(diào)試。按照設(shè)定的通信協(xié)議,先由 PC 機(jī)向單片機(jī)發(fā)送起始控制字 s,接著再發(fā)送 32 比特的顯示數(shù)據(jù),最后發(fā)送 控制顯示方式的顯示控制字。再發(fā)送不同的顯示數(shù)據(jù)和顯示控制字,觀察 各種顯示方式的運(yùn)行情況和各種顯示方式之間的切換情況。結(jié)果是顯示屏 執(zhí)行顯示控制指令,顯示所發(fā)送的內(nèi)容。結(jié)果如圖 5.4

55、 所示 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 CS1 1 CS2 2 GND 3 VCC 4 V0 5 DI 6 R/W 7 E 8 DB0 9 DB1 10 DB2 11 DB3 12 DB4 13 DB5 14 DB6 15 DB7 16 RST 17 -Vout 18 LCD1 LGM12641BS1R 圖 5.4 點(diǎn)陣漢字顯示效果圖 總 結(jié) 經(jīng)過(guò)一段時(shí)間的努力,終于完成了基于 51 單片機(jī)的 LED 顯示系統(tǒng)的 設(shè)計(jì),項(xiàng)目所要求的功能全部達(dá)到。通過(guò)這次設(shè)計(jì)收獲頗多,不僅是所 作題目涉及到的軟硬件知識(shí)還有更為重要的實(shí)際經(jīng)驗(yàn)和過(guò)程中所發(fā)現(xiàn)的 問(wèn)題。

56、 接手題目之后從互聯(lián)網(wǎng)上對(duì) LED 進(jìn)行了詳細(xì)的資料收集,從技術(shù)和 產(chǎn)業(yè)的兩方面對(duì) LED 進(jìn)行了了解。通過(guò)了解我認(rèn)識(shí)到 LED 是一門當(dāng)今應(yīng) 用非常廣泛的技術(shù),整個(gè)產(chǎn)業(yè)每年都會(huì)有巨大的產(chǎn)值而且技術(shù)還在不斷 發(fā)展和創(chuàng)新。 從設(shè)計(jì)之初就確定了參照大屏幕顯示屏的實(shí)現(xiàn)方法和實(shí)際情況設(shè)計(jì) 一款小屏幕的 LED 點(diǎn)陣顯示屏。在查閱了大量的大屏幕顯示屏資料后確 定了題目的設(shè)計(jì)方案。整個(gè)設(shè)計(jì)采用 AT89C51 做核心控制器,74LS164 和 74LS373 組成譯碼電路,三極管 8550 和 ULN2803 做行和列驅(qū)動(dòng)。在實(shí) 現(xiàn)這一設(shè)計(jì)的過(guò)程中所遇到的問(wèn)題和困難給我留下了寶貴的經(jīng)驗(yàn)和深刻 教訓(xùn)。這些經(jīng)

57、驗(yàn)和教訓(xùn)是: (1)設(shè)計(jì)之前應(yīng)該進(jìn)行大量的資料收集和分析,確定一個(gè)清晰的設(shè)計(jì)思 路; (2)器件選擇時(shí)要詳細(xì)閱讀器件使用手冊(cè),不但要考慮器件的功能實(shí)現(xiàn) 還要考慮器件在整個(gè)系統(tǒng)中的兼容性; (3)硬件的系統(tǒng)的建立必須合理和穩(wěn)定,實(shí)物建立之前最好進(jìn)行仿真這 樣才能為軟件提供一個(gè)可靠的試驗(yàn)平臺(tái); (4)軟件的編寫不但要實(shí)現(xiàn)功能還要不斷的優(yōu)化、簡(jiǎn)練、易讀。 隨著課題的進(jìn)行,對(duì) LED 的了解也越來(lái)越深入。認(rèn)為 LED 技術(shù)也會(huì) 進(jìn)一步發(fā)展,LED 應(yīng)用將會(huì)更加廣泛??梢栽O(shè)想利用 LED 的高穩(wěn)定性和 低能耗,再與無(wú)線通信技術(shù)相結(jié)合在沙漠深處或者人跡罕至的雪山之顛 樹(shù)立一塊依靠太陽(yáng)能充電,通過(guò)無(wú)線傳輸方

58、式更改顯示內(nèi)容的信息板為 登山者提供指示和天氣信息,為沙漠迷路的人指引方向。 設(shè)計(jì)結(jié)束了,但學(xué)習(xí)還在繼續(xù)。我相信通過(guò)此次設(shè)計(jì)所得到的知識(shí)、 心得、經(jīng)驗(yàn)?zāi)酥粮惺芏紩?huì)讓我在以后的日子里受益匪淺。 致 謝 這次能夠圓滿完成畢業(yè)設(shè)計(jì)我首先要感謝我的指導(dǎo)老師潘繼強(qiáng)老師, 感謝他在畢業(yè)設(shè)計(jì)期間對(duì)我的指導(dǎo)、勉勵(lì)、和督導(dǎo)。同時(shí)我要感謝大學(xué) 四年里教過(guò)我課程的老師們,感謝他們對(duì)我知識(shí)增長(zhǎng)所付出的辛勤勞動(dòng)。 在我畢業(yè)論文寫作期間,老師給我提供了各種專業(yè)知識(shí)上的指導(dǎo),沒(méi)有 您們的幫助,我不會(huì)這么順利的完成畢業(yè)設(shè)計(jì),借此機(jī)會(huì),向您們表示 由衷的感謝。接著,我要感謝同組的各位同學(xué)。在畢業(yè)設(shè)計(jì)的短短 3 個(gè) 月里,你們給

59、我提出很多寶貴的意見(jiàn),給了我不少幫助還有工作上的支 持,在此也真誠(chéng)的謝謝你們。和他們的相互幫助和啟發(fā)中,才有我今天 的小小收獲。最后我要深深地感謝我的家人,正是他們含辛茹苦地把我 養(yǎng)育成人,在生活路上的和學(xué)習(xí)上給予我無(wú)盡的愛(ài)、理解和支持,才使 我時(shí)刻充滿信心和勇氣,克服成長(zhǎng)種種困難,順利的完成大學(xué)學(xué)習(xí)。 還 有許許多多給予我學(xué)業(yè)上鼓勵(lì)和幫助的師長(zhǎng)、朋友,在此無(wú)法一一列舉, 在此也一并表示忠心地感謝! 參考文獻(xiàn) 1戴梅萼,史嘉權(quán).微型計(jì)算機(jī)技術(shù)及應(yīng)用(第四版)M. 北京:清華大 學(xué)出版社,2008. 2李建忠.單片機(jī)原理及應(yīng)用M. 西安:西安電子科技大學(xué)出版社, 2008. 3何欽銘,顏暉.C

60、語(yǔ)言程序設(shè)計(jì)M. 北京:高等教育出版社,2007. 4李群芳.單片機(jī)微型計(jì)算機(jī)與接口技術(shù)M.北京:電子工業(yè)出版社, 2010. 5步維提,郭強(qiáng).最新液晶顯示應(yīng)用M. 北京:電子工業(yè)出版社,2007. 6李華.MCU-51 系列單片機(jī)實(shí)用接口技術(shù)M.北京:北京航空航天大學(xué)出 版社,2009. 7胡強(qiáng),張昆.C+ Builder 6 編程實(shí)例教程M.北京:北京希望電子出版 社,2009. 8王波.基于 51 單片機(jī)的 LED 顯示系統(tǒng)的設(shè)計(jì)M.山西:山西大學(xué)出版 社,2008. 9陳新忠.基于 RS232 總線的單片機(jī)多機(jī)通信軟件設(shè)計(jì)M.北京:人民出 版社,2009. 10 李桂平.LED 屏幕顯

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論