這是我之前做的單片機液晶顯示模塊的課程設計,附件里包含PROTEUS的仿真工程文件以及課設的文檔,文檔里也有程序源代碼,請大家多多指教
課程名稱:單片機課程設計
設計題目:單片機與液晶顯示模塊接口
一、設計的目的
液晶顯示控制器作為液晶驅動電路的核心部件通常由集成電路組成,通過為液晶顯示系統提供時序信號和顯示數據來實現液晶顯示。
二、設計的內容及要求
本設計主要是以AT89C51為控制設備,1602LCD為顯示設備,實現的一個可以顯示 靜態漢字的設備?萍歼M步給我們的生活帶來了很大的變化。液晶顯示設備越來越多,各種各樣的液晶顯示產品走進我們生活。液晶顯示器由于具有低壓,微功耗、顯示信息最大、體積小等特點,在移動通信終端、便攜計算機、CPS衛星定位系統等領域有廣泛用途,成為使用量最大的顯示器件。液晶顯示控制器作為液晶驅動電路的核心部件通常由集成電路組成,通過為液晶顯示系統提供時序信號和顯示數據來實現液晶顯示。
三、指導教師評語
摘要 如今,科技進步給我們的生活帶來了很大的變化。液晶顯示設備越來越多,各種各樣的液晶顯示產品走進我們生活。液晶顯示器由于具有低壓,微功耗、顯示信息最大、體積小等特點,在移動通信終端、便攜計算機、CPS衛星定位系統等領域有廣泛用途,成為使用量最大的顯示器件。液晶顯示控制器作為液晶驅動電路的核心部件通常由集成電路組成,通過為液晶顯示系統提供時序信號和顯示數據來實現液晶顯示。 同時,單片機具有控制功能強、集成度高、可靠性高、體積小、低電壓、低能耗等特點,并且具有優異的性能價格比。自20世紀70年代以來,受到人們的廣泛關注。幾十年間,單片機的發展迅猛,在控制領域獨占鰲頭。在我國,單片機已廣泛的應用在工業自動化控制、自動檢測、智能儀器儀表、家用電器、電力電子、機電一體化設備等各個方面,而51單片機是個單片機中最為典型和最具代表性的一種。 本設計主要是以AT89C51單片機為控制設備,1602LCD為顯示設備,實現的一個可以顯示靜態漢字液晶顯示沒計。
一. LCD液晶顯示模塊* 液晶顯示器(LCD)是一種功耗很低的顯示器,其以優越的性能,越來越受到各方面的重視。液晶顯示的應用領域越來越多,在電子表、計算器、數碼相機、計算機的顯示器和液晶電視上都可以看到它的身影。* 液晶顯示模塊是一種集成度比較高的顯示組件,其英文名稱為“LCD Module”,可以簡稱為LCM。液晶顯示模塊將液晶顯示器件、控制器、PCB電路板、背光源和外部連接端口等組裝在一起,可以方便地用于需要液晶顯示的場合。在現代的電子設計中,液晶顯示模塊的應用也越來越多。1.1 LCD液晶顯示概述* LCD液晶顯示是依靠液晶顯示器來進行數據或者圖形顯示的。LCD液晶顯示彌補了LED顯示效果不夠美觀、不能顯示圖形和漢字等缺點,因此液晶顯示技術得到了越來越廣泛的應用。下面介紹液晶顯示方面的應用技術。1.1.1 液晶的來源* 液晶,顧名思義,就是固液態之間的一種中間類狀態。一般情況下,最常見的物質有三種形態:固態、液態和氣態。液晶是另外一種特殊的物質形態,由澳大利亞植物學者萊尼茨爾(Reinitzer)在1888年發現。此后,經過廣泛的研究,液晶于二十世紀五十年代開始大規模使用。* 液晶的成分是一種有機化合物,在一定的溫度范圍內,它既具有液體的流動性、粘度、形變等性質,又具有晶體的熱(熱效應)、光(光學各向異性)、電(電光效應)、磁(磁光效應)等物理性質。光線穿透液晶的路徑由其分子排列所決定。人們通過研究發現,給液晶充電會改變它的分子排列,進而造成光線的扭曲或折射。液晶顯示便是根據此原理來制成的。1.1.2 LCD液晶顯示器結構及原理* LCD液晶顯示器本身不發光,其通過調節光的亮度來達到顯示效果,這是一種被動顯示器。LCD主要利用液晶的扭曲-向列效應制成,這是一種電場效應。這里首先介紹LCD液晶顯示器的結構和原理,以及它的技術和工藝特點。這樣才能在選購時有的放矢,更加科學合理地使用和維護。* 液晶是一種有機復合物,由長棒狀的分子構成。在自然狀態下,這些棒狀分子的長軸大致平行。LCD大致有如下兩個結構和功能上的特點。1.2 液晶顯示模塊的種類* 液晶顯示模塊是以LCD液晶屏為核心,配合一定的控制電路,以達到方便使用顯示組件的目的。根據LCD液晶屏可顯示內容的不同,液晶顯示模塊可以分為如下3種:* 1.數顯液晶模塊* 2.點陣字符液晶模塊* 3.點陣圖形液晶模塊1.3 液晶顯示模塊的優點* 液晶顯示最主要的優勢是可以顯示多行的漢字以及圖形。除了這一點外,使用液晶顯示模塊作為顯示設備還具有其他很多優勢,主要表現在如下幾個方面:* 體積小、重量輕。液晶顯示模塊通過顯示屏上的電極控制液晶分子狀態來達到顯示目的,在重量上比相同顯示面積的傳統顯示器件要輕得多。* 功率消耗小。液晶顯示模塊的功耗主要消耗在其內部的電極和驅動芯片上。因而,對于相同的顯示面積,液晶顯示模塊的耗電量比其他顯示器件要小得多。* 顯示質量高。由于液晶顯示模塊每一個點在收到信號后就一直保持那種色彩和亮度,恒定發光,不像有些顯示設備需要不斷刷新亮點。因此,液晶顯示模塊話質高而不會閃爍,把眼睛疲勞降到了最低。* 無電磁輻射。液晶顯示模塊的先天特點決定了其沒有電磁輻射,這個優點使得液晶電視和計算機的顯示器都得到廣泛推廣。* 簡單方便的數字式接口。液晶顯示模塊都是數字式的,和單片機的接口十分簡單,操縱也十分方便。* 應用范圍廣。液晶顯示模塊特別是點陣圖形液晶模塊,可以顯示數字、字符、漢字和圖形等,可適用于各種場合。二 液晶顯示模塊控制接口* 液晶顯示模塊(LCM)一般都內置LCD驅動器,其采用控制指令集來進行顯示控制。這類LCM和單片機的接口比較簡單,控制比較容易,因此得到了廣泛的應用。一般來說,掌握一種液晶顯示模塊,便可以熟悉采用同類型驅動器的其他液晶顯示模塊的使用。這里重點介紹點陣圖形液晶模塊的使用,其可以顯示數字、字符、漢字和圖形等,功能比較全面。2.1 LCD控制驅動器ST7920概述* LCD控制驅動器主要用于控制液晶的顯示,市場上常見的有ST7920、KS0066U、HD44780等。這里介紹廣泛使用的ST7920液晶控制驅動器。* ST7920是臺灣矽創電子公司生產的中文圖形控制芯片,它是一種功能極強的液晶控制模塊,主要包括如下幾方面的功能:* 芯片內置128×64-12漢字圖形點陣的液晶顯示控制模塊,用于顯示漢字及圖形。* 芯片內置8192個中文漢字(16×16點陣)。* 128個字符的ASCII字符庫(8×16點陣)。* 64×256點陣顯示RAM(GDRAM)。* 芯片內部設計有2MB的中文字型CGROM和64×256點陣的GDRAM繪圖區域,便于簡單、有效地顯示漢字和圖形。* 芯片提供有4組可編程控制的16×16點陣造字空間。* ST7920由32個普通驅動器(common)及64個段驅動器segment組成。* 芯片提供了4位并行、8位并行、2線串行以及3線串行等多種接口方式,可以適應多種微處理器和單片機接口的需要。2.3 ST7920功能說明* ST7920包含有兩個型號,ST7920-BIG5內建BIG-5碼繁體中文字型庫,ST7920-GB內建GB簡體中文字型庫。這里以內建簡體中文字型庫的ST7920-GB為例,介紹其功能以及如何實現顯示字符、漢字和圖形等操作。* 1.基本操作功能* 2.忙標志(BF)* 3.地址計數器(AC)* 4.中文字型ROM(CGROM)及半寬字型ROM(HCGROM)* 5.自定義字型RAM(CGRAM)* 6.圖標RAM(IRAM)* 7.顯示數據RAM(DDRAM)* 8.繪圖顯示RAM(GDRAM)* 9.LCD驅動電路* 10.游標/閃爍控制電路2.4 ST7920基本指令集* ST7920提供了11條基本指令,當RE=0時為基本指令集模式,分別介紹如下。* 1.清除顯示指令* 2.地址復位指令* 3.進入設定點指令* 4.顯示狀態開關指令* 5.游標或顯示移位控制指令* 6.功能設定指令* 7.設定CGRAM地址指令* 8.設定DDRAM地址指令* 9.讀取忙標志(BF)和地址指令* 10.寫數據到RAM指令* 11.讀取RAM的值指令2.5 ST7920擴充指令集* ST7920擴充指令集提供了更高級的液晶顯示控制。當RE=1時,為擴充指令集模式,ST7920提供了7種擴充指令,分別介紹如下所述。* 1.待命模式指令* 2.卷動地址或RAM地址選擇指令* 3.反白選擇指令* 4.睡眠模式指令* 5.擴充功能設定指令* 6.設定IRAM地址或卷動地址指令* 7.設定繪圖RAM地址指令2.6 ST7920的操作方式* 液晶控制驅動器ST7920提供了并行和串行兩類指令操作方式。其中,并行操作方式又可以分為8位并行操作方式和4位并行操作方式兩種。下面分別進行介紹。* 1.并行操作方式* 2.串行操作方式2.7 圖形點陣式液晶顯示模塊* 市場上,圖形點陣式液晶顯示模塊有很多種。這里采用的液晶顯示模塊為北京寧和電子有限公司生產的NH12864M型LCM,如圖所示。2.8 圖形點陣式液晶讀寫子函數* 前面介紹了圖形點陣式液晶控制器的指令集、操作方式以及典型的液晶顯示模塊的引腳接口。這里按照8位并行接口操作方式來給出圖形點陣式液晶顯示模塊的操作子函數,以方便讀者調用。* 這里假定E為液晶顯示模塊的讀寫使能信號,R_W為液晶顯示模塊的讀寫選擇信號,RS為液晶顯示模塊的數據/指令信號,D_I為液晶顯示模塊的數據指令選擇信號。P1端口作為數據指令輸入端口。這些符號分別對應液晶顯示模塊的控制引腳,其將在下面的子函數中使用。* 1.寫指令子函數* 2.寫數據子函數* 3.初始化子函數* 4.基本指令集清屏子函數* 5.寫漢字子函數* 6.擴充指令集畫圖子函數* 7.擴充指令集清屏子函數2.9 漢字及圖形顯示實例* 液晶顯示模塊在現代的電子設計中的應用越來越廣泛,特別是圖形點陣式液晶顯示模塊,其不僅可以顯示數字和字符,也可以用來顯示中文和圖形。* 這里采用NH12864M來介紹,如何使用液晶顯示模塊LCM來顯示漢字、圖形以及在任意位置顯示圖形。程序中使用了前面介紹的圖形點陣式液晶讀寫子函數。三.系統總體設計3.1 LCD1602工作原理通過AT89C52單片機控制LCD1602顯示字符串,LCD1602的實物圖(見圖1)和引腳功能(見圖2)如下: 圖1 LCD1602實物圖 圖2 LCD1602引腳圖 3.1.1 引腳功能說明:1602LCD 采用標準的 14腳(無背光)或 16腳(帶背光)接口,各引腳接口說明如表2所示: 表1 LCD1602引腳接口說明 3.1.2 LCD寄存器的選擇表2 LCD寄存器功能說明 3.1.3 LCD指令表表3 LCD指令表 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I/D=1:地址遞增,I/D=0:地址遞減 S=1:開啟顯示屏,S=0:關閉顯示屏 | | | | | | | | | | | | D=1:開啟顯示幕 C=1:開啟光標 B=1:光標所在位置的字符閃爍 | | | | | | | | | | | | S/C=0、R/L=0:光標左移;S/C=0、R/L=1:光標右移 S/C=1、R/L=0:字符和光標左移;S/C=1、R/L=1:字符和光標右移 | | | | | | | | | | | | DL=1:數據長度為8位,DL=0:數據長度為4位 N=1:雙列字,N=0:單列字;F=1:5x10字形,F=0:5x7字形 | | | | | | | | | | | | | | | | | | | 讀取地址計數器,并查詢LCM是否忙碌,BF表示LCM忙碌 | | | | | | | | | | | 3.1.3 LCD1602內部顯示地址圖3 LCD1602內部顯示地址 3.2 單片機簡介單片機工作原理單片機由運算器、控制器、存儲器、輸入輸出設備構成。 單片機自動完成賦予它的任務的過程,也就是單片機執行程序的過程,即一條條執行的指令的過程,所謂指令就是把要求單片機執行的各種操作用的命令。 圖4 89C52實物圖 圖5 89C52引腳圖 這里采用Atmel公司的AT89C51單片機作為控制器,同樣也可以采用其他兼容的51系列單片機,例如AT89S51、8051、AT89C51等。整個電路的電路圖,如圖所示。
3.3 程序設計 本程序是有主程序、初始化子程序、寫指令程序、判斷LCM是否忙碌子程序和寫數據子程序組成。 *      仿真結果圖:

四 心得體會 經過這段時間的努力,反復的調試與修改,最終完成了本次課設。在此期間,我學到了很多新的東西,讓我豐富了自己,經過這段時間的鍛煉,發現了自己的不足,并開始有意識的去找尋未知,更積極的去探尋自己不足的東西,使我更渴望了對新事物的研究與學習。通過查看相關的資料和書籍,反復對比與摘取,把最精髓的部分挑出來用在實驗中,讓此程序更加接近課設的要求。每一次否定自己先前的選擇都是一種進步,我會告訴自己總會有合適的方法達到同樣的效果。不滿足的心態也是我此次實驗的一大筆收獲。雖然過程很艱難,程序的調試也是十分的枯燥,但當實驗的結果出來時,我也是十分的開心,覺得再多的付出都是值得的。 雖然此次編寫的程序不是很完美,但我相信,通過經后的磨煉,自己會做的更好。這次的課設也讓我收獲頗豐,讓我明白到,無論做什么事情,都要用心去做,盡自己最大的努力去完成,切不可有一絲馬虎。
0.png (9.67 KB, 下載次數: 56)
下載附件
2018-11-6 16:21 上傳
單片機源碼:
- RS bit P3.5
- RW bit P3.6
- E bit P3.7
- LCD EQU P1
- MAIN:
- MOV LCD,#00000001B
- ACALL WR_COMM
- ACALL INIT_LCD
- MOV LCD,#82H
- ACALL WR_COMM
- MOV LCD,#'G'
- ACALL WR_DATA
- MOV LCD,#'O'
- ACALL WR_DATA
- MOV LCD,#'O'
- ACALL WR_DATA
- MOV LCD,#'D'
- ACALL WR_DATA
- MOV LCD,#'L'
- ACALL WR_DATA
- MOV LCD,#'U'
- ACALL WR_DATA
- MOV LCD,#'C'
- ACALL WR_DATA
- MOV LCD,#'K'
- ACALL WR_DATA
- JMP $
- INIT_LCD:
- MOV LCD,#00111000B
- ACALL WR_COMM
- MOV LCD,#00001111B
- ACALL WR_COMM
- MOV LCD,#00000110B
- ACALL WR_COMM
- RET
- WR_COMM:
- CLR RS
- CLR RW
- CLR E
- ACALL CHECK_BF
- SETB E
- RET
- CHECK_BF:
- MOV LCD,#0FFH
- CLR RS
- SETB RW
- CLR E
- NOP
- SETB E
- JB LCD.7,CHECK_BF
- RET
- WR_DATA:
- SETB RS
- CLR RW
- CLR E
- ACALL CHECK_BF
- SETB E
- RET
- END
復制代碼
0.png (38.5 KB, 下載次數: 60)
下載附件
2018-11-6 16:18 上傳
所有資料51hei提供下載(仿真+報告):
液晶顯示模塊.rar
(1.34 MB, 下載次數: 50)
2018-11-6 10:20 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|