單片機課程設計-基于LCD1602液晶顯示器課程設計_第1頁
單片機課程設計-基于LCD1602液晶顯示器課程設計_第2頁
單片機課程設計-基于LCD1602液晶顯示器課程設計_第3頁
單片機課程設計-基于LCD1602液晶顯示器課程設計_第4頁
單片機課程設計-基于LCD1602液晶顯示器課程設計_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要在日常生活中,我們對液晶顯示(LCD)并不陌生LCD智能顯示模塊不但可以顯示字符,漢字和圖形,同時具有可編程功能,且與單片機接口比較方便,如液晶顯示模塊已作為很多電子產品的通用器件,如在計算器,萬用表,電子表及很多家用電子產品中都可以看到,顯示的主要是數字,專用符號和圖形。在單片機系統(tǒng)中應用中用液晶顯示作為輸出器件有很多優(yōu)點,如顯示質量高,不閃爍;數字接口式,使得和單片機的接口更加簡單可靠,操作方便;體積小,重量輕;而且相對而言,液晶顯示器的功耗主要消耗在其內部的電極和驅動TC上,因而耗電量比其它顯示器要少得多。關鍵字:單片機 專用字符 液晶顯示器LCD1602 目 錄摘要1第一章 緒論

2、11.1 課題背景21.2 課題設計目標2 課題設計的主要工作3第二章 硬件設計42.1 LCD1602 簡介5.1 LCD1602引腳功能7 IIC總線10.1 IIC總線的特點11.2 IIC協議總線信號時序9.3 IIC總線器件尋址方式72.3 系統(tǒng)電路圖7第三章 軟件設計73.1 系統(tǒng)框圖73.2 程序清單7第四章 調試7第五章 總結7參考文獻7致 謝71緒論當今時候是一個信息化的時代,信息的重要性不言而喻的,獲取手段顯得尤其重要。人們所接受的信息有70%來自于人的視覺,無論用何種方式獲取的信息最終需要有某種顯示方式來表示。在當代顯示技術中,主流的有LED顯示屏和LCD液晶顯示,而在這

3、些顯示技術中,尤其以液晶顯示器LCDLiquid crystal display為代表的平板顯示器開展最快,應用最廣。LCD是典型的發(fā)光器件,它一材料科學為根底,綜合利用了精密機械,光電及計算機技術,并正在微機械,微光學,纖維光學等前沿領域研究根底上,向高集成化,智能化方向開展。液晶顯示技術開展迅猛,市場預測說明,液晶顯示平均年銷售呈增長10%13%,不久的將來有可能取代CRT,成為電子信息產品的主要顯示器件,另外,液晶顯示器對空間電磁輻射的干擾不敏感,且在緊湊的儀器空間不需要專門的屏蔽保護,因而課大大簡化儀器的結構和制造本錢,在各種便攜式儀器,儀表將會越來越廣泛的應用。特別是在電池供電的單片

4、機產品中,液晶顯示更是必選的顯示器件。本設計是基于AT89C51芯片單片機為主控芯片,結合1602液晶顯示模板等外圍電路,通過軟件程序,來實現液晶顯示英文字母和數字。本次設計的目的在于利用單片機和LCD1602來顯示英文字母和數字。1對系統(tǒng)的各個模塊的各個功能進行深入分析和研究,在對課題所采用的方案進行可行詳細的研究后設計具體功能電路。2熟悉所選芯片的功能并完成具體電路設計。3對系統(tǒng)的最終指標進行測試,針對系統(tǒng)的缺乏,進行分析并提出一些改正方法。2 單片機的概述目前單片機滲透到了我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數

5、據傳輸,工業(yè)自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的平安保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及遠程控制玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域中的機器人、智能儀表、醫(yī)療器械了。單片機具有結構簡單、控制功能強、可靠性高、體積小、價格低等優(yōu)點,因而在許多行業(yè)都得到了廣泛應用,并且在諸多領域中都發(fā)揮了無可比較的巨大作用。和特點單片機即單片微型計算機,是把中央處理器、存儲器、定時/計數器、輸入輸出接口都集成在一塊集成電路芯片上的微型計算機。與應用在個人電腦中的通用型微處理器相比,它更強調自供給不用外接硬件和節(jié)約本錢。單片機也被稱為微控制器

6、Microcontroller,是因為它最早被用于工業(yè)控制領域。單片機的芯片內僅由CPU的專用處理器開展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復雜的而對體積要求嚴格的控制設備當中。單片機以其卓越的性能,得到了廣泛的應用,已深入到各個領域。單片機應用在檢測、控制領域中,具有如下特點:1、體積小、控制功能強、本錢低。因而可以方便地組裝各種智能式控制設備和儀器,做到機、電、儀一體化。2、易擴展。很容易構成各種規(guī)模的應用系統(tǒng),為應用系統(tǒng)的設計和生產帶來極大方便。3、可靠性好、使用溫度范圍寬。在各種惡劣的環(huán)境下都能可靠的工作,這是其他機種無法比較

7、的。4、種類多,型號全。很多單片機廠家逐年擴大適應各種需要,有針對性地推出一系列型號產品,使系統(tǒng)開發(fā)工程師有很大的選擇余地。大局部產品有較好的兼容性,保證了已開發(fā)產品能順利移植,較容易地使產品進行升級換代。5、低功耗?,F在新型單片機的功耗越來越小,供電電壓從5V降低到了3.2V,甚至1V,工作電流從mA降到µA級,工作頻率從十幾兆可編程到幾十千赫茲。特別是很多單片機都設置了多種工作方式,這些工作方式包括等待、暫停、睡眠、空閑、節(jié)電等。6、可以采用C語言開發(fā)環(huán)境,具有友好的人機互交環(huán)境。大多數單片機都提供基于C語言開發(fā)平臺,并提供大量的函數供使用,這使產品的開發(fā)周期、代碼可讀性、可移植

8、性都大為提高。單片微型計算機簡介單片微型計算機(Single Chip Micro Computer)簡稱單片機,它是一種把組成微型計算機的各功能部件:中央處理單元CPU、一定容量的隨機存儲器RAM和只讀存儲器ROM、I/O接口電路、定時器/計數器以及串行口等制作在一塊芯片中的計算機,從而實現微型計算機的根本功能5。單片機具有結構簡單、控制功能強、可靠性高、體積小、價格低等特點,在家用電器、智能化儀器、工業(yè)控制以及火箭導航尖端技術領域都發(fā)揮著十分重要的作用6。單片機的內部結構示意圖如下列圖所示。 單片機 接口電路及外設等 + + 軟 件 單片機應用系統(tǒng) 圖2.2 單片機內部結構示意圖 圖2.3

9、 單片機應用系統(tǒng)組成示意圖單片機實質上是一個芯片,在實際應用中通常很難直接把單片機和受控對象進行電氣連接,而是必須外加各種擴展接口電路以至外部設備,連同受控對象和單片機程序軟件構成一個單片機應用系統(tǒng)。單片機應用系統(tǒng)是以單片機為核心,配以輸入、輸出、顯示、測量和控制等外圍電路和軟件能實現一種或多種功能的實用系統(tǒng)。單片機應用系統(tǒng)的組成示意圖如上圖所示7。單片機技術在不斷的開展,它反映在內部結構、功率消耗、外部電壓等級以及制造工藝上。在這幾方面,較為典型地說明了數字單片機的技術水平。在目前,用戶對單片機的需要越來越多,但是,要求也越來越高。下面分別就這三個方面說明單片機的技術進步狀況。 1、內部結構

10、的進步 單片機在內部已集成了越來越多的部件,這些部件包括一般常用的電路,例如:定時器,比較器,A/D轉換器,D/A轉換器,串行通信接口,Watchdog電路,LCD控制器等。有的單片機為了構成控制網絡或形成局部網,內部含有局部網絡控制模塊CAN。例如,Infineon公司的C 505C,C515C,C167CR,C167CS-32FM,81C90。因此,這類單片機十分容易構成網絡。特別是在控制,系統(tǒng)較為復雜時,構成一個控制網絡十分有用。 為了能在變頻控制中方便使用單片機,形成最具經濟效益的嵌入式控制系統(tǒng)。有的單片機內部設置了專門用于變頻控制的脈寬調制控制電路,這些單片機有Fujitsu公司的M

11、B89850系列、MB89860系列;Motorola 公司的MC68HC08MR16、MR24等。在這些單片機中,脈寬調制電路有6個通道輸出,可產生三相脈寬調制交流電壓,并內部含死區(qū)控制等功能。 特別引人注目的是:現在有的單片機已采用所謂的三核TrCore結構。這是一種建立在系統(tǒng)級芯片System on a chip概念上的結構。這種單片機由三個核組成:一個是微控制器和DSP核,一個是數據和程序存儲器核,最后一個是外圍專用集成電路ASIC。這種單片機的最大特點在于把DSP和微控制器同時做在一個片上。這是目前單片機最大的進步之一。這些單片機都是高檔單片機,MCU都是32位的,而DSP采用16或

12、32位結構,工作頻率一般在60MHz以上。 2、功耗、封裝及電源電壓的進步 現在新的單片機的功耗越來越小,特別是很多單片機都設置了多種工作方式,這些工作方式包括等待,暫停,睡眠,空閑,節(jié)電等工作方式。而單片機的封裝水平也大大提高,隨著貼片工藝的出現,單片機也大量采用了各種合符貼片工藝的封裝方式出現,以大量減少體積。在這種形勢中,Microchip公司推出的8引腳的單片機特別引人注目。這是PIC12CXXX系列。它含有0.52K程序存儲器,25128字節(jié)數據存儲器,6個I/O端口以及一個定時器,有的還含4道A/D ,完全可以滿足一些低檔系統(tǒng)的應用。擴大電源電壓范圍以及在較低電壓下仍然能工作是今天

13、單片機開展的目標之一。目前,一般單片機都可以在3.35.5V的條件下工作。而一些廠家,那么可以生產出在2.26V的條件下工作的單片機。 3、工藝上的進步 現在的單片機根本上采用CMOS技術,但已經大多數采用了0.6um以上的光刻工藝,有個別的公司,如Motorola公司那么已采用0.35um甚至是0.25um技術。這些技術的進步大大地提高了單片機的內部密度和可靠性。單片機在目前的開展形勢下,表現出幾大趨勢:1、可靠性及應用越來越水平高,和互聯網連接已是一種明顯的走向;2、所集成的部件越來越多,NS美國國家半導體公司的單片機已把語音、圖像部件也集成到單片機中,也就是說,單片機的意義只是在于單片集

14、成電路,而不在于其功能了。如果從功能上講它可以講是萬用機。原因是其內部已集成上各種應用電路;3、功耗越來越低和模擬電路結合越來越多。隨著半導體工藝技術的開展及系統(tǒng)設計水平的提高,單片機還會不斷產生新的變化和進步,最終人們可能發(fā)現:單片機與微機系統(tǒng)之間的距離越來越小,甚至難以識別。2.3編程語言的選擇在1972年,美國貝爾實驗室的D.M.Ritchie在B語言的根底上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。在眾多的程序設計語言中,C語言簡潔緊湊,語言表達能力強,其結構化的流程控制有助于編制結構良好的程序。C語言程序經編譯后生成的目標程序代碼效率高,幾

15、乎可以與匯編語言媲美。C語言既具備高級語言使用方便、接近自然語言和數學語言的特性,同時也具備對計算機硬件系統(tǒng)的良好操縱和控制能力。C語言可移植性好,一個C語言源程序可以不做改動,或者稍加改動,就可以從一種型號的計算機移轉到另外一種型號的計算機上編譯運行。因此,C語言被廣泛應用于各類系統(tǒng)軟件和應用軟件的開發(fā)。所以本系統(tǒng)以C語言進行軟件設計,增加了程序的可讀性和可移植性,便于擴展和更改,軟件的設計采用模塊化結構,使程序設計的邏輯關系更加簡潔了。2.4 主控單片機80C51是一種高性能CMOS8位微處理器,俗稱單片機,它帶有4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFlash Programm

16、able and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的80C51是一種高效微控制器, 80C2051是它的一種精簡版本。80C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案8。80C51引腳即外觀如下圖。圖2.4 80C51引腳外觀圖2.5 80C51接口說明Vss(20腳):接地。VCC(40腳):主電源+

17、5V。XTAL1(19腳):接外部晶體的一端。在片內它是振蕩電路反相放大器的輸入端。在采用外部時鐘時,對于HMOS單片機,該端引腳必須接地;對于CHMOS單片機,此引腳作為驅動端。XTAL2(18腳):接外部晶體的另一端。在片內它是個振蕩電路反相放大器輸出端,振蕩電路的頻率是晶體振蕩頻率。假設需采用外部時鐘電路,對于HMOS單片機,該引腳輸入外部時鐘脈沖;對于CHMOS單片機,此引腳應懸浮。RST(9腳):單片機剛剛接上電源時,其內部各存放器處于隨機狀態(tài),在該腳輸入24個時鐘周期寬度以上的高電平將使單片機復位。PSEN(29腳):在訪問片外程序存儲器時,此端輸出負脈沖作為存儲器讀選通信號。CP

18、U在向片外存儲器取指令期間,PSEN信號在12個時鐘周期中兩次生效。不過,在訪問片外數據存儲器時,這兩次有效PSEN信號不出現。PSEN端同樣可驅動8個LSTTL負載。我們根據PSEN、ALE和XTAL2輸出端是否有信號輸出,可以判別80C51是否在工作。ALE/(30腳):地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在Flash編程時,此引腳()也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可以用來作為外部定時器或時鐘使用。然而,特別強調,在每次訪問外部數據存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位

19、置“1,ALE操作將無效。這一位置“1,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否那么,ALE 將被微弱拉高。這個ALE 使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執(zhí)行模式下無效。EA/VPP(31腳):當EA端輸入高電平時,CPU從片內程序存儲器地址0000H單元開始執(zhí)行程序。當地址超出4KB時,將自動執(zhí)行片外程序存儲器的程序。當EA輸入低電平時,CPU僅訪問片外程序存儲器。在對87C51EPROM編程時,此引腳用于施加編程電壓VPP。輸入/輸出引腳:(1) P0.7  (39腳32腳)。(2) P1.7  (1腳 8 腳)

20、。(3) P2.7  (26腳21腳)。(4) P3.7  (10腳17腳)。80C51單片機P3口的第二功能如表2.1所示。表2.1 80C51單片機P3口第二功能引腳號第二功能RXD串行輸入線TXD串行輸出線(外部中斷0輸入線) (外部中斷0輸入線)T0定時器0外部計數脈沖輸入T1定時器1外部計數脈沖輸入(外部數據存儲器寫選通信號輸出)(外部數據存儲器寫選通信號輸出)一個1LCD1602顯示系統(tǒng)由單片機80C51,LCD1602模塊,單片機的時鐘復位電路和P0口的上拉電阻組成。本章主要介紹了單片機的定義和特點,重點描述了單片機開展現狀和未來的開展趨勢

21、,最后簡單地介紹了選擇的編程語言。3設計要求和方案論證3.1 設計要求1設計鍵盤,鍵盤功能包括模式選擇輸入。 2選擇LCD1602顯示器,不同方式顯示內容。3設計單片機及相應的外圍接口實現LCD顯示驅動模塊的電路設計。4編制相應的控制軟件,完成Proteus軟件仿真和實物。3.2 單片機芯片的選擇方案和論證方案一:8031芯片內部無ROM,需要外擴程序存儲器,由此造成電路焊接的困難,況且使用8031還需要另外購置其他的芯片,從而造成本錢比較高,且性價比低。方案二:80C51芯片內部有ROM,且片內ROM全部采用Flash ROM,它能夠在3V的超低壓工作,與51系列單片機完全兼容。AT89C5

22、1是一種帶4K字節(jié)FLASH存儲器 FPEROMFlash Programmable and Erasable Read Only Memory的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。因此,本設計選擇80C51芯片。3.3 顯示模塊選擇方案和論證方案一:采用LED數碼管動

23、態(tài)掃描,LED數碼管價格適中,對于顯示數字適宜,采用動態(tài)掃描法與單片機連接時,雖然占用的單片機口線少,但連線還需要花費一點時間,所以也不用此種作為顯示。方案二:采用點陣式數碼管顯示,點陣式數碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,假設采用在顯示數字顯得太浪費,且價格也相對較高,所以在此也不用此種作為顯示。 方案三:采用1602液晶顯示屏,該液晶顯示屏的顯示功能強大,內置192種字符,可顯示大量符號、數字,清晰可見,而且功率消耗小壽命長抗干擾能力強。所以在此設計中采用1602液晶顯示屏。3.4電路設計最終方案決定綜上各方案所述,對此次作品的方案選定: 采用STC89C52作為主控

24、制芯片,LCD1602作為顯示模塊。3.5本章小結 本章主要介紹了系統(tǒng)要實現的功能和萬年歷系統(tǒng)硬件平臺的選擇,比較了主控模塊,時鐘模塊,顯示模塊,溫度采集模塊中不同器件的優(yōu)劣,最后確定了電路設計的整體方案。這也是完成設計的先決條件。4硬件模塊設計4.1 LCD顯示模塊4.1.11602LCD主要技術參數:顯示容量:16×2個字符工作電流:2.0mA(5.0V)字符尺寸:2.95×4.35(W×H)mm4.1.2在單片機系統(tǒng)中應用晶液顯示器作為輸出器件有以下幾個優(yōu)點:顯示質量高由于液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示

25、器CRT那樣需要不斷刷新新亮點。因此,液晶顯示器畫質高且不會閃爍。數字式接口液晶顯示器都是數字式的,和單片機系統(tǒng)的接口更加簡單可靠,操作更加方便。體積小、重量輕液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來到達顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。功耗低相對而言,液晶顯示器的功耗主要消耗在其內部的電極和驅動IC上,因而耗電量比其它顯示器要少得多。4.1.3 LCD1602引腳功能圖2.1 LCD1602引腳圖1602點陣字符液晶模塊(LCM)引腳及功能:1602LCD采用標準的14腳無背光或16腳帶背光接口,各引腳接口說明如表10-13所示:編號符號引腳說明編號符號引腳說明1

26、VSS電源地9D2數據2VDD電源正極10D3數據3VL液晶顯示偏壓11D4數據4RS數據/命令選擇12D5數據5R/W讀/寫選擇13D6數據6E使能信號14D7數據7D0數據15BLA背光源正極8D1數據16BLK背光源負極表10-13:引腳接口說明表第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器比照度調整端,接正電源時比照度最弱,接地時比照度最高,比照度過高時會產生“鬼影,使用時可以通過一個10K的電位器調整比照度。第4腳:RS為存放器選擇,高電平時選擇數據存放器、低電平時選擇指令存放器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當R

27、S和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數據線。第15腳:背光源正極。第16腳:背光源負極。4 .1.4 LCD1602顯示模指令集1清屏功能:清DDROM值和AC值2歸位功能:光標復位,光標返回到地址00H3輸入方式設置功能:設置光標,畫面移動方式。其中:I/D=1:數據讀寫操作后,AC 自加一;I/D=0:數據讀寫操作后,AC 自減一;S=1:數據讀寫操作,畫面平移;S=0:數據讀寫操作,畫面不

28、動;4顯示開關控制功能:設置顯示、光標和閃爍開關。其中:D 表示顯示開關,D=1 為開,D=0 為關;C 表示光標開關,C=1 為開,C=0 為關;B 表示閃爍開關,B=1 為開,B=0 為關。5光標、畫面位移功能:光標、畫面移動。其中:S/C=1 畫面移動一個字符位;S/C=0 光標移動一個字符位;R/L=1:右移;R/L=0 左移。6功能設置功能:工作方式設置初始化指令。其中:DL=1,8 位數據接口;DL=0,4 位數據接口;N=1,兩行顯示;N=0,一行顯示;F=1,5*10 點陣顯示;F=0,5*7 點陣顯示。7CGRAM 地址設置功能:設置CGRAM 地址,A5A0=03FH。8D

29、DRAM 地址設置功能:設置DDRAM 地址。其中:N=0,一行顯示A6A0=04FH;N=1 兩行顯示,首行A6A0=02FH,次行A6A0=4067H。9讀BF 及AC 值功能:讀忙BF 和地址計數器AC 的值。其中:BF=1:忙,BF=0:準備好。此時AC 值意義為最近一次地址設置CGRAM 或DDRAM定義。10寫數據功能:根據最近設置的地址性質,數據寫入CGRAM 或DDRAM 中。11讀數據功能:根據最近設置的地址性質,從CGRAM 或DDRAM 數據讀出。4.1.5 根本操作時序表讀寫操作時序如圖10-55和10-56所示:圖10-55 讀操作時序圖10-56 寫操作時序 矩陣鍵

30、盤方法一: 逐行掃描:我們可以通過高四位輪流輸出低電平來對矩陣鍵盤進行逐行掃描,當低四位接收到的數據不全為1的時候,說明有按鍵按下,然后通過接收到的數據是哪一位為0來判斷是哪一個按鍵被按下。方法二: 行列掃描:我們可以通過高四位全部輸出低電平,低四位輸出高電平。當接收到的數據,低四位不全為高電平時,說明有按鍵按下,然后通過接收的數據值,判斷是哪一列有按鍵按下,然后再反過來,高四位輸出高電平,低四位輸出低電平,然后根據接收到的高四位的值判斷是那一行有按鍵按下,這樣就能夠確定是哪一個按鍵按下了。4.2.2 矩陣鍵盤工作原理在一般應用中,鍵盤按其接線方法有:直接式鍵盤、行列式鍵盤又稱矩陣鍵盤、串轉并

31、鍵盤等;在實驗箱中,采用4×4的行列式鍵盤,即鍵盤排列為4行、4列,共16個按鍵。 4×4 鍵盤的電路圖如圖 2-1 所示,分別定義這 16 個按鍵盤為 KEY116。圖 2-1 4×4 鍵盤電路圖圖中 C1C4 為 4×4 鍵盤的列掃描線,L1L4 為 4×4 鍵盤的行掃描線。 行列式鍵盤的操作一般完成兩個任務,一是檢測是否有鍵被按下,二是識別被按下的鍵是哪一個。一般會采用行列掃描法,可以同時完成上述兩項任務。根本的掃描原理是: 先使行掃描線輸出高電平,然后讀取列掃描線的狀態(tài),得到與按鍵橫向位置對應的4位列碼;如果是有鍵被按下時,那么對應的列

32、掃描線必然會被讀回高電平,如果是無鍵盤按下時,那么讀取的列碼必定全是0。這也就可以判斷有無按鍵的按下了。 一旦檢測到有鍵按下時,還需要有一個延時的消除抖動的操作,以消除按鍵時帶有的抖動信號;一般延時在15ms左右即可。延時后,如還能檢測到有按鍵按下,那么可確定當前是有鍵按下,可進入獲取鍵值的操作。 獲取鍵值時,采用行列依次掃描的方法。首先使第一行掃描線輸出高電平,其它的行掃描線輸出低電平,然后讀取列掃描線的狀態(tài),得到列碼;如果本行無鍵按下,那么得到的列碼為全0,并掃描下一行;如本行有鍵按下,那么會讀取到對應的列碼值,并退出掃描,進行鍵值計算。當第一行掃描沒有檢測到按鍵時,那么掃描下一行,即使第

33、二行掃描線輸出高電平,其它行掃描線輸出低電平,其它與前面所述類似。 在行列掃描時,可以用一個變量記錄下當前掃描的行號,在計算鍵值時可以利用此行號以及列碼得知是哪一行、哪一列上的按鍵按下了。如:當 S5 按下時,應該檢測出第二行掃描時讀到有效的列碼 0001C4C1。4.2.3 鍵盤電路的設計鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵20個以上和專用驅動芯片的組合,當按下某個按鍵時,它能夠處理按鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預。通用計算機使用的標準鍵盤就是編碼鍵盤。在智能儀器中,使用并行接口芯片8279或串行接口芯片HD7279均可以組成編碼鍵盤,同時還可以

34、兼顧數碼管的顯示驅動,其相關的接口電路和接口軟件均可在芯片資料中得到。當系統(tǒng)功能比較復雜,按鍵數量很多時,采用編碼鍵盤可以簡化軟件設計。非編碼鍵盤本錢低廉。從本錢角度出發(fā),本設計選用的是非編碼鍵盤。如圖 圖4.2.3 6*6矩陣鍵盤電路 5 軟件設計 LCD1602的軟件規(guī)劃LCD1602顯示的程序主要包括以下功能模塊: 1、讀鍵程序、判鍵程序段等局部; 2、基于LCD液晶顯示屏的顯示模塊; 3、主模塊,為系統(tǒng)的初始化5.2 鍵盤掃描的程序設計 鍵盤掃描子程序,首先讀出P1的低四位,然后讀出P1口的高四位。然后鍵值并顯示緩存。然后將鍵如的值轉換為ASCII碼然后就可以軟件來設置硬件按鍵各個鍵代

35、表的內容。 讀鍵程序使用的是反轉法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進行兩次讀鍵。第一次所有行線均輸出低電平,從所有讀入鍵盤信息列信息;第二次所有列線均輸出低電平,從所有行線讀入鍵盤信息行信息。數字鍵按下那么將相應的數字送入緩存區(qū),功能鍵按下那么執(zhí)行相應的程序。 5.3 顯示模塊的程序設計顯示模塊程序首先要對顯示模塊進行初始化;然后控制光標的位置;定義液晶顯示的控制端口,用指令完成;然后設置清屏、關閉顯示、歸位、開顯示、顯示位置的首地址等等。顯示模塊的流程圖如圖5.3所示:開 始LCD初始化寫第一行代買是否寫完寫第二行代買停在這里顯示是否寫完N整個屏幕向右移NY6 系統(tǒng)仿真Proteus內容全面

36、包括其能實驗的內容包括軟件局部的匯編、C51 等語言的調試過程,也包括硬件接口電路中的大局部類型。對同一類功能的接口電路,可以采用不同的硬件來搭建完成,因此采用Proteus 仿真軟件進行實驗教學,克服了用單片機實驗教學板教學中硬件電路固定、學生不能更改、實驗內容固定等方面的局限性,可以擴展學生的思路和提高學生的學習興趣。6.1 仿真環(huán)境介紹Proteus是目前最好的模擬單片機外圍器件的工具,它可以仿真51系列、AVR,PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達,LED,AD/DA,局部SPI器件,局部IIC器件)14。當然,軟件仿真精度有限,而且不可能所有的器件都

37、找得到相應的仿真模型,用開發(fā)板和仿真器當然是最好選擇,可是對于單片機愛好者,或者簡單的開發(fā)應該是比較好的選擇。Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調試時,關心的不再是某些語句執(zhí)行時單片機存放器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應用間脫節(jié)的矛盾和現象。KeilC51是美國KeilC Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀

38、性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。KeilC5軟件提供豐富的庫函數和功能強大的集成開發(fā)調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能表達高級語言的優(yōu)勢。6.2 仿真過程與結果測試利用以上兩種軟件,就可以進行仿真了。這里以一個LCD1602字符顯示為例說明。6.2.1 繪制電路圖運行PROTEUS的ISIS程序后,進入該仿真軟件的主界面。在工作前,要設置VIEW菜單下的捕捉對齊和SYSTEAM下的顏色

39、、圖形界面大小等工程。通過工具欄中的P (從庫中選擇元件命令)命令,在PICK DEVICES窗口中選擇電路所需的元件,放置元件并調整其相對位置,元件參數設置,元器件間連線,將電路圖繪制完畢。6 HEX文件的生成利用KEIL51生成HEX文件。具體方法如下:(1) 翻開單片機軟件開發(fā)系統(tǒng)KEIL uVision,單擊“uVision菜單中的“PROJECT,在此下拉菜單中單擊“NEW PROJECT后。彈出“CREAT NEW PROJECT對話框。鍵入新建工程名稱。(2) 鍵入新建工程名并單擊“確定后,在彈出的“SELECT DEVICE對話框中選擇適宜的單片機型號,如80C51。(3) 單

40、擊“uVision菜單中的“FILE,在此下拉菜單中選擇“NEW后,翻開一個空的文本編輯口,在此窗口總鍵入程序,創(chuàng)立新的源程序“一個LCD1602字符顯示.C(如是匯編語言程序的話為“一個LCD1602字符顯示.ASM)文件。(4) 在左邊的“PROJECT窗口的“FILE頁中單擊文件組,再單擊鼠標右鍵后,在彈出的窗口中選中“ADD FILES TO GROUP “SOURCE GROUP1選項,將“一個LCD1602字符顯示.C程序導入到“SOURCE GROUP 1中。(5) 在“PROJECT下拉菜單中,選擇“OPTIONS FOR TARGET對話框,在此對話框中“OUTPUT選項卡中

41、的“CREAT HEX FILE選項。(6) 在“PROJECT下拉菜單中,選擇“REBUILD ALL TARGET FILES項。假設程序編譯成功,將生產“一個LCD1602字符顯示.HEX文件。6.2.3 調試與結果 在PROTEUS ISIS編輯窗口中,單擊鼠標右鍵選中單片機80C51并單擊鼠標左鍵,彈出“EDIT COMPONET對話框,在此對話框的“CLOCK FREQUENCY欄中設置單片機晶振頻率為12MHz,在“PROGRAM FILE欄中單擊瀏覽選中KEIL生成的HEX文件15。單擊運行,就可以看到仿真的結果了。本設計中顯示的是“welcome!的字樣,下列圖4.1為顯示“

42、welcome!字樣。4.3 小結采用PROTEUS進行單片機仿真,可以大大縮短單片機的開發(fā)周期。它不僅能仿真單片機CPU 的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。本系統(tǒng)仿真結果,滿足設計需求。實際操作靈活,使用方便。7 仿真結果和實物驗證系統(tǒng)仿真電路圖仿真結果圖實物驗證實物驗證7.2 6*6矩陣鍵盤顯示系統(tǒng)電路仿真結果9 總 結通過本次課程設計,我熟悉和掌握了IIC 的原理及其應用,能夠初步使用LCD1602 顯示字符等。本課題的程序設計是基于C語言的,C 語言具有方便,快速,高效。當然本設計也存在缺乏之處,由于LCD1602 只能顯示字符,而不能顯示漢字和圖

43、片,如果想要顯示漢字和圖片的話,需要用到12832 等的LCD 模塊,這是本設計的一大缺陷。另外,這次課題中的程序設計中,對時序要求很嚴格,尤其是IIC。通過本次課程設計,我有熟悉和掌握了單片機開發(fā)軟件Keil和仿真軟件Proteus。參考文獻: 1 樓然苗單片機課程設計指導M北京:北京航空航天大學出版社,2007 2 何立民單片機實驗與實踐教程M北京:北京航空航天大學出版社,2004致 謝在這次課程設計的撰寫過程中,我得到了許多人的幫助。首先我要感謝我的老師在課程設計上給予我的指導、提供給我的支持和幫助,這是我能順利完成這次報告的主要原因,更重要的是老師幫我解決了許多技術上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學到了許多新的知識,而且也開闊了視野,提高了自己的設計能力。其次,我要感謝幫助過我的同學,他們也為我解決了不少我不

溫馨提示

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

評論

0/150

提交評論