LCD液晶顯示器設計畢業(yè)論文DOC_第1頁
LCD液晶顯示器設計畢業(yè)論文DOC_第2頁
LCD液晶顯示器設計畢業(yè)論文DOC_第3頁
LCD液晶顯示器設計畢業(yè)論文DOC_第4頁
LCD液晶顯示器設計畢業(yè)論文DOC_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、東 莞 理 工 學 院本 科 畢 業(yè) 設 計 畢業(yè)設計題目:LCD電子顯示屏的控制和界面設計學生姓名:學號:院系:電子工程學院專業(yè)班級:指導老師姓名及職稱:起止時間:2010年4月2010年5月 目 錄一、摘要- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3二、作品意義- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3三、硬件設計- - - - - - - -

2、 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4四、軟件設計 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -5五、設計調試 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -8六、指令說明- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

3、 - - - - - - - - - -9七、心得體會 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12八、致謝- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -13九、參考文獻- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -13十、源程序與原理圖 - - - -

4、- - - - - - - - - - - - - - - - - - - - - - - - - - - - - 13一、摘要近年來隨著計算機在社會領域的滲透和大規(guī)模集成電路的發(fā)展,單片機的應用正在不斷地走向深入,由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等特點,因此特別適合于與控制有關的系統(tǒng),越來越廣泛地應用于自動控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產品以及家用電器等各個領域,單片機往往是作為一個核心部件來使用,在根據(jù)具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。 隨著以計算機為軸心的各種各樣信息處理裝置的誕生,為適應這種新形勢,信息家電,網絡終端,廣播

5、-通信等用途的LCD市場也將迅速擴大,而且如今LCD發(fā)展方向不僅在于大屏幕,而且在中小屏幕方面,例如汽車導航系統(tǒng),攝像機,數(shù)字式照相機,便攜式電視,PDA(個人數(shù)字助理),娛樂/游戲機,攝影機等有著進一步的發(fā)展。 液晶顯示器(LCD)具有功耗低、體積小、重量輕、超薄等許多其他顯示器無法比擬的優(yōu)點,近年來被廣泛用于單片機控制的智能儀器、儀表和低功耗電子產品中。LCD可分為段式LCD、字符式LCD和點陣式LCD。其中,段式LCD和字符式LCD只能用于字符和數(shù)字的簡單顯示,不能滿足圖形曲線和漢字顯示的要求;而點陣式LCD不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線以及漢字、動畫,并且可以實現(xiàn)屏幕

6、滾動、反轉、閃爍等功能,用途十分廣泛。 由此可見LCD的應用是如此廣泛,所以用MPU控制液晶顯示器是很普遍的應用。本設計主要研究通過單片機控制來實現(xiàn)液晶模塊字符的顯示。二、作品意義近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據(jù)具體硬件結構,以及針對具體應用對象特點的軟件結合,加以完善。單片機自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關注,應用很廣、發(fā)展很快。而51單片機是各單片機中最為典型和最有代表性的一種。本次設計

7、以STC89C51芯片為核心,輔以必要的外圍電路,設計了一個簡易的電子閱讀器。本作品得控制器采用STC89C516RD+,人機接口界面采用YM12864R液晶顯示器和四個按鈕。本作品可通過按鍵和液晶顯示來選擇閱讀詩歌或圖片。三、硬件設計 1、系統(tǒng)框圖顯示模塊控制模塊振蕩復位電源鍵盤2、控制模塊控制器采用STC89C516RD+,其指令代碼與傳統(tǒng)得8051單片機完全兼容,F(xiàn)LASH為63KB,RAM為1280B。由于本作品需要顯示圖片,需要較大得存儲空間來存儲圖片數(shù)據(jù),而STC89C516RD+有63KB得FLASH,這也是選擇STC89C516RD+得重要原因之一。其次STC89C516RD+

8、支持ISP,調式程序時不用頻繁地從電路板上拔下芯片來燒程序,可直接通過串口經MAX232電平轉換后,把相應得數(shù)據(jù)線和電源線與電路板相接,再配合ISP下載軟件即可將程序下載到芯片,大大提高了調試效率。3、顯示模塊顯示器采用YM12864R液晶顯示器。帶中文字庫得128X64是一種具有4位/8位并行,2線或3線串口多種接口方式,內部含有國標一級,二級簡體中文字庫得點陣圖形液晶顯示模塊;其顯示分辨率為128X64,內置8192個16*16點漢字,和128個16*8點ASCII字符集。利用該模塊靈活得接口方式和簡單,方便的操作指令,可構成全中文人機交互圖形界面。可以顯示8X4行16X16點陣的漢字。也

9、可以完成圖形顯示。低電壓低功耗識其又一顯著得特點。由該模塊構成得液晶顯示方案與同類型得圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣得圖形液晶模塊。4、鍵盤本作品所有得鍵盤由4個機械觸點式的按鈕組成。把4個按鍵直接與單片機得I/O口連接,按鍵按下時將I/O接地。其特點是價格低廉,編程簡單,采用查詢的方式檢測按鍵得狀態(tài)。由于按鍵是機械觸點式的,再機械觸動閉合或斷開時,會有抖動,這些抖動會干擾單片機按鍵的檢測,因此在編程時要加入消抖程序。5、振蕩復位電路振蕩電路:由1個12MHz晶振和2個30pf的瓷片電容組成。復位電路:由1個10uF的電解電容和

10、一個10K的電阻組成。四、軟件設計軟件主要由液晶初始化,按鍵掃描,按鍵處理和顯示子程序組成。由于本作品的界面是菜單式的,通過什么來確認該進入哪個子菜單或顯示哪幅圖片,這是編程前首先要解決得問題。根據(jù)液晶顯示器本身的特性:字符顯示RAM在液晶模塊中的地址80H9FH。字符顯示的RAM的地址與32個字符顯示區(qū)域有著一一對應得關系。因此,可通過顯示光標,然后通過光標得位置來確認該進入哪個子菜單或顯示哪幅圖片。此外,每進入一個菜單,都要對鍵盤進行掃描,此時按鍵按下得意義和前面得不同了,因此要對按鍵處理做相應得修改。軟件流程圖:“下”按下“上”按下“確認”按下游標移到“詩歌判斷游標位置是否在80H游標移

11、動“圖片”主菜單鍵盤掃描顯示主菜單液晶初始化顯示詩歌菜單顯示圖片菜單詩歌菜單鍵盤掃描返回到“顯示主菜單根據(jù)游標的位置顯示相應的詩歌“返回”按下“確認”按下游標上移“上”按下“下”按下游標下移閱讀詩歌時鍵盤掃描閱讀詩歌時鍵盤掃描“上”按下“返回”按下“下”按下顯示下一首詩返回到“顯示詩歌菜單”顯示上一首詩顯示圖片菜單圖片菜單鍵盤掃描“上”按下“確認”按下“返回”按下“下”按下游標上移根據(jù)游標的位置顯示相應的圖片返回到“顯示主菜單”游標下移瀏覽圖片時鍵盤掃描 “上”按下“返回”按下“下”按下顯示上一幅圖返回到“顯示圖片菜單”顯示下一幅圖瀏覽圖片時鍵盤掃描五、設計調試1、單片機最小系統(tǒng)的調試把單片機

12、最小系統(tǒng)焊接好,加上一格LED,然后編寫一個讓LED閃爍的程序,通過Keil把程序調試好,再生成的HEX文件下載到芯片里面,觀察LED的閃爍情況是否與程序相符,若相符,則說明單片機最小系統(tǒng)正常。若不相符,則找出問題的所在。這一步看似簡單,卻是必不可少的一步,因為單片機最小系統(tǒng)是整個電路的基礎。通過調試單片機最小系統(tǒng),不但可以檢測單片機最小系統(tǒng)是否正常,還可以檢測你使用相關軟件的步驟是否正確,這些步驟都是以后調試程序時必不可少的。2、液晶顯示器的調試仔細閱讀液晶顯示器的資料,按照資料上的要求把液晶顯示器連接好。首先,寫一個讓液晶顯示一個漢字或字符的程序,讓液晶顯示器對應地顯示出來。這一步可以讓我

13、們檢測液晶顯示器是否與單片機正確連接,以及掌握初始化液晶顯示器的方法和寫指令/數(shù)據(jù)到液晶顯示器的方法,這是使用液晶顯示器的第一步。接下來再讓液晶在不同的位置顯示字符、顯示多個字符、顯示圖片等。也就是把以后要用的功能一一掌握。最后把液晶顯示程序里常用的程序整理成一個個字程序,方便以后調用。.3、鍵盤的調試將按鍵添加到電路板上,編寫按鍵程序:按不同的鍵能讓液晶顯示不同的字符。這步成功后說明按鍵程序就沒問題了,把它整理成一個字程序,方便調用。4、整體調試以上是基本功能模塊的調試,接下來先把程序框圖畫好,然后對照框圖添加相應的程序,必要時可對框圖進行局部修改或整體修改。六、指令說明1、模塊控制芯片提供

14、兩套控制命令,基本指令和擴充指令如下:指令表1:(RE=0:基本指令)指                  指 令 碼功 能令RSR/WD7D6D5D4D3D2D1D0 清除顯示0000000001將DDRAM填滿"20H",并且設定DDRAM的地址計數(shù)器(AC)到"00H"地址歸位000000001X設定DDRAM的地址計數(shù)器(AC)到"00H",并且將游

15、標移到開頭原點位置;這個指令不改變DDRAM 的內容顯示狀態(tài)開/關0000001DCBD=1: 整體顯示 ONC=1: 游標ON    B=1:游標位置反白允許進入點設定00000001I/DS指定在數(shù)據(jù)的讀取與寫入時,設定游標的移動方向及指定顯示的移位游標或顯示移位控制000001S/CR/LXX設定游標的移動與顯示的移位控制位;這個指令不改變DDRAM 的內容 功能 設定00001DLXREXXDL=0/1:4/8位數(shù)據(jù)RE=1: 擴充指令操作RE=0: 基本指令操作 設定CGRAM 地址0001AC5AC4A

16、C3AC2AC1AC0設定CGRAM 地址 設定DDRAM 地址0010AC5AC4AC3AC2AC1AC0設定DDRAM 地址(顯示位址)第一行:80H87H第二行:90H97H讀取忙標志和地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙標志(BF)可以確認內部動作是否完成,同時可以讀出地址計數(shù)器(AC)的值寫數(shù)據(jù)到RAM10數(shù)據(jù)將數(shù)據(jù)D7D0寫入到內部的RAM (DDRAM/CGRAM/IRAM/GRAM)讀出RAM的值11數(shù)據(jù)從內部RAM讀取數(shù)據(jù)D7D0(DDRAM/CGRAM/IRAM/GRAM)指令表2:(RE=1:擴充指令)指  

17、                指 令 碼功 能令RSR/WD7D6D5D4D3D2D1D0   待命模式0000000001進入待命模式,執(zhí)行其他指令都棵終止待命模式卷動地址開關開啟000000001SRSR=1:允許輸入垂直卷動地址SR=0:允許輸入IRAM和CGRAM地址  反白  選擇00000001R1R0選擇2行中的任一行作反白顯示,并可決定反白與否。初始值R1R000,第一次設定為反白顯示,再

18、次設定變回正常  睡眠  模式0000001SLXXSL=0:進入睡眠模式SL=1:脫離睡眠模式  擴充  功能  設定00001CLXREG0CL=0/1:4/8位數(shù)據(jù)RE=1: 擴充指令操作RE=0: 基本指令操作G=1/0:繪圖開關 設定繪圖RAM 地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0設定繪圖RAM先設定垂直(列)地址AC6AC5AC0再設定水平(行)地址AC3AC2AC1AC0將以上16位地址連續(xù)寫入即可備注:當IC1在接受指令前,微處理器必須先確認其內部處于非忙碌狀態(tài),

19、即讀取BF標志時,BF需為零,方可接受新的指令;如果在送出一個指令前并不檢查BF標志,那么在前一個指令和這個指令中間必須延長一段較長的時間,即是等待前一個指令確實執(zhí)行完成。2、應用舉例2.1、使用前的準備 先給模塊加上工作電壓,再按照下圖的連接方法調節(jié)LCD的對比度,使其顯示出黑色的底影。 此過程亦可以初步檢測LCD有無缺段現(xiàn)象。2.2、字符顯示帶中文字庫的128X64-0402B每屏可顯示4行8列共32個16×16點陣的漢字,每個顯示RAM可顯示1個中文字符或2個16×8點陣全高ASCII碼字符,即每屏最多可實現(xiàn)32個中文字符或64個ASCII碼字符的顯示。帶中文字庫的1

20、28X64-0402B內部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現(xiàn)的。根據(jù)寫入內容的不同,可分別在液晶屏上顯示CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)的內容。三種不同字符/字型的選擇編碼范圍為:00000006H(其代碼分別是0000、0002、0004、0006共4個)顯示自定義字型,02H7FH顯示半寬ASCII碼字符,A1A0HF7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H9FH。字符顯示的RAM的地址與32個字符顯示區(qū)域有著一

21、一對應的關系,其對應關系如下表所示。80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH2.3 、圖形顯示 先設垂直地址再設水平地址(連續(xù)寫入兩個字節(jié)的資料來完成垂直與水平的坐標地址)垂直地址范圍 AC5.AC0水平地址范圍 AC3AC0繪圖RAM 的地址計數(shù)器(AC)只會對水平地址(X 軸)自動加一,當水平地址=0FH 時會重新設為00H 但并不會對垂直地址做進位自動加一,2.4、應用說明用帶中文字庫的128X64顯示模塊時應注意以下幾點:欲在某一個位置

22、顯示中文字符時,應先設定顯示字符位置,即先設定顯示地址,再寫入中文字符編碼。顯示ASCII字符過程與顯示中文字符過程相同。不過在顯示連續(xù)字符時,只須設定一次顯示地址,由模塊自動對地址加1指向下一個字符位置,否則,顯示的字符中將會有一個空ASCII字符位置。當字符編碼為2字節(jié)時,應先寫入高位字節(jié),再寫入低位字節(jié)。模塊在接收指令前,向處理器必須先確認模塊內部處于非忙狀態(tài),即讀取BF標志時BF需為“0”,方可接受新的指令。如果在送出一個指令前不檢查BF標志,則在前一個指令和這個指令中間必須延遲一段較長的時間,即等待前一個指令確定執(zhí)行完成。指令執(zhí)行的時間請參考指令表中的指令執(zhí)行時間說明?!癛E”為基本

23、指令集與擴充指令集的選擇控制位。當變更“RE”后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時,無需每次均重設“RE”位。 控制器接口信號說明:RS,R/W的配合選擇決定控制界面的4種模式:RSR/W功能說明LLMPU寫指令到指令暫存器(IR)LH讀出忙標志(BF)及地址記數(shù)器(AC)的狀態(tài)HLMPU寫入數(shù)據(jù)到數(shù)據(jù)暫存器(DR)HHMPU從數(shù)據(jù)暫存器(DR)中讀出數(shù)據(jù)七、心得體會通過這次設計讓我對單片機有更加深入的了解,學會了用按鍵控制和跳轉的基本方法,提高了分析程序和硬件電路的能力,對編譯調試和下載燒錄程序的方法更加熟悉了,自己的焊接技術也相應的提高了,在找資

24、料的過程中不僅掌握了課本上沒有的知識還提高了自己的搜索能力,我相信到將來這是一種很寶貴的財富。學而知不足,這次設計讓我學到更多東西的同時也讓我看到了自己知識的缺乏,從而促進我不斷進取,不斷進步。這次設計我還明白了一個道理:有些事情不是自己不會做,而是自己并沒有去行動,所以才會覺得很難,只有自己用心投入了,事情原來并沒有想象中的那么難。我在設計程序的過程中遇到了不少問題,但在指導老師、組員以及周圍各位同學的幫忙下也一一地順利解決了,在這里我明白了團結合作的重要性,大家互相幫忙才會事半功倍的。短短一個月的畢業(yè)設計即將過去了,但其中很多的畫面將永遠留在自己腦海中:老師的諄諄教誨,組員的鼎力支持,周圍

25、同學的相互幫忙。如果說我的人生是有一首樂曲組成,這次經歷無疑是其中最美麗的樂譜之一,因為它使了我的大學生涯得到了升華,個人價值得到了肯定,我相信這將對我終生受益。 八、致謝在做畢業(yè)設計(LCD電子顯示屏的控制和界面設計)的整個過程中,我的指導老師任斌(副教授)始終都給予了細心的指導和不懈的支持,不厭其煩地為我解決了很多問題,在此致以感謝!同時,在此也衷心感謝我的同學的出謀劃策和對這個畢業(yè)設計的關心和幫助!九、參考文獻1 李全利等編著。單片機原理及接口技術,高等教育出版社,2004.1。2 徐惠民等編著。單片微型計算機原理、接口及應用,北京郵電大學出版社,2007.8。3 郭速學等編著。圖解單片

26、機功能與應用,中國電力出版社,2008.2。4 康維新等編著。MCS-51單片機原理與應用,中國輕工業(yè)出版社,2009.9。5 汪道輝等編著。單片機系統(tǒng)設計與實踐,電子工業(yè)出版社,2006.5。十、源程序和原理圖源程序:RS EQU P0.7RW EQU P0.6E EQU P0.5PSB EQU P0.4RST EQU P0.2COM EQU 20HDAT EQU 21H;已用資源R2 R3 R4 R6 R7;以上是接口定義ORG 0000HLJMP STARTORG 30HSTART:SETB PSB ;并行模式 SETB RST ;禁止復位MOV COM,#30H ;功能設置-8BIT控

27、制界面,基本指令集CALL WRILCALL DELAYMOV COM,#0FH ;顯示打開,光標關,反白顯示關ACALL WRILCALL DELAYLCALL CLEAR ;清屏;顯示主菜單MENU:MOV R1,#80H ;游標初始位置LCALL CLEARMOV COM,#81H ;在第一行第二位置開始顯示"詩歌"MOV DPTR,#DAB_MENU1MOV R2,#4LCALL PLAYMOV COM,#91H ;在第一行第二位置開始顯示"圖片"MOV DPTR,#DAB_MENU2MOV R2,#4LCALL PLAYMOV COM,#89H

28、 ;在第一行第二位置開始顯示"制作人"MOV DPTR,#DAB_MENU3MOV R2,#6LCALL PLAYMENU_YOUBIAO:MOV COM,R1 ;游標地址設定ACALL WRILCALL DELAYMOV COM,#0FH ;顯示打開,光標,反白顯示關ACALL WRILCALL DELAYMENU_NEXT: MOV R1,#80HM_KEY1:MOV P2,#11111111BMOV A,P2CLR CSUBB A,#11111110BJZ M_UPMOV A,P2CLR CSUBB A,#11111101BJZ M_DOWNMOV A,P2CLR C

29、SUBB A,#11111011BJZ M_BACKMOV A,P2CLR CSUBB A,#11110111BJZ M_SURELJMP M_KEY1;向上選擇菜單M_UP: ;確定游標位置ACALL DELAY10 ;延時10毫秒消觸點抖動 JB P2.0,M_KEY1 ;去除干擾信號JNB P2.0,$ ; 等待按鍵松開CJNE R1,#80H,M_UP1MOV R1,#88HLJMP M_YOUBIAO_WRIM_UP1:CJNE R1,#90H,M_UP2 MOV R1,#80H LJMP M_YOUBIAO_WRIM_UP2:CJNE R1,#88H,M_KEY1 MOV R1,#

30、90H LJMP M_YOUBIAO_WRI;向下選擇菜單M_DOWN: ;確認游標位置ACALL DELAY10 ;延時10毫秒消觸點抖動JB P2.1,M_KEY1 ;去除干擾信號JNB P2.1,$ ;等待按鍵松開 CJNE R1,#80H,M_DOWN1 MOV R1,#90H LJMP M_YOUBIAO_WRIM_DOWN1: CJNE R1,#90H,M_DOWN2 MOV R1,#88H LJMP M_YOUBIAO_WRIM_DOWN2: CJNE R1,#88H,M_KEY1 MOV R1,#80H M_YOUBIAO_WRI: MOV COM,R1 ;寫游標 LCALL

31、WRI LCALL DELAY MOV COM,#0FH LCALL WRI LCALL DELAY SB: LJMP M_KEY1M_BACK: ACALL DELAY10 ;延時10毫秒消觸點抖動 JB P2.2,M_KEY1 ;去除干擾信號 JNB P2.2,$ ;等待按鍵松開 LJMP MENUM_SURE: ACALL DELAY10 ;延時10毫秒消觸點抖動 JB P2.3, SB ;去除干擾信號 JNB P2.3,$ ;等待按鍵松開 LJMP MENU_SURE ; 主菜單鍵盤掃描KEYSCAN:MOV P2,#11111111BKEY1: MOV A,P2CLR CSUBB A

32、,#11111110BJZ MENU_SHIMOV A,P2CLR CSUBB A,#11111101BJZ MENU_PICMOV A,P2CLR CSUBB A,#11111011BJZ MENU_ZHIMOV A,P2CLR CSUBB A,#11110111BJZ MENU_SURELJMP KEYSCAN;按鍵對應程序MENU_SHI: ACALL DELAY10 ;延時10毫秒消觸電抖動JB P2.0,KEYSCAN ;去除干擾信號JNB P2.0,$ ;等待按鍵松開MOV R1,#80H ; LJMP MENU_YOUBIAO MENU_PIC:ACALL DELAY10 ;延時

33、10毫秒消觸點抖動JB P2.1,KEYSCAN ;去除干擾信號JNB P2.1,$ ;等待按鍵松開MOV R1,#90HLJMP MENU_YOUBIAOMENU_ZHI:ACALL DELAY10 ;延時10毫秒消觸點抖動JB P2.2,KEYSCAN ;去除干擾信號JNB P2.2,$ ;等待按鍵松開MOV R1,#88HLJMP MENU_YOUBIAOMENU_SURE:ACALL DELAY10 ;延時10毫秒消觸點抖動JB P2.3,KEYSCAN ;去除干擾信號JNB P2.3,$ ;等待按鍵松開LCALL CLEAR;若游標在80H處,說面選中的是詩歌,接下來則顯示詩歌的菜單

34、CJNE R1,#80H,PICTURESHI_MENU_SHOW:MOV COM,#81HMOV DPTR,#MENU_SHI1MOV R2,#12 ;詩歌名的字數(shù),待修改LCALL PLAYMOV COM,#91HMOV DPTR,#MENU_SHI2MOV R2,#10LCALL PLAYMOV COM,#89HMOV DPTR,#MENU_SHI3MOV R2,#10LCALL PLAYMOV COM,#99HMOV DPTR,#MENU_SHI4MOV R2,#10LCALL PLAYMOV COM,#80H ;游標地址設定ACALL WRILCALL DELAYMOV COM,#0

35、FH ;顯示打開,光標關,反白顯示關ACALL WRILCALL DELAYLJMP LKKEYSCAN_J:LJMP KEYSCAN;若游標在90H處,說明選中得是圖片,接下來則顯示圖片的菜單PICTURE:CJNE R1,#90H,ZHIPIC_MENU_SHOW:MOV COM,#81HMOV DPTR,#MENU_PIC1 ;圖片名的字數(shù),待修改MOV R2,#6LCALL PLAYMOV COM,#91HMOV DPTR,#MENU_PIC2MOV R2,#6LCALL PLAYMOV COM,#89HMOV DPTR,#MENU_PIC3MOV R2,#6LCALL PLAYMOV

36、 COM,#99HMOV DPTR,#MENU_PIC4MOV R2,#6LCALL PLAYMOV COM,#80H ;游標地址設定ACALL WRILCALL DELAYMOV COM,#0FH ;顯示打開,光標關,反白顯示關ACALL WRILCALL DELAYLJMP SCAN_PIC;若游標在88H處,說明選中得是制作人,接下來則顯示制作人的菜單ZHI:CJNE R1,#88H,KEYSCAN_JZHI_MENU_SHOW:MOV COM,#81HMOV DPTR,#MENU_ZHI1 ;制作人名的字數(shù),待修改MOV R2,#6LCALL PLAYMOV COM,#91HMOV D

37、PTR,#MENU_ZHI2MOV R2,#6LCALL PLAYMOV COM,#80H ;游標地址設定ACALL WRILCALL DELAYMOV COM,#0FH ;顯示打開,光標關,反白顯示關ACALL WRILCALL DELAYLJMP KEYSCAN_J ; 鍵盤掃描-詩歌菜單LK:MOV R1,#80HSHI_KEY1:MOV P2,#11111111BMOV A,P2CLR CSUBB A,#11111110BJZ SHI_UPMOV A,P2CLR CSUBB A,#11111101BJZ SHI_DOWNMOV A,P2CLR CSUBB A,#11111011BJZ

38、SHI_BACKMOV A,P2CLR CSUBB A,#11110111BJZ SHI_SURELJMP SHI_KEY1;向上選擇詩歌SHI_UP: ;確定游標位置ACALL DELAY10 ;延時10毫秒消觸點抖動 JB P2.0,SHI_KEY1 ;去除干擾信號JNB P2.0,$ ; 等待按鍵松開CJNE R1,#80H,SHI_UP1MOV R1,#98HLJMP SHI_YOUBIAO_WRISHI_UP1:CJNE R1,#90H,SHI_UP2 MOV R1,#80H LJMP SHI_YOUBIAO_WRISHI_UP2:CJNE R1,#88H,SHI_UP3 MOV R

39、1,#90H LJMP SHI_YOUBIAO_WRISHI_UP3:CJNE R1,#98H,SHI_KEY1 MOV R1,#88H LJMP SHI_YOUBIAO_WRI;向下選擇詩歌SHI_DOWN: ;確認游標位置ACALL DELAY10 ;延時10毫秒消觸點抖動JB P2.1,SHI_KEY1 ;去除干擾信號JNB P2.1,$ ;等待按鍵松開 CJNE R1,#80H,SHI_DOWN1 MOV R1,#90H LJMP SHI_YOUBIAO_WRISHI_DOWN1: CJNE R1,#90H,SHI_DOWN2 MOV R1,#88H LJMP SHI_YOUBIAO_

40、WRISHI_DOWN2: CJNE R1,#88H,SHI_DOWN3 MOV R1,#98H LJMP SHI_YOUBIAO_WRISHI_DOWN3: CJNE R1,#98H,SHI_KEY1 MOV R1,#80HSHI_YOUBIAO_WRI: MOV COM,R1 ;寫游標 LCALL WRI LCALL DELAY MOV COM,#0FH LCALL WRI LCALL DELAY SS1: LJMP SHI_KEY1;返回到主菜單SHI_BACK: ACALL DELAY10 ;延時10毫秒消觸點抖動 JB P2.2,SS1;SHI_KEY1 ;去除干擾信號 JNB P2

41、.2,$ ;等待按鍵松開 LJMP MENU ; 詩歌已選擇,開始閱讀SHI_SURE: ACALL DELAY10 ;延時10毫秒消觸點抖動 JB P2.3,SS1 ;去除干擾信號 JNB P2.3,$ ;等待按鍵松開LCALL CLEAR; 一定要清屏,否則上一層菜單多出來的字也會在這里顯示的 CJNE R1,#80H,SHI_SURE1 MOV DPTR,#DAB1 LCALL PLAY1 LJMP SHI_NEXTSHI_SURE1: CJNE R1,#90H,SHI_SURE2 MOV DPTR,#DAB2 LCALL PLAY1 LJMP SHI_NEXTSHI_SURE2: CJ

42、NE R1,#88H,SHI_SURE3 MOV DPTR,#DAB3 LCALL PLAY1 LJMP SHI_NEXTSHI_SURE3: CJNE R1,#98H,SHI_NEXT MOV DPTR,#DAB4 LCALL PLAY1;閱讀詩歌時的鍵盤掃描SHI_NEXT: NOPSHI_NEXT_KEY: MOV P2,#11111111B MOV A,P2 CLR C SUBB A,#11111110B JZ SHI_NEXT_UP MOV A,P2 CLR C SUBB A,#11111101B JZ SHI_NEXT_DOWN MOV A,P2 CLR C SUBB A,#111

43、11011B JZ SHI_NEXT_BACK LJMP SHI_NEXT_KEY;當正在閱讀詩歌時,可直接按上,下鍵來選擇上一首或下一首SHI_NEXT_UP: ACALL DELAY10 ;延時10毫秒消觸點抖動 JB P2.0,SHI_NEXT_KEY ;去除干擾信號 JNB P2.0,$ ;等待按鍵松開 CJNE R1,#80H,SHI_NEXT_UP1 ;若現(xiàn)在游標的地址為80H,則現(xiàn)在在屏幕上顯示得是第一首詩(DAB1),那么上一幅DAB4 MOV R1,#98H ;通過標記游標的位置來識別現(xiàn)在顯示的是哪一首詩 MOV DPTR,#DAB4 LJMP SHI_WRISHI_NEXT

44、_UP1: CJNE R1,#90H,SHI_NEXT_UP2 MOV R1,#80H MOV DPTR,#DAB1 LJMP SHI_WRISHI_NEXT_UP2: CJNE R1,#88H,SHI_NEXT_UP3 MOV R1,#90H MOV DPTR,#DAB2 LJMP SHI_WRISHI_NEXT_UP3: CJNE R1,#98H,SHI_NEXT_KEY MOV R1,#88H MOV DPTR,#DAB3 LJMP SHI_WRISHI_NEXT_DOWN: ACALL DELAY10 ;延時10毫秒消觸點抖動 JB P2.1,SHI_NEXT_KEY ;去除干擾信號

45、JNB P2.1,$ ;等待按鍵松開 CJNE R1,#80H,SHI_NEXT_DOWN1 MOV R1,#90H MOV DPTR,#DAB2 LJMP SHI_WRISHI_NEXT_DOWN1: CJNE R1,#90H,SHI_NEXT_DOWN2 MOV R1,#88H MOV DPTR,#DAB3 LJMP SHI_WRISHI_NEXT_DOWN2: CJNE R1,#88H,SHI_NEXT_DOWN3 MOV R1,#98H MOV DPTR,#DAB4 LJMP SHI_WRISHI_NEXT_DOWN3: CJNE R1,#98,SHI_NEXT_KEY_J ;超出范圍

46、,不能直接跳到SHI_NEXT_KEY,故先跳到SHI_NEXT_KEY_J MOV R1,#80H MOV DPTR,#DAB1SHI_WRI:LCALL PLAY1SHI_NEXT_KEY_J: LJMP SHI_NEXT_KEY;返回到上一級菜單SHI_NEXT_BACK: ACALL DELAY10 ;延時10毫秒消觸點抖動 JB P2.2,SHI_NEXT_KEY_J ;去除干擾信號 JNB P2.2,$ ;等待按鍵松開 LCALL CLEAR LJMP SHI_MENU_SHOW;圖片程序,與詩歌類似 ;鍵盤掃描SCAN_PIC: MOV R1,#80HPIC_KEY1: MOV

47、P2,#11111111B MOV A,P2 CLR C SUBB A,#11111110B JZ PIC_UP MOV A,P2 CLR C SUBB A,#11111101B JZ PIC_DOWN MOV A,P2 CLR C SUBB A,#11111011B JZ PIC_BACK MOV A,P2CLR CSUBB A,#11110111BJZ PIC_SURELJMP PIC_KEY1;向上選擇圖片PIC_UP: ;確定游標位置ACALL DELAY10 ;延時10毫秒消觸點抖動JB P2.0,PIC_KEY1 ;去除干擾信號JNB P2.0,$ ;等待按鍵松開CJNE R1,#

48、80H,PIC_UP1MOV R1,#98HLJMP PIC_YOUBIAO_WRIPIC_UP1:CJNE R1,#90H,PIC_UP2MOV R1,#80HLJMP PIC_YOUBIAO_WRIPIC_UP2:CJNE R1,#88H,PIC_UP3MOV R1,#90HLJMP PIC_YOUBIAO_WRIPIC_UP3:CJNE R1,#98H,PIC_KEY1MOV R1,#88HLJMP PIC_YOUBIAO_WRI;向上選擇圖片PIC_DOWN: ;確定游標位置ACALL DELAY10 ;延時10毫秒消觸點抖動JB P2.1,PIC_KEY1 ;去除干擾信號JNB P2.1,$ ;等待按鍵松開CJNE R1,#80H,PIC_DOWN1MOV R1,#90HLJMP PIC_YOUBIAO_WRIPIC_DOWN1:CJNE R1,#90H,PIC_DOWN2MOV R1,#88HLJMP PIC_YOUBIAO_WRIPIC_DOWN2:CJNE R1,#88H,PIC_DOWN3MOV R1,#98HLJMP PIC_YOUBIAO_WRIPIC_

溫馨提示

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

評論

0/150

提交評論