2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業(yè) 設(shè) 計</p><p> 題目字符液晶顯示 </p><p> 系別</p><p> 專業(yè)</p><p> 班級</p><p> 姓名</p><p> 學(xué)號</p><p> 指導(dǎo)教師

2、</p><p> 日期</p><p><b>  設(shè)計任務(wù)書</b></p><p><b>  設(shè)計題目</b></p><p><b>  字符液晶顯示</b></p><p><b>  設(shè)計要求</b></p>

3、;<p>  1、選用合適的單片機和液晶顯示模塊來完成顯示功能,畫出硬件電路圖,并編寫相應(yīng)的軟件程序;</p><p>  2、在顯示屏上能顯示“XXXX等其他的文字和簡單的數(shù)字;</p><p>  3、經(jīng)過延時,能出現(xiàn)第二屏,第三屏……等想要的結(jié)果。</p><p><b>  設(shè)計進度要求:</b></p>&

4、lt;p>  第一周:了解題目、弄清題目的要求;</p><p>  第二周:查找相關(guān)書籍,了解各個元件、軟件的使用方法及注意事項;</p><p>  第三周:設(shè)計硬件原理圖;</p><p>  第四周:設(shè)計軟件系統(tǒng);</p><p>  第五周:編寫所需程序;</p><p>  第六周:調(diào)試程序并紀錄相關(guān)

5、的數(shù)據(jù)和錯誤;</p><p>  第七周:寫畢業(yè)論文草稿并修改;</p><p><b>  第八周:畢業(yè)答辯。</b></p><p>  指導(dǎo)教師(簽名): </p><p><b>  摘 要</b></p><p>  液晶顯示模塊內(nèi)置的

6、液晶驅(qū)動控制器種類繁多,常用的有SED1520, HD61202U,T6963C和SED1335。選用液晶顯示模塊時,根據(jù)現(xiàn)有條件及需求選擇了SED1520液晶顯示驅(qū)動控制器,它集行、列驅(qū)動器和控制器于一體、內(nèi)置控制器型字符形液晶顯示驅(qū)動控制器。在小規(guī)模字符形液晶顯示模塊上,使用SED1520液晶顯示驅(qū)動控制器組成液晶顯示驅(qū)動和控制系統(tǒng),是低成本、低功耗、高集成的最佳選擇。</p><p>  本設(shè)計以ATMEL

7、公司生產(chǎn)的MCS-51系列單片機中的AT89S51芯片為核心,在內(nèi)置SED1520 122X32 LCD液晶顯示屏上顯示出使用者所需要的字符。同時基于SED1520控制器的122X32型圖形顯示模塊采用間接訪問工作方式與51系列的CPU相連接。由于SED1520內(nèi)沒有自帶的字符庫,所以選用PCtoLCD2000字符庫提取字模,用ASM程序設(shè)置對于控制器的讀、寫狀態(tài)的時序,從而實現(xiàn)對于控制器的寫指令代碼、寫數(shù)據(jù)代碼、清屏幕、屏幕翻屏等功能

8、的操作。</p><p>  本設(shè)計硬件結(jié)構(gòu)簡單,成本低廉,方便硬件的調(diào)試和維護也很方便。而且軟件設(shè)計采用模塊化設(shè)計,各部分功能明晰,便于調(diào)試和功能擴展。</p><p>  關(guān)鍵詞:液晶顯示 ,AT89S51芯片,SED1520控制器 </p><p><b>  目 錄</b></p><p>  1 系統(tǒng)整體設(shè)計

9、2</p><p>  1.1 設(shè)計總框圖2</p><p>  1.2 設(shè)計說明2</p><p>  2 系統(tǒng)硬件電路原理4</p><p>  2.1 硬件電路圖4</p><p>  2.2 元件選型4</p><p>  2.3 電路介紹10</p><

10、;p>  3 系統(tǒng)軟件設(shè)計12</p><p>  3.1 主程序12</p><p>  3.2 顯示初始化程序12</p><p>  3.3顯示程序14</p><p>  4 單片機匯編輔助工具介紹19</p><p>  4.1 偉福仿真器19</p><p> 

11、 4.2 Keiluvision2仿真器系統(tǒng)介紹19</p><p>  4.3 液晶顯示字模使用簡介19</p><p>  5 調(diào)試過程21</p><p>  5.1 在偉福中的調(diào)試21</p><p>  5.2 在Keil中的調(diào)試并連接實驗箱22</p><p><b>  結(jié) 論2

12、7</b></p><p><b>  致 謝28</b></p><p><b>  參考文獻29</b></p><p><b>  附錄A:30</b></p><p><b>  附錄B:31</b></p>&

13、lt;p><b>  1 系統(tǒng)整體設(shè)計</b></p><p><b>  1.1 設(shè)計總框圖</b></p><p>  根據(jù)設(shè)計題目要求選用的主要是89S51芯片和內(nèi)置控制器為SED1520的液晶顯示屏,總體設(shè)計共分為5個模塊:使系統(tǒng)恢復(fù)初始狀態(tài)的復(fù)位電路模塊;穩(wěn)定頻率和選擇頻率的晶振電路模塊;延時電路模塊,儲存系統(tǒng)程序的AT89S51

14、芯片以及顯示效果的LCD液晶顯示模塊。這5個功能模塊電路組成了我們的設(shè)想。</p><p>  根據(jù)題目要求所設(shè)計的硬件電路總框圖如下圖1.1所示:</p><p>  圖1.1 硬件電路總框圖</p><p><b>  1.2 設(shè)計說明</b></p><p>  根據(jù)設(shè)計題目對硬件部分和軟件部分分別進行了設(shè)計。

15、</p><p> ?。?)本設(shè)計采用的是以AT89S51芯片為核心,AT89S51 是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含8k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單

16、元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)供給高性價比的解決方案</p><p>  (2)液晶顯示屏內(nèi)置控制器為SED1520,點陣為122х32,由E1、E2分別選通,控制顯示屏的左右兩半屏。有兩片SED1520,每片SED1520橫向61點縱向有16點,故兩片SED1520可控制橫向122點,縱向32點,如果以16×16點陣字符而言,每行可顯示7個字符,三屏共計28個16*

17、16點陣字符,可顯示28個漢字。兩片SED1520由E1、E2分別選通,控制顯示屏的左右兩半屏。</p><p>  (3)在本次設(shè)計中采用延時換屏的功能來實現(xiàn)翻屏效果,延時程序的延時時間主要與兩個因素有關(guān):一是所用晶振的頻率,另一個是延時程序中循環(huán)次數(shù)。延時控制一般可以多重循環(huán)來控制。由于每個指令所花費的機器周期及執(zhí)行時間是固定的,因此可以經(jīng)過分析執(zhí)行指令數(shù)的多少來計算所延遲的時間。指令中規(guī)定晶振為12MHz,

18、單周期指令的執(zhí)行時間一般為1us。本設(shè)計用AT89S51,石英晶振主頻率11.0592MHz,一個機器周期費時1.085us,所以在程序執(zhí)行中實際延時大于計算值?,F(xiàn)實中,若要實現(xiàn)延時的精確性,可以在示波器上調(diào)整來實現(xiàn)。</p><p>  在本次設(shè)計中,只需調(diào)延時即可在實現(xiàn)在原有的液晶屏上換另一屏文字,即換屏。</p><p>  (4)清屏功能的實現(xiàn)主要是依靠軟件對程序的復(fù)位,關(guān)顯示,設(shè)

19、置占空比,正向排序,以及設(shè)置起始行和再開顯示的程序來實現(xiàn)。</p><p>  2 系統(tǒng)硬件電路原理</p><p><b>  2.1 硬件電路圖</b></p><p>  根據(jù)題目和設(shè)計要求我設(shè)計的電路圖如圖2.1所示:</p><p><b>  圖2.1硬件電路圖</b></p>

20、;<p><b>  2.2 元件選型</b></p><p>  2.2.1 AT89S51芯片</p><p>  AT89S51 是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含8k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制

21、造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)供給高性價比的解決方案。</p><p>  1、AT89S51芯片管腳圖如下圖2.2所示:</p><p>  圖2.2 AT89S51芯片管腳圖</p><p>  AT89S51芯片主要

22、特性:</p><p><b>  與MCS-51兼容</b></p><p>  8k Bytes Flash片內(nèi)程序存儲器</p><p>  壽命:1000寫/擦循環(huán)</p><p>  全靜態(tài)工作:0Hz-24MHz</p><p><b>  三級程序存儲器鎖定</b&g

23、t;</p><p>  128 bytes的隨機存取數(shù)據(jù)存儲器(RAM)</p><p>  32個外部雙向輸入/輸出(I/O)口</p><p>  2個16位可編程定時計數(shù)器</p><p>  2個全雙工串行通信口</p><p><b>  5個中斷優(yōu)先級</b></p>

24、<p><b>  2層中斷嵌套中斷</b></p><p><b>  可編程串行通道</b></p><p>  看門狗(WDT)電路</p><p><b>  片內(nèi)時鐘振蕩器</b></p><p><b>  2.管腳說明:</b>&l

25、t;/p><p><b>  VCC:供電電壓。</b></p><p><b>  GND:接地</b></p><p>  P0口:P0口為一個8位雙向I/O口,P0K口可驅(qū)動8個LSTTL門.</p><p>  P1口:P1口是一個8位雙向I/O口,P1口可驅(qū)動4個LSTTL門電流。</p

26、><p>  RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p>  ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE

27、的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩器的輸出。</p><p>  2.2.2 SED1520液晶顯示器&l

28、t;/p><p>  SED1520液晶顯示驅(qū)動器是一種點陣圖形式液晶顯示驅(qū)動器,它可直接與8位微處理器相連,集行、列驅(qū)動器于一體,因此使用起來十分方便,作為內(nèi)藏式控制器被廣泛應(yīng)用于點陣數(shù)較少的液晶顯示模塊。</p><p>  SED1520液晶顯示器的特性有</p><p>  (1) 內(nèi)部顯示RAM容量為2560b。其每一位數(shù)據(jù)控制液晶屏上一點的亮滅狀態(tài)。“1”

29、表示亮,“0”表示暗;</p><p>  (2)具有16個行驅(qū)動輸出和61個列驅(qū)動輸出;</p><p>  (3)可直接與80系列微處理器相連,亦可直接與68系列微處理器相連;</p><p>  (4)驅(qū)動占空比為1/16或1/32;</p><p>  (5)可以與SED1520級聯(lián)使用,以便擴展行、列驅(qū)動能力。</p>

30、<p><b>  2.模塊電路特性</b></p><p>  SED1520系列屬于行、列驅(qū)動及控制合一的液晶顯示驅(qū)動控制器,模塊的接口定義如下表所示:</p><p><b>  序號符號狀態(tài)功能:</b></p><p>  1.Vcc---邏輯電源正,</p><p>  2.

31、GND---邏輯電源地,</p><p>  3.V0---液晶顯示驅(qū)動電源,</p><p>  4.RES---復(fù)位,</p><p>  5.E1輸入主工作方式IC的使用信號,</p><p>  6.E2輸入從工作方式IC的使用信號,</p><p>  7.R/W輸入讀/寫選擇信號,</p>&

32、lt;p>  8.A0輸入寄存器選擇信號,</p><p>  9.DB0三態(tài)數(shù)據(jù)總線(最低位),</p><p>  10.DB1三態(tài)數(shù)據(jù)總線,</p><p>  11.DB2三態(tài)數(shù)據(jù)總線,</p><p>  12.DB3三態(tài)數(shù)據(jù)總線,</p><p>  13.DB4三態(tài)數(shù)據(jù)總線,</p>

33、<p>  14.DB5三態(tài)數(shù)據(jù)總線,</p><p>  15.DB6三態(tài)數(shù)據(jù)總線,</p><p>  16.DB7三態(tài)數(shù)據(jù)總線(最高位)。</p><p>  3.SED1520控制指令</p><p>  要使內(nèi)置SED1520圖形液晶是顯示模塊還需要了解其軟件特性,即SED1520的指令功能,才能很好的應(yīng)用內(nèi)置SED152

34、0圖形液晶顯示模塊。SED1520指令一覽表如下表2.1所示:</p><p>  表2.1SED1520控制指令</p><p>  SED1520的13條指令從作用上可以分為兩大類:一類為顯示方式的設(shè)置指令,前六條指令為這一類指令,它們只需在初始化程序中寫入一次就可以了。另一類為顯示數(shù)據(jù)讀/寫操作的指令,從第七條往下(包括狀態(tài)字)都是這類指令,它們需要經(jīng)常地使用。下面詳細結(jié)實各個命令的

35、功能:</p><p>  (1)復(fù)位格式(Reset)</p><p><b>  OE2H</b></p><p>  該指令用于實現(xiàn)SED1520的軟件復(fù)位。該指令執(zhí)行時,顯示起始行寄存器清零,接著列地址指針清零,之后頁地址寄存器置為”3”。 </p><p><b> ?。?)休閑狀態(tài) </b&g

36、t;</p><p>  設(shè)置(Statis drive ON/OFF)</p><p><b>  0A4H/0A5H</b></p><p>  該指令是休閑狀態(tài)的軟件開關(guān),當S=1時,SED1520進入休閑狀態(tài);當S=0時,SED1520將中止或退出休閑狀態(tài)。 </p><p> ?。?)占空

37、比設(shè)置(Slect duty) </p><p><b>  OA8H/0A9H</b></p><p>  該指令用于設(shè)置SED1520的占空比,Du=0時為1/16占空比,Du為1時為1/32占空比。</p><p> ?。?)ADC選擇指令(Selet ADC)</p><p><b>  OAOH/OA

38、1H</b></p><p>  該指令用于設(shè)置顯示存儲器中單元的地址所對應(yīng)的顯示驅(qū)動輸出的順序。A=0時,順時針顯示;A=1時,逆時針顯示。</p><p>  (5)顯示起始行設(shè)置(Display start line)</p><p><b>  OCOH/ODFH</b></p><p> ?。?)顯

39、示開/關(guān)設(shè)置(Display ON/OFF)</p><p><b>  OAEH/OAFH</b></p><p>  該指令控制著顯示驅(qū)動器的輸出。當Di=0時,顯示關(guān),當Di=1時,顯示開。</p><p>  (7)頁面顯示存儲的設(shè)置</p><p><b>  0B8H/0BBH</b>&

40、lt;/p><p>  SED1520將顯示存儲器分為4個頁面(0-3頁)。每個頁面都有80個字節(jié)。頁面管理可由2位頁地址寄存器控制,該指令就是設(shè)置頁地址寄存器的內(nèi)容,以選擇相應(yīng)的顯示寄存器的頁面。P=0-3,對應(yīng)代表0-3頁。</p><p> ?。?)列地址設(shè)置(Set column(segment)address)</p><p><b>  00H~4

41、FH</b></p><p>  SED1520的顯示存儲器的每個頁面上都有80個字節(jié),每個字節(jié)中的8位數(shù)據(jù)都對應(yīng)著顯示屏上同一列的8點行。列地址指針就是管理這80個字節(jié)書單元的。列地址指針是一個7位加一記數(shù)器。由它和頁地址寄存器組合唯一指定了顯示存儲器的某一單元。列地址指針在計算機讀顯示存儲器的每次操作后都將自動加一。該指令就是設(shè)置列地址指針內(nèi)容的。CY=0~4FH,對應(yīng)有盡有1~80單元的地址。&

42、lt;/p><p><b> ?。?)寫數(shù)據(jù)</b></p><p>  該操作將8位數(shù)據(jù)寫入由先前已確定的顯示存儲器地址的單元內(nèi),操作結(jié)束時將列地址指針加一。</p><p><b> ?。?0)讀數(shù)據(jù)</b></p><p>  該操作將當前頁地址寄存器和列地址指針組合確定的顯示存儲器地址的內(nèi)容讀出

43、來,操作結(jié)束時將列地址指針加一。</p><p><b>  2.3 電路介紹</b></p><p>  2.3.1 復(fù)位電路</p><p>  單片機復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復(fù)位后PC=0000H,使單片機從第-個單元取指令。無論是在單片機剛開始接上電源時,還是斷電后或者發(fā)生

44、故障后都要復(fù)位,所以我們必須弄清楚MCS-51型單片機復(fù)位的條件、復(fù)位電路和復(fù)位后狀態(tài)。</p><p>  單片機復(fù)位的條件是:必須使RST/Vpd或RST引腳(9)加上持續(xù)兩個機器周期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12MHz,每機器周期為1us,則只需2us以上時間的高電平,在RST引腳出現(xiàn)高電平后的第二個機器周期執(zhí)行復(fù)位。本次設(shè)計用的的復(fù)位電路如圖2.3所示:</p><

45、;p><b>  圖2.3復(fù)位電路</b></p><p>  2.3.2 晶振電路</p><p>  1.晶體振蕩器的作用:石英晶體振蕩器也稱石英晶體諧振器,它用來穩(wěn)定頻率和選擇頻率,是一種可以取代LC諧振回路的晶體諧振元件。 </p><p>  2.本設(shè)計所用的晶體振蕩電路如圖2.4所示: </p><p>

46、;  圖2.4 晶體振蕩電路</p><p>  此晶振電路所選用的石英晶振頻率為12MHZ。</p><p>  時鐘周期就是單片機外接晶振的倒數(shù),例如12M的晶振,它的時間周期就是1/12us),是計算機中最基本的、最小的時間單位。</p><p>  在一個時鐘周期內(nèi),CPU僅完成一個最基本的動作。對于某種單片機,若采用了1MHZ的時鐘頻率,則時鐘周期為1us

47、;若采用4MHZ的時鐘頻率,則時鐘周期為250us。由于時鐘脈沖是計算機的基本工作脈沖,它控制著計算機的工作節(jié)奏(使計算機的每一步都統(tǒng)一到它的步調(diào)上來)。顯然,對同一種機型的計算機,時鐘頻率越高,計算機的工作速度就越快。但是,由于不同的計算機硬件電路和器件的不完全相同,所以其所需要的時鐘周頻率范圍也不一定相同。我們學(xué)習(xí)的51系列單片機的時鐘范圍是1.2MHz-12MHz。</p><p><b>  3

48、 系統(tǒng)軟件設(shè)計</b></p><p><b>  3.1 主程序</b></p><p>  如圖所示,程序開始運行后,要對液晶顯示進行初始化。初始化后清屏,為輸出數(shù)據(jù)做準備。然后調(diào)用中文顯示程序,在顯示屏上顯示數(shù)據(jù)。如果有延時的話,程序會進行相應(yīng)處理。如此循環(huán)。</p><p>  主程序框圖如下圖3.1所示:</p&g

49、t;<p><b>  圖3.1主程序框圖</b></p><p>  3.2 顯示初始化程序</p><p>  在液晶顯示信息之前,必須先對液晶進行初始化。初始化的流程如下圖3.2所示:</p><p>  圖3.2顯示初始化程序</p><p>  程序如下:------------------初始化

50、程序</p><p>  INIT: MOV COM,#0E2H ;復(fù)位</p><p>  LCALL PR0</p><p>  LCALL PR3</p><p>  MOV COM,#0A4H ;關(guān)閉休閉狀態(tài)</p><p>  LCALL PR0</

51、p><p>  LCALL PR3</p><p>  MOV COM,#0A9H ;設(shè)置1/32占空比</p><p>  LCALL PR0</p><p>  LCALL PR3</p><p>  MOV COM,#0A0H ;正向排序設(shè)置</p>&

52、lt;p>  LCALL PR0</p><p>  LCALL PR3</p><p>  MOV COM,#0C0H ;設(shè)置顯示起始行為第一行</p><p>  LCALL PR0</p><p>  LCALL PR3</p><p>  MOV COM,#0A

53、FH ;開顯示設(shè)置</p><p>  LCALL PR0</p><p>  LCALL PR3</p><p><b>  RET</b></p><p>  ;-----------清屏程序</p><p><b>  3.3 顯示程序</b><

54、;/p><p>  如下圖3.3所示,程序運行至中文顯示程序時,會在中文字庫中查找字符碼并計算字模地址。然后設(shè)置顯示屏的頁地址。在計算一列的位置后,程序依次從字庫中調(diào)出一列字模的數(shù)據(jù)輸出到顯示屏上,直到這一頁寫完為止。寫完一頁后,程序會調(diào)用換屏程序。換屏程序進行清屏,然后繼續(xù)依次調(diào)一列字模數(shù)據(jù)輸出到顯示屏上,直到寫完這一頁。程序可以不停運行,可以調(diào)用延時來控制。</p><p>  圖3.3程

55、序總體流程圖</p><p>  比如要顯示一個“燕”字。它的字庫是:</p><p>  DB 044H,044H,044H,0F4H,004H,0DFH,054H,054H</p><p>  DB 054H,0DFH,004H,0E4H,044H,064H,044H,000H</p><p>  DB 042H,062H,039H,00

56、3H,008H,033H,062H,002H</p><p>  DB 0AH,033H,060H,001H,0AH,032H,063H,000H</p><p>  要在液晶屏上顯示出來,要執(zhí)行下面的程序:</p><p>  AAA: MOV A,#0D8H ;顯示起始行為第16行</p><p>  MOV COM,A

57、 ;COM是指令寄存器 通過COM寫指令</p><p>  LCALL PR0 ;調(diào)用寫指令代碼子程序</p><p>  LCALL PR1 ;調(diào)用寫數(shù)據(jù)子程序</p><p>  MOV CTEMP,#0 ;列初值</p><p>  MOV PAGE_,#

58、01H ;頁面是第一頁</p><p>  MOV A,CTEMP ;設(shè)置這個字要從哪一列顯示,這里是從00H就是0列</p><p>  ADD A,#00H </p><p>  MOV COLUMN,A</p><p>  MOV C

59、ODE_,#00H ;CODE是字符代碼寄存器,寫入要顯示字符的位置,00H是第0個字符,也就是首字符</p><p>  LCALL CCW_PR ; 調(diào)用中文顯示子程序;</p><p>  ;-------------中文顯示子程序</p><p><b>  CCW_PR: </b></p><p

60、>  MOV DPTR,#CCTAB ;確定字符字模塊首地址</p><p>  MOV A,CODE_ ;取代碼</p><p>  MOV B,#20H ;字模塊寬度為32個字節(jié)</p><p>  MUL AB ;代碼×32</p>

61、<p>  ADD A,DPL ;字符字模塊首地址</p><p>  MOV DPL,A ;=字模庫首地址+代碼×32</p><p>  MOV A,B</p><p>  ADDC A,DPH</p><p>  MOV DPH,A

62、</p><p>  PUSH COLUMN ;列地址入棧</p><p>  PUSH COLUMN ;列地址入棧</p><p>  MOV CODE_,#00H ;代碼寄存器借用為間址寄存器</p><p>  CCW_1: MOV </p>&

63、lt;p>  COUNT,#10H ;計數(shù)器設(shè)置為16</p><p>  MOV A,PAGE_ ;讀頁地址寄存器</p><p>  ANL A,#03H</p><p>  ORL A,#0B8H ;”或”頁地址設(shè)置代碼</

64、p><p>  MOV COM,A ;寫頁地址設(shè)置指令</p><p>  LCALL PR0</p><p>  LCALL PR3</p><p>  POP COLUMN ;取到地址值</p><p>  MOV

65、A,COLUMN ;讀列地址寄存器</p><p>  CLR C</p><p>  SUBB A,#PD1 ;列地址減模塊參數(shù)</p><p>  JC CCW_2 ;<0為左半屏顯示區(qū)域(E1)</p><p>  MO

66、V COLUMN,A ;≥0為右半屏顯示區(qū)域(E2)</p><p>  MOV A,PAGE_</p><p>  SETB ACC.3 ;設(shè)置區(qū)域標志位。</p><p>  MOV PAGE_,A ;”0”為E1,”1”為E2</p

67、><p><b>  CCW_2: </b></p><p>  MOV COM,COLUMN ;設(shè)置列地址值</p><p>  MOV A,PAGE_ ;判區(qū)域標志以確定設(shè)置哪個控制器</p><p>  JNB ACC.3,CCW_3&l

68、t;/p><p>  LCALL PR3 ;區(qū)域E2</p><p>  LJMP CCW_4</p><p>  CCW_3: LCALL PR0 ;區(qū)域E1</p><p>  CCW_4: MOV A,CODE_ ;取間址寄存器值</

69、p><p>  MOVC A,@A+DPTR ;取漢字字模數(shù)據(jù)</p><p>  MOV DAT,A ;寫數(shù)據(jù)</p><p>  MOV A,PAGE_</p><p>  JNB ACC.3,CCW_5</p><p>  

70、LCALL PR4 ;區(qū)域E2</p><p>  LJMP CCW_6</p><p>  CCW_5: LCALL PR1 ;區(qū)域E1</p><p>  CCW_6: INC CODE_ ;間址寄存器加一</p><p>  INC

71、 COLUMN ;列地址寄存器加一</p><p>  MOV A,COLUMN ;判列地址是否超出區(qū)域范圍</p><p>  CJNE A,#PD1,CCW_7</p><p>  CCW_7: JC CCW_8 ;未超出則繼續(xù)</p>

72、<p>  MOV A,PAGE_ ;超出則判是否在區(qū)域E2</p><p>  JB ACC.3,CCW_8 ;在區(qū)域E2則退出</p><p>  SETB ACC.3 ;在區(qū)域E1則修改成區(qū)域E2</p><p>  MOV PA

73、GE_,A</p><p>  MOV COM,#00H ;設(shè)置區(qū)域E2列地址為”0”</p><p>  LCALL PR3</p><p>  CCW_8: DJNZ COUNT,CCW_4 ;當頁循環(huán)</p><p>  MOV A,PAGE_

74、 ;讀頁地址寄存器</p><p>  JB ACC.7,CCW_9 ;判完成標志D7位,”1”則完成退出</p><p>  INC A ;否則頁地址加一</p><p>  SETB ACC.7 ;置完成位為”1”</p>&l

75、t;p>  CLR ACC.3</p><p>  MOV PAGE_,A</p><p>  MOV CODE_,#10H ;間址寄存器設(shè)置為16</p><p>  LJMP CCW_1 ;大循環(huán)</p><p>  CCW_9: RET

76、</p><p>  執(zhí)行完著一段后,整個“燕”字就顯示出來了。</p><p>  4 單片機匯編輔助工具介紹</p><p>  4.1 偉福仿真軟件 </p><p>  偉福仿真軟件是一種完全脫離硬件信真器情況,對軟件進行模擬仿真執(zhí)行的軟件.其開發(fā)環(huán)境的項目文件包括仿真器設(shè)置、模塊文件、包含文件。仿真器設(shè)置包括仿真器類型、仿真頭(P

77、OD)類型、CPU類型、顯示格式和產(chǎn)生的目標文件類型。在此設(shè)計中,運用偉福仿真軟件先將原程序輸入,經(jīng)編譯成功的,再進行下載,仿真運行,調(diào)試沒有錯誤后,存儲到一固定盤下。這是軟件調(diào)試的一種方法。</p><p>  4.2 Keiluvision2仿真軟件系統(tǒng)介紹</p><p>  KeiluVision2是眾多單片機應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51架構(gòu)的芯片,

78、它集編輯,編譯,仿真等于一體,同時還是一個標準的Windows應(yīng)用程序,集成了C51編譯器、A51匯編器、L51連接器、實時操作系統(tǒng)、項目管理器及調(diào)試器等,可以完成編輯、編譯、鏈接、調(diào)試及仿真等整個開發(fā)流程,可以用IDE編輯C或匯編源文件。它的界面和常用的微軟VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,在本設(shè)計中應(yīng)用于軟件仿真方面。</p><p>  4.3 液晶顯示字模使用簡介</p>

79、<p>  我用到的字模提取工具是由網(wǎng)上免費提供下載的版本為PCtoLCD2002版的字模提取器。它簡單、方便,可以按照你想要的顯示順序進行字模提取。界面采用新的字體,不會再有黑色粗體字,比以前的要漂亮多了。加入全面的提示幫助,盡量減少用戶的各種疑惑。修正生成字模數(shù)據(jù)的一些格式BUG,現(xiàn)在生成的C51格式字模數(shù)據(jù)基本上可以直接粘貼到源程序中使用而不需要修改了。加入新的字模數(shù)據(jù)格式調(diào)整項,允許用戶更自由的定制自己需要的數(shù)據(jù)格式。

80、全面支持保存當前設(shè)置功能,用戶設(shè)置的字模格式,主窗口狀態(tài)和字庫生成窗口選項信息均可保存,下一次打開窗口時不用重新設(shè)置(由于要全面更改程序使用的變量結(jié)構(gòu),所以這部分化了很多時間)。增加輸出緊湊格式數(shù)據(jù)選項,可以生成不包含空白行的字模數(shù)據(jù)。完善了每行數(shù)據(jù)顯示個數(shù)的功能,可以任意設(shè)置每行顯示的數(shù)據(jù)個數(shù),并同時可以設(shè)置每行索引數(shù)據(jù)顯示個數(shù)。現(xiàn)在當用戶選擇10進制輸出時,會自動去掉生成字模數(shù)據(jù)前的“0x",或后面的“H”,選擇16進制時

81、則會自動加上。對各個窗體重新設(shè)計以全面適應(yīng)最大化的需要,如果您覺得當前窗口不夠大,可以最大化使用。增加生成英文點陣字庫功能,可自動生成ASCII碼從0-</p><p>  工具界面如下圖4.1所示:</p><p>  圖4.1 工具界面及設(shè)置</p><p><b>  5 調(diào)試過程 </b></p><p> 

82、 5.1 在偉福中的調(diào)試</p><p>  經(jīng)過多天的思考和對資料的查閱終于把程序給編了出來,但是不知編的程序是否能通過調(diào)試,于是我通過偉福仿真軟件和Keil軟件來驗證程序。首先打開偉福仿真軟件的界面,對仿真器的參數(shù)值進行設(shè)置。其設(shè)置如圖5.1所示:</p><p>  圖5.1仿真器的選擇</p><p>  我所選的是8751的仿真器,在目標生成文件中選擇生成

83、BIN和HEX文件(即二進制和十六進制文件),設(shè)置完成后點“好”就可以了。</p><p>  然后在偉福里面輸入我們的程序進行調(diào)試,剛開始有好幾處錯誤我們的程序沒有通過編譯,然后我就查找錯誤的所在,一一更改之后終于通過編譯,其運行結(jié)果如圖5.2所示:</p><p>  圖5.2編譯通過后的界面</p><p>  5.2 在Keil中的調(diào)試并連接實驗箱</

84、p><p>  5.2.1 打開項目</p><p>  在偉福內(nèi)調(diào)試通過以后,再在Keil中下載到實驗箱上進行驗證,顯現(xiàn)出所要求的效果。而在Keil中也要進行一些參數(shù)的設(shè)置,首先打開Keil仿真軟件,首先要新建一個項目,點菜單Project→New Project,在彈出的對話框中選擇保存的路徑并輸入項目名稱“yan ”后保存,然后在彈出新的項目窗口中選擇參數(shù),其參數(shù)的設(shè)置如下,由于我們使用

85、的是Atmel公司的芯片,所以要選Atmel后確定。如圖5.3所示:</p><p>  圖5.3 打開項目 </p><p>  5.2.2 設(shè)置芯片</p><p>  在彈出的對話框中選擇AT89C51這個芯片,確定。如圖5.4所示:</p><p><b>  圖5.4 設(shè)置芯片</b></p>&

86、lt;p>  5.2.3 設(shè)置參數(shù)值</p><p>  所設(shè)置的參數(shù)值如圖5.5所示:</p><p><b>  圖5.5 設(shè)置參數(shù)</b></p><p>  5.2.4 設(shè)置頻率</p><p>  在Xtal中輸入頻率為11.0592MHZ,然后再選Debug這個標簽,選中第二個Use復(fù)選框后點擊Sett

87、ing在彈出的對話框中選擇Baudrate這一項,設(shè)置它的參數(shù)為38400。</p><p><b>  如圖5.6所示:</b></p><p><b>  圖5.6 設(shè)置頻率</b></p><p><b>  5.2.5 編譯</b></p><p>  把以上的參數(shù)設(shè)置

88、完成以后把程序添加進來編譯,編譯通過后接上實驗箱進行驗證,在實驗箱上顯示的效果圖如5.7所示:</p><p>  效果圖5.5.2.6 調(diào)試過程</p><p><b>  出現(xiàn)的錯誤: </b></p><p>  1、在偉福仿真軟件中出現(xiàn)的錯誤如下圖:</p><p>  2、程序編譯正確后,在試驗箱上沒有出現(xiàn)應(yīng)有

89、的效果;</p><p>  3、出現(xiàn)顯示的漢字從中間顯示不在最前端顯示 ;</p><p>  4、顯示屏上出現(xiàn)亂碼。</p><p><b>  如何修改:</b></p><p>  1、經(jīng)仔細察看,發(fā)現(xiàn)把中文顯示字庫的代碼“0”(零)打成“o”(英文的o)</p><p>  2、察看試驗

90、箱發(fā)現(xiàn)接線出現(xiàn)了錯誤,重新接線,出現(xiàn)了想要的效果;</p><p>  3、E1、E2的接線接反;修改后實現(xiàn)正確;</p><p>  4、在查找字符代碼的時候沒有修改選項,經(jīng)過修改顯示屏上顯示正確的,想要的漢字。</p><p><b>  結(jié) 論</b></p><p>  本次設(shè)計的字符液晶顯示,它所要實現(xiàn)的功能

91、如下:</p><p>  系統(tǒng)上電后,開始執(zhí)行程序。顯示程序執(zhí)行后,首先第一屏幕顯示“濟源職業(yè)技術(shù)學(xué)”;過2秒后第二屏顯示“院電技零五零二”;再過2秒第三屏顯示“劉春燕”。這次設(shè)計得到了想要的結(jié)果,但美中不足的一點是沒有顯示滾屏效果,僅用了延時程序?qū)崿F(xiàn)換屏。如果選用更好的單片機,可以組成更具有抗干擾和性能可靠性的產(chǎn)品,其抗干擾能里雖然不如PLC,但PLC價格昂貴,用單片機運行效果仍然令人滿意,同時證明了本方案的

92、正確。這種液晶顯示可以用來作廣告牌,公共場合的提示牌,若加以改善,會有更大的發(fā)展空間。</p><p><b>  效果圖如下:</b></p><p><b>  致 謝</b></p><p>  畢業(yè)設(shè)計就要結(jié)束了,在這期間,我感到自己的收獲是非常大的,使我在專業(yè)技能、團隊協(xié)作等很多方面都有了很大的提高。</

93、p><p>  首先,非常感謝張詠梅老師在這次設(shè)計過程中給予我悉心的指導(dǎo)與幫助。</p><p>  其次,感謝同學(xué)們對我的支持,在我進行資料查找時,是他們給了我信心和方向!</p><p>  在整個畢業(yè)設(shè)計中,用到了很多以前所學(xué)的知識。尤其是電子線路CAD和單片機課程。張老師還教給了我們遇到問題,如何去分析問題、解決問題的方法,使我們受益匪淺。從接受課題到現(xiàn)在完成畢

94、業(yè)設(shè)計論文,我得到了張老師精心的指導(dǎo)和同學(xué)們的無微幫助,尤其是在課題設(shè)計的前期準備工作和設(shè)計的過程中,導(dǎo)師提出了許許多多寶貴的設(shè)計意見,同學(xué)們也都準備資料,積極討論。在最后的論文修改過程中張老師還在百忙之中,抽出時間為我們提供了必要的指導(dǎo)和幫助。這使得我們能夠順利的完成畢業(yè)設(shè)計工作,在短暫的兩個月的相處時間里,張老師淵博的知識、干練的工作作風(fēng)給我留下了深刻的印象,這對我不久的工作,起到很大的鼓動作用,使我終身受益,謹此向老師表達我衷心的

95、感謝和崇高的敬意!</p><p>  總之,我的設(shè)計是老師和同學(xué)共同完成的結(jié)果,在設(shè)計的兩個月里,我們合作的非常愉快,教會了我許多道理,是我人生的一筆財富,我再次向給予我?guī)椭睦蠋熀屯瑢W(xué)表示感謝!感謝濟源職業(yè)技術(shù)學(xué)院的各位老師三年來對我們的教育,感謝學(xué)院能我們提供這次非常好的學(xué)習(xí)實踐機會!</p><p><b>  參考文獻</b></p><

96、p>  [1] 何立民主編.單片機應(yīng)用系統(tǒng)設(shè)計.北京航空航天大學(xué)出版社 2000</p><p>  [2] 胡漢才編.單片機原理及其接口技術(shù). 清華大學(xué)出版社, 2001</p><p>  [3] 梅麗鳳,王艷秋編.單片機原理及接口技術(shù),清華大學(xué)出版社</p><p>  [4] 李廣弟,朱月秀,王秀山 . 《單片機基礎(chǔ)》 2001.7 </p&

97、gt;<p>  [5] 周航慈《單片機應(yīng)用程序設(shè)計技術(shù)》.北京航空航天大學(xué)出版社 , 2002.1</p><p>  [6] 鄒振春.MCS-51系列單片機及接口技術(shù).北京:機械工業(yè)出版社,1999</p><p>  [7] 王幸之,鐘愛琴.AT89系列單片機原理與接口技術(shù).北京:北京航空大學(xué)出版社,2004</p><p>  [8] 董國增.

98、單片機接口及應(yīng)用實驗和訓(xùn)練指導(dǎo).北京:機械工業(yè)出版社,1999</p><p>  [9] 劉和平,劉躍 單片機原理及應(yīng)用。重慶:重慶大學(xué)出版社 2004</p><p>  [10] 李傳軍 單片機原理及應(yīng)用。鄭州:河南科學(xué)技術(shù)出版社 2006</p><p><b>  附錄A: </b></p><p><b

99、>  附錄B:</b></p><p>  A0 EQU P3.4 ;寄存器選擇信號</p><p>  R_W EQU P3.5 ;讀_寫選擇信號</p><p>  E1 EQU P3.6 ;使能信號

100、1</p><p>  E2 EQU P3.7 ;使能信號2</p><p>  PD1 EQU 3DH ;122/2分左右兩半屏122*32</p><p>  COLUMN EQU 30H ;列地址寄存器(0——63)</p&

101、gt;<p>  PAGE_ EQU 31H ;頁地址寄存器d1,d0:頁地址</p><p>  CODE_ EQU 32H ;計數(shù)器</p><p>  COUNT EQU 33H</p><p>  DIR EQU 34H<

102、;/p><p>  CTEMP EQU 38H</p><p>  COM EQU 20H ;指令寄存器</p><p>  DAT EQU 21H ;數(shù)據(jù)寄存器</p><p>  ORG 0000H</p>&

103、lt;p>  LJMP MAIN</p><p>  ORG 000BH</p><p>  LJMP INIT</p><p>  ORG 0030H</p><p>  ;------------------初始化程序</p><p>  INIT: MOV

104、COM,#0E2H ;復(fù)位</p><p>  LCALL PR0</p><p>  LCALL PR3</p><p>  MOV COM,#0A4H ;關(guān)閉休閉狀態(tài)</p><p>  LCALL PR0</p><p>  LCALL PR3</p&g

105、t;<p>  MOV COM,#0A9H ;設(shè)置1/32占空比</p><p>  LCALL PR0</p><p>  LCALL PR3</p><p>  MOV COM,#0A0H ;正向排序設(shè)置</p><p>  LCALL PR0</p>&

106、lt;p>  LCALL PR3</p><p>  MOV COM,#0C0H ;設(shè)置顯示起始行為第一行</p><p>  LCALL PR0</p><p>  LCALL PR3</p><p>  MOV COM,#0AFH ;開顯示設(shè)置</p><p

107、>  LCALL PR0</p><p>  LCALL PR3</p><p><b>  RET</b></p><p>  ;-----------清屏程序</p><p>  CLEAR: MOV R4,#00H ;頁面地址暫存器設(shè)置</p><p&

108、gt;  CLEAR1: MOV A,R4 ;取頁地址值</p><p>  ORL A,#0B8H ;"或"頁面地址設(shè)置代碼</p><p>  MOV COM,A ;頁面地址設(shè)置</p><p>  LCALL PR0</p><

109、p>  LCALL PR3</p><p>  MOV COM,#00H ;列地址設(shè)置為"0"</p><p>  LCALL PR0</p><p>  LCALL PR3</p><p>  MOV R3,#50H ;一頁清80個字節(jié)</p&g

110、t;<p>  CLEAR2: MOV DAT,#00H ;顯示數(shù)據(jù)為"0"</p><p>  LCALL PR1</p><p>  LCALL PR4</p><p>  DJNZ R3,CLEAR2 ;頁內(nèi)字節(jié)清零循環(huán)</p><p>  INC

111、 R4</p><p>  CJNE R4,#04H,CLEAR1 ;RAM區(qū)清零循環(huán)</p><p><b>  RET</b></p><p>  PR0: CLR A0 ;AO=0</p><p>  SETB R_W

112、 ;R_W=1</p><p>  PR01: MOV P1,#0FFH ;P1口置"1"</p><p>  SETB E1 ;E1=1</p><p>  MOV A,P1 ;讀狀態(tài)

113、字</p><p>  CLR E1 ;E1=0</p><p>  JB ACC.7,PR01 ;判"忙"標志為"0",否再讀</p><p>  CLR R_W ;R_

114、W=0</p><p>  MOV P1,COM ;寫指令代碼</p><p>  SETB E1 ;E1=1</p><p>  CLR E1 ;E1=0</p><p><

115、b>  RET</b></p><p>  ;-------------寫顯示數(shù)據(jù)子程序(E1)</p><p>  PR1: CLR A0 ;A0=0</p><p>  SETB R_W ;R_W=1</p><p>

116、  PR11: MOV P1,#0FFH ;P1口置"1"</p><p>  SETB E1 ;E1=1</p><p>  MOV A,P1 ;讀狀態(tài)字</p><p>  CLR E1

117、 ;E1=0</p><p>  JB ACC.7,PR11 ;判"忙"標志為"0"否,否再讀</p><p>  SETB A0 ;A0=1</p><p>  CLR

118、 R_W ;R_W=0</p><p>  MOV P1,DAT ;寫數(shù)據(jù)</p><p>  SETB E1 ;E1=1</p><p>  CLR E1

119、 ;E1=0</p><p><b>  RET</b></p><p>  ;-------------讀顯示數(shù)據(jù)子程序(E1)</p><p>  PR2: CLR A0 ;A0 =0</p><p>  SETB R_W

120、 ;R_W=1</p><p>  PR21: MOV P1,#0FFH ;P1口置"1"</p><p>  SETB E1 ;E1=1</p><p>  MOV A,P1 ;讀狀態(tài)字</

121、p><p>  CLR E1 ;E1=0</p><p>  JB ACC.7,PR21 ;判"忙"標志為"0"否,否再讀</p><p>  SETB A0 ;A0=1&

122、lt;/p><p>  MOV P1, #0FFH ;P1口置"1"</p><p>  SETB E1 ;E1=1</p><p>  MOV DAT,P1 ;讀數(shù)據(jù)</p><p>  CL

溫馨提示

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

評論

0/150

提交評論