基于51單片機(jī)的LED顯示屏通信技術(shù)專業(yè)
《基于51單片機(jī)的LED顯示屏通信技術(shù)專業(yè)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于51單片機(jī)的LED顯示屏通信技術(shù)專業(yè)(38頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 題目 基于51單片機(jī)的LED顯示屏 摘要: 由于科技的快速發(fā)展,LED顯示屏已經(jīng)是在大街上隨處可見的應(yīng)用了,它的應(yīng)用已經(jīng)普及到社會(huì)中的方方面面。LED點(diǎn)陣具有無限級(jí)聯(lián)的特點(diǎn),以一個(gè)個(gè)小的顯示屏可以拼接出一塊大的顯示屏,在許多場(chǎng)合都可以見到它的身影,不僅因?yàn)長(zhǎng)ED顯示屏可使呈現(xiàn)的信息更為直觀,更為重要的是這種顯示方式非常方便且具有較高的性價(jià)比,能夠給人以視覺上的享受,更能給人一種美的享受。LED顯示屏是一個(gè)猶發(fā)光二極管按照一定的形式排列封裝形成的,可顯示廣告,圖文信息等。本設(shè)計(jì)是基于STC89C51單片機(jī)的16*16點(diǎn)陣顯示屏,該LED顯
2、示屏能實(shí)現(xiàn)分辨率16*16的漢字顯示,簡(jiǎn)單的顯示圖像。該設(shè)計(jì)包含硬件設(shè)計(jì)、然健設(shè)計(jì)以及系統(tǒng)調(diào)試等,中需要簡(jiǎn)單的將硬件模塊和軟件模塊進(jìn)行組合即可實(shí)現(xiàn)顯示功能。本文設(shè)計(jì)的基于51單片機(jī)的LED顯示屏可實(shí)現(xiàn)預(yù)期功能,具有功耗低、操作簡(jiǎn)單、精度高等諸多優(yōu)勢(shì)。 關(guān)鍵詞:點(diǎn)陣顯示屏 級(jí)聯(lián) 51單片機(jī) Abstract: Due to the rapid development of technology, LED display screen has been widely used in the streets., and its application has been popul
3、arized in every aspect of society. LED dot matrix has the characteristics of infinite cascade, with a small display can piece together a large display, on many occasions can see the figure of it, is not only the application of it to make something appear more beautiful, more important is that its ap
4、plication is convenient, cost is low, in addition to can give a person visual impact, more can give a person a kind of beautiful enjoyment. LED displays are arranged in a matrix by several light-emitting diodes, usually used to display advertising, graphics and other information. This design is base
5、d on the 16*16 point array display of STC89C51 single chip. The LED display can display the Chinese characters of 16*16 and display the image simply. The design includes hardware, software, debugging, etc., which can realize the expansion of the display screen with simple cascade, but be careful not
6、 to exceed the load capacity. The design of this design is small, multi-function, convenient and practical, cost small, the circuit has the structure simple, the operation is convenient, the precision is high, the application is widely characteristic. Keywords: Lattice display Cascade 51 sing
7、le chip microcomputer 目 錄 第1章 引言 IV 1.1 選題背景 1 1.2 國(guó)內(nèi)研究狀況 1 第2章 如何選擇硬件 2 2.1 主控芯片的選擇 2 2.2 顯示器件的選擇 2 2.3 系統(tǒng)總體方案 3 第3章 系統(tǒng)硬件電路設(shè)計(jì) 4 3.1 STC89C51單片機(jī)系統(tǒng)設(shè)計(jì) 4 3.1.1 STC89C51的概述 4 3.1.2 STC89C51的引腳說明 4 3.1.3 STC89C51單片機(jī)的最小系統(tǒng) 7 3.2 16*16點(diǎn)陣顯示電路設(shè)計(jì) 9 3.2.1 點(diǎn)陣顯示屏的概述 9 3.2.2 點(diǎn)陣顯示屏驅(qū)動(dòng)電路 9 3.3 獨(dú)立按
8、鍵電路的設(shè)計(jì) 10 3.4 原理圖繪制軟件的介紹 11 3.5 系統(tǒng)硬件測(cè)試 11 第4章 系統(tǒng)軟件部分設(shè)計(jì) 13 4.1 軟件開發(fā)環(huán)境的介紹 13 4.2 系統(tǒng)重要函數(shù)的介紹 13 4.2.1 主函數(shù)的設(shè)計(jì) 13 4.2.2 按鍵檢測(cè)處理函數(shù)的設(shè)計(jì) 14 4.3 系統(tǒng)軟件測(cè)試 15 第5章 總結(jié) 16 參考文獻(xiàn) 17 附 錄 19 致 謝 33 IV 34 第1章 引言 1.1 選題背景 LED的主要作用是將輸出的電信號(hào)轉(zhuǎn)化為光信號(hào)進(jìn)而予以顯示,常見的顯示器有共陰極和共陽極兩種。后者通過發(fā)光二極管陰極連接在一起,當(dāng)某個(gè)二極管陽極為高電平
9、則此時(shí)該二極管電量,相應(yīng)字段顯示。這種顯示方式具有功耗低、壽命長(zhǎng)以及耐沖擊等諸多優(yōu)勢(shì),是一種新型的信息顯示裝置,顯示屏由多個(gè)二極管像素點(diǎn)排列而成,可完成復(fù)雜信息的顯示。 1.2 國(guó)內(nèi)研究狀況 從上世紀(jì)九十年代初期,LED顯示屏開始在我國(guó)出現(xiàn),并在顯示屏市場(chǎng)中保持快速增長(zhǎng)態(tài)勢(shì),年增長(zhǎng)率約為40%左右。根據(jù)實(shí)際調(diào)研數(shù)據(jù)可知,自LED進(jìn)入我國(guó)顯示屏市場(chǎng)依賴,均保持快速增長(zhǎng)狀態(tài),年增長(zhǎng)率均在40%左右,只有1998年為30%。屬于增長(zhǎng)迅速、發(fā)展較快的新興市場(chǎng)領(lǐng)域。 2003年LED顯示屏行業(yè)市場(chǎng)發(fā)展總體較為成熟,相應(yīng)企業(yè)規(guī)模有所增加,產(chǎn)業(yè)也逐步走向成熟。根據(jù)發(fā)光二極管顯示屏分會(huì)的統(tǒng)計(jì),2003年度
10、銷售額過億元的有西安青松、上海三思、惠州德賽、北京利亞得等四家企業(yè)。年銷售額超一千萬元的企業(yè)數(shù)量達(dá)50余家,年銷售總額高達(dá)22億元,占全國(guó)顯示屏總銷售額的73%左右。其中位居前列的六七家企業(yè)的銷售額之和接近全國(guó)的1/3。年度銷售額在5000萬元以上的單位有12家,其銷售額之和為12億元,占全國(guó)年度市場(chǎng)銷售額的40%。從2004年到2007年,隨著奧運(yùn)會(huì)的臨近,近年來各地區(qū)城市化改造進(jìn)程加快,全國(guó)LED顯示屏市場(chǎng)增長(zhǎng)依然強(qiáng)勁,年平均增長(zhǎng)率為35%左右。 第2章 如何選擇硬件 2.1 主控芯片的選擇 方案一: 采用STC89C51單片機(jī)作為主控芯片。STC89C51是一款高性能、低
11、功耗的微處理器,其片內(nèi)具有8k在線編程Flash存儲(chǔ)器。STC89C51單片機(jī)的內(nèi)核采用的是MCS-51內(nèi)核,指令完全兼容MCS-51,但是該單片機(jī)越做了升級(jí)使得芯片具有很多傳統(tǒng)的51單片機(jī)不具備的功能,例如該芯片還有4K的EEPROM存儲(chǔ),在需要使用到掉電存儲(chǔ)數(shù)據(jù)的時(shí)候就可以直接使用單片機(jī)內(nèi)部的存儲(chǔ),不在需要在外接存儲(chǔ)芯片進(jìn)行存儲(chǔ)。該系列單片機(jī)具有開放簡(jiǎn)單、可實(shí)現(xiàn)在線編程下載等諸多功能,且成本較低。 方案二: 采用MSP430單片機(jī)作為主控芯片。系列單片機(jī)是美國(guó)在上世紀(jì)九十年代末推出了一種低功耗、具有RISC的微處理器之一,這種微處理可專門用于進(jìn)行混合信號(hào)的處理,因而又被人們稱之為混合信
12、號(hào)處理器,可針對(duì)實(shí)際需求來將模擬電路以及數(shù)字電路集成到一個(gè)芯片上,因而在本質(zhì)上屬于一種超大規(guī)模集成電路芯片,可針對(duì)不同的信號(hào)處理問題提供相應(yīng)的解決方案,該系列單片機(jī)常常用于需要電池進(jìn)行供電的儀表或其他移動(dòng)電子設(shè)備之中。系列中的各成員集成了較多的片上外圍資源,包含:12位A/D、集成模擬比較器、集成運(yùn)算放大器、時(shí)鐘模塊以及看門狗電路等等,除此之外,可實(shí)現(xiàn)異步通信,以及可進(jìn)行多地址訪問的串口通信連接,同時(shí)還包含數(shù)十個(gè)輸入和輸出端口等等。該系列單片機(jī)多應(yīng)用于需要電池供電的便攜式儀器儀表中。而卻開發(fā)難度相對(duì)比較大、價(jià)格昂貴。所以在一些簡(jiǎn)單的設(shè)計(jì)中不宜采用。 方案三: 采用PIC16F877A單片機(jī)
13、作為主控芯片。是由公司開發(fā)的新產(chǎn)品,屬系統(tǒng)8位單片機(jī)微機(jī),同51單片機(jī)一樣具有閃存功能,可實(shí)現(xiàn)數(shù)據(jù)和程序的反復(fù)擦寫。但是開發(fā)成本高,難度相對(duì)大。 綜合考慮上述三種方案,考慮到資源的合理利用以及開發(fā)成本等多種原因,最終采用方案一。 2.2 顯示器件的選擇 方案一: 采用LED數(shù)碼管動(dòng)態(tài)掃描顯示。LED的主要作用是將輸出的電信號(hào)轉(zhuǎn)化為光信號(hào)進(jìn)而予以顯示,常見的顯示器有共陰極和共陽極兩種。后者通過發(fā)光二極管陰極連接在一起,當(dāng)某個(gè)二極管陽極為高電平則此時(shí)該二極管電量,相應(yīng)字段顯示。這種顯示方式具有功耗低、壽命長(zhǎng)以及耐沖擊等諸多優(yōu)勢(shì),是一種新型的信息顯示裝置,顯示屏由多個(gè)二極管像素點(diǎn)排列而成,可
14、完成復(fù)雜信息的顯示。 方案二: 采用LCD1602液晶顯示屏。LCD1602與單片機(jī)P0口連接,同時(shí)外接上拉電阻,通過上下兩行來顯示蔬菜大棚溫度的設(shè)定閾值以及實(shí)測(cè)值,兩者可同時(shí)限制,單片機(jī)P2.3、P2.4、P2.5分別與液晶顯示模塊的復(fù)位、讀寫和使能端口相連,數(shù)據(jù)顯示參考主程序其他時(shí)序。LCD1602液晶顯示器中的每一個(gè)字符都是由5*7的點(diǎn)陣組成。該顯示方式具有控制簡(jiǎn)單等優(yōu)勢(shì),同其他液晶控制原理相似。 方案三: 采用16*16點(diǎn)陣顯示。點(diǎn)陣的內(nèi)部和數(shù)碼管一樣都是由多個(gè)的LED燈組成,點(diǎn)陣顯示清晰并且能夠顯示出數(shù)字或字母等信息,并且價(jià)格便宜,使用簡(jiǎn)單??梢詿o限的級(jí)聯(lián),這樣就可以制造出顯
15、示面積非常大的顯示屏。 綜合上述的描述,最終根據(jù)本設(shè)計(jì)中選擇點(diǎn)陣作為顯示。 2.3 系統(tǒng)總體方案 經(jīng)過以上的論述,最后選取了當(dāng)做此次設(shè)計(jì)的核心芯片;通過16*16點(diǎn)陣顯示屏進(jìn)行實(shí)時(shí)顯示漢字;同時(shí)采用五個(gè)功能按鍵對(duì)漢字的顯示方式進(jìn)行設(shè)置,可以實(shí)現(xiàn)向上移動(dòng)、向下移動(dòng)、向左移動(dòng)、向右移動(dòng)、單個(gè)字顯示。 本設(shè)計(jì)的具體的系統(tǒng)方案如下圖2.1所示。 圖2.1 系統(tǒng)方案 第3章 系統(tǒng)硬件電路設(shè)計(jì) 3.1 STC89C51單片機(jī)系統(tǒng)設(shè)計(jì) 3.1.1 STC89C51的概述 是一種低耗能、擴(kuò)展性強(qiáng)、功能全面的8位微處理器,4K字節(jié)閃存。隨著微型處理器的到來,計(jì)算機(jī)的
16、外觀方面開始出現(xiàn)翻天覆地的改變。在生產(chǎn)生活的各領(lǐng)域之中,微型計(jì)算機(jī)的應(yīng)用越來越廣泛,將單片機(jī)置于一個(gè)控制系統(tǒng)的核心控制模塊中可更為簡(jiǎn)單可靠的完成智能控制,這種系統(tǒng)被稱之為嵌入式系統(tǒng)。單片機(jī)也被稱之為微型控制器,是一種超大規(guī)模集成電路,具有一個(gè)計(jì)算機(jī)的完整功能,總的來說,單片機(jī)自身就是一個(gè)小型具有超強(qiáng)功能和信息計(jì)算處理能力的計(jì)算機(jī),廣泛應(yīng)用于生產(chǎn)生活的各個(gè)領(lǐng)域之中。針對(duì)本文所設(shè)計(jì)的蔬菜大棚溫度控制系統(tǒng),擬采用單片機(jī)作為主控模塊。 3.1.2 STC89C51的引腳說明 有和兩種不同類型的封裝形式。在本文所設(shè)計(jì)的基于單片機(jī)的顯示屏中采用第一種封裝形式,這種封裝形式荷載焊接時(shí)利用IC插座進(jìn)行焊
17、接,隨后將芯片插入其中,這種方式可更為方便的實(shí)現(xiàn)芯片的替換,也避免了芯片在高溫焊接的時(shí)候損壞。一共包含40個(gè)引腳,可用來對(duì)擴(kuò)展設(shè)備進(jìn)行控制的引腳類型包含。這些引腳可實(shí)現(xiàn)單獨(dú)控制也可對(duì)一個(gè)單獨(dú)的IO口進(jìn)行控制。在控制時(shí)非常方便,無需對(duì)輸入和輸出進(jìn)行定義,在輸入輸出接口進(jìn)行幅值時(shí)會(huì)自動(dòng)實(shí)現(xiàn)轉(zhuǎn)換,給讀取IO口時(shí)IO口會(huì)自動(dòng)轉(zhuǎn)變成輸入。STC89C51單片機(jī)所用引腳的作用如下表3-1所示。 圖3.1 STC89C51單片機(jī)引腳對(duì)照?qǐng)D 表3-1 STC89C51單片機(jī)引腳功能對(duì)照表 單片機(jī)P3口第二功能對(duì)照表如下: 表3
18、-2 STC89C51單片機(jī)P3口第二功能對(duì)照表 3.1.3 STC89C51單片機(jī)的最小系統(tǒng) 簡(jiǎn)而言之,單片機(jī)最小系統(tǒng)就是以最少的元器件組成能讓單片機(jī)工作起來的系統(tǒng),接下來介紹51單片機(jī)最小系統(tǒng)必備的器件及其作用。 首先電源這對(duì)于一個(gè)電子產(chǎn)品的話是必不可少,它提供能源給系統(tǒng)運(yùn)作,在本設(shè)計(jì)中由于51單片機(jī)的工作電壓在4.5~5.5V之間都可以正常工作所以我們采用了USB電源線連接手機(jī)充電器插頭或者5V的移動(dòng)電源給系統(tǒng)進(jìn)行供電。 其次晶振電路,單片機(jī)其內(nèi)部含有一個(gè)方向放大器,其在該系統(tǒng)中構(gòu)成內(nèi)部振蕩器,其中為其輸入端,是輸出端,在振動(dòng)器外部連接陶瓷振蕩器及補(bǔ)償電容、,并由、相互并聯(lián),組
19、成諧振電路。在在外接振蕩器時(shí),電容、要選擇; 外界陶瓷振蕩器時(shí)電容、要選擇范圍在之間。該系統(tǒng)的晶振頻率通常位于范圍之內(nèi)。外接電容會(huì)對(duì)晶振頻率、穩(wěn)定性以及起振時(shí)間造成一定的影響。因而要將振蕩器的外接電容置于單片機(jī)旁邊才能有效減少其對(duì)系統(tǒng)產(chǎn)生的影響,從而保證振蕩器的工作穩(wěn)定性。 圖3.2 晶振電路 單片機(jī)要想進(jìn)行復(fù)位,就必須在RST引腳接入高電平信號(hào),假如說,這個(gè)引腳的電平信號(hào)一直處于高狀態(tài)時(shí),單片機(jī)就會(huì)持續(xù)進(jìn)行復(fù)位操作。本次設(shè)計(jì)電路的復(fù)位有兩種情況,一種是單片機(jī)斷電后重新上電,還有一種是單片機(jī)運(yùn)行過程中,復(fù)位按鍵按下,單片機(jī)復(fù)位。 單片機(jī)的第9引腳接高電平持續(xù)兩個(gè)機(jī)器周期以上大約也就
20、是2μS就可以實(shí)現(xiàn)復(fù)位。只要RST引腳保持高電平,則單片機(jī)循環(huán)復(fù)位,直到變?yōu)榈碗娖綖橹?。按鍵按下后,電容被短路,電容兩端形成閉合回路,電容放電,電平復(fù)位的實(shí)現(xiàn)過程相對(duì)來說比較簡(jiǎn)單,直接將RST引腳與電源相連接即可實(shí)現(xiàn)復(fù)位。首先是按鍵復(fù)位:最簡(jiǎn)單的復(fù)位方式是在RST上加高電平。復(fù)位引腳同電阻R1相連,該電阻的另外一端接地。電路如下所示。常用的途徑是在復(fù)位引腳端 和正電壓之間安裝復(fù)位按鍵。 圖3.3 復(fù)位電路 最小系統(tǒng)對(duì)應(yīng)的電路圖為: 圖3.4 STC89C51單片機(jī)最小系統(tǒng) 3.2 16*16點(diǎn)陣顯示電路設(shè)計(jì) 3.2.1 點(diǎn)陣顯示屏的概述 點(diǎn)陣顯示屏指的是才有采用N個(gè)LED
21、燈排列成點(diǎn)陣的形式而得名。在控制點(diǎn)陣顯示屏顯示內(nèi)容的時(shí)候是控制點(diǎn)陣上面對(duì)應(yīng)的LED燈的亮滅。在控制顯示方面可以采用點(diǎn)驅(qū)動(dòng)也可以采用行列驅(qū)動(dòng)的方式。 點(diǎn)驅(qū)動(dòng)時(shí)候一個(gè)時(shí)刻只亮一個(gè)LED燈利用人眼“余輝效應(yīng)”來控制各個(gè)點(diǎn)亮的時(shí)間間隔,這樣人看起來各個(gè)點(diǎn)的亮滅就像同步的一樣,這種顯示方式電流小,但是這種方式耗時(shí)大,顯示的點(diǎn)多了就容易出現(xiàn)閃爍的現(xiàn)象。 本文所設(shè)定的掃描頻率為50HZ,同時(shí)發(fā)光二極管導(dǎo)通時(shí)間大于1ms時(shí)具有良好的顯示效果,不會(huì)出現(xiàn)閃爍。 行列驅(qū)動(dòng)方式的時(shí)候就是每次顯示一行或一列,同樣利用人眼“余輝效應(yīng)”來控制各行的時(shí)間間隔,這種方式顯示起來可以節(jié)省時(shí)間,當(dāng)時(shí)需要的電流也會(huì)比較大,所以
22、需要添加驅(qū)動(dòng)電路。 3.2.2 點(diǎn)陣顯示屏驅(qū)動(dòng)電路 圖3.5 點(diǎn)陣顯示屏驅(qū)動(dòng)電路 如圖3.5點(diǎn)陣顯示屏的驅(qū)動(dòng)電路,驅(qū)動(dòng)電路采用兩塊74HC595鎖存器進(jìn)行級(jí)聯(lián)控制點(diǎn)陣行,同樣采用兩塊74HC595鎖存器進(jìn)行級(jí)聯(lián)控制點(diǎn)陣列。 74HC595串行輸入并行輸出的鎖存器,只需要單片機(jī)3個(gè)IO口就可以擴(kuò)展出N個(gè)口來用,每增加1片4HC595鎖存器就可以擴(kuò)展8個(gè)IO口。 數(shù)據(jù)在上升沿實(shí)現(xiàn)到唯一寄存器的輸入,在上升沿輸入到儲(chǔ)存寄存器之中,若兩個(gè)時(shí)鐘是相互連接的,則位移寄存器相較于儲(chǔ)存寄存器而言要早一個(gè)脈沖。 移位寄存器包含一個(gè)串行移位輸入(Ds),和一個(gè)串行輸出(Q7')同時(shí)還包含異步的低
23、電平復(fù)位,存儲(chǔ)寄存器具有三態(tài)總線輸出,當(dāng)使能OE時(shí)(為低電平),儲(chǔ)存寄存器數(shù)據(jù)輸出至總線。 3.3 獨(dú)立按鍵電路的設(shè)計(jì) 按鍵電路的加入,是為了讓操作系統(tǒng)的用戶,能夠自己就能設(shè)置出自己想要控制參數(shù)。整個(gè)系統(tǒng)有兩處獨(dú)立的按鍵部分,一是電源按鍵;二是控制溫度閾值的按鍵。兩者互不干擾。電路中采用的按鍵結(jié)構(gòu),不能相互之間有聯(lián)系,按下一個(gè)按鍵時(shí),它周圍的按鍵不能收到影響。所以,對(duì)于每一個(gè)按鍵,都要獨(dú)立的給他們接上一條輸入線,并且保持導(dǎo)通,用于方便傳輸數(shù)據(jù)。具體電路如圖3.6所示。 圖3.6 獨(dú)立按鍵電路 五個(gè)按鍵的功能分別為: 第一個(gè)按鍵:實(shí)現(xiàn)單字顯示。 第二個(gè)按鍵:實(shí)現(xiàn)漢字向左移動(dòng)。 第
24、三個(gè)按鍵:實(shí)現(xiàn)漢字向下移動(dòng)。 第四個(gè)按鍵:實(shí)現(xiàn)漢字向上移動(dòng)。 第五個(gè)按鍵:實(shí)現(xiàn)漢字向右移動(dòng)。 3.4 原理圖繪制軟件的介紹 是公司在本世紀(jì)初期推出的一種高效的電路設(shè)計(jì)軟件,該軟件代碼為開源,可實(shí)現(xiàn)從概念設(shè)計(jì)、頂層設(shè)計(jì)到輸出產(chǎn)生數(shù)據(jù)之間所有的設(shè)計(jì)數(shù)據(jù)和分析論證過程管理,除此之外,當(dāng)前在電路設(shè)計(jì)領(lǐng)域應(yīng)用較為廣泛的軟件還包含和,這些軟件為的前期版本。 已不再是一種單純的(印制電路板)設(shè)計(jì)軟件,而是由不同子模塊所組成的一種強(qiáng)大的電路設(shè)計(jì)工具,其子模塊包含如下幾個(gè)部分,分別是:(原理圖)設(shè)計(jì)、(原理圖)仿真、PCB(印制電路板)設(shè)計(jì)、(自動(dòng)布線器)和設(shè)計(jì)以及嵌入式軟件開發(fā)等,該軟件功能覆蓋了
25、整個(gè)印刷電路板為核心的物理設(shè)計(jì),該軟件可將項(xiàng)目管理方式、原理圖和印刷電路板圖的多通道設(shè)計(jì)和電路仿真等多種技術(shù)結(jié)合在一起,為電路設(shè)計(jì)提供強(qiáng)大支持。 相較于較早版本的而言,2004在外觀上更為簡(jiǎn)潔和人性化,同時(shí)也強(qiáng)化了電路設(shè)計(jì)的同步化,整合了和設(shè)計(jì)系統(tǒng),其電路設(shè)計(jì)功能更為強(qiáng)大。 3.5 系統(tǒng)硬件測(cè)試 系統(tǒng)硬件電路的測(cè)試主要是檢測(cè)電路是否出現(xiàn)漏焊、短路、斷路、虛焊、一些具有方向的元件是否方向弄錯(cuò)、電路設(shè)計(jì)錯(cuò)誤等情況。 對(duì)于漏焊、元件方向弄錯(cuò)的檢測(cè)方法是將實(shí)物電路板對(duì)照著PCB圖的線路,檢查每一個(gè)元件和導(dǎo)線在實(shí)物上是否有出現(xiàn)。如果發(fā)現(xiàn)沒有或者對(duì)不上的情況下需及時(shí)的重新對(duì)照確定漏焊時(shí)及時(shí)的補(bǔ)焊
26、。 對(duì)于短路、斷路、虛焊這些情況采用數(shù)字萬用表。將數(shù)字萬用表打到二極管檔位,然后通過紅表筆和黑表筆碰一起,萬用表會(huì)發(fā)出鳴叫警示。根據(jù)這個(gè)原理就可以用來檢測(cè)短路、斷路、虛焊。在需要檢測(cè)的元件或?qū)Ь€的兩端用兩根表筆檢測(cè),如果導(dǎo)通蜂鳴器會(huì)鳴叫,如果斷開蜂鳴器不叫。這樣根據(jù)我們所需要檢測(cè)的情況,在結(jié)合檢測(cè)的現(xiàn)象就可以測(cè)出線路是否有問題。 第4章 系統(tǒng)軟件部分設(shè)計(jì) 4.1 軟件開發(fā)環(huán)境的介紹 本設(shè)計(jì)采用 Keil μVision4進(jìn)行編程實(shí)現(xiàn)。軟件是美國(guó)軟件公司所出品的編程軟件,該軟件與51系列單片機(jī)有很好兼容性,是當(dāng)前應(yīng)用最為廣泛的C語言軟件開發(fā)系統(tǒng)之一。同匯編語言相較而
27、言,C語言具有靈活性強(qiáng)、簡(jiǎn)單易學(xué)、維護(hù)性好等諸多優(yōu)勢(shì),且便于新手學(xué)習(xí)使用。在有匯編語言的基礎(chǔ)之上來應(yīng)用C語言時(shí)效果更好。 C51軟件能夠提供良好的調(diào)試環(huán)境和工具,此外,該軟件生成目標(biāo)代碼的效率非常高,且結(jié)構(gòu)簡(jiǎn)單緊湊易于理解。 4.2 系統(tǒng)重要函數(shù)的介紹 4.2.1 主函數(shù)的設(shè)計(jì) 主函數(shù)void main()是程序的入口函數(shù),一個(gè)完整的程序必須要包含該函數(shù)。在該函數(shù)的開頭一般都是先對(duì)單片機(jī)和一些外圍器件需要進(jìn)行初始化才能正常使用的器件進(jìn)行初始化和重新賦值一些變量,初始化完后進(jìn)去死循環(huán),如果不進(jìn)入死循環(huán)程序運(yùn)行一次就會(huì)退出,如果加入死循環(huán)程序就會(huì)不斷地進(jìn)行循環(huán)達(dá)到實(shí)時(shí)檢測(cè)執(zhí)行的目的。具體
28、流程圖如下4.1所示。 圖4.1 主函數(shù)流程圖 4.2.2 按鍵檢測(cè)處理函數(shù)的設(shè)計(jì) 按鍵檢測(cè)處理函數(shù)主要是為了讓系統(tǒng)能夠識(shí)別所按的按鍵并能夠知道蛇身下一刻將往哪一步移動(dòng),按鍵的檢測(cè)主要是判斷IO口是否出現(xiàn)低電平,如果出現(xiàn)低電平后進(jìn)入經(jīng)過延時(shí)消抖后再次判斷是否真的按下按鍵,如果是進(jìn)入執(zhí)行對(duì)應(yīng)的功能。具體流程圖如圖4.2所示。 圖4.2 按鍵檢測(cè)處理流程圖 4.3 系統(tǒng)軟件測(cè)試 使用工具:軟件、系統(tǒng)硬件、下載器等。 系統(tǒng)的軟件方面通過KEIL軟件進(jìn)行編寫,將編寫好的程序生成.HEX文件后通過PL2303下載器下載到單片機(jī)中。通過查看系統(tǒng)
29、工作時(shí)的具體情況,之后不斷的對(duì)程序進(jìn)行修正,最后獲得一個(gè)比較好的結(jié)果。 在系統(tǒng)軟件調(diào)試上主要遇到以下幾個(gè)問題: (1)存在的問題:點(diǎn)陣顯示出現(xiàn)閃爍。 解決方法:存在點(diǎn)陣顯示出現(xiàn)閃爍的問題可能是因?yàn)椴捎昧诵辛械姆绞竭M(jìn)行驅(qū)動(dòng),而當(dāng)顯示的間隔時(shí)間過長(zhǎng)超過人眼“余輝效應(yīng)”最大時(shí)間的話就會(huì)出現(xiàn)顯示閃爍的,為了解決閃爍的現(xiàn)象降低行列間隔時(shí)間間隔。 (2)按一次按鍵,會(huì)出現(xiàn)連按好幾次的現(xiàn)象。 解決方法:通過對(duì)程序的分析,發(fā)現(xiàn)在按鍵檢測(cè)方面在檢測(cè)到按鍵的IO口出現(xiàn)低電平就直接進(jìn)入控制,控制完就退出,這樣在按鍵還沒松開就會(huì)出現(xiàn)再次檢測(cè)到以至于按下一次出現(xiàn)連按好幾次的現(xiàn)象。發(fā)現(xiàn)這問題后通過對(duì)程序上添加對(duì)
30、按鍵的消抖延時(shí)處理后解決了這一問題。 第5章 總結(jié) 如開頭所言,LED顯示屏的應(yīng)用已經(jīng)普及到了社會(huì)中的方方面面,有著應(yīng)用方便,低成本等好處,學(xué)好LED顯示屏的設(shè)計(jì)及應(yīng)用對(duì)于自身是受益匪淺的。本次設(shè)計(jì)雖然只用了一塊16x16的LED點(diǎn)陣,電路簡(jiǎn)單,但是依舊可以做到顯示清晰,并且成本低,還可以無限聯(lián)級(jí),同時(shí)主控芯片也選擇了STC89C51,通過本次的課程設(shè)計(jì)試驗(yàn)是我對(duì)Altium Designer、 Keil μVision4等軟件有著進(jìn)一步的了解,同時(shí)也對(duì)單片機(jī)課程知識(shí)有著更深的理解,加強(qiáng)了自身對(duì)LED點(diǎn)陣設(shè)計(jì)的能力。對(duì)于這次
31、設(shè)計(jì)來說既是一次機(jī)遇,又是一次挑戰(zhàn)。在這次設(shè)計(jì)過程中,我學(xué)到老很多東西,通過自己的實(shí)踐,增強(qiáng)了動(dòng)手能力。經(jīng)過此次具體工程的設(shè)計(jì)讓我知道了書本知識(shí)和實(shí)踐操作之間的差異。在實(shí)際應(yīng)用中遇到很多問題,這都要我對(duì)問題進(jìn)行具體分析,并一步一步地去解決它。 參考文獻(xiàn) [1] 蘇鐵力,傳感器及其接口技術(shù)[M],北京:中國(guó)石化出版社.1998 [2] 中國(guó)電子學(xué)會(huì),傳感器與執(zhí)行器大全[M],北京:電子工業(yè)出版社.1998 [3] 白雪冰,張延林,等,單片機(jī)原理及應(yīng)用[M],哈爾濱:東北林業(yè)大學(xué)出版社.2006 [4] 謝運(yùn)祥,歐陽森等,電
32、力電子單片機(jī)控制技術(shù)[M],北京:機(jī)械工業(yè)出版.2007 [5] 王洪業(yè),傳感器技術(shù)[M],長(zhǎng)沙:湖南科學(xué)技術(shù)出版社.1995 [6] 李光飛,單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo),北京:北京航空航天大學(xué)出版社.2004 [7] 王法能,單片機(jī)原理及應(yīng)用,科學(xué)出版社.2004 [8] 樓然苗,李光飛,51系列單片機(jī)設(shè)計(jì)實(shí)例[M],北京:北京航空航天大學(xué)出版社.2003 [9] 胡汗才,單片機(jī)原理與接口技術(shù)[M],清華大學(xué)出版社.2004 [10] 王萍,電子技術(shù)實(shí)驗(yàn)教程,機(jī)械工業(yè)出版社.2009 [11] 朱定華,戴淑萍,單片機(jī)微機(jī)原理與應(yīng)用[M],清華大學(xué)出版社.2003 [12] 劉勇
33、編 數(shù)字電路 電子工業(yè)出版社 2004 [13] 陳正振 編 電子電路設(shè)計(jì)與制作 廣西交通職業(yè)技術(shù)學(xué)院信息工程系 2007 [14] 楊子文 編 單片機(jī)原理及應(yīng)用 西安電子科技大學(xué)出版社 2006 [15] 陳汝全.電子技術(shù)常用器件應(yīng)用手冊(cè).北京:機(jī)械工業(yè)出版社,2004.10. [16] 郝曉劍,楊述平,張連紅.儀器電路設(shè)計(jì)與應(yīng)用.北京:電子工業(yè)出版社,2007.6. [17] 畢滿清,王黎明,高文華.模擬電子技術(shù)基礎(chǔ).北京:電子工業(yè)出版社,2008.6. [18] 韓焱,張艷花,王康誼.電子技術(shù)基礎(chǔ).北京:電子工業(yè)出版社,2009.6. [19] 童長(zhǎng)飛.CSO5lF系列單片
34、機(jī)開發(fā)與C語言編程.北京:北京航空航天大學(xué)出版社,2005.
附 錄
源程序代碼:
/*************************************************************
點(diǎn)陣顯示
補(bǔ)充說明:
***************************************************************/
#include
35、定義 #define uint unsigned int #define ulong unsigned long /*************************按鍵引腳定義****************************/ sbit key_L=P1^7; //左 sbit key_R=P3^6; //右 sbit key_U=P3^4; //上 sbit key_D=P3^5; //下 sbit key_O=P1^3; //逐個(gè)顯示 /*************************HC595引腳定義**********************
36、*****/ sbit CLK =P2^4; sbit DATA =P2^2; sbit LAT =P2^3; sbit CLK2 =P0^0; sbit DATA2 =P0^2; sbit LAT2 =P0^1; /*************************變量定義****************************/ //字模 uchar code pic[][32]={ 0x04,0x08,0x04,0x10,0x24,0x20,0x24,0x40,0x24,0xFC,0x24,0xA2,0xFD,0x22,0x26,0x22, 0x
37、24,0x42,0x2C,0x42,0x14,0x42,0x24,0x82,0x44,0x1E,0x04,0x00,0x04,0x00,0x00,0x00,//老0 0x00,0x00,0x3F,0xE1,0x00,0x02,0x00,0x0C,0xFF,0xF0,0x00,0x00,0x40,0x00,0x47,0xF8, 0x44,0x00,0x44,0x00,0x7F,0xFF,0x44,0x10,0x44,0x08,0x47,0xF0,0x40,0x00,0x00,0x00,//師1 0x04,0x02,0x08,0x0C,0x10,0x00,0x3F,0xEE
38、,0xC4,0x01,0x08,0x81,0x11,0x11,0xE6,0x4D, 0x20,0x21,0x2F,0xC1,0x20,0x01,0x24,0x07,0x2A,0x00,0x31,0x88,0x00,0x06,0x00,0x00,//您2 0x02,0x00,0x02,0x20,0x22,0x20,0x22,0x20,0x2A,0x20,0x26,0x20,0xA2,0x20,0x63,0xFF, 0x22,0x20,0x26,0x20,0x2A,0x20,0x22,0x20,0x22,0x20,0x02,0x20,0x02,0x00,0x00,0x00,//辛
39、3 0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x3F,0xF9,0x22,0x21,0x22,0x21,0x22,0x2F,0xE2, 0x21,0x22,0x21,0x22,0xF9,0x22,0x21,0x3F,0x21,0x00,0x21,0x00,0x21,0x00,0x00,0x00,//苦4 0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x02,0x40,0x01,0x47,0xFE, 0x44,0x00,0x48,0x00,0x50,0x00,0x60,0x
40、00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//了5 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xCC, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//!6 }; uchar mode=0; //0不動(dòng),1左移,2右移,3上移,4下移 uint length; //存儲(chǔ)漢字?jǐn)?shù)組長(zhǎng)度 uchar
41、 buffer[32];//顯示數(shù)據(jù)暫存 uint N=0; //記錄移動(dòng)步數(shù) /******************************************************** 函數(shù)名稱:void Delay(unsigned int num) 函數(shù)作用:US延時(shí)函數(shù) 參數(shù)說明: ********************************************************/ void Delay(ulong num) { while( --num ) ; } /**********************************
42、*********************** 函數(shù)名稱:void delayms(uint ms) 函數(shù)作用:毫秒延時(shí) 參數(shù)說明: *********************************************************/ void delayms(uint ms) { unsigned char i=100,j; for(;ms;ms--) { while(--i) { j=10; while(--j); } } } /****************************************
43、***************** 函數(shù)名稱:void HC595_send(uchar dat) 函數(shù)作用:控制列線 參數(shù)說明: *********************************************************/ void HC595_send(uchar dat) { uchar i; CLK = 0; LAT = 0; for(i=0;i<8;i++) { CLK = 0; if( dat&0x80 ) DATA = 1; else DATA = 0; CLK = 1; //
44、上升沿發(fā)送數(shù)據(jù) dat <<= 1; } } /********************************************************* 函數(shù)名稱:void HC595_send2(uchar dat) 函數(shù)作用:控制列線上對(duì)應(yīng)的數(shù)據(jù) 參數(shù)說明: *********************************************************/ void HC595_send2(uchar dat) { uchar i; CLK2 = 0; LAT2 = 0; for(i=0;i<8;i++)
45、 { CLK2 = 0; if( dat&0x80 ) DATA2 = 1; else DATA2 = 0; CLK2 = 1; //上升沿發(fā)送數(shù)據(jù) dat <<= 1; } } /********************************************************* 函數(shù)名稱:void display() 函數(shù)作用:顯示緩存數(shù)據(jù)buffer 參數(shù)說明: *********************************************************/ void disp
46、lay() { uint L=0xfffe; uchar i; for(i=0;i<16;i++) //16列數(shù)據(jù),循環(huán)16次依次顯示出來 { HC595_send2(0x00); //清除列數(shù)據(jù) HC595_send2(0x00); LAT2 = 1; HC595_send(L/256); //選通對(duì)應(yīng)的列 HC595_send(L%256); LAT = 1; HC595_send2(buffer[i*2]);//輸出對(duì)應(yīng)列的數(shù)據(jù) HC595_send2(buffer[i*2+1]);
47、 LAT2 = 1; L=(L<<1)|0x0001; //顯示完后轉(zhuǎn)到顯示下一列的數(shù)據(jù) Delay(12); //短暫延時(shí),讓數(shù)據(jù)顯示一會(huì) } CLK = 1; //關(guān)閉595 CLK = 0; CLK2 = 1; CLK2 = 0; } /********************************************************* 函數(shù)名稱:void move() 函數(shù)作用:根據(jù)移動(dòng)模式計(jì)算顯示數(shù)據(jù),并顯示出來 參數(shù)說明: ***********************************
48、**********************/ void move() { uint A,B; uchar i,j; if(N==0) //開始顯示第一個(gè)漢字 { for(i=0;i<32;i++) //將字模存入顯示緩存 buffer[i]=pic[0][i]; } switch (mode) { //逐個(gè)顯示 case 0: { if(N%16==0) //每循環(huán)16次,換一個(gè)字顯示 { for(i=0;i<16;i++)//將字模存入顯示緩存 {
49、buffer[i*2]=pic[N/16][i*2];
buffer[i*2+1]=pic[N/16][i*2+1];
}
}
}
break;
//左移
case 1:
{
for(i=0;i<16;i++)
{
if((N+i)/16 50、
{
buffer[i*2]=0x00;
buffer[i*2+1]=0x00;
}
}
}
break;
//右移
case 2:
{
for(i=0;i<16;i++)
{
j=N%16;
if(i 51、)*2+1];
}
else
{
buffer[i*2]=0x00;
buffer[i*2+1]=0x00;
}
}
else
{
if(N/16 52、uffer[i*2+1]=0x00;
}
}
}
}
break;
//上移
case 3:
{
for(i=0;i<16;i++)
{
A=(pic[N/16][i*2]<<8)|pic[N/16][i*2+1];
A=A<<(N%16);
if(N/16+1 53、 B=0x0000;
buffer[i*2]=(A|B)/256;
buffer[i*2+1]=(A|B)%256;
}
}
break;
//下移
case 4:
{
for(i=0;i<16;i++)
{
if(N/16+1 54、c[N/16][i*2]<<8)|pic[N/16][i*2+1];
B=B>>(N%16);
buffer[i*2]=(A|B)/256;
buffer[i*2+1]=(A|B)%256;
}
}
break;
default:break;
}
if(N%16==0) //一個(gè)字全部移入點(diǎn)陣顯示時(shí)候多顯示一會(huì)時(shí)間
{
for(i=0;i<10;i++)
display();
}
for(i=0;i<8;i++) //顯示當(dāng)前暫存數(shù)據(jù)
display();
N++; 55、 //移動(dòng)步數(shù)+1
if(N>=length) //如果移動(dòng)步數(shù)大于顯示的最大長(zhǎng)度
N=0; //重置移動(dòng)步數(shù)為0
}
/*********************************************************
函數(shù)名稱:void scan()
函數(shù)作用:按鍵檢測(cè)處理
參數(shù)說明:
*********************************************************/
void scan()
{
//逐個(gè)顯示模式
if(key_O==0) //按鍵按下
{
delay 56、ms(2); //延時(shí)消抖
if(key_O==0) //再次判斷按鍵按下
{
mode=0; //切換逐個(gè)顯示模式
N=0; //重置移動(dòng)步數(shù)
}
}
//左移顯示模式
if(key_L==0) //按鍵按下
{
delayms(2); //延時(shí)消抖
if(key_L==0) //再次判斷按鍵按下
{
mode=1; //切換左移顯示模式
N=0; //重置移動(dòng)步數(shù)
}
}
//右移顯示模式
if(key_R==0) 57、 //按鍵按下
{
delayms(2); //延時(shí)消抖
if(key_R==0) //再次判斷按鍵按下
{
mode=2; //切換右移顯示模式
N=0; //重置移動(dòng)步數(shù)
}
}
//上移顯示模式
if(key_U==0) //按鍵按下
{
delayms(2); //延時(shí)消抖
if(key_U==0) //再次判斷按鍵按下
{
mode=3; //切換上移顯示模式
N=0; //重置移動(dòng)步數(shù)
}
}
/ 58、/下移顯示模式
if(key_D==0) //按鍵按下
{
delayms(2); //延時(shí)消抖
if(key_D==0) //再次判斷按鍵按下
{
mode=4; //切換下移顯示模式
N=0; //重置移動(dòng)步數(shù)
}
}
}
/*********************************************************
函數(shù)名稱:void main()
函數(shù)作用:主函數(shù)
參數(shù)說明:
****************************************** 59、***************/
void main()
{
length=sizeof( pic)/2;//計(jì)算顯示內(nèi)容一共有多少個(gè)數(shù)據(jù)
while(1) //死循環(huán)
{
scan();//按鍵檢測(cè)并處理
move();//移動(dòng)并顯示出來
}
}
致 謝
感謝我的論文指導(dǎo)老師余良俊老師對(duì)我細(xì)心的知道和無微不知道關(guān)懷。由于自身經(jīng)驗(yàn)不足,思緒時(shí)有卡頓。余良俊老師如同我學(xué)習(xí)道路上的明燈,在我不解時(shí)為我指點(diǎn)迷津。在寫畢業(yè)論文的每個(gè)階段,老師都給了我很多幫主。在前期的資料收集,老師為我提供一些參考資料,寫下開題報(bào)告,老師給了我諸多意見, 60、讓我對(duì)論文的大綱從模糊到逐漸清晰,老師如同引路人一般。寫論文的過程中,老師工作繁忙還是不忘試試關(guān)心我的論文進(jìn)展,對(duì)于我的困惑,老師一有時(shí)間就為我解答,幫助我理清思路,指引我論述方向,避免了論述模糊、邏輯混亂。寫論文的過程中受益匪淺,不禁敬佩老師的博聞強(qiáng)識(shí),老師高超的專業(yè)水平、扎實(shí)的知識(shí)基礎(chǔ)、認(rèn)真的科學(xué)態(tài)度、嚴(yán)謹(jǐn)?shù)闹螌W(xué)風(fēng)范,無不激勵(lì)著我自強(qiáng)不息、砥礪前行。老是永遠(yuǎn)是我學(xué)習(xí)的榜樣,在此,謹(jǐn)向老師致以最誠摯的感謝和最崇高的敬意。
最后,感謝四年大學(xué)生活里所有教導(dǎo)過、關(guān)心過我的老師,為我打下了扎實(shí)的知識(shí)基礎(chǔ),教會(huì)我日后工作生活的為人處世之道,感謝老師們的關(guān)心和指導(dǎo)。感謝我的同學(xué)們,正是有你們相伴,共同成長(zhǎng),我才可以克服一個(gè)又一個(gè)的困難,直至論文順利完成。感謝家人的支持讓我能夠順利完成學(xué)業(yè)。最后,感謝母校這四年來的大力栽培,我受益終身,沒齒難忘。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)際商法第五講國(guó)際貨物買賣法課件
- 金牌客服投訴調(diào)解員課件
- 過敏性紫癜病案討論課件
- 《英語》(新標(biāo)準(zhǔn))(供三年級(jí)起始用)第四模塊第九模塊第二單元Samhadchocolatebiscuits
- 1原子吸收光譜分析A
- 幼兒園區(qū)角環(huán)境的創(chuàng)設(shè)1
- 數(shù)據(jù)挖掘技術(shù)十課Bayes分類方法
- 精神科進(jìn)修總結(jié)
- 最新隧道施工技術(shù)指南培訓(xùn)課件
- HAPPYBIRTHDAY課件之一
- 免疫組化的原理與操作
- 詩海拾貝與詩同行課件
- 落花生徐書婷
- 第5課_“和同為一家”PPT(教育精品)
- 電力網(wǎng)無功補(bǔ)償節(jié)能技術(shù)改造及維護(hù)