基于單片機的液晶顯示設計畢業(yè)設計.doc_第1頁
基于單片機的液晶顯示設計畢業(yè)設計.doc_第2頁
基于單片機的液晶顯示設計畢業(yè)設計.doc_第3頁
基于單片機的液晶顯示設計畢業(yè)設計.doc_第4頁
基于單片機的液晶顯示設計畢業(yè)設計.doc_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

蘇州經(jīng)貿(mào)職業(yè)技術學院蘇州經(jīng)貿(mào)職業(yè)技術學院畢業(yè)設計(論文)材料 畢業(yè)設計(論文)課題:12864液晶顯示的設計畢業(yè)設計(論文)原創(chuàng)性聲明和使用授權說明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設計(論文),是我個人在指導教師的指導下進行的研究工作及取得的成果。盡我所知,除文中特別加以標注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得 及其它教育機構的學位或?qū)W歷而使用過的材料。對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了謝意。作 者 簽 名: 日 期: 指導教師簽名: 日期: 使用授權說明本人完全了解 大學關于收集、保存、使用畢業(yè)設計(論文)的規(guī)定,即:按照學校要求提交畢業(yè)設計(論文)的印刷本和電子版本;學校有權保存畢業(yè)設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;學校可以采用影印、縮印、數(shù)字化或其它復制手段保存論文;在不以贏利為目的前提下,學??梢怨颊撐牡牟糠只蛉績?nèi)容。作者簽名: 日 期: 目 錄摘 要3前 言4第一章 緒 論11.1 單片機選型11.2 LCD方案論證11.3 LCD顯示原理11.4 設計要求1第二章 硬件電路設計22.1. 硬件系統(tǒng)結構圖22.2 AT89S52單片機最小系統(tǒng)設計22.2.1 AT89S52單片機22.2.2 電源電路設計32.2.3 時鐘電路設計32.2.4 復位電路設計42.3 AMPIRE128*64LCD簡介42.3.1主要參數(shù)42.3.2 主要指令代碼52.3.3 寫操作時序52.3.4 讀操作時序52.4 LCD與單片機接口62.5 電路設計圖6第三章 系統(tǒng)軟件設計63.1 總體流程圖63.2 12864LCD程序73.3 程序清單及注釋10第四章 仿真調(diào)試和結果分析104.1 仿真步驟104.2 仿真結果及分析12第五章 取模軟件的使用方法145.1 PCtoLCD2002取模軟件的使用方法145.2 畔畔字模提取軟件的使用方法17總 結18致 謝19參 考 文 獻20附錄A 程序清單與解釋21附錄B 電路設計圖63摘 要本文設計主要介紹了以AT89S52單片機為控制設備,AMPIRE128*64液晶顯示器為顯示設備,實現(xiàn)的一個可以顯示靜態(tài)漢字、動態(tài)漢字、字符、圖片以及由多個圖片形成的簡單動畫的液晶顯示設計。通過設置PCtoLCD2002取模軟件和畔畔字模提取軟件的相關參數(shù)值,再根據(jù)AMPIRE128*64LCD的指令表及程序設計等提取所要用的漢字、字符、圖片程序送往液晶顯示器顯示,并可做一些靈活的動態(tài)顯示變換,提升顯示效果。本文在KEIL軟件下,采用的是C語言進行軟件設計,C語言使用助記符、符號、和數(shù)字等來表示指令的程序語言,容易理解和記憶且通用性強,設計方便。利用Proteus軟件進行仿真和驗證系統(tǒng)的正確性。 關鍵詞:單片機、AMPIRE128*64LCD顯示、Proteus 前 言畢業(yè)設計,要求學生更多的完成軟硬件結合的動手實踐方案,解決目前學生課程設計過程中普遍存在的缺乏動手能力的現(xiàn)象。而單片機設計的目的與任務是訓練學生綜合運用已學課程“單片機工程項目應用技術”的基本知識,獨立進行單片機應用技術和開發(fā)工作,掌握單片機程序設計和應用電路設計、分析及調(diào)試檢測。在單片機應用系統(tǒng)中,良好的人機界面是不可缺少的重要組成部分,用戶可通過人機界面獲取系統(tǒng)運行狀態(tài)及一些過程參數(shù),方便用戶操作。在通常情況下,人機界面用兩種方法實現(xiàn),一種是用普通的數(shù)碼管LED實現(xiàn),LED顯示器價格低廉,發(fā)光強度高,機械性能好,在普通單片機系統(tǒng)中應用較為廣泛;另一種則是液晶顯示。本設計使用的是AMPIRE128*64LCD。隨著社會的發(fā)展,越來越多的地方需要應用顯示功能,例如,各種數(shù)字顯示儀器中的顯示、廣告屏、數(shù)碼產(chǎn)品等。傳統(tǒng)的數(shù)碼管顯示已經(jīng)遠遠不能滿足各行各業(yè)的需求。基于單片機LCD顯示是一種用單片機來控制的顯示系統(tǒng),它不僅能顯示各種數(shù)字、字母,還能顯示各種字體的漢字以及一些簡單的圖像和動畫,使用起來極為便利,只要通過對單片機寫入一定的程序來控制LCD的顯示即可完成,根據(jù)程序的不同而產(chǎn)生不同效果以滿足各種需求。本設計采用AT89S52模擬仿真,大致要求為:設計12864液晶顯示與單片機的顯示接口電路,顯示簡單的靜態(tài)/動態(tài)漢字,圖片以及由多個圖片組成的簡單動畫。64第一章 緒 論1.1 單片機選型此設計是通過單片機來控制LCD來顯示一些要求的漢字、字符、圖片及簡單動畫等。單片機種類繁多,由于上課著重介紹了51系列的單片機,故對此類型的單片機比較熟悉,故在此設計中選用的單片機為AT89S52,方便操作和進一步學習加深。1.2 LCD方案論證方案一:使用LCD1602成本低,程序控制簡單,但它只能顯示16*2個半寬字型符,不能顯示漢字,比較單調(diào)。方案二:LCD128*64硬件上提供8位,4位并行接口及串行接口供選擇,64*16位字符顯示RAM,2M位中文字型ROM,總共提供8192個中文字型(16*16點陣),16K位半寬字型ROM,總共提供126個西文字型(16*8點陣),64*16位字符產(chǎn)生RAM。在軟件上提供文字與圖形混合顯示、畫面清除、顯示移位、反白顯示等功能,相對于LCD1602來說功能豐富且由于AMPIRE128*64LCD能夠顯示的資料比較容易得到,又比較通俗易懂,便于快速上手。綜合以上方案,決定選用AMPIRE128*64LCD用來作為顯示。1.3 LCD顯示原理LCD由兩塊玻璃板構成,厚約1mm,其間由包含有液晶材料的5m均勻間隔隔開。因為液晶材料本身并不發(fā)光,所以在顯示屏兩邊都設有作為光源的燈管,而在液晶顯示屏背面有一塊背面板(或稱勻光板)和反光膜,背光板是由熒光物質(zhì)組成的可以發(fā)射光線,其作用主要是提供均勻的背景光源。背光板發(fā)出的光線在穿過第一層偏振過濾層之后進入包含成千上萬液晶液滴的液晶層。液晶層中的液滴都被包含在細小的單元格結構中,一個或多個單元格構成屏幕上的一個像素。在玻璃板與液晶材料之間是透明的電極,電極分為行和列,在行與列的交叉點上,通過改變電壓而改變液晶的旋光狀態(tài),液晶材料的作用類似于一個個曉得光閥。在液晶材料周邊是控制電路部分和驅(qū)動電路部分。黨LCD中的電極產(chǎn)生電場時,液晶分子就會產(chǎn)生扭曲,從而將穿越其中的光線進行有規(guī)則的折射,然后經(jīng)過第二層過濾層的過濾在屏幕上顯示出來。1.4 設計要求 在本次課題研究中我將參考從各個方面收集到的文獻,博取其精華。研究方法則是采用單片機設計LCD顯示,通過初始化12864LCD,并設定各個漢字、字符、圖片的地址信息,以研究AMPIRE128*64LCD的工作原理及設計。研究的設計要求包括以下方面:1、通過LCD將所設定的漢字、圖片等顯示在外;2、漢字可做簡單的移動變換等;3、可以顯示一些圖片;4、利用圖片做出簡單的動畫效果;5、單片機C程序編程語言。第二章 硬件電路設計2.1. 硬件系統(tǒng)結構圖此設計控制系統(tǒng)由AT89S52單片機芯片、LCD顯示電路、電源電路、復位電路、晶體振蕩電路組成。 單片機 LCD顯示器 電源電路 復位電路晶振電路 圖2.1 總設計框圖2.2 AT89S52單片機最小系統(tǒng)設計 單片機最小系統(tǒng)主要由單片機AT89S52、電源電路、復位電路、時鐘電路組成。2.2.1 AT89S52單片機 AT89S52主要功能特性: 一個8位微處理器 256字節(jié)的數(shù)據(jù)存儲器和32個特殊功能寄存器,用于存放可讀/寫的數(shù)據(jù) 8K字節(jié)的內(nèi)部快閃程序存儲器,用于存放程序、原始數(shù)據(jù)或表格 3個16位定時/計時器,用以對外部事件進行計數(shù),也可用作定時器 4個8位可編程的輸入/輸出(I/O)并行端口,每個端口既可做輸入,也可做輸出 一個全雙工異步串行口(UART)串行通道,用于數(shù)據(jù)的串行通信 6個中斷源,2個優(yōu)先級 可尋址各64KB的外部程序存儲器、數(shù)據(jù)存儲器空間 有位尋址功能 片內(nèi)振蕩器即內(nèi)部時鐘電路,石英晶體和微調(diào)電容需要外接。最高允許振蕩頻率為32MHz 可降至0Hz靜態(tài)邏輯操作,具有支持2種軟件,可選擇節(jié)電工作方式,即休閑方式及掉電方式。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。 在線編程(ISP)功能 內(nèi)部集成看門狗計時器 雙數(shù)據(jù)指示器 電源關閉標記 全新的加密算法 向下完全兼容MCS-51全部子系列產(chǎn)品,兼容MCS-51指令系統(tǒng)2.2.2 電源電路設計單片機所使用的電源根據(jù)實際需要設計,這里將220v電壓轉(zhuǎn)變?yōu)?5v電壓。如下圖,利用橋式整流電路將220v電壓降壓整流,然后經(jīng)過電容濾波,LM7805穩(wěn)壓電路,最后轉(zhuǎn)為+5v直流電壓。穩(wěn)壓二極管VD3的作用有兩個:一個是降低集成穩(wěn)壓電路7805(U1)的輸入電壓;二是防止總線斷電時,電容C5上所存儲的電荷向總線釋放。電容C8、C9是濾波電容,7805是+5V的集成穩(wěn)壓電路,C10、C11是去耦電容,發(fā)光二極管VD4是電源指示燈,R13是VD4的限流電阻。圖2.2 +5v直流電路2.2.3 時鐘電路設計單片機內(nèi)部有一個用于構成振蕩器的高增益反向放大器,引腳XTAL1和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時,電路簡單,所得到的時鐘信號比較穩(wěn)定,實際使用中常采用這種方式。圖2.3振蕩電路圖2.2.4 復位電路設計單片機在啟動運行時,都需要先復位,它的作用是使CPU和系統(tǒng)中的其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。MCS-51系列單片機本身,一般不能自動進行復位,必須配合相應的外部電路才能實現(xiàn)。復位電路的作用就是使單片機在上電時能夠復位或運行出錯時進行復位狀態(tài)。圖2.2按鍵與上電復位電路2.3 AMPIRE128*64LCD簡介本系統(tǒng)采用液晶顯示模塊AMPIRE128X64,為單色LCD。屏幕分為兩半控制,控制引腳為CS1和CS2,數(shù)據(jù)通過移位寄存器輸入。圖2.3 AMPIRE128*64外形圖管腳一共18個。CS1左半屏片選端,CS2右半屏片選端;VCC、GND就是VCC、GND,沒啥好說的;V0液晶顯示驅(qū)動電壓,在網(wǎng)上找的仿真實例中有的這個腳就懸空,我是通過一個電位器接到VCC;RS數(shù)據(jù)指令選擇信號,H為數(shù)據(jù),L為指令,有的資料上也叫D/I,我估計是DATA和INSTRUCTIONS這兩個單詞的縮寫;R/W讀寫選擇信號,H為讀,L為寫,這肯定是READ和WRITE的縮寫。E為LCD使能端,R/W為L時,E信號下降沿鎖存DB7-DB0;R/W為H時,E為H,DDRAM數(shù)據(jù)讀到DB7-DB0,如果只寫不讀的話可以接地處理。DB0-DB7數(shù)據(jù)傳輸端口。RST復位信號,不過還沒弄明白是怎么回事,參考一些資料后接VCC處理。-VOUT估計和V0差不多,液晶顯示驅(qū)動電壓。2.3.1 主要參數(shù)表2-1主要參數(shù)顯示容量:128*64點陣模塊最佳工作電壓:5.0V工作電壓:4.85.2V點尺寸:0.48*0.48 mm工作電流:5.1mA(5.0V)工作溫度:-2060背光源顏色:黃綠儲存溫度:-3070背光源電流:140mA2.3.2 主要指令代碼表2-2 指令代碼指令碼功能3EH關顯示3FH開顯示指令碼功能0C0H設置顯示初始行指令碼功能0B8H+頁碼(07)設置數(shù)據(jù)地址頁指針40H+列碼(063)設置數(shù)據(jù)地址列指針2.3.2 寫操作時序(時序參數(shù)均為NS級,單片機為US級,故不用考慮延時)圖2.4 寫操作時序圖2.3.4 讀操作時序(時序參數(shù)均為NS級,單片機為US級,故不用考慮延時)圖2.5 讀操作時序圖2.4 LCD與單片機接口表2-3 引腳簡介編號符號引腳說明編號符號引腳說明1VCC電源地10DB3Data I/O2VDD電源正極(+5V)11DB4Data I/O3V0LCD偏壓輸入12DB5Data I/O4RS數(shù)據(jù)/命令選擇端(H/L)13DB6Data I/O5R/W讀寫控制信號(H/L)14DB7Data I/O6E使能信號15CS1片選IC1信號7DB0Data I/O16CS2片選IC2信號8DB1Data I/O17RTS復位端(H:正常工作,L:復位)9DB2Data I/O18VEELCD驅(qū)動負壓輸出 2.5 電路設計圖 見附錄第三章 系統(tǒng)軟件設計3.1 總體流程圖基于單片機的12864液晶顯示軟件設計主要由顯示子程序、讀出并處理12864LCD顯示程序等組成。為了充分發(fā)揮AT89S52優(yōu)越的性能價格比,系統(tǒng)軟件采用C語言編寫以增強系統(tǒng)的實時性。在設計上盡量做到硬件“軟化”,使系統(tǒng)硬件設計得到簡化。開 始LCD初始化檢測忙信號左寫指令子程序左寫數(shù)據(jù)子程序右寫指令子程序右寫數(shù)據(jù)子程序清屏程序結 束延時程序LCD顯示圖3.1總體流程圖3.2 12864LCD程序void init(void) /*左邊屏初始化 l_wcode(0x3f); /*屏幕開顯示 l_wcode(0xc0); l_wcode(0xb8);/*第一頁開始 l_wcode(0x40); /*第一列開始 r_wcode(0x3f); /*右邊屏初始化 r_wcode(0xc0); r_wcode(0xb8); r_wcode(0x40); void checkbusy(void) /*忙檢測函數(shù)* E=1; RS=0; /命令 RW=1; /寫 P0=0xff; ACC=P0; while(!busy);void l_wcode(char l_code) /*左寫命令函數(shù) checkbusy(); P2=0xf2;/1111 0010;E=1,RW=0,RS=0,CS2=1,CS1=0 P0=l_code; E=1; E=0; void l_wdata(char l_data) /*左寫數(shù)據(jù)顯示 checkbusy(); P2=0xf6;/1111 0110;E=1,RW=0,RS=1,CS2=1,CS1=0 P0=l_data; E=1; E=0; void r_wcode(char r_code)/*右命令函數(shù) checkbusy(); P2=0xf1;/1111 0001;E=1,RW=0,RS=0,CS2=0,CS1=1 P0=r_code; E=1; E=0; void r_wdata(char r_data)/*右數(shù)據(jù)函數(shù) checkbusy(); P2=0xf5;/1111 0101;E=1,RW=0,RS=1,CS2=0,CS1=1 P0=r_data; E=1; E=0;void show()/*顯示從四個角回到中間*圖片 ywei=0xb8;end=0xba; over=0xbe; for(lshu=0x40,you=0x70;lshu0x71;lshu=lshu+0x17,you=you-0x17) k=0;for(i=ywei;i0;j-) l_wdata(tab2k+);/j=16是為了顯示一個字的控制 r_wcode(i); r_wcode(you); for(j=16;j0;j-) r_wdata(tab2k+); k=k+32; k=32; for(fan=over;fan0;j-) l_wdata(tab2k+); r_wcode(fan); r_wcode(you); for(j=16;j0;j-) r_wdata(tab2k+); k=k+32; over-; if(lshu=0x60) /*if為真是四個字匯聚后的稍長延時時間 delay(800); else delay(500);clean();ywei=ywei+0x01; /*為每次控制移動的增量(頁數(shù))end=end+0x01;if(end=0xbe) break; void delay(int ms) /*延時函數(shù) int f,n; for(f=ms;f0;f-) for(n=110;n0;n-);void clean() /*清屏函數(shù)for(i=0xb8;i0;j-) l_wdata(0x00); for(i=0xb8;i0;j-) r_wdata(0x00); 3.3 程序清單及注釋 見附錄第四章 仿真調(diào)試和結果分析4.1 仿真步驟第一步 在Proteus中畫好電路圖在Proteus中新建空白文件保存,從元件庫中選取并放置元器件和電源、地終端,按原理圖連好線。第二步 電氣檢測電路設計完成后,單擊工具欄中電氣檢查按鈕“”,會跳出檢查結果窗口,如圖4-1所示。窗口前面是一些文本信息,完成接著是電氣檢查結果列表。若有錯,會有詳細說明。當規(guī)則檢查出現(xiàn):NETLIST GENERATED OK NO ERC ERRORD FOUND ,表示通過檢查。圖4-1 電氣檢測窗口第三步 加載目標代碼文件和設置時鐘頻率將兩種方法得到的目標代碼文件心夢.hex 加載到單片機中。在ISIS編輯區(qū)中雙擊單片機,則彈出如圖4-2所示的加載目標代碼文件和設置時鐘頻率的窗口。單擊在Program File欄右則“”的按鈕,彈出文件列表,將心夢.hex文件加載到AT89S52芯片中。圖4-2加載目標代碼文件和設置時鐘頻率第四步 仿真點擊仿真按鈕中的運行按鈕,啟動系統(tǒng)仿真。此程序是自己找的一個關于12864液晶顯示的程序。我在調(diào)試的過程中發(fā)現(xiàn)這個程序還有些不完善的地方,離我的設計目標還是有一定的差距。因此我開始對此程序進行修改,盡量的使其適合我的設計目標。在程序編譯部分,我使用的是KEIL軟件,對程序進行編譯調(diào)試最后生成HEX文件,以便把其下載在芯片之中,最后成功的生成HEX文件。KEIL軟件的使用課件可以見附件。4.2 仿真結果及分析1)仿真運行后,清屏,首先顯示寬為16,高位32的字符3,2,1以及小圖片。圖4.3動態(tài)字符圖2)分別顯示下面三幅128*64的圖片。 圖4.4顯示圖片圖3)顯示從四個角落回到中間的四個16*16的圖像。 圖4.4動態(tài)圖形圖圖像由16點陣所得,分別通過左/右旋轉(zhuǎn)90度得到程序。圖4.5單個圖形圖4)顯示由12幅圖片構成的簡單動畫,其實就是將延時時間縮成很短,造成視覺上的效果就成了連續(xù)的動作,形成了動畫。 圖4.6簡單動畫圖5)顯示一個一個的出現(xiàn)漢字,控制想要的字數(shù),最終形成完整的句子。圖4.7動態(tài)字符圖6)顯示延時時間較長的兩幅圖片。圖4.8顯示圖片圖7)先顯示靜態(tài)的漢字,然后上半部分變換,最后顯示移動的結束語over 圖4.9動靜態(tài)漢字圖第五章 取模軟件的使用方法5.1 PCtoLCD2002取模軟件的使用方法1)參數(shù)設置 本次課程設計的點陣格式是陰碼,取模方式為列行式,取模走向是逆向(地位在前),自定義格式為C51格式,最好將行前綴與行后綴的“”去掉,像素大小為8。圖5.1 PCtoLCD2002取模軟件的參數(shù)設置圖2)漢字及字符的取模圖如下: 本次的課程設計,需要將字模的上下行分開輸入,否則漢字的上下部分將會分開,排列成左右形式。圖5.2 PCtoLCD2002取模軟件的漢字取模圖圖5.3字模顯示效果圖3)圖形的取模圖如下:切記打開的圖片,保存格式為單色位圖.bmp,尺寸大小不可超過128*64。否則取模軟件中打開的圖片將會顯示不出來。圖5.4 PCtoLCD2002取模軟件的圖片取模圖圖5.5圖片顯示效果圖5.2 畔畔字模提取軟件的使用方法將所想要顯示的16*16的圖形在點陣中點出來,可左右旋轉(zhuǎn)90度得出另外四個方向的圖形,當從四個角落匯合至中間時,能拼湊出不同效果。方法如圖所示:圖5.6 16點陣圖形取模圖圖5.7 16點陣圖形顯示效果圖總 結本次設計雖然沒有特別的復雜,但是由于初次涉及這樣的設計,沒有任何的經(jīng)驗,過程還是倍感吃力的。首先就是LCD的選擇,因為之前沒有學習過這樣的器件,算是一個新的概念,所以認識不全,有些不知所措。其次就是軟件的編寫,要得到正確的漢字以及圖片的地址信息,花費了較長時間才找到相匹配的取模軟件。然后研究如何獲取正確的參數(shù),其中圖片的取模就很令我苦惱,最后在老師的輔導下才得以提取正確。程序有了之后,再進行相關的變換,最終得到新穎的效果。在這次的設計過程中雖然嘗到了設計的困難,但是更重要的是讓我感受到了它的魅力,不知不覺的就想要做出更多的花樣,特別是成功仿真后,著實有一種成就感。在此次過程中不僅鞏固了我對Word及單片機的使用,同時也讓我對LCD顯示以及取模軟件有了一個較為清晰的了解,彌補了我的一個盲區(qū),使我有了知識和精神雙方面的收獲,相信這將是一次有意義的設計。致 謝畢業(yè)論文,談不上多深研究,攀不上多少學術,寫一點略懂的事情,盡一點微薄的力氣。在此論文最終完成之際,向所有關心和幫助過我的同學和朋友表示深深感謝!感謝他們?yōu)槲姨峁┑膸椭?,使我的畢業(yè)設計能順利完成。 每一位老師的悉心教導都是我完成這篇論文的基礎。衷心感謝我的指導老師吳振磊老師,從畢業(yè)設計的開始到畢業(yè)論文的最終定稿,給了我細心的指導和幫助。您嚴謹?shù)闹螌W態(tài)度,開闊的思維,淵博的知識深深感染了我,讓我終生受用。在此,我向我的指導老師致以誠摯的謝意和深深的敬意。從他那里我不僅僅是收獲了學術方面的知識,更重要的是學會了治學嚴謹?shù)膽B(tài)度。以后我一定會更加努力的完善。參 考 文 獻1俞錫存,曹國華,單片機原理及接口技術M.西安電子科技大學出版社,2004年2張志良,單片機原理及控制技術(第2版).北京:機械工業(yè)出版社,2005年3陳堂敏、黃英,單片機工程項目應用技術4余永權,MCS-51系列單片機實用接口技術M.北京:北京航空航天大學出版,1993年5王守中,51單片機開發(fā)入門與典型實例.北京:人民郵電出版社,2007年8月6 薛小鈴,劉志群,賈俊榮,單片機接口模塊應用與開發(fā)實例詳解,北京航空航天大學出版社,2010年1月7/forum.php?mod=viewthread&tid=1836&extra=page%3D3%26filter%3Dtypeid%26typeid%3D3%26typeid%3D3Proteus仿真社區(qū) 附錄A 程序清單與解釋主程序:本程序漢字取模即掃描方式是從左到右、從上到下的原則、縱向八點下高位。 *#include#include#define uchar unsigned char#define uint unsigned intsbitE=P24;sbitRW=P23;/RW 為 1- 寫; 0- 讀sbitRS=P22;/RS 為 0 命令; 1 數(shù)據(jù)sbitCS2=P21;/ 片選 1 低電平有效,控制右半屏sbitCS1=P20;/ 片選 1 低電平有效,控制左半屏sbitbusy=P07;uchar i,j,lshu=0x40,you=0x40,ywei,end,over,fan;uint k=0,h,m,y;void init(void); /函數(shù)聲明void checkbusy(void);void l_wcode(char l_code); /左寫命令void l_wdata(char l_data); /左寫數(shù)據(jù)void r_wcode(char r_code); /右寫命令void r_wdata(char r_data); /右寫數(shù)據(jù)void clean(); /清屏 void delay(int ms); /延時void init(void) /*左邊屏初始化 l_wcode(0x3f); /*屏幕開顯示 l_wcode(0xc0); l_wcode(0xb8);/*第一頁開始 l_wcode(0x40); /*第一列開始 r_wcode(0x3f); /*右邊屏初始化 r_wcode(0xc0); r_wcode(0xb8); r_wcode(0x40); void checkbusy(void) /*忙檢測函數(shù)* E=1; RS=0; /命令 RW=1; /寫 P0=0xff; ACC=P0; while(!busy);void l_wcode(char l_code) /*左寫命令函數(shù) checkbusy(); P2=0xf2;/1111 0010;E=1,RW=0,RS=0,CS2=1,CS1=0 P0=l_code; E=1; E=0; void l_wdata(char l_data) /*左寫數(shù)據(jù)顯示 checkbusy(); P2=0xf6;/1111 0110;E=1,RW=0,RS=1,CS2=1,CS1=0 P0=l_data; E=1; E=0; void r_wcode(char r_code)/*右命令函數(shù) checkbusy(); P2=0xf1;/1111 0001;E=1,RW=0,RS=0,CS2=0,CS1=1 P0=r_code; E=1; E=0; void r_wdata(char r_data)/*右數(shù)據(jù)函數(shù) checkbusy(); P2=0xf5;/1111 0101;E=1,RW=0,RS=1,CS2=0,CS1=1 P0=r_data; E=1; E=0; void show()/*顯示從四個角回到中間*圖片 ywei=0xb8;end=0xba; over=0xbe; for(lshu=0x40,you=0x70;lshu0x71;lshu=lshu+0x17,you=you-0x17) k=0;for(i=ywei;i0;j-) l_wdata(tab2k+);/j=16是為了顯示一個字的控制 r_wcode(i); r_wcode(you); for(j=16;j0;j-) r_wdata(tab2k+); k=k+32; /*上面顯示* k=32; for(fan=over;fan0;j-) l_wdata(tab2k+); r_wcode(fan); r_wcode(you); for(j=16;j0;j-) r_wdata(tab2k+); k=k+32; over-; if(lshu=0x60) /*if為真是四個字匯聚后的稍長延時時間 delay(800); else delay(500);clean();ywei=ywei+0x01; /*為每次控制移動的增量(頁數(shù))end=end+0x01;if(end=0xbe) break; /*下面顯示*void show_123() /*顯示321zhu* k=0;for(h=4;h0;h-) /*基本思想是完整顯示一個數(shù)后、稍作適當 for(i=0xba;i0;j-) /數(shù)的左半邊 l_wdata(tabek+); r_wcode(i);

溫馨提示

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

評論

0/150

提交評論