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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  微機(jī)原理與接口技術(shù)</b></p><p><b>  綜合實(shí)踐說明書</b></p><p>  課程名稱:微機(jī)原理與接口技術(shù)綜合實(shí)踐 </p><p>  設(shè)計(jì)題目:液晶顯示器與鍵盤系統(tǒng) </p><p>  院 系:機(jī)電學(xué)院熱能與動(dòng)力工程系 &

2、lt;/p><p>  班 級(jí): 1112 </p><p><b>  設(shè) 計(jì) 者: </b></p><p>  指導(dǎo)教師: </p><p>  設(shè)計(jì)時(shí)間:2013.7.1-2013.7.12 </p><p>  微機(jī)原理與接口技術(shù)綜合實(shí)踐任務(wù)書</p>

3、<p><b>  目錄</b></p><p><b>  一、總體設(shè)計(jì)5</b></p><p>  1.單片機(jī)選型5</p><p><b>  2.按鍵掃描5</b></p><p>  3.1620LCD顯示5</p>&l

4、t;p>  二、主要元件介紹6</p><p>  1.AT89S51概述6</p><p>  1.1 AT89S51主要特征6</p><p>  1.2 管腳說明7</p><p>  1.3 本設(shè)計(jì)中的應(yīng)用8</p><p>  2.1620LCD11</p><p&

5、gt;  2.1 1620LCD概述11</p><p>  2.2 1620LCD控制指令13</p><p>  三、基于PROTEUS的硬件電路設(shè)計(jì)15</p><p>  1.PROTEUS軟件相關(guān)15</p><p>  2.電路組成15</p><p>  2.1復(fù)位電路15</p

6、><p>  2.2時(shí)鐘電路16</p><p>  2.31620LCD顯示電路16</p><p>  2.4按鍵掃描電路17</p><p>  2.5蜂鳴器和發(fā)光二級(jí)管控制電路17</p><p><b>  四、硬件配置18</b></p><p>

7、  1.按鍵掃描程序18</p><p>  2.1620LCD顯示程序20</p><p>  五、電路仿真22</p><p><b>  六、總結(jié)25</b></p><p><b>  七、附件26</b></p><p>  1.電路原理圖2

8、6</p><p><b>  2.源程序26</b></p><p><b>  總體設(shè)計(jì)</b></p><p><b>  單片機(jī)選型</b></p><p>  AT89S51是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。STC

9、89C52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。根據(jù)萬向開關(guān)的的檔位,控制小直流電動(dòng)機(jī)執(zhí)行相應(yīng)的動(dòng)作。</p><p><b>  按鍵掃描</b></p><p>  運(yùn)用P0口第四位進(jìn)行行掃描,高四位進(jìn)行列掃描

10、。循環(huán)判斷,得到按鍵位置。并在相應(yīng)按鍵按下后實(shí)現(xiàn)特定功能:按鍵10按下時(shí),發(fā)光二級(jí)管點(diǎn)亮,按鍵11按下時(shí),發(fā)光二級(jí)管停止亮;按鍵12按下時(shí),蜂鳴器響,按鍵13按下時(shí),蜂鳴器停止響。</p><p>  TS1620-1顯示</p><p>  將按鍵掃描值通過LCD顯示出來,并在LCD上顯示“WELCOM!”及“歡迎?。?!”。</p><p><b>  

11、主要元件介紹</b></p><p><b>  AT89C51概述</b></p><p>  AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦

12、除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。1.1 AT89C51主要特征</p><

13、p>  與MCS-51 兼容</p><p>  ·4K字節(jié)可編程FLASH存儲(chǔ)器</p><p>  ·壽命:1000寫/擦循環(huán)</p><p>  ·數(shù)據(jù)保留時(shí)間:10年</p><p>  ·全靜態(tài)工作:0Hz-24MHz</p><p>  ·三級(jí)程序存儲(chǔ)

14、器鎖定</p><p>  ·128×8位內(nèi)部RAM</p><p>  ·32可編程I/O線</p><p>  ·兩個(gè)16位定時(shí)器/計(jì)數(shù)器</p><p><b>  ·5個(gè)中斷源</b></p><p><b>  ·可編

15、程串行通道</b></p><p>  ·低功耗的閑置和掉電模式</p><p>  ·片內(nèi)振蕩器和時(shí)鐘電路</p><p><b>  。</b></p><p><b>  1.2 管腳說明</b></p><p>  圖1 AT89C51

16、引腳圖</p><p><b>  VCC:供電電壓。</b></p><p><b>  GND:接地。</b></p><p>  P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在F

17、IASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須接上拉電阻。</p><p>  P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為低八位地址接收。</p><

18、;p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器

19、的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如下表所示:&l

20、t;/p><p><b>  口管腳 備選功能</b></p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 /INT0(外部中斷0)</p><p>  P3.3 /INT1(外部中斷1)</p><

21、p>  P3.4 T0(計(jì)時(shí)器0外部輸入)</p><p>  P3.5 T1(計(jì)時(shí)器1外部輸入)</p><p>  P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p>  P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p>  P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p>  

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

23、想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p>  /EA

24、/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩

25、器的輸出。</p><p><b>  振蕩器特性:</b></p><p>  XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p

26、><p>  1.3 本設(shè)計(jì)中的應(yīng)用</p><p>  在本設(shè)計(jì)中,AT89S51是整個(gè)系統(tǒng)的核心。I/O口主要用來連接鍵盤、蜂鳴器、以及控制LCD顯示。P0口用來控制按鍵掃描。其中P1、P2口分別用來連接LCD的數(shù)據(jù)口和命令口;P2.0,2.1用于連接發(fā)光二級(jí)管和蜂鳴器。</p><p><b>  1620LCD</b></p>

27、<p>  2.1 1620LCD概述</p><p>  1620LCD 主要技術(shù)參數(shù):</p><p>  顯示容量:16×2 個(gè)字符</p><p>  芯片工作電壓:4.5—5.5V</p><p>  工作電流:2.0mA(5.0V)</p><p>  模塊最佳工作電壓:5.0V<

28、;/p><p>  字符尺寸:2.95×4.35(W×H)mm</p><p>  引腳功能說明:1620LCD 采用標(biāo)準(zhǔn)的14 腳(無背光)或16 腳(帶背光)接口,引腳接口說明如表一。</p><p>  表一 1620LCD 引腳接口說明</p><p>  第1 腳:VSS 為地電源。</p><p

29、>  第2 腳:VDD 接5V 正電源。</p><p>  第3 腳:VL 為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)</p><p>  比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K 的電位器調(diào)整對(duì)比度。</p><p>  第4 腳:RS 為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p>

30、<p>  第5 腳:R/W 為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS 和R/W</p><p>  共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS 為低電平R/W 為高電平時(shí)可</p><p>  以讀忙信號(hào),當(dāng)RS 為高電平R/W 為低電平時(shí)可以寫入數(shù)據(jù)。</p><p>  第6 腳:E 端為使能端,當(dāng)E 端由高電平跳變成低電平

31、時(shí),液晶模塊執(zhí)行命令。</p><p>  第7~14 腳:D0~D7 為8 位雙向數(shù)據(jù)線。</p><p>  第15 腳:背光源正極。</p><p>  第16 腳:背光源負(fù)極。</p><p>  2.2 1620LCD控制指令</p><p>  1620液晶模塊內(nèi)部的控制器共有11條控制指令,如下表二所示。

32、</p><p>  表二 1620LCD控制指令</p><p>  它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)</p><p>  指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 </p&g

33、t;<p>  S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效</p><p>  指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍</p><p>  指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)

34、移動(dòng)光標(biāo)</p><p>  指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符</p><p>  指令7:字符發(fā)生器RAM地址設(shè)置</p><p>  指令8:DDRAM地址設(shè)置</p><p>  指令9:讀忙信

35、號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。</p><p><b>  指令10:寫數(shù)據(jù)</b></p><p><b>  指令11:讀數(shù)據(jù)</b></p><p>  1620液晶顯示模塊可以和單片機(jī)直接接口。液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一

36、定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。程序在開始時(shí)對(duì)液晶模塊功能進(jìn)行了初始化設(shè)置,約定了顯示格式。</p><p>  基于PROTEUS的硬件電路設(shè)計(jì)</p><p>  PROTEUS軟件相關(guān)</p><p>  Proteus軟件是英國(guó)Labcenter electronics公

37、司出版的EDA工具軟件(該軟件中國(guó)總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)

38、計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。</p><p><b>  電路組成&l

39、t;/b></p><p>  根據(jù)設(shè)計(jì)要求,硬件電路主要包括復(fù)位電路、晶體振蕩電路、LCD顯示電路、按鍵掃描電路以及蜂鳴器和發(fā)光二級(jí)管控制電路。</p><p><b>  復(fù)位電路</b></p><p>  復(fù)位是任何一種微型計(jì)算機(jī)都必須具備的工作方式。復(fù)位操作使單片機(jī)處于一種初始化的狀態(tài)。MCS-51單片機(jī)的RST引腳上出現(xiàn)持續(xù)2

40、4個(gè)振蕩周期的高電平信號(hào)時(shí),單片機(jī)進(jìn)入復(fù)位。通常有上電復(fù)位與人工按鈕復(fù)位兩種方式。本設(shè)計(jì)中采用上電復(fù)位方式。如下圖3所示。</p><p><b>  圖3 上電復(fù)位電路</b></p><p><b>  時(shí)鐘電路</b></p><p>  通常單片機(jī)系統(tǒng)電路的實(shí)際有內(nèi)部時(shí)鐘和外部時(shí)鐘兩種形式,兩種電路都向單片機(jī)提供最

41、基本的振蕩脈沖信號(hào)。本設(shè)計(jì)中的晶體振蕩電路如下圖四所示。</p><p><b>  圖4 晶體振蕩電路</b></p><p>  1620LCD顯示電路</p><p>  1620LCD 采用標(biāo)準(zhǔn)的14 腳(無背光)或16 腳(帶背光)接口。本設(shè)計(jì)中采用14腳LCD。VSS和VDD為電源端和接地端,VEE用于調(diào)整液晶顯示器對(duì)比度。D0~D

42、7為8位雙向數(shù)據(jù)線。電路連接圖如圖五。</p><p>  圖5 LCD顯示電路</p><p><b>  按鍵掃描電路</b></p><p>  設(shè)計(jì)中采用行列式非編碼鍵盤,由行線、列線和鍵盤開關(guān)矩陣3部分組成。在這種鍵盤中,每根行線和列線的交叉處都有一個(gè)按鍵,當(dāng)某個(gè)鍵被按下時(shí),與這個(gè)按鍵相連的行線和列線就會(huì)接通,否者行線和列線不接通。如

43、電路圖6。</p><p><b>  圖6 按鍵掃描電路</b></p><p>  蜂鳴器和發(fā)光二級(jí)管控制電路</p><p><b>  如下圖所示:</b></p><p>  圖7 蜂鳴器和發(fā)光二級(jí)管控制電路</p><p><b>  四、硬件配置<

44、;/b></p><p>  在單片機(jī)的開發(fā)運(yùn)用中,逐漸引入了高級(jí)語言,C語言就是其中一種。在使用匯編語言的過程中,其可讀性和可維護(hù)性不強(qiáng),其次它的代碼可重用性比較低,使用高級(jí)語言編程能很好的解決問題。</p><p>  C語言具有良好的模塊化、容易閱讀和維護(hù)的優(yōu)點(diǎn)。由于模塊化,所以用C語言編寫的程序有很好的可移植性,功能化的代碼能夠很方便地從一個(gè)工程移植到另一個(gè)工程,從而減少開發(fā)

45、時(shí)間。本設(shè)計(jì)將采用C語言編程。</p><p><b>  按鍵掃描程序</b></p><p>  本設(shè)計(jì)中4*4按鍵掃描是一個(gè)難點(diǎn)。按鍵高四位為列,第四位為行。當(dāng)P0.0置為0,判斷第一行是否有鍵按下,如果第一個(gè)鍵被按下,P0.4口變?yōu)榈碗娖?,P0口值變?yōu)?XEE。當(dāng)?shù)诙€(gè)鍵被按下,P0.5口變?yōu)榈碗娖?,P0口值變?yōu)?XDE,以此類推。沒判斷一個(gè)鍵,返回一個(gè)按鍵值

46、。循環(huán)查詢按鍵值,再執(zhí)行相應(yīng)的操作。當(dāng)?shù)谝粋€(gè)鍵被按下,發(fā)光二級(jí)管點(diǎn)亮,第二個(gè)鍵被按下,蜂鳴器接通。下圖8、圖9即為按鍵2前后,電平跳轉(zhuǎn)對(duì)比。按鍵程序流程圖如圖10.</p><p>  圖8 按鍵掃描按鍵前</p><p>  圖9 按鍵掃描按鍵2后蜂鳴器接通</p><p>  圖10 按鍵掃描流程圖</p><p>  1620LCD顯示

47、程序</p><p>  第二章中已對(duì)1620LCD控制指令進(jìn)行了詳細(xì)介紹,其讀寫時(shí)序如下圖11、圖12。液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖13是 1620 的內(nèi)部顯示地址。</p><p>  圖11 1620LCD讀操作時(shí)序</p>

48、<p>  圖12 1620LCD寫操作時(shí)序</p><p>  圖13 1620LCD內(nèi)部顯示地址</p><p>  在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。</p><p>  1620 液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了 160

49、 個(gè)不同的點(diǎn)陣字符圖形,如圖 10-58 所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是 01000001B(41H),顯示時(shí)模塊把地址 41H 中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。CGROM、CGRAM中字符代碼與字符圖形對(duì)應(yīng)關(guān)系如下表三所示。</p><p>  表三 CGROM、CGRAM中字符代碼與字符

50、圖形對(duì)應(yīng)關(guān)系</p><p><b>  電路仿真</b></p><p>  掃描4*4按鍵,當(dāng)按鍵按下時(shí)顯示按鍵,并在LCD上顯示“WELCOME,歡迎?。。 ?。當(dāng)按鍵10按下時(shí)發(fā)光二級(jí)管發(fā)光,按鍵11按下時(shí)發(fā)光二級(jí)管停止亮;按鍵12按下時(shí),蜂鳴器響,按鍵13按下時(shí),蜂鳴器停止響。系統(tǒng)仿真圖如圖14.</p><p><b> 

51、 圖14 系統(tǒng)仿真圖</b></p><p><b>  、</b></p><p><b>  總結(jié)</b></p><p>  經(jīng)過兩周設(shè)計(jì),克服了LCD顯示和4*4鍵盤掃描的難點(diǎn),完成了課程設(shè)計(jì)所有要求,此次的課程設(shè)計(jì)我們收獲頗多。不僅學(xué)會(huì)使用PROTEUS軟件繪制電路圖及程序仿真,以及電路圖設(shè)計(jì)的基礎(chǔ)知

52、識(shí),能夠運(yùn)用匯編語言編程控制單片機(jī)工作,而且也很好的鍛煉了我們的團(tuán)隊(duì)合作意識(shí),小組的所有組員都能積極認(rèn)真的參與我們的課程設(shè)計(jì),經(jīng)過多次的討論研究克服了重重苦難,最終我們順利的完成了液晶與鍵盤顯示系統(tǒng)課程設(shè)計(jì)的所有要求。最后感謝老師傳授的知識(shí),讓我們能夠一點(diǎn)點(diǎn)不斷進(jìn)步。</p><p><b>  附件</b></p><p><b>  電路原理圖</

53、b></p><p><b>  源程序</b></p><p>  ORG 0000H</p><p>  AJMP MAIN</p><p>  ORG 0300H</p><p>  MAIN: MOV SP,#60H</p><

54、p>  ACALL LCDINI;調(diào)用LCD初始化子程序</p><p>  ACALL LCD1</p><p>  ACALL LCD4</p><p>  LOOP: ACALL KEY;調(diào)用鍵掃描子程序</p><p>  MOV R0,#50H</p><p>  CJNE

55、 @R0,#0FFH,NEXT0; 若50H單元不等于0FFH,有鍵,轉(zhuǎn)到NEXT0處執(zhí)行</p><p>  AJMP LOOP; 若50H單元等于0FFH,無鍵,轉(zhuǎn)到LOOP處執(zhí)行</p><p>  NEXT0: ACALL XIANG</p><p>  CJNE @R0,#0AH,NEXT1;判斷是否是數(shù)字鍵</

56、p><p>  NEXT1: JNC NEXT2;不是則轉(zhuǎn)到NEXT2處執(zhí)行</p><p>  ACALL BUSY</p><p>  ACALL ASC;鍵值轉(zhuǎn)換為ASCII碼</p><p>  ACALL LCD2;鍵值顯示</p><p>  AJMP LOOP;轉(zhuǎn)到LOOP處執(zhí)

57、行</p><p>  NEXT2: CJNE @R0,#10H,NEXT3;判斷是否是功能鍵</p><p>  NEXT3: JNC NEXT4;不是功能鍵,轉(zhuǎn)至LOOP循環(huán)</p><p>  ACALL BUSY</p><p>  ACALL ASC </p><p>  NE

58、XT00: CJNE @R0,#41H,NEXT01 ;A鍵二極管閃爍</p><p>  ACALL LCD2</p><p>  CLR P3.5</p><p>  MOV R7, #10H </p><p>  LOOP7: MOV R5, #0FFH</p><

59、;p>  DL1: MOV R6, #0FFH</p><p>  DL2: DJNZ R6, DL2</p><p>  DJNZ R5, DL1 </p><p>  CPL P3.5</p><p>  DJNZ R7, LOOP7</p><

60、p>  CLR P3.5</p><p>  LJMP LOOP</p><p>  NEXT01: CJNE @R0,#42H,NEXT02 ;B鍵二極管熄滅</p><p>  SETB P3.5</p><p>  ACALL LCD2</p><p>  LJM

61、P LOOP</p><p>  NEXT02: CJNE @R0,#43H,NEXT03 ;C鍵蜂鳴器響</p><p>  ACALL LCD2</p><p>  CLR P3.4</p><p>  MOV R7,#0FFH</p><p>  CA: MOV

62、 R6,#0FFH</p><p>  CA6: DJNZ R6,CA6</p><p>  CPL P3.4</p><p>  DJNZ R7,CA</p><p>  CLR P3.4</p><p>  ACALL LCD2</p><

63、p>  LJMP LOOP </p><p>  NEXT03: CJNE @R0,#44H,NEXT04 ;D鍵蜂鳴器靜音</p><p>  SETB P3.4</p><p>  ACALL LCD2</p><p>  LJMP LOOP </

64、p><p>  NEXT04: CJNE @R0,#45H,NEXT05 ;E鍵</p><p>  ACALL LCD3</p><p>  ACALL LCD5</p><p>  LJMP LOOP</p><p>  NEXT05: CJNE @R0,#46H,NEXT4 ;

65、F鍵</p><p>  MOV DPTR,#8000H</p><p>  MOV A,#01H</p><p>  MOVX @DPTR,A</p><p>  LJMP MAIN </p><p>  NEXT4: AJMP LOOP</p&

66、gt;<p>  KEY: MOV 50H,#0FFH;鍵掃描子程序,無鍵按下,50H為0FFH</p><p>  ACALL KS1;調(diào)用判斷有無鍵按下子程序</p><p>  CJNE A,#0F0H,LK1;有鍵按下時(shí),轉(zhuǎn)消抖延時(shí)</p><p>  AJMP KRET;無鍵按下返回</p>

67、<p>  LK1: ACALL TIM;調(diào)延時(shí)子程序消抖</p><p>  ACALL KS1;再查有無鍵按下,若有則需進(jìn)行按鍵處理</p><p>  CJNE A,#0F0H,LK2</p><p>  AJMP KRET;無鍵按下,返回</p><p>  LK2: MO

68、V R4,#00H;列號(hào)送入R4</p><p>  JB P3.5,TIAOZHUAN</p><p>  MOV R2,#0CEH</p><p>  AJMP LK3</p><p>  TIAOZHUAN: MOV R2,#0FEH;第一次掃描輸出信號(hào)11111110送入R2&l

69、t;/p><p>  LK3: MOV A,R2;輸入列掃描信號(hào)</p><p>  MOV P3,A;</p><p>  MOV P1,#0FFH;P1口置0FFH</p><p>  MOV A,P1;讀入行狀態(tài)</p><p>  JB ACC.4

70、,L1;第一行無鍵按下,轉(zhuǎn)查第二行</p><p>  MOV A,#00H;第一行有鍵按下,該行首鍵號(hào)#00H送入 A</p><p>  AJMP LK;轉(zhuǎn)求鍵號(hào)</p><p>  L1: JB ACC.5,L2;第二行無鍵按下,轉(zhuǎn)查第三行</p><p>  MOV A,#

71、04H;第二行有鍵按下,該行首鍵號(hào)#04H送入 A</p><p>  AJMP LK;轉(zhuǎn)求鍵號(hào)</p><p>  L2: JB ACC.6,L3; 第三行無鍵按下,轉(zhuǎn)查第四行</p><p>  MOV A,#08H; 第三行有鍵按下,該行首鍵號(hào)#08H送入 A</p><p>  AJM

72、P LK;轉(zhuǎn)求鍵號(hào)</p><p>  L3: JB ACC.7,KNEXT; 第四行無鍵按下,轉(zhuǎn)查下一列</p><p>  MOV A,#0CH; 第四行有鍵按下,該行首鍵號(hào)#0CH送入 A</p><p>  LK: ADD A,R4;求鍵號(hào),鍵號(hào)=行首鍵號(hào)+列號(hào)</p

73、><p>  PUSH ACC;鍵號(hào)進(jìn)棧保護(hù)</p><p>  LK4: ACALL KS1;等待鍵釋放</p><p>  CJNE A,#0F0H,LK4;未釋放,等待</p><p>  POP ACC;鍵釋放,鍵號(hào)送入A</p><p>  MOV 50

74、H,A;</p><p>  AJMP KRET;掃描結(jié)束,出口狀態(tài)50H=鍵號(hào)</p><p>  KNEXT: INC R4;列號(hào)加1</p><p>  MOV A,R2</p><p>  JNB ACC.3,KRET;四列掃描完畢,返回主程序</p><p>  

75、RL A;形成下次掃描輸出信號(hào)</p><p>  MOV R2,A</p><p>  AJMP LK3</p><p>  KRET: RET</p><p>  ASC: MOV DPTR,#ASCTAB;鍵值轉(zhuǎn)換為ASCII碼子程序</p><p

76、>  MOV A,50H</p><p>  MOVC A,@A+DPTR </p><p>  MOV 50H,A</p><p><b>  RET</b></p><p>  ASCTAB: DB 30H,31H,32H,33H,34H,35H</p>&

77、lt;p>  DB 36H,37H,38H,39H,41H,42H</p><p>  DB 43H,44H,45H,46H</p><p>  KS1: CLR P3.0;P3.0~P3.3列線輸出0</p><p>  CLR P3.1</p><p>  CLR P3.2<

78、/p><p>  CLR P3.3</p><p>  MOV P1,#0FFH</p><p>  MOV A,P1;輸入P1口狀態(tài)</p><p>  ANL A,#0F0H;屏蔽低四位</p><p>  RET;出口狀態(tài),累加器不等于0F時(shí),有鍵按下</p><p

79、>  TIM: MOV R7,#18H;延時(shí)子程序</p><p>  TM: MOV R6,#0FFH</p><p>  TM6: DJNZ R6,TM6</p><p>  DJNZ R7,TM</p><p><b>  R

80、ET</b></p><p>  DEL: MOV R7,#01H</p><p>  DE: MOV R6,#01H</p><p>  DE6: DJNZ R6,DE6</p><p>  DJNZ R7,DE</p>

81、<p><b>  RET</b></p><p>  ;LCD初始化子程序</p><p>  LCDINI: MOV DPTR,#8000H;選擇指令寄存器地址</p><p>  MOV A,#3CH;方式設(shè)置控制字</p><p>  MOVX @DPTR,A;兩

82、行顯示,八位數(shù)據(jù)傳送</p><p>  ACALL BUSY;忙狀態(tài)檢查</p><p>  MOV DPTR,#8000H</p><p>  MOV A,#0CH;清屏</p><p>  MOVX @DPTR,A</p><p>  ACALL BUSY</p>&l

83、t;p><b>  RET</b></p><p>  LCD1:MOV DPTR,#8000H;顯示自定義字符“歡迎?。。 ?lt;/p><p>  MOV A,#40H;設(shè)置CGRAM地址,顯示“歡迎?。?!”</p><p>  MOVX @DPTR,A</p><p>  ACALL BUSY&

84、lt;/p><p>  MOV R1,#00H</p><p>  AAA:MOV DPTR,#TAB;查表,將“歡迎?。?!”字符依次送入</p><p>  MOV A,R1</p><p>  MOVC A,@A+DPTR</p><p>  MOV DPTR,#8100H</p>

85、<p>  MOVX @DPTR,A</p><p>  ACALL BUSY</p><p><b>  INC R1</b></p><p>  CJNE R1,#40H,AAA</p><p>  MOV DPTR,#8000H</p><p>  MOV A

86、,#80H;設(shè)置顯示地址控制字</p><p>  MOVX @DPTR,A;第一行首地址80H</p><p>  ACALL BUSY</p><p>  MOV R5,#08H</p><p>  MOV A,#00H; “歡”字符的地址</p><p>  LCD11: M

87、OV DPTR,#8100H</p><p>  MOVX @DPTR,A</p><p>  INC A</p><p>  ACALL BUSY</p><p>  ACALL DEL</p><p>  DJNZ R5,LCD11</p><

88、;p><b>  RET</b></p><p>  LCD2:MOV DPTR,#8000H ;指令操作地址</p><p>  MOV A,#0C8H;第二行首址C8H</p><p>  MOVX @DPTR,A</p><p>  ACALL BUSY</p><p&

89、gt;  MOV DPTR,#8109H</p><p>  MOV A,50H;輸入50中的鍵號(hào)</p><p>  MOVX @DPTR,A</p><p>  ACALL BUSY</p><p><b>  RET</b></p><p><b>  TAB:

90、 </b></p><p>  DB04H,07H,0FH,1FH,1AH,0AH,12H,05H ;“歡迎!??!”</p><p>  DB14H,0BH,1BH,1FH,1AH,12H,12H,1FH</p><p>  DB0AH,17H,12H,17H,17H,16H,12H,15H</p><

91、p>  DB1FH,15H,1FH,15H,1FH,15H,17H,15H</p><p>  DB04H,04H,1FH,04H,0EH,1FH,15H,04H</p><p>  DB1FH,0EH,10H,0EH,12H,1FH,04H,15H</p><p>  DB01H,02H,06H,01H,02H,07H,02H,04H

92、</p><p>  DB04H,1FH,04H,0AH,1FH,0AH,0AH,1BH</p><p>  LCD3:MOV DPTR,#8000H ;第一行顯示機(jī)電1112</p><p>  MOV A,#40H</p><p>  MOVX @DPTR,A</p>

93、<p>  ACALL BUSY</p><p>  MOV R1,#00H</p><p>  AAAA:MOV DPTR,#TAAB</p><p>  MOV A,R1</p><p>  MOVC A,@A+DPTR</p><p>  MOV DPTR,#8100H<

94、/p><p>  MOVX @DPTR,A</p><p>  ACALL BUSY</p><p>  INC R1</p><p>  CJNE R1,#40H,AAAA</p><p>  MOV DPTR,#8000H</p><p>  MOV A,#80H&l

95、t;/p><p>  MOVX @DPTR,A</p><p>  ACALL BUSY</p><p>  MOV R5,#08H</p><p>  MOV A,#00H</p><p>  LCD33:MOV DPTR,#8100H</p><p>  INC

96、 A</p><p>  MOVX @DPTR,A</p><p>  ACALL BUSY</p><p>  ACALL DEL</p><p>  DJNZ R5,LCD33</p><p><b>  RET </b></p><p>  TA

97、AB: DB 00H,0EH,11H,01H,02H,04H,08H,1FH</p><p>  DB 10H,10H,10H,10H,10H,10H,10H,1FH </p><p>  DB 0EH,11H,11H,11H,11H,11H,11H,0EH</p><p>  DB 11H,11H,11H,11H,11H,11H,0AH,04

98、H</p><p>  DB 1FH,10H,10H,1FH,10H,10H,10H,1FH</p><p>  DB 00H,04H,04H,04H,04H,04H,04H,04H</p><p>  DB 00H,04H,04H,04H,04H,04H,04H,04H</p><p>  DB 00H,04H,04H,04

99、H,04H,04H,04H,04H</p><p>  LCD4:MOV DPTR,#8000H ;第二行顯示welcome</p><p>  MOV A,#0C0H</p><p>  MOVX @DPTR,A</p><p>  ACALL BUSY</p><

100、;p>  MOV R1,#00H</p><p>  AA: MOV DPTR,#TTB</p><p>  MOV A,R1</p><p>  MOVC A,@A+DPTR</p><p>  MOV DPTR,#8100H</p><p>  MOVX @DPTR,A</

101、p><p>  ACALL BUSY</p><p>  INC R1</p><p>  CJNE R1,#08H,AA</p><p>  MOV DPTR,#8000H</p><p>  MOV A,#80H</p><p>  MOVX @DPTR,A<

102、;/p><p><b>  RET</b></p><p><b>  TTB: </b></p><p>  DB 57H,65H,6CH,63H,6FH,6DH,65H,3AH </p><p>  LCD5:MOV DPTR,#8000H ;第

103、二行顯示thank you</p><p>  MOV A,#0C0H</p><p>  MOVX @DPTR,A</p><p>  ACALL BUSY</p><p>  MOV R1,#00H</p><p>  AA1:MOV DPTR,#TB</p><p> 

104、 MOV A,R1</p><p>  MOVC A,@A+DPTR</p><p>  MOV DPTR,#8100H</p><p>  MOVX @DPTR,A</p><p>  ACALL BUSY</p><p>  INC R1</p><p>  

105、CJNE R1,#10H,AA1</p><p>  MOV DPTR,#8000H</p><p>  MOV A,#80H</p><p>  MOVX @DPTR,A</p><p><b>  RET</b></p><p><b>  TB: </b

106、></p><p>  DB 54H,68H,61H,6EH,6BH,20H,79H,6FH </p><p>  DB 75H,20H,21H,20H,21H,20H,20H,20H </p><p>  BUSY: MOV DPTR,#8200H ;狀態(tài)檢查子程序</p><p>  M

107、OVX A,@DPTR</p><p>  JB ACC.7,BUSY</p><p><b>  RET</b></p><p>  XIANG: CLR P3.4</p><p>  MOV R7,#018H</p><p>  DEE: M

108、OV R6,#0FFH</p><p>  DEE6: DJNZ R6,DEE6</p><p>  DJNZ R7,DEE</p><p>  SETB P3.4</p><p><b>  RET</b></p><p><b>  END<

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論