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

下載本文檔

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

文檔簡介

1、燕山大學課 程 設 計 說 明 書題目: 液晶顯示控制實驗 學院(系): 電氣工程學院 年級專業(yè): 09自動化儀表3班 學 號: 090103020199 學生姓名: 苑 海 川 指導教師: 張 淑 清 教師職稱: 教 授 燕山大學課程設計(論文)任務書院(系):電氣工程學院 基層教學單位:自動化儀表系學 號090103020199學生姓名苑海川專業(yè)(班級)09儀表3班設計題目 液晶顯示控制實驗設計技術(shù)參數(shù)1. 獨立完成設計任務。2. 編程,上機調(diào)試。3. 連接硬件試驗線路,實現(xiàn)所要求的功能。4. 完成設計,提交課程設計報告。 設計要求1. 利用實驗上的液晶顯示屏電路,編寫程序控制顯示,輸出漢

2、字。2. 了解液晶顯示屏的控制原理及方法。3. 了解點陣漢子的顯示原理。工作計劃軟件編程與硬件調(diào)試相結(jié)合,繪制設計流程圖,并編程進行硬件實現(xiàn)。參考資料1. 單片機原理及應用技術(shù)張淑清,國防工業(yè)出版社(教材)2. 過程控制系統(tǒng)及儀表 邵裕森 編(教材)3. 單片機及應用 李大友 高等教育出版社 (教材)4. 機械量測量機械工業(yè)出版社(教材)周次一周應完成任務繪制硬件電路,軟件流程圖。熟悉偉福單片機編程環(huán)境,讀程序,修改軟件參數(shù),修改硬件地址,硬件調(diào)試,撰寫課程設計報告。指導教師簽字張淑清基層教學單位主任簽字謝平說明:此表一式四份,學生、指導教師、基層教學單位、系部各一份。2012年06 月 29

3、 日 目錄目錄3摘要4第一章 緒論51.1 硬件環(huán)境分析51.2 實驗箱簡介5第二章 課程設計目的及課題分析62.1 課程設計目的62.2課題分析6第三章 實現(xiàn)原理83.1 點陣lcd的顯示原理83.2 取模93.3功能擴展部分11第四章 proteus硬件仿真124.1 硬件模擬軟件介紹124.2程序流程圖14第五章 主要的源程序及注釋15第六章 程序調(diào)試及結(jié)果分析246.1調(diào)試過程246.2在程序設計和調(diào)試過程中,遇到和解決的幾個問題:246.3結(jié)論24心得體會25參考文獻26摘要本文詳細介紹了基于單片機和lab2000實驗箱的液晶顯示實驗,并利用偉福仿真軟件實現(xiàn)了程序的編譯和連接,還利用

4、proteus仿真軟件對硬件電路進行了繪制和仿真。本文系統(tǒng)的從總體設計思路、漢字取模的原理、液晶顯示的原理、電路繪制和仿真和最好的上箱實驗幾個方面介紹了本次液晶顯示實驗?;菊莆樟穗娐贩抡婧屠L制的仿真程序,了解了一些簡單的硬件知識,對課本所學的理論知識有了更加深入的了解,對以后的學習也更有針對性。關鍵字:偉福仿真,lab2000,proteus仿真軟件。 第一章 緒論1.1 硬件環(huán)境分析本設計是設計一個單片機控制的點陣液晶顯示屏上顯示“南京偉?!弊謽拥脑O計近年來隨著科學技術(shù)的飛速發(fā)展,單片機的應用正在不斷的走向深入,同時帶動著傳統(tǒng)的控制檢測日新月異更新。本實驗采用芯片,系統(tǒng)設計所需硬件都已集成

5、于lab6000實驗箱上。軟件使用wave6000,并用 80c51匯編語言進行編程;該系統(tǒng)可以完成漢字字模的顯示。當顯示一次字模后led指示燈閃亮一次提示顯示完成。漢字字模是各類電子裝置顯示漢字的依據(jù), 在工程應用中漢字字模都是從計算機的各種字庫文件中獲取, 本文從應用的角度使用字模代碼。1.2 實驗箱簡介 本次設計使用了lab6000實驗箱進行仿真,lab6000系列邏輯分析儀是一款緊湊、快速調(diào)試數(shù)字電路設計強有力的便攜式邏輯分析儀;高速的usb2.0接口、高端的fpga、強大的arm處理器等組成的嵌入式系統(tǒng)全方位智能控制;高速、高效、高性能,幫你輕松搞定問題。lab6000系列邏輯分析儀

6、實現(xiàn)了業(yè)界領先的高帶寬、大容量的高速采集技術(shù),采樣率從200m到500m不等,32通道每通道容量最高達16m;功能靈活強大,集邏輯分析儀、總線分析儀、協(xié)議分析儀、頻率計、邏輯筆等多種測量開發(fā)儀器之大成于一身,適用于各種數(shù)字電路的開發(fā)、測量、分析和調(diào)試工作,還為方便某些特殊的用戶提供定制插件服務,是電子研發(fā)、電子測量工程師、高校師生的科研開發(fā)和教學的得力助手。第二章 課程設計目的及課題分析2.1 課程設計目的1.熟練掌握c51系統(tǒng)仿真開發(fā)系統(tǒng)的應用。2加強單片機的綜合運用能力、提高單片機的軟件編程和調(diào)試能力,為以后的學習和開發(fā)工作打下良好基礎。3掌握的液晶的工作原理以及應用設計。4掌握小系統(tǒng)開發(fā)

7、設計的流程以及設計思路。2.2課題分析本實驗儀采用的液晶顯示屏內(nèi)置控制器為sed1520,點陣為122x32,需要兩片sed1520組成,由e1、e2分別選通,以控制顯示屏左右兩邊的屏。圖形液晶顯示模塊有兩種連接方式。一種為直接訪問方式,一種為間接控制方式。本實驗儀采用直接訪問方式。直接控制方式就是將液晶顯示模塊的接口作為存儲器或i/o設備直接掛在計算機總線上。計算機通過地址譯碼控制e1、e2選通;讀/寫操作信號r/w由地址線a1控制;數(shù)據(jù)/命令存儲器選擇信號a0由地址線a0控制。實驗電路圖如下圖所示。地址映射如下(地址中的x由lcd cs決定,可參見地址譯碼部分說明)0x00h0x01h0x

8、02h0x03h0x04h0x05h0x06h0x07h寫e1 指令寫e1數(shù)據(jù)讀e1狀態(tài)讀e1數(shù)據(jù)寫e2指令寫e2數(shù)據(jù)讀e2狀態(tài)讀e2數(shù)據(jù)間接控制方式是計算機通過自身的或系統(tǒng)的并行接口與液晶顯示模塊連接,如8031的p1口和p3口,8255的并行接口芯片。計算機通過對該并行接口輸出狀態(tài)的編程操作,完成對液晶顯示模塊所需時序的操作和數(shù)據(jù)的傳輸。這種間接控制方式的電路簡單,控制時序通過編程來實現(xiàn)。第三章 實現(xiàn)原理3.1 點陣lcd的顯示原理 在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對lcd控制器進行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))

9、即可。而對于中文,常用卻有6000以上,于是我們的dos前輩想了一個辦法,001110000x38010001000x44010001000x44010001000x44010001000x44010001000x44001110000x38000000000x00就是將ascii表的高128個很少用到的數(shù)值以兩個為一組來表示漢字,即漢字的內(nèi)碼。而剩下的低128位則留給英文字符使用,即英文的內(nèi)碼。 字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀,如數(shù)字的0在字模的記載方式如圖1所示:圖1 “0”字模圖 而中文的“你”在字模中的記載卻如圖

10、2所示:圖2 “你” 字模如果顯示漢字的電子裝置能夠隨時從pc 機獲得顯示點陣( 如通過串口通訊或通過局域網(wǎng)通訊) , 則應使用windows 下的truetype 字庫。truetype 實際上就是一種高級的曲線輪廓字庫, 如果直接研究其結(jié)構(gòu)自己編寫數(shù)顯示是非常困難的, 實際應用中都是使用windows 提供的函數(shù)實現(xiàn)。筆者下面介紹使用windows api 函數(shù)獲取字模的方法。讀點取字模的思路是, 在屏幕上顯示漢字, 然后逐點讀取顯示區(qū)域內(nèi)每個點顏色, 生成點陣字模。 3.2 取模在編寫軟件代碼之前必須要先掌握漢字取模的方法。要得到上表中的文字,我們可以借助取模軟件來完成。目前點陣lcd的

11、取模軟件有很多,我們以本開發(fā)板配套的取模軟件為例來介紹一下漢字的取模方法。打開取模軟件出現(xiàn)如下顯示界面:在文字輸入?yún)^(qū)中輸入文字,我們以輸入一個歡迎的“歡”字為例,了解其取模過程。在文字輸入?yún)^(qū)中輸入“歡”后按ctrl+enter組合鍵后就看到“歡”字已經(jīng)在模擬顯示區(qū)顯示出來了 在“取模方式”中選擇“c51格式”就可以在“點陣生成區(qū)”得到你要的漢字“歡”的顯示代碼。經(jīng)過以上步驟后一個漢字就取模成功了,在程序中只要調(diào)用這段代碼就可顯示出漢字“歡”了,其它漢字也用同樣的方法。3.3功能擴展部分 源程序是靜態(tài)顯示四個漢字“南京偉?!蓖ㄟ^每個字的掃描,變成動態(tài)顯示,并且顯示“燕山大學”四個字。第四章 pr

12、oteus硬件仿真4.1 硬件模擬軟件介紹 proteus是英國labcenter electronics公司出版的eda工具軟件。它不僅具有其它eda工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。proteus是世界上著名的eda工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到pcb設計,真正實現(xiàn)了從概念到產(chǎn)品的完整設計。是目前世界上唯一將電路仿真軟件、pcb設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型

13、支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年又增加了cortex和dsp系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持iar、keil和mplab等多種編譯器。 運行界面如下圖: 通過此軟件畫出硬件電路的連線圖如下:4.2程序流程圖 第五章 主要的源程序及注釋實驗程序如下:#include #define pd1 61 / 122/2 分成左右兩半屏(122x32)sbit led = p10;unsigned char column;unsigned char page_ ; / 頁地址

14、寄存器 d1,do:頁地址unsigned char code_ ; / 字符代碼寄存器unsigned char command; / 指令寄存器unsigned char lcddata; / 數(shù)據(jù)寄存器xdata unsigned char cwadd1 _at_ 0x8000; / 寫指令代碼地址(e1)xdata unsigned char dwadd1 _at_ 0x8001; / 寫顯示數(shù)據(jù)地址(e1)xdata unsigned char cradd1 _at_ 0x8002; / 讀狀態(tài)字地址(e1)xdata unsigned char dradd1 _at_ 0x8003

15、; / 讀顯示數(shù)據(jù)地址(e1)xdata unsigned char cwadd2 _at_ 0x8004; / 寫指令代碼地址(e2)xdata unsigned char dwadd2 _at_ 0x8005; / 寫顯示數(shù)進地址(e2)xdata unsigned char cradd2 _at_ 0x8006; / 讀狀態(tài)字地址(e2)xdata unsigned char dradd2 _at_ 0x8007; / 讀顯示數(shù)據(jù)地址(e2)/英文字模庫 8x8 點陣code unsigned char eetab8= 0x38,0x44,0x44,0x44,0x44,0x44,0x38

16、,0x00, / 0 0x10,0x30,0x50,0x10,0x10,0x10,0x7c,0x00, / 1 0x38,0x44,0x04,0x08,0x10,0x20,0x7c,0x00, / 2 0x78,0x84,0x04,0x38,0x04,0x84,0x78,0x00; / 3/ 中文字模庫 16x16點陣code unsigned char cctab32 = 0x44,0x42,0x44,0x62,0x44,0x39,0xf4,0x03, 0x04,0x08,0xdf,0x33,0x54,0x62,0x54,0x02, 0x54,0x0a,0xdf,0x33,0x04,0x60

17、,0xe4,0x01, 0x44,0x0a,0x64,0x32,0x44,0x63,0x00,0x00,/*燕,0*/ 0x00,0x00,0x00,0x20,0xe0,0x7f,0x00,0x20, 0x00,0x20,0x00,0x20,0x00,0x20,0xff,0x3f, 0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20, 0x00,0x20,0xe0,0x7f,0x00,0x00,0x00,0x00,/*山,1*/ 0x20,0x00,0x20,0x80,0x20,0x40,0x20,0x20, 0x20,0x10,0x20,0x0c,0xa0,0x0

18、3,0x7f,0x00, 0xa0,0x01,0x20,0x06,0x20,0x08,0x20,0x30, 0x20,0x60,0x20,0xc0,0x20,0x40,0x00,0x00,/*大,2*/ 0x40,0x00,0x30,0x02,0x10,0x02,0x12,0x02, 0 x5c,0x02,0x54,0x02,0x50,0x42,0x51,0x82, 0x5e,0x7f,0xd4,0x02,0x50,0x02,0x18,0x02, 0x57,0x02,0x32,0x02,0x10,0x02,0x00,0x00,/*學,3*/;/ 1.寫指令代碼子程序(e1)void write

19、commande1() while(cradd1 & 0x80); cwadd1 = command;/ 2.寫顯示數(shù)據(jù)子程序(e1)void writedatae1() while(cradd1 & 0x80); dwadd1 = lcddata;/ 3.讀顯示數(shù)據(jù)子程序(e1)void readdatae1() while(cradd1 & 0x80); lcddata = dradd1;/ 4.寫指令代碼子程序(e2)void writecommande2() while(cradd2 & 0x80); cwadd2 = command;/ 5.寫顯示數(shù)據(jù)子程序(e2)void writ

20、edatae2() while(cradd2 & 0x80); dwadd2 = lcddata;/ 6.讀顯示數(shù)據(jù)子程序(e2)void readdatae2() while(cradd2 & 0x80); lcddata = dradd2;/ 初始化程序void init() command = 0xe2; writecommande1(); writecommande2(); command = 0xa4; writecommande1(); writecommande2(); command = 0xa9; writecommande1(); writecommande2(); com

21、mand = 0xa0; writecommande1(); writecommande2(); command = 0xc0; writecommande1(); writecommande2(); command = 0xaf; writecommande1(); writecommande2();/ 清屏void clear() unsigned char i,j; i = 0; do command = (i + 0xb8); / 頁地址設置 writecommande1(); writecommande2(); command = 0x00; / 列地址設置為0 writecomma

22、nde1(); writecommande2(); j = 0x50; / 一頁清 80個字節(jié) do lcddata = 0x00; / 顯示數(shù)據(jù)為0 writedatae1(); writedatae2(); while(-j !=0); / 頁內(nèi)字節(jié)清零循環(huán) while(+i !=4); / 頁地址暫存器加一 / 顯示區(qū)清零循環(huán)void delay(int n) int i,j; for(i=0;in;i+)for(j=0;j50;j+);/ 延時程序void delay() unsigned char i,j; i = 20; j = 0; do do while(-j !=0); wh

23、ile( -i != 0 );/ 中文顯示子程序void writechn16x16() unsigned char i,j,k; i = 0; j = 0; while(j2) command = (page_ + j) & 0x03) | 0xb8; / 設置頁地址 writecommande1(); writecommande2(); k = column; / 列地址值 while(k column + 16) if (k = pd1 * 2) break; / 列地址是否超出顯示范圍 ; j+; ;/ 中文顯示程序void main() unsigned char flag=0x00

24、,i; init(); clear(); page_ = 0x02; column = 0x00; code_ = 0x00; writechn16x16(); page_ = 0x02; column = 0x10; code_ = 0x01; writechn16x16(); page_ = 0x02; column = 0x20; code_ = 0x02; writechn16x16(); page_ = 0x02; column = 0x30; code_ = 0x03; writechn16x16(); while(1); 第六章 程序調(diào)試及結(jié)果分析6.1調(diào)試過程檢查硬件線路的連接

25、,將修改后的程序加載到開發(fā)工具中,調(diào)試程序編譯程序,并下載到單片機中運行,液晶屏中將顯示“南京偉?!币恍凶忠来物@示,然后指示燈閃亮一次指示顯示完成。6.2在程序設計和調(diào)試過程中,遇到和解決的幾個問題:1.在取模插入程序后,常出現(xiàn)亂碼,而并非是我想要的字樣。最后通過設計點陣大小,然后在取模工具中取模解決亂碼的問題。2在顯示時不能正確顯示所要顯示的內(nèi)容,最后通過調(diào)整實驗程序而達到預想效果。6.3結(jié)論整個程序?qū)崿F(xiàn)了基本顯示功能,但是還有一些方面做得不夠好或者有待改進:程序結(jié)構(gòu)不清晰,有部分過于繁瑣,是對程序語言還不夠了解所造成。適當選擇函數(shù)可以更好的讓程序達到理想的效果。心得體會通過一周的課程設計,讓我感受最深的就是學習是一種樂趣。

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論