版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、畢畢 業(yè)業(yè) 設(shè)設(shè) 計(jì)計(jì)題目 字符液晶顯示 系別 專業(yè) 班級(jí) 姓名 學(xué)號(hào) 指導(dǎo)教師 日期 設(shè)計(jì)任務(wù)書設(shè)計(jì)題目設(shè)計(jì)題目字符液晶顯示設(shè)計(jì)要求設(shè)計(jì)要求1、選用合適的單片機(jī)和液晶顯示模塊來完成顯示功能,畫出硬件電路圖,并編寫相應(yīng)的軟件程序;2、在顯示屏上能顯示“XXXX 等其他的文字和簡單的數(shù)字;3、經(jīng)過延時(shí),能出現(xiàn)第二屏,第三屏等想要的結(jié)果。設(shè)計(jì)進(jìn)度要求:設(shè)計(jì)進(jìn)度要求:第一周:了解題目、弄清題目的要求;第二周:查找相關(guān)書籍,了解各個(gè)元件、軟件的使用方法及注意事項(xiàng);第三周:設(shè)計(jì)硬件原理圖;第四周:設(shè)計(jì)軟件系統(tǒng);第五周:編寫所需程序;第六周:調(diào)試程序并紀(jì)錄相關(guān)的數(shù)據(jù)和錯(cuò)誤;第七周:寫畢業(yè)論文草稿并修改;第
2、八周:畢業(yè)答辯。 指導(dǎo)教師(簽名):指導(dǎo)教師(簽名): 摘 要液晶顯示模塊內(nèi)置的液晶驅(qū)動(dòng)控制器種類繁多,常用的有 SED1520, HD61202U,T6963C 和 SED1335。選用液晶顯示模塊時(shí),根據(jù)現(xiàn)有條件及需求選擇了SED1520 液晶顯示驅(qū)動(dòng)控制器,它集行、列驅(qū)動(dòng)器和控制器于一體、內(nèi)置控制器型字符形液晶顯示驅(qū)動(dòng)控制器。在小規(guī)模字符形液晶顯示模塊上,使用 SED1520 液晶顯示驅(qū)動(dòng)控制器組成液晶顯示驅(qū)動(dòng)和控制系統(tǒng),是低成本、低功耗、高集成的最佳選擇。本設(shè)計(jì)以 ATMEL 公司生產(chǎn)的 MCS-51 系列單片機(jī)中的 AT89S51 芯片為核心,在內(nèi)置 SED1520 122X32 L
3、CD 液晶顯示屏上顯示出使用者所需要的字符。同時(shí)基于SED1520 控制器的 122X32 型圖形顯示模塊采用間接訪問工作方式與 51 系列的 CPU 相連接。由于 SED1520 內(nèi)沒有自帶的字符庫,所以選用 PCtoLCD2000 字符庫提取字模,用 ASM 程序設(shè)置對(duì)于控制器的讀、寫狀態(tài)的時(shí)序,從而實(shí)現(xiàn)對(duì)于控制器的寫指令代碼、寫數(shù)據(jù)代碼、清屏幕、屏幕翻屏等功能的操作。本設(shè)計(jì)硬件結(jié)構(gòu)簡單,成本低廉,方便硬件的調(diào)試和維護(hù)也很方便。而且軟件設(shè)計(jì)采用模塊化設(shè)計(jì),各部分功能明晰,便于調(diào)試和功能擴(kuò)展。關(guān)鍵詞關(guān)鍵詞:液晶顯示 ,AT89S51 芯片,SED1520 控制器 目目 錄錄1 系統(tǒng)整體設(shè)計(jì)
4、.21.1 設(shè)計(jì)總框圖.21.2 設(shè)計(jì)說明.22 系統(tǒng)硬件電路原理 .42.1 硬件電路圖.42.2 元件選型.42.3 電路介紹.103 系統(tǒng)軟件設(shè)計(jì) .123.1 主程序.123.2 顯示初始化程序.123.3 顯示程序.144 單片機(jī)匯編輔助工具介紹 .194.1 偉福仿真器.194.2 KEILUVISION2 仿真器系統(tǒng)介紹 .194.3 液晶顯示字模使用簡介.195 調(diào)試過程 .215.1 在偉福中的調(diào)試.215.2 在 KEIL中的調(diào)試并連接實(shí)驗(yàn)箱 .22結(jié) 論 .27致 謝 .28參考文獻(xiàn) .29附錄 A:.30附錄 B:.311 1 系統(tǒng)整體設(shè)計(jì)系統(tǒng)整體設(shè)計(jì)1.11.1 設(shè)計(jì)
5、總框圖設(shè)計(jì)總框圖根據(jù)設(shè)計(jì)題目要求選用的主要是 89S51 芯片和內(nèi)置控制器為 SED1520 的液晶顯示屏,總體設(shè)計(jì)共分為 5 個(gè)模塊:使系統(tǒng)恢復(fù)初始狀態(tài)的復(fù)位電路模塊;穩(wěn)定頻率和選擇頻率的晶振電路模塊;延時(shí)電路模塊,儲(chǔ)存系統(tǒng)程序的 AT89S51 芯片以及顯示效果的 LCD 液晶顯示模塊。這 5 個(gè)功能模塊電路組成了我們的設(shè)想。根據(jù)題目要求所設(shè)計(jì)的硬件電路總框圖如下圖 1.1 所示:圖 1.1 硬件電路總框圖1.21.2 設(shè)計(jì)說明設(shè)計(jì)說明根據(jù)設(shè)計(jì)題目對(duì)硬件部分和軟件部分分別進(jìn)行了設(shè)計(jì)。(1)本設(shè)計(jì)采用的是以 AT89S51 芯片為核心,AT89S51 是一個(gè)低功耗,高性能 CMOS 8 位單
6、片機(jī),片內(nèi)含 8k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000 次的 Flash 只讀程序存儲(chǔ)器,器件采用 ATMEL 公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn) MCS-51 指令系統(tǒng)及 80C51 引腳結(jié)構(gòu),芯片內(nèi)集成了通用 8 位中央處理器和 ISP Flash 存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的 AT89S51 可為許多嵌入式控制應(yīng)用系統(tǒng)供給高性價(jià)比的解決方案(2)液晶顯示屏內(nèi)置控制器為 SED1520,點(diǎn)陣為 12232,由 E1、E2 分別選通,控制顯示屏的左右兩半屏。有兩片 SED1520,每片 SED1520 橫向 61 點(diǎn)縱向有 1
7、6 點(diǎn),故兩片 SED1520 可控制橫向 122 點(diǎn),縱向 32 點(diǎn),如果以 1616 點(diǎn)陣字符而言,每行可顯示 7 個(gè)字符,三屏共計(jì) 28 個(gè) 16*16 點(diǎn)陣字符,可顯示 28 個(gè)漢字。兩片SED1520 由 E1、E2 分別選通,控制顯示屏的左右兩半屏。(3)在本次設(shè)計(jì)中采用延時(shí)換屏的功能來實(shí)現(xiàn)翻屏效果,延時(shí)程序的延時(shí)時(shí)間主要與兩個(gè)因素有關(guān):一是所用晶振的頻率,另一個(gè)是延時(shí)程序中循環(huán)次數(shù)。延時(shí)控制一般可以多重循環(huán)來控制。由于每個(gè)指令所花費(fèi)的機(jī)器周期及執(zhí)行時(shí)間是固定的,因此可以經(jīng)過分析執(zhí)行指令數(shù)的多少來計(jì)算所延遲的時(shí)間。指令中規(guī)定晶振為12MHz,單周期指令的執(zhí)行時(shí)間一般為 1us。本設(shè)
8、計(jì)用 AT89S51,石英晶振主頻率11.0592MHz,一個(gè)機(jī)器周期費(fèi)時(shí) 1.085us,所以在程序執(zhí)行中實(shí)際延時(shí)大于計(jì)算值。現(xiàn)實(shí)中,若要實(shí)現(xiàn)延時(shí)的精確性,可以在示波器上調(diào)整來實(shí)現(xiàn)。在本次設(shè)計(jì)中,只需調(diào)延時(shí)即可在實(shí)現(xiàn)在原有的液晶屏上換另一屏文字,即換屏。(4)清屏功能的實(shí)現(xiàn)主要是依靠軟件對(duì)程序的復(fù)位,關(guān)顯示,設(shè)置占空比,正向排序,以及設(shè)置起始行和再開顯示的程序來實(shí)現(xiàn)。2 2 系統(tǒng)硬件電路原理系統(tǒng)硬件電路原理2.12.1 硬件電路圖硬件電路圖根據(jù)題目和設(shè)計(jì)要求我設(shè)計(jì)的電路圖如圖 2.1 所示:圖 2.1 硬件電路圖2.22.2 元件選型元件選型2.2.12.2.1 AT89S51AT89S51
9、 芯片芯片AT89S51 是一個(gè)低功耗,高性能 CMOS 8 位單片機(jī),片內(nèi)含 8k Bytes ISP(In-system programmable)的可反復(fù)擦寫 1000 次的 Flash 只讀程序存儲(chǔ)器,器件采用ATMEL 公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn) MCS-51 指令系統(tǒng)及80C51 引腳結(jié)構(gòu),芯片內(nèi)集成了通用 8 位中央處理器和 ISP Flash 存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的 AT89S51 可為許多嵌入式控制應(yīng)用系統(tǒng)供給高性價(jià)比的解決方案。1、AT89S51 芯片管腳圖如下圖 2.2 所示:圖 2.2 AT89S51 芯片管腳圖AT89S51 芯片主要特性:
10、 與 MCS-51 兼容 8k Bytes Flash 片內(nèi)程序存儲(chǔ)器 壽命:1000 寫/擦循環(huán) 全靜態(tài)工作:0Hz-24MHz 三級(jí)程序存儲(chǔ)器鎖定 128 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM) 32 個(gè)外部雙向輸入/輸出(I/O)口 2 個(gè) 16 位可編程定時(shí)計(jì)數(shù)器 2 個(gè)全雙工串行通信口 5 個(gè)中斷優(yōu)先級(jí) 2 層中斷嵌套中斷 可編程串行通道 看門狗(WDT)電路 片內(nèi)時(shí)鐘振蕩器2管腳說明:VCC:供電電壓。GND:接地P0 口:P0 口為一個(gè) 8 位雙向 I/O 口,P0K 口可驅(qū)動(dòng) 8 個(gè) LSTTL 門.P1 口:P1 口是一個(gè) 8 位雙向 I/O 口,P1 口可驅(qū)動(dòng) 4 個(gè)
11、LSTTL 門電流。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 RST 腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在平時(shí),ALE 端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè) ALE 脈沖。如想禁止 ALE 的輸出可在 SFR8EH 地址上置 0。此時(shí), ALE 只有在執(zhí)行 MOVX,MOVC 指令是 ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ALE 禁止,置位無效。XTAL1:反向
12、振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。2.2.22.2.2 SED1520SED1520 液晶顯示器液晶顯示器SED1520 液晶顯示驅(qū)動(dòng)器是一種點(diǎn)陣圖形式液晶顯示驅(qū)動(dòng)器,它可直接與 8 位微處理器相連,集行、列驅(qū)動(dòng)器于一體,因此使用起來十分方便,作為內(nèi)藏式控制器被廣泛應(yīng)用于點(diǎn)陣數(shù)較少的液晶顯示模塊。SED1520 液晶顯示器的特性有(1) 內(nèi)部顯示 RAM 容量為 2560b。其每一位數(shù)據(jù)控制液晶屏上一點(diǎn)的亮滅狀態(tài)?!?”表示亮,“0”表示暗;(2)具有 16 個(gè)行驅(qū)動(dòng)輸出和 61 個(gè)列驅(qū)動(dòng)輸出;(3)可直接與 80 系列微處理器相連,亦可直接與 68
13、系列微處理器相連;(4)驅(qū)動(dòng)占空比為 1/16 或 1/32;(5)可以與 SED1520 級(jí)聯(lián)使用,以便擴(kuò)展行、列驅(qū)動(dòng)能力。2模塊電路特性SED1520 系列屬于行、列驅(qū)動(dòng)及控制合一的液晶顯示驅(qū)動(dòng)控制器,模塊的接口定義如下表所示:序號(hào)符號(hào)狀態(tài)功能:1Vcc-邏輯電源正,2GND-邏輯電源地,3V0-液晶顯示驅(qū)動(dòng)電源,4RES-復(fù)位,5E1 輸入主工作方式 IC 的使用信號(hào),6E2 輸入從工作方式 IC 的使用信號(hào),7R/W 輸入讀/寫選擇信號(hào),8A0 輸入寄存器選擇信號(hào),9DB0 三態(tài)數(shù)據(jù)總線(最低位) ,10DB1 三態(tài)數(shù)據(jù)總線,11DB2 三態(tài)數(shù)據(jù)總線,12DB3 三態(tài)數(shù)據(jù)總線,13DB
14、4 三態(tài)數(shù)據(jù)總線,14DB5 三態(tài)數(shù)據(jù)總線,15DB6 三態(tài)數(shù)據(jù)總線,16DB7 三態(tài)數(shù)據(jù)總線(最高位) 。3SED1520 控制指令要使內(nèi)置 SED1520 圖形液晶是顯示模塊還需要了解其軟件特性,即 SED1520 的指令功能,才能很好的應(yīng)用內(nèi)置 SED1520 圖形液晶顯示模塊。SED1520 指令一覽表如下表 2.1 所示:表 2.1SED1520 控制指令控制信號(hào)控制代碼指令名稱A0 R/WD7 D6 D5 D4 D3 D2 D1 D0復(fù)位0 01 1 1 0 0 0 1 0顯示開關(guān)設(shè)置0 01 0 1 0 1 1 1 DI地址排序設(shè)置0 01 0 1 0 0 0 0 A休閑狀態(tài)設(shè)置
15、0 01 0 1 0 0 1 0 S占空比設(shè)置0 01 0 1 0 1 0 0 DU顯示起始行設(shè)置0 01 1 0 L4 L3 L2 L1 L0頁面地址設(shè)置0 01 0 1 1 1 0 P1 P2列地址設(shè)置0 00 C6 C5 C4 C3 C2 C1 C0啟動(dòng)改寫方式0 01 1 1 0 0 0 0 0結(jié)束改寫方式0 01 1 1 0 1 1 1 0讀取狀態(tài)字0 1BUSY ADC ON/OFF RESET 0 0 0 0寫顯示數(shù)據(jù)1 0數(shù)據(jù)讀顯示數(shù)據(jù)1 1數(shù)據(jù)SED1520 的 13 條指令從作用上可以分為兩大類:一類為顯示方式的設(shè)置指令,前六條指令為這一類指令,它們只需在初始化程序中寫入一
16、次就可以了。另一類為顯示數(shù)據(jù)讀/寫操作的指令,從第七條往下(包括狀態(tài)字)都是這類指令,它們需要經(jīng)常地使用。下面詳細(xì)結(jié)實(shí)各個(gè)命令的功能:(1)復(fù)位格式(Reset)11100010OE2H該指令用于實(shí)現(xiàn) SED1520 的軟件復(fù)位。該指令執(zhí)行時(shí),顯示起始行寄存器清零,接著列地址指針清零,之后頁地址寄存器置為”3” 。 (2)休閑狀態(tài) 設(shè)置(Statis drive ON/OFF)1010010S0A4H/0A5H該指令是休閑狀態(tài)的軟件開關(guān),當(dāng) S=1 時(shí),SED1520 進(jìn)入休閑狀態(tài);當(dāng) S=0 時(shí),SED1520 將中止或退出休閑狀態(tài)。 (3)占空比設(shè)置(Slect duty) 1010100
17、DUOA8H/0A9H該指令用于設(shè)置 SED1520 的占空比,Du=0 時(shí)為 1/16 占空比,Du 為 1 時(shí)為 1/32占空比。(4)ADC 選擇指令(Selet ADC)1010000AOAOH/OA1H該指令用于設(shè)置顯示存儲(chǔ)器中單元的地址所對(duì)應(yīng)的顯示驅(qū)動(dòng)輸出的順序。A=0 時(shí),順時(shí)針顯示;A=1 時(shí),逆時(shí)針顯示。(5)顯示起始行設(shè)置(Display start line)110L4L3L2L1L0OCOH/ODFH(6)顯示開/關(guān)設(shè)置(Display ON/OFF)1010111DIOAEH/OAFH該指令控制著顯示驅(qū)動(dòng)器的輸出。當(dāng) Di=0 時(shí),顯示關(guān),當(dāng) Di=1 時(shí),顯示開。(
18、7)頁面顯示存儲(chǔ)的設(shè)置101110P1P20B8H/0BBHSED1520 將顯示存儲(chǔ)器分為 4 個(gè)頁面(0-3 頁) 。每個(gè)頁面都有 80 個(gè)字節(jié)。頁面管理可由 2 位頁地址寄存器控制,該指令就是設(shè)置頁地址寄存器的內(nèi)容,以選擇相應(yīng)的顯示寄存器的頁面。P=0-3,對(duì)應(yīng)代表 0-3 頁。(8)列地址設(shè)置(Set column(segment)address)0C6C5C4C3C2C1C000H4FHSED1520 的顯示存儲(chǔ)器的每個(gè)頁面上都有 80 個(gè)字節(jié),每個(gè)字節(jié)中的 8 位數(shù)據(jù)都對(duì)應(yīng)著顯示屏上同一列的 8 點(diǎn)行。列地址指針就是管理這 80 個(gè)字節(jié)書單元的。列地址指針是一個(gè) 7 位加一記數(shù)器。
19、由它和頁地址寄存器組合唯一指定了顯示存儲(chǔ)器的某一單元。列地址指針在計(jì)算機(jī)讀顯示存儲(chǔ)器的每次操作后都將自動(dòng)加一。該指令就是設(shè)置列地址指針內(nèi)容的。CY=04FH,對(duì)應(yīng)有盡有 180 單元的地址。(9)寫數(shù)據(jù)該操作將 8 位數(shù)據(jù)寫入由先前已確定的顯示存儲(chǔ)器地址的單元內(nèi),操作結(jié)束時(shí)將列地址指針加一。(10)讀數(shù)據(jù)該操作將當(dāng)前頁地址寄存器和列地址指針組合確定的顯示存儲(chǔ)器地址的內(nèi)容讀出來,操作結(jié)束時(shí)將列地址指針加一。2.32.3 電路介紹電路介紹2.3.12.3.1 復(fù)位電路復(fù)位電路單片機(jī)復(fù)位是使 CPU 和系統(tǒng)中的其他功能部件都處在一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作,例如復(fù)位后 PC0000H,使
20、單片機(jī)從第-個(gè)單元取指令。無論是在單片機(jī)剛開始接上電源時(shí),還是斷電后或者發(fā)生故障后都要復(fù)位,所以我們必須弄清楚 MCS-51 型單片機(jī)復(fù)位的條件、復(fù)位電路和復(fù)位后狀態(tài)。單片機(jī)復(fù)位的條件是:必須使 RST/Vpd 或 RST 引腳(9)加上持續(xù)兩個(gè)機(jī)器周期(即 24 個(gè)振蕩周期)的高電平。例如,若時(shí)鐘頻率為 12MHz,每機(jī)器周期為1us,則只需 2us 以上時(shí)間的高電平,在 RST 引腳出現(xiàn)高電平后的第二個(gè)機(jī)器周期執(zhí)行復(fù)位。本次設(shè)計(jì)用的的復(fù)位電路如圖 2.3 所示:圖 2.3 復(fù)位電路2.3.22.3.2 晶振電路晶振電路1晶體振蕩器的作用:石英晶體振蕩器也稱石英晶體諧振器,它用來穩(wěn)定頻率和選
21、擇頻率,是一種可以取代 LC 諧振回路的晶體諧振元件。 2本設(shè)計(jì)所用的晶體振蕩電路如圖 2.4 所示: C133PC233PY112MHzX1X2圖 2.4 晶體振蕩電路此晶振電路所選用的石英晶振頻率為 12MHZ。時(shí)鐘周期就是單片機(jī)外接晶振的倒數(shù),例如 12M 的晶振,它的時(shí)間周期就是1/12us) ,是計(jì)算機(jī)中最基本的、最小的時(shí)間單位。在一個(gè)時(shí)鐘周期內(nèi),CPU 僅完成一個(gè)最基本的動(dòng)作。對(duì)于某種單片機(jī),若采用了 1MHZ 的時(shí)鐘頻率,則時(shí)鐘周期為 1us;若采用 4MHZ 的時(shí)鐘頻率,則時(shí)鐘周期為 250us。由于時(shí)鐘脈沖是計(jì)算機(jī)的基本工作脈沖,它控制著計(jì)算機(jī)的工作節(jié)奏(使計(jì)算機(jī)的每一步都統(tǒng)
22、一到它的步調(diào)上來) 。顯然,對(duì)同一種機(jī)型的計(jì)算機(jī),時(shí)鐘頻率越高,計(jì)算機(jī)的工作速度就越快。但是,由于不同的計(jì)算機(jī)硬件電路和器件的不完全相同,所以其所需要的時(shí)鐘周頻率范圍也不一定相同。我們學(xué)習(xí)的51 系列單片機(jī)的時(shí)鐘范圍是 1.2MHz-12MHz。3 3 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì)3.13.1 主程序主程序如圖所示,程序開始運(yùn)行后,要對(duì)液晶顯示進(jìn)行初始化。初始化后清屏,為輸出數(shù)據(jù)做準(zhǔn)備。然后調(diào)用中文顯示程序,在顯示屏上顯示數(shù)據(jù)。如果有延時(shí)的話,程序會(huì)進(jìn)行相應(yīng)處理。如此循環(huán)。主程序框圖如下圖 3.1 所示:圖 3.1 主程序框圖3.23.2 顯示初始化程序顯示初始化程序在液晶顯示信息之前,必須先對(duì)液
23、晶進(jìn)行初始化。初始化的流程如下圖 3.2所示:圖 3.2 顯示初始化程序程序如下:-初始化程序INIT: MOV COM,#0E2H ;復(fù)位 LCALL PR0 LCALL PR3 MOV COM,#0A4H ;關(guān)閉休閉狀態(tài) LCALL PR0 LCALL PR3 MOV COM,#0A9H ;設(shè)置 1/32 占空比 LCALL PR0 LCALL PR3 MOV COM,#0A0H ;正向排序設(shè)置 LCALL PR0 LCALL PR3 MOV COM,#0C0H ;設(shè)置顯示起始行為第一行 LCALL PR0 LCALL PR3 MOV COM,#0AFH ;開顯示設(shè)置 LCALL PR0
24、LCALL PR3 RET;-清屏程序3.33.3 顯示顯示程序程序如下圖 3.3 所示,程序運(yùn)行至中文顯示程序時(shí),會(huì)在中文字庫中查找字符碼并計(jì)算字模地址。然后設(shè)置顯示屏的頁地址。在計(jì)算一列的位置后,程序依次從字庫中調(diào)出一列字模的數(shù)據(jù)輸出到顯示屏上,直到這一頁寫完為止。寫完一頁后,程序會(huì)調(diào)用換屏程序。換屏程序進(jìn)行清屏,然后繼續(xù)依次調(diào)一列字模數(shù)據(jù)輸出到顯示屏上,直到寫完這一頁。程序可以不停運(yùn)行,可以調(diào)用延時(shí)來控制。圖 3.3 程序總體流程圖比如要顯示一個(gè)“燕”字。它的字庫是:DB 044H,044H,044H,0F4H,004H,0DFH,054H,054HDB 054H,0DFH,004H,0
25、E4H,044H,064H,044H,000HDB 042H,062H,039H,003H,008H,033H,062H,002HDB 0AH,033H,060H,001H,0AH,032H,063H,000H 要在液晶屏上顯示出來,要執(zhí)行下面的程序:AAA: MOV A,#0D8H ;顯示起始行為第16行MOV COM,A ;COM是指令寄存器 通過COM寫指令LCALL PR0 ;調(diào)用寫指令代碼子程序LCALL PR1 ;調(diào)用寫數(shù)據(jù)子程序MOV CTEMP,#0 ;列初值MOV PAGE_,#01H ;頁面是第一頁MOV A,CTEMP ;設(shè)置這個(gè)字要從哪一列顯示,這里是從00H就是0列A
26、DD A,#00H MOV COLUMN,AMOV CODE_,#00H ;CODE是字符代碼寄存器,寫入要顯示字符的位置,00H是第0個(gè)字符,也就是首字符LCALL CCW_PR ; 調(diào)用中文顯示子程序;;-中文顯示子程序CCW_PR: MOV DPTR,#CCTAB ;確定字符字模塊首地址MOV A,CODE_ ;取代碼MOV B,#20H ;字模塊寬度為32個(gè)字節(jié)MUL AB ;代碼32ADD A,DPL ;字符字模塊首地址MOV DPL,A ;字模庫首地址代碼32MOV A,BADDC A,DPHMOV DPH,APUSH COLUMN ;列地址入棧PUSH COLUMN ;列地址入棧
27、MOV CODE_,#00H ;代碼寄存器借用為間址寄存器CCW_1: MOV COUNT,#10H ;計(jì)數(shù)器設(shè)置為16MOV A,PAGE_ ;讀頁地址寄存器ANL A,#03HORL A,#0B8H ;”或”頁地址設(shè)置代碼MOV COM,A ;寫頁地址設(shè)置指令LCALL PR0LCALL PR3POP COLUMN ;取到地址值MOV A,COLUMN ;讀列地址寄存器CLR CSUBB A,#PD1 ;列地址減模塊參數(shù)JC CCW_2 ;0為左半屏顯示區(qū)域(E1)MOV COLUMN,A ;0為右半屏顯示區(qū)域(E2)MOV A,PAGE_SETB ACC.3 ;設(shè)置區(qū)域標(biāo)志位。MOV P
28、AGE_,A ;”0”為E1, ”1”為E2CCW_2: MOV COM,COLUMN ;設(shè)置列地址值MOV A,PAGE_ ;判區(qū)域標(biāo)志以確定設(shè)置哪個(gè)控制器JNB ACC.3,CCW_3LCALL PR3 ;區(qū)域E2LJMP CCW_4CCW_3: LCALL PR0 ;區(qū)域E1CCW_4: MOV A,CODE_ ;取間址寄存器值MOVC A,A+DPTR ;取漢字字模數(shù)據(jù)MOV DAT,A ;寫數(shù)據(jù)MOV A,PAGE_JNB ACC.3,CCW_5LCALL PR4 ;區(qū)域E2LJMP CCW_6CCW_5: LCALL PR1 ;區(qū)域E1CCW_6: INC CODE_ ;間址寄存器
29、加一INC COLUMN ;列地址寄存器加一MOV A,COLUMN ;判列地址是否超出區(qū)域范圍CJNE A,#PD1,CCW_7CCW_7: JC CCW_8 ;未超出則繼續(xù)MOV A,PAGE_ ;超出則判是否在區(qū)域E2JB ACC.3,CCW_8 ;在區(qū)域E2則退出SETB ACC.3 ;在區(qū)域E1則修改成區(qū)域E2MOV PAGE_,AMOV COM,#00H ;設(shè)置區(qū)域E2列地址為”0”LCALL PR3CCW_8: DJNZ COUNT,CCW_4 ;當(dāng)頁循環(huán)MOV A,PAGE_ ;讀頁地址寄存器JB ACC.7,CCW_9 ;判完成標(biāo)志D7位, ”1”則完成退出INC A ;否則
30、頁地址加一SETB ACC.7 ;置完成位為”1”CLR ACC.3MOV PAGE_,AMOV CODE_,#10H ;間址寄存器設(shè)置為16LJMP CCW_1 ;大循環(huán)CCW_9: RET執(zhí)行完著一段后,整個(gè)“燕”字就顯示出來了。4 4 單片機(jī)匯編輔助工具介紹單片機(jī)匯編輔助工具介紹4.14.1 偉福仿真?zhèn)ジ7抡孳浖浖?偉福仿真軟件是一種完全脫離硬件信真器情況,對(duì)軟件進(jìn)行模擬仿真執(zhí)行的軟件.其開發(fā)環(huán)境的項(xiàng)目文件包括仿真器設(shè)置、模塊文件、包含文件。仿真器設(shè)置包括仿真器類型、仿真頭(POD)類型、CPU 類型、顯示格式和產(chǎn)生的目標(biāo)文件類型。在此設(shè)計(jì)中,運(yùn)用偉福仿真軟件先將原程序輸入,經(jīng)編譯成功
31、的,再進(jìn)行下載,仿真運(yùn)行,調(diào)試沒有錯(cuò)誤后,存儲(chǔ)到一固定盤下。這是軟件調(diào)試的一種方法。4.24.2 Keiluvision2Keiluvision2 仿真軟件系統(tǒng)介紹仿真軟件系統(tǒng)介紹KeiluVision2 是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的 MCS51 架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還是一個(gè)標(biāo)準(zhǔn)的Windows 應(yīng)用程序,集成了 C51 編譯器、A51 匯編器、L51 連接器、實(shí)時(shí)操作系統(tǒng)、項(xiàng)目管理器及調(diào)試器等,可以完成編輯、編譯、鏈接、調(diào)試及仿真等整個(gè)開發(fā)流程,可以用 IDE 編輯 C 或匯編源文件。它的界面和常用的微軟 VC+的界面相似,界面友好
32、,易學(xué)易用,在調(diào)試程序,在本設(shè)計(jì)中應(yīng)用于軟件仿真方面。4.34.3 液晶顯示字模使用簡介液晶顯示字模使用簡介我用到的字模提取工具是由網(wǎng)上免費(fèi)提供下載的版本為 PCtoLCD2002 版的字模提取器。它簡單、方便,可以按照你想要的顯示順序進(jìn)行字模提取。界面采用新的字體,不會(huì)再有黑色粗體字,比以前的要漂亮多了。加入全面的提示幫助,盡量減少用戶的各種疑惑。修正生成字模數(shù)據(jù)的一些格式 BUG,現(xiàn)在生成的 C51 格式字模數(shù)據(jù)基本上可以直接粘貼到源程序中使用而不需要修改了。加入新的字模數(shù)據(jù)格式調(diào)整項(xiàng),允許用戶更自由的定制自己需要的數(shù)據(jù)格式。全面支持保存當(dāng)前設(shè)置功能,用戶設(shè)置的字模格式,主窗口狀態(tài)和字庫生
33、成窗口選項(xiàng)信息均可保存,下一次打開窗口時(shí)不用重新設(shè)置(由于要全面更改程序使用的變量結(jié)構(gòu),所以這部分化了很多時(shí)間) 。增加輸出緊湊格式數(shù)據(jù)選項(xiàng),可以生成不包含空白行的字模數(shù)據(jù)。完善了每行數(shù)據(jù)顯示個(gè)數(shù)的功能,可以任意設(shè)置每行顯示的數(shù)據(jù)個(gè)數(shù),并同時(shí)可以設(shè)置每行索引數(shù)據(jù)顯示個(gè)數(shù)?,F(xiàn)在當(dāng)用戶選擇 10 進(jìn)制輸出時(shí),會(huì)自動(dòng)去掉生成字模數(shù)據(jù)前的“0 x,或后面的“H”,選擇 16 進(jìn)制時(shí)則會(huì)自動(dòng)加上。對(duì)各個(gè)窗體重新設(shè)計(jì)以全面適應(yīng)最大化的需要,如果您覺得當(dāng)前窗口不夠大,可以最大化使用。增加生成英文點(diǎn)陣字庫功能,可自動(dòng)生成 ASCII 碼從 0-127 的任意點(diǎn)陣字庫,使用方法同生成國標(biāo)點(diǎn)陣字庫功能。再次優(yōu)化代
34、碼,去掉各種調(diào)試信息,使程序速度再快一些。 工具界面如下圖 4.1 所示:圖 4.1 工具界面及設(shè)置5 5 調(diào)試過程調(diào)試過程 5.15.1 在偉福中的調(diào)試在偉福中的調(diào)試經(jīng)過多天的思考和對(duì)資料的查閱終于把程序給編了出來,但是不知編的程序是否能通過調(diào)試,于是我通過偉福仿真軟件和 Keil 軟件來驗(yàn)證程序。首先打開偉福仿真軟件的界面,對(duì)仿真器的參數(shù)值進(jìn)行設(shè)置。其設(shè)置如圖 5.1 所示:圖 5.1 仿真器的選擇我所選的是 8751 的仿真器,在目標(biāo)生成文件中選擇生成 BIN 和 HEX 文件(即二進(jìn)制和十六進(jìn)制文件) ,設(shè)置完成后點(diǎn)“好”就可以了。然后在偉福里面輸入我們的程序進(jìn)行調(diào)試,剛開始有好幾處錯(cuò)
35、誤我們的程序沒有通過編譯,然后我就查找錯(cuò)誤的所在,一一更改之后終于通過編譯,其運(yùn)行結(jié)果如圖 5.2 所示:圖 5.2 編譯通過后的界面5.25.2 在在 KeilKeil 中的調(diào)試并連接實(shí)驗(yàn)箱中的調(diào)試并連接實(shí)驗(yàn)箱5.2.15.2.1 打開項(xiàng)目打開項(xiàng)目在偉福內(nèi)調(diào)試通過以后,再在 Keil 中下載到實(shí)驗(yàn)箱上進(jìn)行驗(yàn)證,顯現(xiàn)出所要求的效果。而在 Keil 中也要進(jìn)行一些參數(shù)的設(shè)置,首先打開 Keil 仿真軟件,首先要新建一個(gè)項(xiàng)目,點(diǎn)菜單 ProjectNew Project,在彈出的對(duì)話框中選擇保存的路徑并輸入項(xiàng)目名稱“yan ”后保存,然后在彈出新的項(xiàng)目窗口中選擇參數(shù),其參數(shù)的設(shè)置如下,由于我們使用
36、的是 Atmel 公司的芯片,所以要選 Atmel 后確定。如圖5.3 所示:圖 5.3 打開項(xiàng)目 5.2.25.2.2 設(shè)置芯片設(shè)置芯片在彈出的對(duì)話框中選擇 AT89C51 這個(gè)芯片,確定。如圖 5.4 所示:圖 5.4 設(shè)置芯片5.2.35.2.3 設(shè)置參數(shù)值設(shè)置參數(shù)值所設(shè)置的參數(shù)值如圖 5.5 所示:圖 5.5 設(shè)置參數(shù)5.2.45.2.4 設(shè)置頻率設(shè)置頻率在 Xtal 中輸入頻率為 11.0592MHZ,然后再選 Debug 這個(gè)標(biāo)簽,選中第二個(gè) Use復(fù)選框后點(diǎn)擊 Setting 在彈出的對(duì)話框中選擇 Baudrate 這一項(xiàng),設(shè)置它的參數(shù)為38400。如圖 5.6 所示:圖 5.6
37、 設(shè)置頻率5.2.55.2.5 編譯編譯把以上的參數(shù)設(shè)置完成以后把程序添加進(jìn)來編譯,編譯通過后接上實(shí)驗(yàn)箱進(jìn)行驗(yàn)證,在實(shí)驗(yàn)箱上顯示的效果圖如 5.7 所示:效果圖 5.5.2.6 調(diào)試過程出現(xiàn)的錯(cuò)誤: 1、在偉福仿真軟件中出現(xiàn)的錯(cuò)誤如下圖:2、程序編譯正確后,在試驗(yàn)箱上沒有出現(xiàn)應(yīng)有的效果;3、出現(xiàn)顯示的漢字從中間顯示不在最前端顯示 ;4、顯示屏上出現(xiàn)亂碼。如何修改:1、經(jīng)仔細(xì)察看,發(fā)現(xiàn)把中文顯示字庫的代碼“0” (零)打成“o”(英文的 o)2、察看試驗(yàn)箱發(fā)現(xiàn)接線出現(xiàn)了錯(cuò)誤,重新接線,出現(xiàn)了想要的效果;3、E1、E2 的接線接反;修改后實(shí)現(xiàn)正確;4、在查找字符代碼的時(shí)候沒有修改選項(xiàng),經(jīng)過修改顯示
38、屏上顯示正確的,想要的漢字。 結(jié)結(jié) 論論本次設(shè)計(jì)的字符液晶顯示,它所要實(shí)現(xiàn)的功能如下:系統(tǒng)上電后,開始執(zhí)行程序。顯示程序執(zhí)行后,首先第一屏幕顯示“濟(jì)源職業(yè)技術(shù)學(xué)” ;過 2 秒后第二屏顯示“院電技零五零二” ;再過 2 秒第三屏顯示“劉春燕” 。這次設(shè)計(jì)得到了想要的結(jié)果,但美中不足的一點(diǎn)是沒有顯示滾屏效果,僅用了延時(shí)程序?qū)崿F(xiàn)換屏。如果選用更好的單片機(jī),可以組成更具有抗干擾和性能可靠性的產(chǎn)品,其抗干擾能里雖然不如 PLC,但 PLC 價(jià)格昂貴,用單片機(jī)運(yùn)行效果仍然令人滿意,同時(shí)證明了本方案的正確。這種液晶顯示可以用來作廣告牌,公共場合的提示牌,若加以改善,會(huì)有更大的發(fā)展空間。效果圖如下:致致 謝
39、謝畢業(yè)設(shè)計(jì)就要結(jié)束了,在這期間,我感到自己的收獲是非常大的,使我在專業(yè)技能、團(tuán)隊(duì)協(xié)作等很多方面都有了很大的提高。首先,非常感謝張?jiān)伱防蠋熢谶@次設(shè)計(jì)過程中給予我悉心的指導(dǎo)與幫助。其次,感謝同學(xué)們對(duì)我的支持,在我進(jìn)行資料查找時(shí),是他們給了我信心和方向!在整個(gè)畢業(yè)設(shè)計(jì)中,用到了很多以前所學(xué)的知識(shí)。尤其是電子線路 CAD 和單片機(jī)課程。張老師還教給了我們遇到問題,如何去分析問題、解決問題的方法,使我們受益匪淺。從接受課題到現(xiàn)在完成畢業(yè)設(shè)計(jì)論文,我得到了張老師精心的指導(dǎo)和同學(xué)們的無微幫助,尤其是在課題設(shè)計(jì)的前期準(zhǔn)備工作和設(shè)計(jì)的過程中,導(dǎo)師提出了許許多多寶貴的設(shè)計(jì)意見,同學(xué)們也都準(zhǔn)備資料,積極討論。在最后
40、的論文修改過程中張老師還在百忙之中,抽出時(shí)間為我們提供了必要的指導(dǎo)和幫助。這使得我們能夠順利的完成畢業(yè)設(shè)計(jì)工作,在短暫的兩個(gè)月的相處時(shí)間里,張老師淵博的知識(shí)、干練的工作作風(fēng)給我留下了深刻的印象,這對(duì)我不久的工作,起到很大的鼓動(dòng)作用,使我終身受益,謹(jǐn)此向老師表達(dá)我衷心的感謝和崇高的敬意!總之,我的設(shè)計(jì)是老師和同學(xué)共同完成的結(jié)果,在設(shè)計(jì)的兩個(gè)月里,我們合作的非常愉快,教會(huì)了我許多道理,是我人生的一筆財(cái)富,我再次向給予我?guī)椭睦蠋熀屯瑢W(xué)表示感謝!感謝濟(jì)源職業(yè)技術(shù)學(xué)院的各位老師三年來對(duì)我們的教育,感謝學(xué)院能我們提供這次非常好的學(xué)習(xí)實(shí)踐機(jī)會(huì)!參考文獻(xiàn)參考文獻(xiàn)1 何立民主編.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京航空航
41、天大學(xué)出版社 20002 胡漢才編.單片機(jī)原理及其接口技術(shù). 清華大學(xué)出版社, 20013 梅麗鳳,王艷秋編.單片機(jī)原理及接口技術(shù),清華大學(xué)出版社4 李廣弟,朱月秀,王秀山 . 單片機(jī)基礎(chǔ) 2001.7 5 周航慈單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù).北京航空航天大學(xué)出版社 , 2002.16 鄒振春.MCS-51 系列單片機(jī)及接口技術(shù).北京:機(jī)械工業(yè)出版社,19997 王幸之,鐘愛琴.AT89 系列單片機(jī)原理與接口技術(shù).北京:北京航空大學(xué)出版社,20048 董國增.單片機(jī)接口及應(yīng)用實(shí)驗(yàn)和訓(xùn)練指導(dǎo).北京:機(jī)械工業(yè)出版社,19999 劉和平,劉躍 單片機(jī)原理及應(yīng)用。重慶:重慶大學(xué)出版社 200410 李傳軍
42、單片機(jī)原理及應(yīng)用。鄭州:河南科學(xué)技術(shù)出版社 2006附錄附錄 A A: 附錄附錄 B:A0 EQU P3.4 ;寄存器選擇信號(hào)R_W EQU P3.5 ;讀_寫選擇信號(hào)E1 EQU P3.6 ;使能信號(hào) 1E2 EQU P3.7 ;使能信號(hào) 2PD1 EQU 3DH ;122/2 分左右兩半屏 122*32COLUMN EQU 30H ;列地址寄存器(063)PAGE_ EQU 31H ;頁地址寄存器 d1,d0:頁地址CODE_ EQU 32H ;計(jì)數(shù)器COUNT EQU 33HDIR EQU 34HCTEMP EQU 38HCOM EQU 20H ;指令寄存器DAT EQU 21H ;數(shù)據(jù)
43、寄存器ORG 0000HLJMP MAINORG 000BHLJMP INITORG 0030H;-初始化程序INIT: MOV COM,#0E2H ;復(fù)位 LCALL PR0 LCALL PR3 MOV COM,#0A4H ;關(guān)閉休閉狀態(tài) LCALL PR0 LCALL PR3 MOV COM,#0A9H ;設(shè)置 1/32 占空比 LCALL PR0 LCALL PR3 MOV COM,#0A0H ;正向排序設(shè)置 LCALL PR0 LCALL PR3 MOV COM,#0C0H ;設(shè)置顯示起始行為第一行 LCALL PR0 LCALL PR3 MOV COM,#0AFH ;開顯示設(shè)置 LC
44、ALL PR0 LCALL PR3 RET ;-清屏程序CLEAR: MOV R4,#00H ;頁面地址暫存器設(shè)置 CLEAR1: MOV A,R4 ;取頁地址值 ORL A,#0B8H ;或頁面地址設(shè)置代碼 MOV COM,A ;頁面地址設(shè)置 LCALL PR0 LCALL PR3 MOV COM,#00H ;列地址設(shè)置為0 LCALL PR0 LCALL PR3 MOV R3,#50H ;一頁清 80 個(gè)字節(jié)CLEAR2: MOV DAT,#00H ;顯示數(shù)據(jù)為0 LCALL PR1 LCALL PR4 DJNZ R3,CLEAR2 ;頁內(nèi)字節(jié)清零循環(huán) INC R4 CJNE R4,#04
45、H,CLEAR1 ;RAM 區(qū)清零循環(huán) RETPR0: CLR A0 ;AO0SETB R_W ;R_W1PR01: MOV P1,#0FFH ;P1 口置1SETB E1 ;E11MOV A,P1 ;讀狀態(tài)字CLR E1 ;E10JB ACC.7,PR01 ;判忙標(biāo)志為0,否再讀CLR R_W ;R_W0MOV P1,COM ;寫指令代碼SETB E1 ;E11CLR E1 ;E10RET;-寫顯示數(shù)據(jù)子程序(E1)PR1: CLR A0 ;A00SETB R_W ;R_W1PR11: MOV P1,#0FFH ;P1 口置1SETB E1 ;E11MOV A,P1 ;讀狀態(tài)字CLR E1
46、;E10JB ACC.7,PR11 ;判忙標(biāo)志為0否,否再讀SETB A0 ;A01CLR R_W ;R_W0MOV P1,DAT ;寫數(shù)據(jù)SETB E1 ;E11CLR E1 ;E10RET;-讀顯示數(shù)據(jù)子程序(E1)PR2: CLR A0 ;A0 0SETB R_W ;R_W1PR21: MOV P1,#0FFH ;P1 口置1SETB E1 ;E11MOV A,P1 ;讀狀態(tài)字CLR E1 ;E10JB ACC.7,PR21 ;判忙標(biāo)志為0否,否再讀SETB A0 ;A01MOV P1, #0FFH ;P1 口置1SETB E1 ;E11MOV DAT,P1 ;讀數(shù)據(jù)CLR E1 ;E1
47、0RET;-寫指令代碼子程序(E2)PR3: CLR A0 ;A0 0SETB R_W ;R_W1PR31: MOV P1,#0FFH ;P1 口置1SETB E2 ;E11MOV A,P1 ;讀狀態(tài)字CLR E2 ;E10JB ACC.7,PR31 ;判忙標(biāo)志為0,否再讀CLR R_W ;R_W0MOV P1,COM ;寫指令代碼SETB E2 ;E11CLR E2 ;E10RET;-寫顯示數(shù)據(jù)子程序(E2)PR4: CLR A0 ;A00SETB R_W ;R_W1PR41: MOV P1,#0FFH ;P1 口置1SETB E2 ;E11MOV A,P1 ;讀狀態(tài)字CLR E2 ;E10
48、JB ACC.7,PR41 ;判忙標(biāo)志為0否,否再讀SETB A0 ;A01CLR R_W ;R_W0MOV P1,DAT ;寫數(shù)據(jù)SETB E2 ;E11CLR E2 ;E10RET;-讀顯示數(shù)據(jù)子程序(E2)PR5: CLR A0 ;A0 0SETB R_W ;R_W1PR51: MOV P1,#0FFH ;P1 口置1SETB E2 ;E21MOV A,P1 ;讀狀態(tài)字CLR E2 ;E20JB ACC.7,PR51 ;判忙標(biāo)志為0否,否再讀SETB A0 ;A01MOV P1, #0FFH ;P1 口置1SETB E2 ;E21MOV DAT,P1 ;讀數(shù)據(jù)CLR E2 ;E20RET
49、;-中文顯示子程序CCW_PR: MOV DPTR,#CCTAB ;定字符字模塊首地址 MOV A,CODE_ ;代碼 MOV B,#20H ;模塊寬度為 32 個(gè)字節(jié) MUL AB ;字符模塊首地址 ADD A,DPL ;字模庫首地址+代碼*32 MOV DPL,A MOV A,B ADDC A,DPH MOV DPH,A PUSH COLUMN ;列地址入棧 PUSH COLUMN ;列地址入棧 MOV CODE_,#00H ;代碼寄存器借用為間址寄存器CCW_1: MOV COUNT,#10H ;計(jì)數(shù)器設(shè)置為 16 MOV A,PAGE_ ;讀頁地址寄存器 ANL A,#03H ORL
50、A,#0B8H ;或頁地址設(shè)置代碼 MOV COM,A ;寫頁地址設(shè)置指令 LCALL PR0 LCALL PR3 POP COLUMN ;取到地址值 MOV A,COLUMN ;讀列地址寄存器 CLR C SUBB A,#PD1 ;列地址減模塊參數(shù) JC CCW_2 ;0 為左半屏顯示區(qū)域(E1) MOV COLUMN,A ;0 為右半屏顯示區(qū)域(E2) MOV A,PAGE_ SETB ACC.3 ;設(shè)置區(qū)域標(biāo)志位。 MOV PAGE_,A ;0為 E1,1為 E2CCW_2: MOV COM,COLUMN ;設(shè)置列地址值 MOV A,PAGE_ ;判區(qū)域標(biāo)志以確定設(shè)置哪個(gè)控制器 JNB
51、ACC.3,CCW_3 LCALL PR3 ;區(qū)域 E2 LJMP CCW_4CCW_3: LCALL PR0 ;區(qū)域 E1CCW_4: MOV A,CODE_ ;取間址寄存器值 MOVC A,A+DPTR ;取漢字字模數(shù)據(jù) MOV DAT,A ;寫數(shù)據(jù) MOV A,PAGE_ JNB ACC.3,CCW_5 LCALL PR4 ;區(qū)域 E2 LJMP CCW_6CCW_5: LCALL PR1 ;區(qū)域 E1CCW_6: INC CODE_ ;間址寄存器加一 INC COLUMN ;列地址寄存器加一 MOV A,COLUMN ;判列地址是否超出區(qū)域范圍 CJNE A,#PD1,CCW_7CCW
52、_7: JC CCW_8 ;未超出則繼續(xù) MOV A,PAGE_ ;超出則判是否在區(qū)域 E2 JB ACC.3,CCW_8 ;在區(qū)域 E2 則退出 SETB ACC.3 ;在區(qū)域 E1 則修改成區(qū)域 E2 MOV PAGE_,A MOV COM,#00H ;設(shè)置區(qū)域 E2 列地址為0 LCALL PR3CCW_8: DJNZ COUNT,CCW_4 ;當(dāng)頁循環(huán) MOV A,PAGE_ ;讀頁地址寄存器 JB ACC.7,CCW_9 ;判完成標(biāo)志 D7 位,1則完成退出 INC A ;否則頁地址加一 SETB ACC.7 ;置完成位為1 CLR ACC.3 MOV PAGE_,A MOV COD
53、E_,#10H ;間址寄存器設(shè)置為 16 LJMP CCW_1 ;大循環(huán)CCW_9: RET-第一屏DCW_PR: MOV DPTR,#CCTAB1 MOV A,CODE_ MOV B,#20H MUL AB ADD A,DPL MOV DPL,A MOV A,B ADDC A,DPH MOV DPH,A PUSH COLUMN PUSH COLUMN MOV CODE_,#00HDCW_1: MOV COUNT,#10H MOV A,PAGE_ ANL A,#03H ORL A,#0B8H MOV COM,A LCALL PR0 LCALL PR3 POP COLUMN MOV A,COLU
54、MN CLR C SUBB A,#PD1 JC DCW_2 MOV COLUMN,A MOV A,PAGE_ SETB ACC.3 MOV PAGE_,ADCW_2: MOV COM,COLUMN MOV A,PAGE_ JNB ACC.3,DCW_3 LCALL PR3 LJMP DCW_4DCW_3: LCALL PR0DCW_4: MOV A,CODE_ MOVC A,A+DPTR MOV DAT,A MOV A,PAGE_ JNB ACC.3,DCW_5 LCALL PR4 LJMP CCW_6DCW_5: LCALL PR1DCW_6: INC CODE_ INC COLUMN MO
55、V A,COLUMN CJNE A,#PD1,DCW_7DCW_7: JC DCW_8 MOV A,PAGE_ JB ACC.3,DCW_8 SETB ACC.3 MOV PAGE_,A MOV COM,#00H LCALL PR3DCW_8: DJNZ COUNT,DCW_4 MOV A,PAGE_ JB ACC.7,DCW_9 INC A SETB ACC.7 CLR ACC.3 MOV PAGE_,A MOV CODE_,#10H LJMP DCW_1DCW_9: RET-第二屏ECW_PR: MOV DPTR,#CCTAB2 MOV A,CODE_ MOV B,#20H MUL AB
56、ADD A,DPL MOV DPL,A MOV A,B ADDC A,DPH MOV DPH,A PUSH COLUMN PUSH COLUMN MOV CODE_,#00HECW_1: MOV COUNT,#10H MOV A,PAGE_ ANL A,#03H ORL A,#0B8H MOV COM,A LCALL PR0 LCALL PR3 POP COLUMN MOV A,COLUMN CLR C SUBB A,#PD1 JC ECW_2 MOV COLUMN,A MOV A,PAGE_ SETB ACC.3 MOV PAGE_,AECW_2: MOV COM,COLUMN MOV A,
57、PAGE_ JNB ACC.3,ECW_3 LCALL PR3 LJMP ECW_4ECW_3: LCALL PR0ECW_4: MOV A,CODE_ MOVC A,A+DPTR MOV DAT,A MOV A,PAGE_ JNB ACC.3,ECW_5 LCALL PR4 LJMP ECW_6ECW_5: LCALL PR1ECW_6: INC CODE_ INC COLUMN MOV A,COLUMN CJNE A,#PD1,ECW_7ECW_7: JC ECW_8 MOV A,PAGE_ JB ACC.3,ECW_8 SETB ACC.3 MOV PAGE_,A MOV COM,#00
58、H LCALL PR3ECW_8: DJNZ COUNT,ECW_4 MOV A,PAGE_ JB ACC.7,ECW_9 INC A SETB ACC.7 CLR ACC.3 MOV PAGE_,A MOV CODE_,#10H LJMP ECW_1ECW_9: Ret-第三屏CCTAB:DB 010H,061H,006H,0C0H,030H,084H,084H,04CHDB 055H,026H,054H,04CH,084H,084H,084H,000HDB 004H,004H,0FEH,001H,080H,040H,030H,00FHDB 000H,000H,000H,0FFH,000H,
59、000H,000H,000H ;濟(jì)DB 010H,021H,006H,0E0H,000H,0FEH,002H,0F2HDB 05AH,056H,052H,052H,052H,0F2H,002H,000HDB 004H,0FCH,003H,040H,030H,00FH,020H,011HDB 04DH,081H,07FH,001H,005H,009H,030H,000H ;源DB 002H,002H,0FEH,092H,092H,0FEH,002H,000HDB 0FEH,082H,082H,082H,082H,0FEH,000H,000HDB 010H,010H,00FH,008H,008H,
60、0FFH,004H,044HDB 021H,01CH,008H,000H,004H,009H,030H,000H ;職DB 000H,010H,060H,080H,000H,0FFH,000H,000HDB 000H,0FFH,000H,080H,060H,038H,010H,000HDB 020H,020H,020H,023H,021H,03FH,020H,020HDB 020H,03FH,022H,021H,020H,030H,020H,000H ;業(yè)DB 008H,008H,088H,0FFH,048H,028H,000H,0C8HDB 048H,048H,07FH,048H,0C8H,
溫馨提示
- 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國表面肌電測試系統(tǒng)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國一次鋰亞硫酰氯電池行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國動(dòng)態(tài)圖像粒度粒形分析系統(tǒng)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2023年全球及中國無人駕駛接駁小巴行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025小飯店員工的勞動(dòng)合同范本
- 出境旅游合同書
- 2025辦公室裝修合同書集錦
- 房產(chǎn)股權(quán)轉(zhuǎn)讓合同
- 存量房買賣合同合同范本
- 陸路貨物運(yùn)輸合同承運(yùn)人定義年
- 2023學(xué)年度第一學(xué)期高三英語備課組工作總結(jié)
- 臨建標(biāo)準(zhǔn)化圖集新版
- 安監(jiān)人員考核細(xì)則(2篇)
- 生活老師培訓(xùn)資料課件
- 2020年新概念英語第一冊lesson97-102單元檢測
- 腹主動(dòng)脈瘤(護(hù)理業(yè)務(wù)學(xué)習(xí))
- 注射用醋酸亮丙瑞林微球
- 大學(xué)生就業(yè)指導(dǎo)PPT(第2版)全套完整教學(xué)課件
- 家具安裝工培訓(xùn)教案優(yōu)質(zhì)資料
- 湖南大一型抽水蓄能電站施工及質(zhì)量創(chuàng)優(yōu)匯報(bào)
- envi二次開發(fā)素材包-idl培訓(xùn)
評(píng)論
0/150
提交評(píng)論