




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、廣西交通職業(yè)技術(shù)學(xué)院信息工程系廣西交通職業(yè)技術(shù)學(xué)院信息工程系 作品設(shè)計(jì)報(bào)告書作品設(shè)計(jì)報(bào)告書 課程名稱課程名稱 電子電路設(shè)計(jì)與制作電子電路設(shè)計(jì)與制作 題題 目目 16*1616*16 漢字點(diǎn)陣顯示屏漢字點(diǎn)陣顯示屏 班班 級(jí)級(jí) 電信電信 2011-12011-1 班班 學(xué)學(xué) 號(hào)號(hào) 007007 032032 姓姓 名名 范杰范杰 任課老師任課老師 韋家正韋家正 二二 o 一三年一月一三年一月 目錄 摘要摘要 .1 一、一、系統(tǒng)方案選擇和論證系統(tǒng)方案選擇和論證 .1 1.1設(shè)計(jì)要求 .1 2.1系統(tǒng)基本方案 .1 2.1.1.主控電路選擇.1 2.1.2.點(diǎn)陣顯示屏部分.1 2.1.3.顯示屏控制部
2、分.2 二、二、電路模塊的設(shè)計(jì)與分析電路模塊的設(shè)計(jì)與分析.2 2.1.系統(tǒng)程序的設(shè)計(jì) .2 2.2.單片機(jī)系統(tǒng)及外圍電路.3 2.3.led 點(diǎn)陣顯示 .7 24.漢字掃描的原理 .8 25.方案的實(shí)現(xiàn) .8 三、三、系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì).9 四、四、系統(tǒng)測(cè)試與分析系統(tǒng)測(cè)試與分析.11 4.1點(diǎn)陣顯示屏的仿真與程序調(diào)試.11 4.2整機(jī)測(cè)試 .12 4.3系統(tǒng)主程序 .12 4.4系統(tǒng)測(cè)試結(jié)果分析 .12 五、五、設(shè)計(jì)制作總結(jié)設(shè)計(jì)制作總結(jié).12 5.1總結(jié).12 5.2致謝詞 .13 六、六、參考文獻(xiàn)參考文獻(xiàn).13 附錄一:系統(tǒng)主要元件清單附錄一:系統(tǒng)主要元件清單.14 摘要 摘要摘要 l
3、ed 點(diǎn)陣顯示屏作為一種新興的顯示器件,是由多個(gè)獨(dú)立的高亮度的 led 發(fā) 光二極管封裝而成。led 點(diǎn)陣顯示屏可以顯示數(shù)字或符號(hào),通常用來顯示時(shí)間、 速度、系統(tǒng)狀態(tài)等靈活的動(dòng)態(tài)顯示。文章給出了一種基于 mcs-51/52 單片機(jī)的 1616 點(diǎn)陣 led 顯示屏的設(shè)計(jì)方案,包括系統(tǒng)具體的硬件設(shè)計(jì)方案,軟件流程 圖和匯編語(yǔ)言程序等方面內(nèi)容。在負(fù)載范圍內(nèi), 只需通過簡(jiǎn)單的級(jí)聯(lián)就可以對(duì) 顯示屏進(jìn)行擴(kuò)展,是一種成本低廉、亮度高、工作電壓低、功耗小、微型化、易 與集成電路匹配、驅(qū)動(dòng)簡(jiǎn)單、壽命長(zhǎng)、耐沖擊、性能穩(wěn)定的圖文顯示方案。 abstractabstract led dot matrix displ
4、ay, as a new display device, by a number of independent high- brightness led light-emitting diode packages. led dot matrix display can display numbers or symbols, usually used to display time, speed, system status, and a flexible dynamic display. paper, a microcomputer-based mcs-51/52 16 16 dot matr
5、ix led display design, including the system specific hardware design, software flowcharts and assembly language programs and other aspects. within the load range, by simply cascading jiu expansion can right display jin xing, is a low cost, high brightness, low voltage gong hao xiao, miniaturization,
6、 yi yu ic match, qu dong simple, shou ming long, impact resistance, stable performance, graphics and display options. 一、 系統(tǒng)方案選擇和論證 1.1 設(shè)計(jì)要求 基本要求: 要求點(diǎn)陣顯示屏能夠顯示中文漢字、英文字母、阿拉伯?dāng)?shù)字等信息。 要求點(diǎn)陣顯示屏能夠顯示三角形、矩形等各類簡(jiǎn)單的圖形。 要求通過按鍵進(jìn)行顯示模式(漢字、英文、數(shù)字、圖形)的切換。 要求整個(gè)系統(tǒng)只使用兩節(jié) 1.5v 的電池進(jìn)行供電。 發(fā)揮要求: 要求所顯示的內(nèi)容能夠?qū)崿F(xiàn)上、下、左、右的移動(dòng)功能。 移動(dòng)方向和移動(dòng)速
7、度(至少分三個(gè)等級(jí))可以通過按鍵進(jìn)行設(shè)置。 顯示屏能夠通過紅外遙控的方式進(jìn)行控制 2.1 系統(tǒng)基本方案 2.1.1.主控電路選擇 方案一:數(shù)字電路控制的原理是 led 點(diǎn)陣顯示屏由單片機(jī)控制電路和顯示 驅(qū)動(dòng)電路兩大部分組成。一般的單片機(jī)控制部分采用 atmel 公司的 at89s51/52 系列單片機(jī),顯示驅(qū)動(dòng)部分由 4 片 88 led 點(diǎn)陣模塊和相應(yīng)的驅(qū) 動(dòng)電路組成,位碼掃描信號(hào)和段碼信號(hào)都由單片機(jī)提供,并且 at89s52 單片機(jī) 構(gòu)成的主控電路,支持 isp 下載技術(shù),控制操作簡(jiǎn)單,價(jià)格低廉,通用性強(qiáng)。 方案二:由 cpld 器件組成的控制電路,具有很高的可靠性和設(shè)計(jì)靈活性, 所實(shí)現(xiàn)的
8、顯示效果樣式較多,但采用可編程邏輯器件 cpld 的設(shè)計(jì)成本相對(duì)較高。 由于采用由單片機(jī)組成的控制電路已能完成設(shè)計(jì)的要求,且其性價(jià)比要優(yōu)于 采用由 cpld 組成的控制電路。因此,主控電路采用方案一作為控制電路。 2.1.2.點(diǎn)陣顯示屏部分 方案一:串行方式顯示。這種方式可同時(shí)顯示 4 個(gè) 88 漢字點(diǎn)陣的漢字、 字符或數(shù)字。點(diǎn)陣顯示屏每個(gè)單元由 4 個(gè) 88 點(diǎn)陣 led 顯示模塊、驅(qū)動(dòng)器 74hc154、數(shù)據(jù)移位寄存器 74hc595 和行驅(qū)動(dòng)器組成,單元顯示屏可以接收控制 器(主控制電路板)或上一級(jí)顯示單元模塊傳輸下來的數(shù)據(jù)信息和命令信息,并 可將這些數(shù)據(jù)信息和命令信息不經(jīng)任何變化地再傳
9、送到下一級(jí)顯示模塊單元中, 因此顯示屏可擴(kuò)展至更多的顯示單元,用于顯示更多的內(nèi)容。此方案為點(diǎn)陣顯 示屏系統(tǒng)中比較常用的,所用器件也比較常用,容易買到。但是它存在一個(gè)致 命的缺點(diǎn),就是刷新速度不夠快。如果要驅(qū)動(dòng) 64 列點(diǎn)陣顯示,通用 51 單片機(jī) 會(huì)比較吃力,出現(xiàn)比較嚴(yán)重的閃爍停滯現(xiàn)象。此外,要實(shí)現(xiàn)文字的左右移動(dòng)和 調(diào)整移動(dòng)速度等功能,都會(huì)給軟件設(shè)計(jì)帶來較多困難。 方案二:并行方式顯示。可以通過鎖存器芯片來擴(kuò)展 i/o 口,達(dá)到控制 led 點(diǎn)陣的 64 個(gè)列線的目的。方案中運(yùn)用 16 片鎖存器 74hc154 來組成 8 組雙 緩沖寄存器。驅(qū)動(dòng) led 點(diǎn)陣的 8 組列線,移位寄存器 74h
10、c595 對(duì) led 點(diǎn)陣的 16 行進(jìn)行掃描。在送每一行的數(shù)據(jù)到 led 點(diǎn)陣前,先把數(shù)據(jù)分別送到第一級(jí)的 8 個(gè) 74hc154,然后再給第二級(jí)的 8 個(gè) 74hc154 送鎖脈沖,數(shù)據(jù)一起輸出到 led 點(diǎn)陣列中,這樣就避免了各行數(shù)據(jù)顯示不同步問題。由于并行數(shù)據(jù)傳輸速度比 串行快,所以字符閃爍的問題得到較好地解決,文字左右/上下移動(dòng)也比較容易 控制。 綜上所述,本作品制作最終選擇了方案二。 2.1.3.顯示屏控制部分 方案一:?jiǎn)螜C(jī)工作模式。采用一個(gè)單片機(jī)控制實(shí)現(xiàn)所有功能,其中包括 led 點(diǎn)陣顯示屏的刷新顯示、模式選擇等。只用一個(gè)單片機(jī)控制點(diǎn)陣顯示屏可 以使電路大大減化,軟件設(shè)計(jì)方面也容
11、易實(shí)現(xiàn)。但是,將所有功能集成在一起, 一片 at89s51/52 單片機(jī)處理能力是不夠的。此時(shí),單片機(jī)的 cpu 內(nèi)部資源已顯 不足,會(huì)導(dǎo)致系統(tǒng)功能欠佳,達(dá)不到較好的性能。 方案二:主從工作模式。采用主從單片機(jī)工作方式來控制整個(gè)系統(tǒng)。其中 一個(gè)單片機(jī)用于控制 led 點(diǎn)陣顯示,另外一個(gè)單片機(jī)用于擴(kuò)展鍵盤、串口等工 作。相對(duì)單機(jī)工作方式,主從工作模式的處理能力大大提高,并且分工明確, 執(zhí)行速度得到很大的提高。雖然硬件電路以及軟件設(shè)計(jì)方面要求相對(duì)高了一些, 更涉及到主從單片機(jī)通信問題。 至此,為了更好地實(shí)現(xiàn)各項(xiàng)性能指標(biāo),本設(shè)計(jì)采用了這種方案。 二、 電路模塊的設(shè)計(jì)與分析 2.1. 系統(tǒng)程序的設(shè)計(jì)
12、顯示屏軟件的主要功能是向屏體提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號(hào),使 屏幕按設(shè)計(jì)的要求顯示。根據(jù)軟件分層次設(shè)計(jì)的原理,可以把顯示屏的軟件系 統(tǒng)分為兩層;第一層是底層的顯示驅(qū)動(dòng)程序,第二層是上層的系統(tǒng)應(yīng)用程序。 顯示驅(qū)動(dòng)程序負(fù)責(zé)向屏體送顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行掃描信號(hào)和其他控制信號(hào), 配合完成 led 顯示屏的掃描顯示工作。顯示驅(qū)動(dòng)器程序由定時(shí)器 t0 中斷程序?qū)?現(xiàn)。系統(tǒng)應(yīng)用程序完成系統(tǒng)環(huán)境設(shè)置(初始化)、顯示效果處理等工作,由主 程序來實(shí)現(xiàn)。從有利于實(shí)現(xiàn)較復(fù)雜的算法(顯示效果處理)和有利于程序結(jié)構(gòu) 化考慮,顯示屏程序適宜采用匯編語(yǔ)言編寫。 16x16 led 顯示屏電路大致上可以分成單片機(jī)系統(tǒng)及外
13、圍電路、列驅(qū)動(dòng)電 路和行驅(qū)動(dòng)電路三部分,系統(tǒng)框如下所示: 2.2. 單片機(jī)系統(tǒng)及外圍電路 單片機(jī)采用 msc-51 或其兼容系列芯片,采用 12mhz 或更高頻率晶振,以 獲得較高的刷新頻率,使顯示更穩(wěn)定。 顯示驅(qū)動(dòng)程序在進(jìn)入中斷后首先要對(duì)定時(shí)器 t0 重新賦初值,以保證顯示屏 刷新率的穩(wěn)定,1/16 掃描顯示屏的刷新率(幀頻)計(jì)算公式如下: 刷頻率(幀頻)=1/16 =1/16f/12(65536-t) 其中 f 位晶振頻率,t 為定時(shí)器 t0 初值(工作在 16 位定時(shí)器模式)。 然后顯示驅(qū)動(dòng)程序查詢當(dāng)前燃亮的行號(hào),從顯示緩存區(qū)內(nèi)讀取下一行的顯 示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。為消除在
14、切換行/列顯示數(shù)據(jù)的時(shí)候產(chǎn) 生拖尾現(xiàn)象,驅(qū)動(dòng)程序先要關(guān)閉顯示屏,即消隱。等顯示數(shù)據(jù)打入輸出鎖存器 并鎖存,然后再輸出新的行/列號(hào),重新打開顯示。 圖 1 顯示驅(qū)動(dòng)程序流程圖 圖 2 顯示驅(qū)動(dòng)電路 2.3. led 點(diǎn)陣顯示 從下圖 5 led 內(nèi)部結(jié)構(gòu)可以看出,8x8 點(diǎn)陣共需要 64 個(gè)發(fā)光二極管組成, 且每個(gè)發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上,當(dāng)對(duì)應(yīng)的某一列置 1 電平, 某一行置 0 電平,則相應(yīng)的二極管就亮。對(duì)應(yīng)的一列為一根豎柱,或者對(duì)應(yīng)的 一行為一根橫柱,因此實(shí)現(xiàn)柱的亮的方法如下所述: 一根豎柱:對(duì)應(yīng)的列置 1,而行則采用掃描的方法來實(shí)現(xiàn)。 一根橫柱:對(duì)應(yīng)的行置 0,而列則采用掃
15、描的方法來實(shí)現(xiàn) 圖 5 led 內(nèi)部結(jié)構(gòu) led 點(diǎn)陣選用 8x8 模塊,每 2 塊排列成一個(gè) 16x16 的點(diǎn)陣,用于顯示一個(gè) 漢字。點(diǎn)陣每一行的所有 led 共陰極,每一列的所有 led 共陽(yáng)極。因?yàn)閱纹瑱C(jī) i/o 口的驅(qū)動(dòng)能力有限,所以每一行 led 陰極通過一個(gè)三極管 9012(或者 8550)與電源相連,i/o 口僅需要提供幾個(gè)毫安的灌入電流即可控制其通斷。 同一行漢字字模(即 12 個(gè)字節(jié))通過鎖存器 74hc154 并行送出后,由移位寄存 器 74hc595 輸出行選通信號(hào),來點(diǎn)亮該行的 led,接著再送下一行數(shù)據(jù),再選 中下一行有效,直到 16 行全被掃描過一遍。至此,一幅完整
16、的文字信息就顯現(xiàn) 出來,然后按這種方式反復(fù)掃描,借助于程序的控制,即可實(shí)現(xiàn)信息從右至左 (或者從上至下)的動(dòng)態(tài)顯示了。具體電路圖流程如圖 6 所示。 圖 6 實(shí)驗(yàn)程序框圖 2.4. 漢字掃描的原理 漢字掃描顯示基本過程是這樣:通電后由于電阻,電容的作用,使單片機(jī) rst 復(fù)位腳電平先高后低,從而達(dá)到復(fù)位。之后,在電阻、電容、晶振以及單 片機(jī)內(nèi)部時(shí)鐘電路作用下,單片機(jī) 89c51/52 按照設(shè)定程序在 p1 和 p3 接口輸出 與內(nèi)部漢字對(duì)應(yīng)代碼電平送至 led 點(diǎn)陣行選線(高電平驅(qū)動(dòng)),同時(shí)在 p1.0,p1.1,p1.2,p1.3 接口輸出列選掃描信號(hào)(低電平驅(qū)動(dòng)),從而選中相應(yīng) 象素 lc
17、d 發(fā)光,并利用人眼視覺暫留特性合成整個(gè)漢字顯示。 以 ucdos 中文宋體字庫(kù)為例,每一個(gè)字由 16 行 16 列點(diǎn)陣組成顯示。即國(guó) 標(biāo)漢字庫(kù)中每一個(gè)字均由 256 點(diǎn)陣來表示。我們可以把每一個(gè)點(diǎn)理解為一個(gè)象 素,而把每一個(gè)字字形理解為一幅圖像。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字, 也可以顯示在 256 象素范圍內(nèi)任何圖形。如查用 8 位 at89c51/52 單片機(jī)控制, 由于單片機(jī)總線為 8 位,一個(gè)字需要拆分為 2 個(gè)部分首先通過列掃描方法獲取 漢字代碼。漢字可拆分為上部和下部,上部由 816 點(diǎn)陣組成,下部也由 816 點(diǎn)陣組成。 漢字點(diǎn)陣顯示一般有點(diǎn)掃描、行掃描和列掃描 3 種。為了
18、符合視覺暫留要 求,點(diǎn)掃描方法掃描頻率必須大于 1664=1 024 hz,周期小于 1 ms 即可。行 掃描和列掃描方法掃描頻率必須大于 168=128 hz,周期小于 7.8 ms 即可, 但是一次驅(qū)動(dòng)一列或一行(8 顆 led)時(shí)需外加驅(qū)動(dòng)電路提高電流,否則 led 亮度 會(huì)不足。 2.5. 方案的實(shí)現(xiàn) 從理論上說,不論顯示圖形還是文字,只要控制組成這些圖形或文字 的各個(gè)點(diǎn)所在的位置相對(duì)應(yīng)的 led 器件發(fā)光,就可以得到我們想要的顯示 結(jié)果,這種同時(shí)控制各個(gè)發(fā)光點(diǎn)亮滅的方法稱為靜態(tài)驅(qū)動(dòng)顯示方式。 1616 的點(diǎn)陣共有 256 個(gè)發(fā)光二極管,顯然單片機(jī)沒有這么多的端口,如 果采用鎖存器來擴(kuò)
19、展端口,按 8 位的鎖存器來計(jì)算,1616 的點(diǎn)陣需要 256/8=32 個(gè)鎖存器。這個(gè)數(shù)字很龐大,因?yàn)槲覀儍H僅是 1616 的點(diǎn)陣,在 實(shí)際應(yīng)用中的顯示屏往往要大得多,這樣在鎖存器上花的成本將是一個(gè)很 龐大的數(shù)字。因此在實(shí)際應(yīng)用中的顯示屏幾乎都不采用這種設(shè)計(jì),而采用 另外一種稱為動(dòng)態(tài)掃描的顯示方法。動(dòng)態(tài)掃描的意思簡(jiǎn)單地說就是逐行輪 流點(diǎn)亮。這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行(比如 16 行)的同名列共用一 套驅(qū)動(dòng)器。具體就 1616 的點(diǎn)陣來說,把所有同 1 行的發(fā)光管的陽(yáng)極連在 一起,把所有同一列的發(fā)光管的陰極連在一起(共陽(yáng)極的接法),先送出 對(duì)應(yīng)第 1 行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后先通第
20、1 行使其燃亮一定時(shí)間, 然后熄滅;再送出第 2 行的數(shù)據(jù)并鎖存,然后先通第 2 行使其燃亮相同的 時(shí)間,然后熄滅;以此類推,第 16 行之后,又重新燃亮第 1 行,反復(fù)輪回。 當(dāng)這樣輪回的速度足夠快(每秒 24 次以上),由于人眼的視覺暫留現(xiàn)象, 就能夠看到顯示屏上穩(wěn)定的圖形。采用掃描方式進(jìn)行顯示時(shí),每一行有一 個(gè)行驅(qū)動(dòng)器,各行的同名列共用一個(gè)驅(qū)動(dòng)器。顯示數(shù)據(jù)通常存儲(chǔ)在單片機(jī) 的存儲(chǔ)器中,按 8 位一個(gè)字節(jié)的形式順序排放。顯示時(shí)要把一行中各列的 數(shù)據(jù)都傳送到相應(yīng)的列驅(qū)動(dòng)器上去,這就存在一個(gè)顯示數(shù)據(jù)傳輸?shù)膯栴}。 從控制電路到列驅(qū)動(dòng)器的數(shù)據(jù)傳輸可以采用并列方式或串行方式。顯然, 采用并行方式時(shí),
21、從控制電路到列驅(qū)動(dòng)器的線路數(shù)量大,相應(yīng)的硬件數(shù)目 多。當(dāng)列數(shù)很多時(shí),并列傳輸?shù)姆桨甘遣豢扇〉?。采用串行傳輸?shù)姆椒ǎ?控制電路可以只用一根信號(hào)線,將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件 方面無疑是十分經(jīng)濟(jì)的。但是,串行傳輸過程較長(zhǎng),數(shù)據(jù)按順序一位一位 地輸出給列驅(qū)動(dòng)器,只有當(dāng)一行的各列數(shù)據(jù)都以傳輸?shù)轿恢?,這一行的 各列才能并行地進(jìn)行顯示。這樣,對(duì)于一行的顯示過程就可以分解成列數(shù) 據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩部分。對(duì)于串行傳輸方式來說,列數(shù)據(jù)準(zhǔn) 備時(shí)間可能相當(dāng)長(zhǎng),在行掃描周期確定的情況下留給行顯示的時(shí)間就太少 了,以致影響到 led 的亮度。解決串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的 時(shí)間矛盾問題,可
22、以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí), 傳送下一列數(shù)據(jù),為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要具有所 存功能。經(jīng)過上述分析,就可以歸納出列驅(qū)動(dòng)器電路應(yīng)具有的功能。對(duì)于 列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實(shí)現(xiàn)串入并處的移位功能;對(duì)于列數(shù)據(jù)顯示來說, 應(yīng)具有并行鎖存的功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行 顯示時(shí),串并移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的 顯示。 三、 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)的軟件程序由匯編程序語(yǔ)言編寫,使用 vw(偉福)編譯環(huán)境,詳細(xì)的 程序流程圖發(fā)如下圖 7 所示,模式如圖 8 所示: 圖 7 程序流程圖 圖 8 模式選擇 四、 系統(tǒng)測(cè)試與分析 4.1
23、 點(diǎn)陣顯示屏的仿真與程序調(diào)試 protuesprotues 是一款比較常用的單片機(jī)仿真軟件,許多仿真與實(shí)際電路非常相 似。為了盡可能確保實(shí)際電路能達(dá)到預(yù)期的效果,減少無用功,要對(duì)許多電路 模塊的方案進(jìn)行了仿真。對(duì)點(diǎn)陣顯示的處理與相應(yīng)程序設(shè)計(jì),可以使用 protuesl 進(jìn)行仿真,旨在改善提高整機(jī)系統(tǒng)的硬件與軟件方案,提高系統(tǒng)運(yùn)行 效率與穩(wěn)定性。 在點(diǎn)陣顯示方式的方案選擇上,通過不斷修改程序與串行電路接法后發(fā)現(xiàn) 串行方式很難實(shí)現(xiàn)字幕的右移功能,調(diào)整字幕移動(dòng)的速度也不方便。經(jīng)過分析, 決定試用并行方式顯示,結(jié)果發(fā)現(xiàn)這種方式電路不算復(fù)雜,并且給程序設(shè)計(jì)帶 來很多便利,特別是便于實(shí)現(xiàn)字幕的左右移動(dòng)與移
24、動(dòng)速度的設(shè)定。本系統(tǒng)仿真 電路如圖 9 所示。 圖 9 仿真電路圖 4.2 整機(jī)測(cè)試 把編譯器生成的代碼 .hex 文件下載到單片機(jī) flash 中,連接好各個(gè)模 塊,將 led 點(diǎn)陣顯示屏的功能逐一測(cè)試實(shí)現(xiàn)。 4.3 系統(tǒng)主程序 #include #include #define uchar unsigned char #define uint unsigned int uchar jj,k,m,n,i,j,kk,temp2,mode_down,mode_up,mode_left,mode_right; uchar a,b,c,a0,a1,a2,a3,d1,d2,d3,mode; sbit
25、en=p27;/使能端 sbit flag_up =p33; /上移 sbit flag_down =p34; /下移 sbit flag_left =p35; /左移 sbit flag_right=p36; /右移 sbit key_ting =p37; /切換 uchar code zi4128= 0 x08,0 x04,0 x08,0 x04,0 x08,0 x04,0 x08,0 x04,0 xbf,0 x7f,0 x08,0 x04,0 x08,0 x06,0 x1c,0 x 0e, 0 x2c,0 x0d,0 x2a,0 x15,0 x8a,0 x14,0 x49,0 x64,0
26、 x28,0 x24,0 x08,0 x04,0 x08,0 x04,0 x08,0 x 04,/*林,0*/ 0 x08,0 x00,0 x08,0 x70,0 xe8,0 x0e,0 xbf,0 x08,0 x88,0 x08,0 x48,0 x08,0 x58,0 x7e,0 xec,0 x 09, 0 x0b,0 x09,0 x98,0 x08,0 xa8,0 x08,0 x48,0 x3e,0 xc8,0 x00,0 x28,0 x01,0 x1a,0 x7e,0 x04,0 x 00,/*挺,1*/ 0 x20,0 x04,0 x20,0 x04,0 xff,0 x7f,0 x20
27、,0 x06,0 x02,0 x00,0 x8c,0 x1f,0 x89,0 x10,0 x86,0 x 10, 0 x92,0 x10,0 x90,0 x1c,0 x88,0 x08,0 x87,0 x00,0 x84,0 x20,0 x84,0 x20,0 x04,0 x3f,0 x04,0 x0 0,/*范,2*/ 0 x80,0 x00,0 x80,0 x00,0 x80,0 x00,0 xfe,0 x3f,0 xc0,0 x01,0 xc0,0 x02,0 xa0,0 x04,0 x90,0 x 18, 0 x88,0 x70,0 x86,0 x20,0 x80,0 x00,0 x0
28、0,0 x00,0 x12,0 x11,0 x22,0 x22,0 x21,0 x22,0 x00,0 x0 0;/*杰,3*/ uchar code shu864= 0 x00,0 x00,0 x00,0 x7e,0 x02,0 x02,0 x02,0 x1a,0 x26,0 x40,0 x40,0 x42,0 x22,0 x1c,0 x00,0 x00,/*5,0*/ 0 x00,0 x00,0 x00,0 x3c,0 x42,0 x42,0 x42,0 x20,0 x20,0 x10,0 x08,0 x04,0 x42,0 x7e,0 x00,0 x 00,/*2,1*/ 0 x00,0
29、 x00,0 x00,0 x18,0 x24,0 x42,0 x42,0 x42,0 x42,0 x42,0 x42,0 x42,0 x24,0 x18,0 x00,0 x 00,/*0,2*/ 0 x00,0 x00,0 x00,0 x00,0 x7f,0 xfe,0 x40,0 x02,0 x40,0 x02,0 x40,0 x02,0 x40,0 x02,0 x40,0 x 02, 0 x40,0 x02,0 x40,0 x02,0 x40,0 x02,0 x40,0 x02,0 x40,0 x02,0 x7f,0 xfe,0 x00,0 x00,0 x00,0 x0 0, 0 x00,
30、0 x00,0 x00,0 x00,0 x00,0 x00,0 x01,0 x00,0 x02,0 x80,0 x04,0 x40,0 x08,0 x20,0 x10,0 x 10, 0 x20,0 x08,0 x40,0 x04,0 xff,0 xfe,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x0 0;/*4,3*/ uchar code mu848= 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x08,0 x10,0 x1c,0 x10,0 x2a,0 x10,0 x49,0 x10,0
31、 x08,0 x10, 0 x08,0 x10,0 x08,0 x92,0 x08,0 x54,0 x08,0 x38,0 x08,0 x10,0 x00,0 x00,0 x00,0 x00,0 x00,0 x0 0, 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x0c,0 x60,0 x11,0 x10,0 x10,0 x10,0 x10,0 x 10, 0 x10,0 x10,0 x08,0 x20,0 x04,0 x40,0 x01,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0
32、x0 0,/*心形,0*/ 0 x00,0 x00,0 x00,0 x3f,0 x42,0 x12,0 x12,0 x1e,0 x12,0 x12,0 x02,0 x02,0 x02,0 x07,0 x00,0 x 00,/*f,0*/ 0 x00,0 x00,0 x00,0 x07,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x02,0 x42,0 x7f,0 x00,0 x 00;/*l,1*/ uchar code tuxing32= 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x03,0
33、 x00,0 x04,0 x80,0 x08,0 x40,0 x10,0 x 20, 0 x20,0 x10,0 x7f,0 xf8,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x0 0; /-延時(shí)程序- void delay(uint t) while(t-); /* void keyscan() if(flag_down=0) /下移 delay(1000);if(flag_down=0) while(flag_down=0);mode_down=1;mode_up=0;mode_left=0;mo
34、de_right=0; if(flag_up=0) /上移 delay(1000);if(flag_up=0) while(flag_up=0);mode_up=1;mode_down=0;mode_left=0;mode_right=0; if(flag_left=0) /左移 delay(1000);if(flag_left=0) while(flag_left=0);mode_left=1;mode_up=0;mode_down=0;mode_right=0; if(flag_right=0) /右移 delay(1000);if(flag_right=0) while(flag_rig
35、ht=0);mode_right=1;mode_up=0;mode_down=0;mode_left=0; if(key_ting=0) delay(1000); if(key_ting=0) while(key_ting=0); mode+; if(mode=4) mode=0; /* void shift_r() /右移函數(shù) bit lbit; lbit=temp1 /保存最低位 temp1=temp11; /右移一位 temp1+=temp01; if(lbit)temp0+=0 x80; /*/ void shift_l() /左移函數(shù) bit hbit; hbit=temp0/保存最
36、高位 temp0=temp07; temp1=temp11; if(hbit)temp1+=0 x01; /-t0 初始化函數(shù)- void init_t0() tmod=0 x01; th0=-10000/256; tl0=-10000%256; ea=1; et0=1; tr0=1; /* main() init_t0(); while(1) keyscan(); for(a0=0;a016;a0+) if(mode_down=1) if(mode=1) for(i=0;i16;i+) /行掃描 循環(huán)掃描 16 行 temp0=shuci; /2*i表示每一列是 16 位(剛好1 個(gè)字節(jié))
37、temp1=shu2*ci ; p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=(a+i)%16;/下移 delay(100); en=1; else if(mode=2) for(i=0;i16;i+) /行掃描 循環(huán)掃描 16 行 temp0=muci ; /2*i表示每一列是 16 位(剛好1 個(gè)字節(jié)) temp1=mu2*ci ; p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=(a+i)%16;/下移 delay(100); en=1; else if(mode=3) for(i=0;i16;i+) /行掃描
38、 循環(huán)掃描 16 行 temp0=tuxing2*i ; /2*i表示每一列是 16 位(剛好1 個(gè)字節(jié)) temp1=tuxing2*i+1 ; p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=(i+a)%16; /上移 delay(100); en=1; else for(i=0;i16;i+) /行掃描 循環(huán)掃描 16 行 temp0=zic2*i ; /2*i表示每一列是 16 位(剛好1 個(gè)字節(jié)) temp1=zic2*i+1 ; p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=(a+i)%16;/下移 de
39、lay(100); en=1; else if(mode_up=1)/上移 if(mode=1) for(i=0;i16;i+) /行掃描 循環(huán)掃描 16 行 temp0=shuci; /2*i表示每一列是 16 位(剛好1 個(gè)字節(jié)) temp1=shu2*ci ; p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=(i-a)%16;/下移 delay(100); en=1; else if(mode=2) for(i=0;i16;i+) /行掃描 循環(huán)掃描 16 行 temp0=muci ; /2*i表示每一列是 16 位(剛好1 個(gè)字節(jié)) temp1=m
40、u2*ci ; p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=(i-a)%16;/下移 delay(50); en=1; else if(mode=3) for(i=0;i16;i+) /行掃描 循環(huán)掃描 16 行 temp0=tuxing2*i ; /2*i表示每一列是 16 位(剛好1 個(gè)字節(jié)) temp1=tuxing2*i+1 ; p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=(i-a)%16; /上移 delay(100); en=1; else for(i=0;i16;i+) /行掃描 循環(huán)掃描 16
41、行 temp0=zic2*i ; /2*i表示每一列是 16 位(剛好1 個(gè)字節(jié)) temp1=zic2*i+1 ; p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=(i-a)%16; /上移 delay(100); en=1; else if(mode_right=1) /右移 if(mode=1) for(i=0;i0;kk-) shift_r(); p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=i; delay(100); en=1; else if(mode=2) for(i=0;i0;kk-) shift_
42、r(); p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=i; delay(100); en=1; else if(mode=3) for(i=0;i0;kk-) shift_r(); p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=i; delay(100); en=1; else for(i=0;i0;kk-) shift_r(); p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=i; delay(100); en=1; else if(mode_left=1) /左移 if(
43、mode=1) for(i=0;i0;kk-) shift_l(); p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=i; delay(100); en=1; else if(mode=2) for(i=0;i0;kk-) shift_l(); p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=i; delay(100); en=1; else if(mode=3) for(i=0;i0;kk-) shift_l(); p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=i; delay
44、(100); en=1; else for(i=0;i0;kk-) shift_l(); p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=i; delay(100); en=1; else if(mode=3) for(i=0;i16;i+) /行掃描 循環(huán)掃描 16 行 temp0=tuxing2*i ; /2*i表示每一列是 16 位(剛好1 個(gè)字節(jié)) temp1=tuxing2*i+1 ; p1=temp0 ; /高 8 位 p0=temp1 ; /低八位 en=0; p2=i; delay(100); en=1; /-t0 中斷函數(shù)- void time0() interrupt 1 th0=-10000/256; tl0=-10000%256; b+; n+; if(b=5) /等待 100ms
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 探索成長(zhǎng)之路
- 家校社協(xié)同育人的可持續(xù)發(fā)展
- 工業(yè)遺產(chǎn)保護(hù)實(shí)施方案的監(jiān)督與評(píng)估
- 傳統(tǒng)戲劇保護(hù)的資金支持與投入實(shí)施方案
- 2025年表面改性金屬材料項(xiàng)目發(fā)展計(jì)劃
- 合同范本 質(zhì)保
- 商用射燈采購(gòu)合同范本
- 員工房認(rèn)購(gòu)合同范本
- 保溫打包合同范本
- 倉(cāng)庫(kù)合同范本6
- 11《認(rèn)識(shí)多媒體技術(shù)》教學(xué)設(shè)計(jì)、教材分析與教學(xué)反思2024年滇人版初中信息技術(shù)七年級(jí)下冊(cè)
- 2025年黑龍江農(nóng)業(yè)經(jīng)濟(jì)職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)參考答案
- 2025年湖南安全技術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)參考答案
- DB3202-T 1063-2024 質(zhì)量基礎(chǔ)設(shè)施“-站式”服務(wù)與建設(shè)規(guī)范
- 變電站電網(wǎng)側(cè)儲(chǔ)能項(xiàng)目可行性研究報(bào)告
- 4.2 同學(xué)相伴 第二課時(shí) 課件 2024-2025學(xué)年三年級(jí)下冊(cè)道德與法治 統(tǒng)編版
- 2025年全球及中國(guó)調(diào)頻儲(chǔ)能行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 第九章-或有事項(xiàng)教學(xué)教材
- 2024年江西青年職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 2025年春新冀教版英語(yǔ)三年級(jí)下冊(cè)課件 2L2
- 2025年度會(huì)計(jì)人員繼續(xù)教育會(huì)計(jì)法律法規(guī)答題活動(dòng)測(cè)試100題答案
評(píng)論
0/150
提交評(píng)論