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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

7、設(shè)計(jì)的流程以及設(shè)計(jì)思路。2.2課題分析本實(shí)驗(yàn)儀采用的液晶顯示屏內(nèi)置控制器為sed1520,點(diǎn)陣為122x32,需要兩片sed1520組成,由e1、e2分別選通,以控制顯示屏左右兩邊的屏。圖形液晶顯示模塊有兩種連接方式。一種為直接訪問方式,一種為間接控制方式。本實(shí)驗(yàn)儀采用直接訪問方式。直接控制方式就是將液晶顯示模塊的接口作為存儲(chǔ)器或i/o設(shè)備直接掛在計(jì)算機(jī)總線上。計(jì)算機(jī)通過地址譯碼控制e1、e2選通;讀/寫操作信號r/w由地址線a1控制;數(shù)據(jù)/命令存儲(chǔ)器選擇信號a0由地址線a0控制。實(shí)驗(yàn)電路圖如下圖所示。地址映射如下(地址中的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ù)間接控制方式是計(jì)算機(jī)通過自身的或系統(tǒng)的并行接口與液晶顯示模塊連接,如8031的p1口和p3口,8255的并行接口芯片。計(jì)算機(jī)通過對該并行接口輸出狀態(tài)的編程操作,完成對液晶顯示模塊所需時(shí)序的操作和數(shù)據(jù)的傳輸。這種間接控制方式的電路簡單,控制時(shí)序通過編程來實(shí)現(xiàn)。第三章 實(shí)現(xiàn)原理3.1 點(diǎn)陣lcd的顯示原理 在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對lcd控制器進(jìn)行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))

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

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

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

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

13、支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年又增加了cortex和dsp系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持iar、keil和mplab等多種編譯器。 運(yùn)行界面如下圖: 通過此軟件畫出硬件電路的連線圖如下:4.2程序流程圖 第五章 主要的源程序及注釋實(shí)驗(yàn)程序如下:#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ù)進(jìn)地址(e2)xdata unsigned char cradd2 _at_ 0x8006; / 讀狀態(tài)字地址(e2)xdata unsigned char dradd2 _at_ 0x8007; / 讀顯示數(shù)據(jù)地址(e2)/英文字模庫 8x8 點(diǎn)陣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點(diǎn)陣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,/*學(xué),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); / 頁地址設(shè)置 writecommande1(); writecommande2(); command = 0x00; / 列地址設(shè)置為0 writecomma

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論