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