

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)技術(shù)實(shí)驗(yàn)指導(dǎo)書劉寶成內(nèi)蒙古民族大學(xué)物理與電子信息學(xué)院2011 年 3 月刖言單片機(jī)技術(shù)課程是一門實(shí)踐性很強(qiáng)的理論與實(shí)踐相結(jié)合的課程,實(shí)踐教學(xué)環(huán)節(jié) 是單片機(jī)課程不可缺少的重要環(huán)節(jié)。單片機(jī)技術(shù)課程安排的實(shí)驗(yàn)旨在培養(yǎng)學(xué)生的實(shí) 際動手能力,鍛煉學(xué)生的軟件編程、調(diào)試能力,提高學(xué)生對單片機(jī)的軟、硬件綜合開 發(fā)能力。單片機(jī)技術(shù)實(shí)踐教學(xué)環(huán)節(jié)安排 30 學(xué)時,包括 10 個實(shí)驗(yàn)項(xiàng)目。項(xiàng)目 1 P1 口輸入/ 輸出實(shí)驗(yàn)、項(xiàng)目 2 簡單 I/O 口擴(kuò)展實(shí)驗(yàn)、項(xiàng)目 3 LED 數(shù)碼管動態(tài)顯示實(shí)驗(yàn)、項(xiàng)目 4 LCM 液晶模塊顯示實(shí)驗(yàn)、項(xiàng)目 5 外部中斷實(shí)驗(yàn)、項(xiàng)目 6 定時器/計(jì)數(shù)器應(yīng)用實(shí)驗(yàn)、 項(xiàng)目 7 八位并行
2、A/D 轉(zhuǎn)換器實(shí)驗(yàn)、項(xiàng)目 8 八位并行 D/A 轉(zhuǎn)換器實(shí)驗(yàn)、項(xiàng)目 9 12 位 串行 A/D 轉(zhuǎn)換器實(shí)驗(yàn)、項(xiàng)目 10 12 位串行 D/A 轉(zhuǎn)換器實(shí)驗(yàn)。實(shí)驗(yàn)設(shè)備采用安裝有 Keil 卩 Vision4 C5 集成開發(fā)環(huán)境的計(jì)算機(jī)和配有 E-lab-Keil C51 CPU 板的 EL-MUT-III 單片機(jī)實(shí)驗(yàn)掛箱。實(shí)驗(yàn)要求學(xué)生在 EL-MUT-III 單片機(jī)實(shí)驗(yàn)掛箱及相應(yīng)的擴(kuò)展模塊上設(shè)計(jì)與連接 電路,利用 Keil 卩 Vision4 C5 集成開發(fā)環(huán)境采用匯編語言或 C 語言編寫程序,實(shí)現(xiàn)單 片機(jī)系統(tǒng)方案設(shè)計(jì)、硬件電路連接、軟件程序編寫、在線仿真調(diào)試以及程序下載運(yùn) 行等單片機(jī)系統(tǒng)開發(fā)的全部
3、過程,讓學(xué)生從實(shí)驗(yàn)中體會具體硬件接口的應(yīng)用技巧,進(jìn) 一步理解單片機(jī)外圍接口芯片使用方法,逐步掌握單片機(jī)系統(tǒng)的開發(fā)和應(yīng)用方法。書后附有 Keil 卩 Vision4 C5 集成開發(fā)環(huán)境的簡單使用說明通過單片機(jī)技術(shù)實(shí)驗(yàn)的學(xué)習(xí),學(xué)生可以掌握 80C51 系列單片機(jī)的輸入/輸出接 口、定時器/計(jì)數(shù)器、 中斷系統(tǒng)等內(nèi)部模塊的應(yīng)用方法,熟悉各種類型的外圍接口芯 片的使用,提高使用匯編語言或 C 語言編寫單片機(jī)程序的能力,鍛煉發(fā)現(xiàn)問題、分析 問題、解決問題的能力,初步具備能夠獨(dú)立進(jìn)行單片機(jī)控制系統(tǒng)開發(fā)的工作能力。本書中的參考程序都經(jīng)過調(diào)試和使用,所以正確性是有保證的,但是不是唯一的, 也不一定是最優(yōu)的。項(xiàng)目
4、 1 P1 口輸入/輸出實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、 學(xué)習(xí) P1 口的使用方法2、 學(xué)習(xí)匯編語言延時程序的編寫和使用二、實(shí)驗(yàn)內(nèi)容1、 P1 口做輸出口使用。P1 口的 8 個引腳分別接 8 只 LED 發(fā)光二極管。編寫 程序,使 LED發(fā)光二極管間隔時間約 1 秒鐘逐個點(diǎn)亮,并周而復(fù)始進(jìn)行循環(huán)。2、 P1 口做輸入/輸出口使用。P1 口的高 4 位,即 P1.4、P1.5 P1.6、P1.7 分別 接4 只 LED發(fā)光二極管;P1 口的低 4 位,即 P1.0、P1.1、P1.2、P1.3 分別接 4 只撥動開關(guān)。編寫程序,使 4 只 LED 發(fā)光二極管的亮、滅與 4 只撥動開關(guān)的高、低電平的狀態(tài)相
5、對應(yīng)(開關(guān)撥向下方是高電平。三、實(shí)驗(yàn)原理1、使用 P1 的注意事項(xiàng)P1 口為準(zhǔn)雙向口,P1 口的每一位都能獨(dú)立地定義為輸入位或輸出位。作為輸入 位時,必須向鎖存器相應(yīng)位寫入 “ 1 該位才能作為輸入。AT89S52 單片機(jī)上電復(fù)位時 所有口鎖存器均置為“ 1 但在單片機(jī)運(yùn)行過程中有的口鎖存器可能被寫過“O如果該口作為輸入口使用,在使用前就必須寫入一個 “ 1使它成為一個輸入口。 為可靠起 見,當(dāng)一個口被定義為輸入口時,總是在讀該口輸入狀態(tài)之前,先向該口寫入一個“1。2、延時程序的編寫再來看一下延時程序的實(shí)現(xiàn)。現(xiàn)常用的有兩種方法,一是用定時器中斷來實(shí)現(xiàn),一是用指令循環(huán)來實(shí)現(xiàn)。在系統(tǒng)時間允許的情況
6、下可以采用后一種方法。本實(shí)驗(yàn)系統(tǒng)晶振為 6MHz,則一個機(jī)器周期為11226sMHz口?=。要寫一個延時 1s 的程序,需要使用如下形式一個三層循環(huán)結(jié)構(gòu)的延時程序。DELAY: MOV R5,#x (1DEL1:MOV R6,#y (2DEL2:MOV R7,#z (3DEL3:DJNZ R7,DEL3 (4DJNZ R6,DEL2 (5DJNZ R5,DEL1 (6RET (7上面 MOV Rn,#data 是 1 個機(jī)器周期指令、DJNZ Rn,rel 是 2 個機(jī)器周期指令、RET是 2 個機(jī)器周期指令,所以每執(zhí)行一條 MOV Rn,#data 指令需要 2s 侮執(zhí)行一 條DJNZ Rn
7、,rel 指令需要 4s p 執(zhí)行 RET 指令需要 4s 粒整段程序的執(zhí)行時間可由 下述公式計(jì)算:延時時間(2(2(24444z y x =+? +? +? +由于有三個未知量,沒有辦法直接解出,可先確定兩個內(nèi)層循環(huán)的初始值,再計(jì)算最外層循環(huán)的初始值,根據(jù)計(jì)算結(jié)果再反復(fù)修正。但是實(shí)際上這種試解的過程,非常 麻煩,工作量也很大??梢允褂糜?jì)算機(jī)編寫程序進(jìn)行試解計(jì)算。如下(該軟件可通過 軟件界面下方的 Email 地址免費(fèi)索取。空單片機(jī)延時程序參數(shù)計(jì)算晶體頻率|e3參數(shù)僅遞方式|立即數(shù)直接葩二|機(jī)器周期12T C蛙時鐘周期)3要求延時時間(戸“10DQQOO龍環(huán)層數(shù)三重傭環(huán)7允許誤差時間w 1子程
8、序代碼計(jì)算結(jié)果將軟件計(jì)算出來的第 1 組參數(shù),帶入上述公式驗(yàn)證一下。 即 OH 251z FB =,42H 66y=,0H 15x F =。延時時間(2(2(242514664154999996s 卩=+? +? +=,由于該計(jì)算結(jié)果已經(jīng)考慮了 LCALL 或 ACALL 調(diào)用子程序的執(zhí)行時間 4s 謔兩條指令均為 2 機(jī)器周期指令。所以,用第 1 組參數(shù)的延時程序執(zhí)行一次的延時時間正好是1 秒鐘。3、實(shí)驗(yàn)原理圖實(shí)驗(yàn)原理圖如下,圖 1 為 P1 口輸出實(shí)驗(yàn)原理圖,圖 2 為 P1 口輸入/輸出實(shí)驗(yàn)原理是外循環(huán)延時常數(shù)M1爼參數(shù):4;琪腥中間fi環(huán)延時第數(shù)延時蓉?cái)?shù):XKM = FH;工即是內(nèi)誘環(huán)
9、延時常數(shù)颶時參數(shù):YYH二42H延時參數(shù):ZZH = FBHBELA.Y:MOV RS,慎差為:0 0000徽抄BEL1:MOV B6, #YYH;DEL2:NOV R7, mH;該計(jì)算站果已經(jīng)老慮了子程DELS:BJBE RT血3DJUZ lifi, DEL2;岸調(diào)用和子程序返回時間辛BJBZ R5ZEEL1:第2組番數(shù):KET;延時參數(shù):池H二FK延時參數(shù):YIH =GEH延時董數(shù):ZZK = DOH鎮(zhèn)差為:0 0000徽秒Vlbc_tl0126. con退出| F - ST4LC210:M卜XTALiFDDMDPO 1M1 in3 M9FC艸ISrochwR$T邸njWP2 0WL悴gm
10、IP2 2A10SEwnii*LEP2 412fln a諄P2 iWWP2.wnspimM bRiD,科W3&,ra tn?&*12F3 ZfliTTiRP3 7*H1Pl 4P3.#T0 *P1JJpaaffi *4 諂FJ BJI*-F17W.7JB& -鼻TSZ56圖 1 P1 口輸出實(shí)驗(yàn)原理圖U1C2P1QH2 MVT3xPHCMCro iwiPO卻 空陽WG陽5JW6FO說:LJFSCrftD杓址業(yè)PJ24hTQ 334ft 1 -F7 9T1 ” F =BWfe!P3.TJ1P231DR?4說F2OP2 MFJ 7ft15圖 2 P1 口輸入/輸出實(shí)驗(yàn)原理圖
11、四、實(shí)驗(yàn)步驟在計(jì)算機(jī)的 D 盤上以自己的學(xué)號命名的文件夾。打開該文件夾,首先在該文件 夾下新建一個以自己的名字命名的 TXT 格式的空文檔,然后,依次新建 SY1、 SY2、SY10 共 10 個文件夾。后面的所有實(shí)驗(yàn)的程序及其相關(guān)文檔均存放在相 應(yīng)的文件夾下。1、P1 口做輸出口使用1將 CPU 板上的 P10P17 用連接導(dǎo)線分別接到發(fā)光二極管 L1L8 上。注意:先 不要接通電源。2在計(jì)算機(jī)上打開 Keil 卩 Vision4 C5 軟件。按實(shí)驗(yàn)內(nèi)容及硬件電路連接情況 編輯實(shí)驗(yàn)程序,注意源程序中要盡量多加注釋,以便于檢查。然后進(jìn)行編譯、修改,直 到?jīng)]有任何錯誤。Keil 卩 Visio
12、n4 C5 軟件的使用請參考附錄。3檢查實(shí)驗(yàn)掛箱的 CPU 板與計(jì)算機(jī)的串口連接電纜是否接好,再次檢查實(shí)驗(yàn)連 線是否正確 檢查 Keil 卩 Vision4 C51 軟件的相關(guān)設(shè)置是否正確。確認(rèn)無誤后,接通實(shí) 驗(yàn)掛箱的電源,進(jìn)行在線仿真。4觀察發(fā)光二極管的狀態(tài)是否與實(shí)驗(yàn)要求一致,如果不一致,請重新修改源程序,再進(jìn)行編譯及仿真調(diào)試,直至符合實(shí)驗(yàn)要求。2、P1 口做輸入/輸出口使用1關(guān)掉實(shí)驗(yàn)掛箱的電源,將 CPU 板上的 P10P13 用連接導(dǎo)線分別接到平推開關(guān)K1K4 上,P14P17 用連接導(dǎo)線分別接到發(fā)光二極管 L5L8 上。2按實(shí)驗(yàn)內(nèi)容及硬件電路連接情況編輯實(shí)驗(yàn)程序,注意源程序中要盡量多加
13、注 釋,以便于檢查。然后進(jìn)行編譯、修改,直到?jīng)]有任何錯誤。3同 P1 口做輸出口使用的步驟4同 P1 口做輸出口使用的步驟五、程序流程圖圖 3 P1 口輸出程序流程圖 圖 4 P1 口輸入/輸出程序流程圖六、參考程序1、P1 口做輸出口使用匯編源程序C51 源程序include #define uchar unsigned chardefine uint unsigned intvoid delay (uchar numbei:);main()uchar temp = Oxfe;whiled) uchar 1;Pl = temp;delay(10);for(i = l;i 0;number-)
14、(for(j = 6245;j 0;J);2、P1 口做輸入/輸出口使用匯編源程序#include2 h#definp uchar unsigned char #define uint unsigned intvoid de Lay(u charnumbe r); msin()uchar temp = Oxfe;while(1)uchar i;Pl二temp; delay(10);C51 源程序frinclude #define uchar unsigned chardefine uint unsigned intmain()uchar temp = Oxff;Pl = temp;/初始化為高
15、4位燈滅低4位輸入whiletemp = Pl;/讀開關(guān)狀態(tài)P1 = - (temp 4);/低4位移到高4位并取反 則低4位取反后正好全!_七、思考題1、在 P1 口輸出實(shí)驗(yàn)中,為什么和單片機(jī)的 P1 口相連的是發(fā)光二極管的陰極而 不是陽極?2、在 P1 口輸入/輸出實(shí)驗(yàn)中,為什么要把 P1 口的低 4 位事先置 1?如果不把 P1 口的低 4 位事先置 1 會怎樣?3、在這兩個實(shí)驗(yàn)中 把 P1 口換成 P0 口可以嗎?為什么?換成 P2 口或 P3 口哪?項(xiàng)目 2 簡單 I/O 口擴(kuò)展實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、學(xué)習(xí)在單片機(jī)系統(tǒng)中擴(kuò)展簡單 I/O 接口的方法。2、學(xué)習(xí)模擬交通燈控制的實(shí)現(xiàn)方法。3、
16、學(xué)習(xí)數(shù)據(jù)輸入/輸出程序的設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容1、 擴(kuò)展實(shí)驗(yàn)掛箱上的 74LS273 做為輸出口,控制六個發(fā)光二極管亮、滅,實(shí)現(xiàn) 模擬交通燈控制。2、利用 74LS244 做為擴(kuò)展輸入口,讀取開關(guān)狀態(tài),擴(kuò)展實(shí)驗(yàn)掛箱上的 74LS273 做為輸出口,控制八個發(fā)光二極管,將讀取的開關(guān)狀態(tài)通過發(fā)光二極管顯示出來,開關(guān)撥到下 方(高電平時對應(yīng)的發(fā)光二極管亮(低電平。三、實(shí)驗(yàn)原理1、模擬交通燈控制原理假設(shè)交通燈的亮滅規(guī)律為:初始狀態(tài)是兩個路口的紅燈全亮,3 秒鐘之后,東西路 口的綠燈亮,同時南北路口的紅燈亮,東西方向通車,延時 30 秒鐘后,東西路口綠燈滅, 黃燈開始閃爍(亮 0.3 秒、滅 0.3 秒
17、,閃爍 5 次后,東西路口紅燈亮,而同時南北路口的 綠燈亮,南北方向開始通車,延時 30 秒鐘后,南北路口的綠燈滅,黃燈開始閃爍(亮 0.3秒、滅 0.3 秒,閃爍 5 次后,再切換到東西路口方向,重復(fù)上述過程。本實(shí)驗(yàn)需要用到實(shí)驗(yàn)箱上八個發(fā)光二極管中的六個,即紅、黃、綠各兩個。不妨將 L1(紅、L2(綠、L3(黃做為東西方向的指示燈,將 L5(紅、L6(綠、L7(黃做為南 北方向的指示燈。各發(fā)光二極管的陽極通過保護(hù)電阻接到 +5V 的電源上,陰極接到輸入端上,因此使其點(diǎn)亮應(yīng)使相應(yīng)輸入端為低電平。2、簡單 I/O 口擴(kuò)展原理AT89S52 單片機(jī)帶有 4 并行口,共 32 根口線。但是在有些情況
18、下,這些端口仍然不夠用,這時就需要進(jìn)行端口的擴(kuò)展。做并行口擴(kuò)展時,P0 口為數(shù)據(jù)總線和地址總線 的低 8 位,P2 口為地址總線的高 8 位,讀、寫信號分別由 P3.7(RD 和 P3.6(WR 提 供。MCS-51(AT89S52 與 MCS-51 是兼容的外部擴(kuò)展空間很大,但數(shù)據(jù)總線口和控 制信號線的負(fù)載能力是有限的。若需要擴(kuò)展的芯片較多,則 MCS-51 總線口的負(fù)載 過重,這時就需要用到總線驅(qū)動器。74LS244 是 3 態(tài) 8 位單向緩沖驅(qū)動器,它主要用于三態(tài)輸出,作為地址驅(qū)動器,時 鐘驅(qū)動器和總線驅(qū)動器,定向發(fā)送器等。在本實(shí)驗(yàn)中用作擴(kuò)展輸入口,可以減輕總線 口的負(fù)擔(dān)。74LS244
19、 的最大低電平輸出電流可以達(dá)到 24mA,高電平輸出電流可達(dá)-15mA。74LS244 的管腳排列及邏輯真值表見圖 2-1 和圖 2-2。圖 2-2 74LS244 邏輯真值表74LS273 是一種帶清除功能的 8D 觸發(fā)器,1D8D 為數(shù)據(jù)輸入端,1Q8Q 為數(shù)據(jù) 輸出端,正脈沖觸發(fā),低電平清除,常用作 8 位地址鎖存器。 只有在清除端保持高電平 時,才具有鎖存功能,鎖存控制端為 11 腳 CLK,采用上升沿鎖存。CPU 的 ALE 信號 必須經(jīng)過反相器反相之后才能與 74LS273 的控制端 CLK 端相連。圖 2-3 和圖 2-4 分別是74LS273 的管腳圖和真值表。74LS273
20、在本實(shí)驗(yàn)中作為輸出口擴(kuò)展,最大工 作頻率為30MHz,該芯片的最大低電平輸出電流可以達(dá)到16mA,高電平輸出電流可達(dá)-0.8mA。3、實(shí)驗(yàn)原理圖實(shí)驗(yàn)原理圖如下,圖 2-5 為模擬交通燈控制實(shí)驗(yàn)原理圖,圖 2-6 為用發(fā)光二極管顯示開CTR1 20VCCIQ2198Q10C3IS8D2D417j了D2Q5167Q3Q6 15geo3D(1146D4D 813ho4Q9125QGND10 11CLKc KCQDDQQDDQMV88776655C 09876 6 432-1-u O 123456789WrL _L _L rL rL rL _L _L rL rLRQDDQQDDQDL11223344N
21、c GXTAL1即射心KTALlPD.1/WIP0.2/AD2PQFIST眄3D4PD.3/AO4PDd/WOF0.7D7Fse+T科gPlF2 JiWIIME oP2 4MI2 P2 SMI 3M fl/AI*Utii- 卜*J MR74LS3UcTBCPT4L82K11垃鉞燈料AX霸只 3:H旳胡AD6蚩f41?關(guān)狀態(tài)實(shí)驗(yàn)原理圖CLR1 20VCC1Q2198Q103188D2D417|7D2Q516|7Q3Qr615602-5 模擬交通燈控制實(shí)驗(yàn)原理圖圖 2-3 74LS273 管腳圖圖 2-4 74LS273 真值表圖 2-6 用發(fā)光二極管顯示開關(guān)狀態(tài)實(shí)驗(yàn)原理圖四、實(shí)驗(yàn)步驟1、模擬交通
22、燈控制irra9-iLT 口uplzl utilfl-fl a a aflQ Q1將實(shí)驗(yàn)掛箱上 74LS273 的輸出 0002 用連接導(dǎo)線分別接到發(fā)光二極管L1L3 上,0305 用連接導(dǎo)線分別接到發(fā)光二極管 L5L7 上。74LS273 的片選 CS273 接CS2 此時 74LS273 的地址是 0CFB0H。注意:先不要接通電源。2在計(jì)算機(jī)上打開 Keil 卩 Vision4 C5 軟件。按實(shí)驗(yàn)要求及實(shí)際硬件電路連接 情況編輯實(shí)驗(yàn)程序,注意源程序中要盡量多加注釋,以便于檢查。然后進(jìn)行編譯、修 改,直到?jīng)]有任何錯誤。Keil 卩 Visi on4 C5 軟件的使用請參考附錄。3檢查實(shí)驗(yàn)掛
23、箱的 CPU 板與計(jì)算機(jī)的串口連接電纜是否接好,再次檢查實(shí)驗(yàn)連 線是否正確 檢查 Keil 卩 Vision4 C5 軟件的相關(guān)設(shè)置是否正確。確認(rèn)無誤后,接通實(shí) 驗(yàn)掛箱的電源,進(jìn)行在線仿真。4觀察發(fā)光二極管的狀態(tài)是否與實(shí)驗(yàn)要求一致,如果不一致,請重新修改源程序,再進(jìn)行編譯及仿真調(diào)試,直至符合實(shí)驗(yàn)要求。2、用發(fā)光二極管顯示開關(guān)狀態(tài)1關(guān)掉實(shí)驗(yàn)掛箱的電源。2將實(shí)驗(yàn)掛箱上 74LS244 的 IN0IN7 用連接導(dǎo)線分別接到平推開關(guān) K1K8 上, 片選信號 CS244 接 CS1,此時 74LS244 的地址是 0CFA8H。3將實(shí)驗(yàn)掛箱上 74LS273 的 0007 用連接導(dǎo)線分別接到發(fā)光二極管
24、 L1L8 上, 片選信號 CS273 接 CS2,此時 74LS273 的地址是 0CFB0H。4編寫程序,在線仿真,全速運(yùn)行。5撥動開關(guān) K1K8,觀察發(fā)光二極管狀態(tài)的變化。五、程序流程圖六、參考程序1、模擬交通燈控制匯編源程序圖 2-8 讀開關(guān)狀態(tài)顯示流程圖圖 2-7 模擬交通燈控制流程圖開始設(shè)置口地址02-L3-東西路口黃燈03 L4-南北路口紅燈t04-L5南北路口綠燈 r05-L6 南北路口黃燈OUTPROT EQU OCFBOH;74LS273iW口的地汀DELAY_VAR1 DATA 30H;延盯令斂變量DELAYVAR2DATA 31H;|IE * ? S2ORG OOOOH
25、UJMP STARTORG 0050HSTART: MOV DPTRZOUT PROT ; 74LS273MOV A.fllllOllOB;西、*1北紅燈全凳MOVX DPTRZAMOVR7z#ieH;iir?3秒MOV DELAY_VARlr#7CHMOV DBLAYVARZr UOFAHLCALL DELAYLOOP:MOV AzfllllOlOlB;:西卯燈売,南北紅燈実MOVX 9DPTRZAMOV R7z#0F0H;U時30秒MOV DBLAY_VARlr7CHMOV DELAY2vAR2rfOFAHLCALL DELAYMOV R4,#10MOV A.fllllOOllB;燈閃爍5
26、次DX_HS : MOVX l?DPTRzAMOV R7Z#0EH;UFJ0.3秒MOV DELAYVARl,f5SHMOV DBLAY2vAR2rH3DHLCALL DELAYCPL ACC. 2;東西黃燈取反DJHZ R4rDX_HSMOV Az#11101110B;西紅燈凳,圧北好燈見MOVX i?DPTRzAI;02 - L3-東西路口黃燈;03-一L4 -南北路口紅燈;04L5 -南北路口錄燈;05L6南北路口黃燈OUTEROT EQU 0CFB 0H; 7 4LS273端口 的地址DELAY_VAR1DATA30H;延時參數(shù)變呈1DELAYVAR2DATA31H;延時參藪變呈2OR
27、G 0000HLJMPSTARTORG0050HSTART:MOV DPTR,#OUTPROT; 7 4LS273端Zl的地址MOV A,#11110110B;東西 南北紅燈全亮MOVX 0DPTR, AMOVR7A#18H; i時3秒DELAY:MOV R6,DELAY_VAR1DELI:MOV R5,DELAY)AR2DJNZ R5,$DJNZ R6,DELIDJNZ R7fDELAYRETENDC51 源程序在 C51 中嵌入了匯編延時子程序。IC51 源文件 SY2_1_C51.CIJE LAY : MOV RG # DELAY_VAR1DELI:MOV RS,DELAY_VAE2Fk
28、TWZ R3f$DJNZ R6,BE11DJMZ R7,DELAYRETENC#includ-e 1095152. Hynel ud-e define ucharcher#define OUT PORT XBYTE Diicf bO Jextern void delay (uchi r i Mchr j, uctia r kJ;Plain () wh11)【xiehar iiOUT PORT = OMf 6; ITfTde Lay (0 xl8?0 x7crfOkf;CUT PORT - Cwf5;/ A西綠燈亮商北紅燈長delay (0 x C*fD3c7cfOscf a;for(1 = O
29、il S;i4+)OUT PORT =DM;樂西Jt燈閃爍5扶DxC3t 0 xf7X de lay JKO-ePJKSSKCKM) ?OUT PORT =呵r?;打?qū)1?曹燈旳爍5欣DM3憲0Kf7X(CM0f0 x55 0s3i);JOUT PORT -3;門衣西法燈亮j雨北堺燈亮d電丄ny(OMI0#0 x7c 0昶無曰】;for(i 0;1 W S ; i4 + )jnC51 源文件 SY2_1_C51.C 中嵌入的匯編延時程序源文件 delay.A51PUBLICdelaydelaySEGMENT CODERSEGdelaydelay:USING0MOV R6,07HDELS;MOV
30、 R4f05HDELI:MOV R2,D3HDJNZ R2F5DJNZ R4fDELIDJNZDEL2RETEND2、讀取開關(guān)狀態(tài)并顯示匯編源程序PUBLICdfelaydelaySEGMENTCODERSEGdelaydelay:USING0MOV R6,D7HDEL2:MOVR4f0 5 HDELI;MOV R2f03HDJNZ R2* $DJNZ R4,DELIDJNZ R6fDEL2RETEHDIMPORTEQU0CFA8H7?7LS24 4MHOUT PORTEQUCICFB CIH; 7 4LS27 3的口地址ORG 0000H;主程序入口LJMPSTARTORG 0050H;跳過
31、中斷矢量區(qū)START :MOV DPTR.:74T 営 244 的口 ifh 土 1 卜C51 源程序#include /fe含AT89S52的內(nèi) 都資源定義#include /絕對地址訪問#define uchar unsigned char#define INPORT KBYTEOxcfaB#definfe OUT PORT XBYTEDxcfbDmain ()uchar value;while(1)(tichar ifj ; value = INPORT; OUT PORT = -value;for(i = 0;i 12;i + + )for(j = 0;j 8=40 根 I/O 口線來
32、驅(qū)動,要知道一個 AT89S52 單片機(jī)可用的 I/O 口線才 32 個。故 實(shí)際應(yīng)用時必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬體電路的復(fù)雜性。數(shù)碼管動態(tài)顯示是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將 所有數(shù)碼管的 8 個顯示筆劃a、b、c、d、e、f、g、h 的同名端連在一起,每個數(shù)碼 管的公共極 COM 由各自獨(dú)立的 I/O 線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都 接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機(jī)對數(shù)碼管公 共極 COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位 數(shù)碼管就顯示出字形,沒有選通的數(shù)碼管就不會亮。動態(tài)顯示中,把每
33、個數(shù)碼管的公 共極叫做字選,所有數(shù)碼管的公共極驅(qū)動信號叫字選信號,也叫位碼。通過分時輪流控制各個 LED 數(shù)碼管的 COM 端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位 LED 數(shù)碼管的點(diǎn)亮?xí)r間為 12ms,由于人 的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時點(diǎn)亮,但 只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會有閃爍感,動態(tài)顯 示一般比靜態(tài)顯示亮度低一些,但是,動態(tài)顯示驅(qū)動能夠節(jié)省大量的 I/O 口,而且功耗 也低。數(shù)字時鐘的工作原理以 24 小時制的數(shù)字時鐘為例,假定其初始狀態(tài)是 0 時 0 分 0秒,則每過一秒鐘,秒計(jì)數(shù)器加
34、 1,當(dāng)秒計(jì)數(shù)器加到 59 時,再過一秒鐘,秒計(jì)數(shù)器清零, 而分計(jì)數(shù)器加 1;當(dāng)秒計(jì)數(shù)器為 59、分計(jì)數(shù)器位 59 時,再過 1 秒鐘,則秒計(jì)數(shù)器清 零、分計(jì)數(shù)器清零而小時計(jì)數(shù)器加 1;當(dāng)秒計(jì)數(shù)器為 59、分計(jì)數(shù)器為 59、時計(jì)數(shù)器 為 23 時,再過 1 秒鐘,則秒計(jì)數(shù)器清零、分計(jì)數(shù)器清零、小時計(jì)數(shù)器清零,回到初始 狀態(tài)。周而復(fù)始的進(jìn)行這個過程,并把時、分、秒計(jì)數(shù)器的內(nèi)容實(shí)時的顯示出來,就構(gòu)成了一個簡單的數(shù) 字時鐘。顯然,設(shè)計(jì)數(shù)字時鐘的關(guān)鍵是要找到能夠精確計(jì)時 1 秒鐘的方法。不使用實(shí)時 時鐘芯片,就單片機(jī)本身而言,實(shí)現(xiàn) 1 秒鐘的計(jì)時,有兩種方法:一是軟件指令延時的方法;一是定時中斷的方法
35、。使用定時中斷的方法精度比較高,但由于課程進(jìn)度的原因這里采用軟件指令延時的方法來實(shí)現(xiàn)。所示。實(shí)驗(yàn)原理如圖 3-3四、實(shí)驗(yàn)步驟1、將實(shí)驗(yàn)掛箱上 74LS273 的輸出 0007 用連接導(dǎo)線分別接到 LED 數(shù)碼管LED-A、LED-B、LED-C、LED-D、LED-E、LED-F、LED-G、LED-DP 上,74LS273 的 片選CS273 接 CS0 此時 74LS273 的地址是 0CFA0H。2、將 CPU 板上的 P10P15 分別接至 U LED1、LED2、LED3、LED4、LED5、LED6 上。3、 編寫程序,實(shí)現(xiàn)在數(shù)碼管的前兩位顯示小時,中間兩位顯示分鐘,后兩位顯示 秒
36、,且上電程序運(yùn)行后,時鐘的初始狀態(tài)是 080000。4、 編譯、調(diào)試、在線仿真運(yùn)行,觀察 LED 數(shù)碼管的顯示,與手表比對快慢。五、程序流程圖六、 參考程序 圖 3-4 主程序流程圖 圖3-5 顯示、延時、計(jì)時主程序流程圖SEGPORTHOWK INUTESICONPCOUNTHCOUNTLDEGlBDFDEGiAFBEG3_BTJTDEG4*BUFEQUDATADATAMTADAUMTADATADATADATAM7ASEG_POST:HOWBiHim:sicciro:eomn_H :cowFt、DEGl_BVfIPEM3B1UTI DEGaBVTJcsSEG_FORTHOURMINUTESE
37、CONDCOUNT_HCOUNTLDEG1_BUFDEG2BUFDEG3BUFDEG4一BUFDEGSBUF DEG6BUFEQUOCFAOHDATA30HDATA31HDATA32HDATA33HDATA34HDATA60HDATA61HDATA62HDATA63HDATA64HDATA65HORG0000HLJMPSTARTORG0050HSTMT:LOOPSMOV SECCWDzUO;時鐘NOVHiN( (rre#oMOV HOUR.U08HNOV COURT H理0:2ms計(jì)數(shù)器初姥化NOV COUNT工粉MOV R7.DE&6-BUF;杪個位旻示tl沖NOVLCALL DIS
38、P;昱亍.調(diào)整計(jì)It. JSI12MNOV R7,DEG5-BUF;抄十位顯示緩沖MOV R6#IV111T11O1BWOP; fill時.使毎位顯示均為2囲NOPLCALL DI3PNOV IH.DEGJBUF;分個灶丘亍緩沖HOV R611111011BMOPNOPLCALL DISPNOV R7rtEG3_BUF;分十煜顯示緩沖HOV RellllOlllBMOPNOPLCALL DISPNOV R7rDEG2_8UF;rfT個位It示級沖MOV R611161111BMOPNOPLCALL DISPMOV R7.DEG1 B(JF;十位丘示緩沖DATA64HDATA65HORG0000
39、HLJMPSTARTORG0050HMOV SECOND, #0;初始化時鐘MOV MINUTE,#0MOV HOUR,#08HMOV COUNT_H,#0;2ms計(jì)數(shù)器初始化MOV COUNTL, #0MOV R7, DE$6_BUF;秒個位顯示緩沖MOV選LCALL DISP;顯示、調(diào)醴計(jì)也 延時2msMOV R7,DEG5_BUF;秒午位顯示緩沖MOV R6,#111T11O1BNOP;調(diào)醴延時,使每位顯示均為2msNOPLCALL DISPMOV R7ZDEG4_BUF;分個位顯示緩沖MOV R6z#11111011BHOPMOV COUNT_LZANOV ACCOUNT H;軟計(jì)數(shù)筋
40、高豐節(jié)AXDCMOV COUNT_H,AXRL Aztfl mDISPI;序運(yùn)量短的惰況;2M9IMOV周期XRL A, MOr4H71F4H-5OO; 1周期JWZ DL3P2:2周朗CLR A:X周期NOV COUNT H.A: lffllWNOV COUNT)丄:1周期NOV A,SECOND;1周期ADD A,M1;1周期DA A;119期NOV SECOND,A;1用期XRL A.M60H;!周朗JWZ DXSP3;2周期NOV 3ECOND/O:2周期HOV A, HINUTE;1周JWADD Az#l;1周期MOV KINUTE.AUJWXRL Az#60H;1,禺期JWZ DI
41、SP4;2周朗MOV MINUTE,0;2周期MOV A, HOUR;:周期ADD周朗DA:1局朗MOV HOUR,A; 1/SJX8XRLJWZ DXSPS;:;:周期NOV HOUR川0;2圈期SJMP DISP6;程序運(yùn)行時間號長悄況;2周期DEG5_BUFDEG6_BUFSTART:LOOP:MOV COUNT_L,AMOV A,COUNT_H;軟計(jì)數(shù)器離字節(jié)ADDC A,#OMOV COUNT_H,AXRL A #1JHZ DISP1;程序運(yùn)行時間最短的情況;2周期MOV A,COUNT_L; 1周期XRL A,#0F4H71F4H=500;JHZ DISP2;2周期CLR周期Mf)
42、V COTTNT_HZA; 1周期MOV COUNTLzA; 1周期MOV A, SECOND; 1周崩ADD Az#l;l周期DA周期MOV SECOND,A; 1周期XRL A,#6OH; 1周期JNZ DISP3;2周崩MOV SECONDZ#0;2周期MOV A, MINUTE; 1周期DISP4:NOPMOPNOPNOPMOPNOPMOPMOPNOPDISPS:NOPMOPNOPNOPDISP6:NOPMOV AZHOUR:以下代碼梅時.分.枕數(shù)據(jù)送足示緩沖fSVAP AAML AZHOFHNOV DEGBUF.ANOV A, HOURAML AZ#OFKMOV DEG2_BUF,A
43、MOV AzHINTTESWAP AAML A.MOFHMOV DEG3_BUF,AMOV AZHINVTEAHL A.MOFHNOV DEG4BUF.AMOV A.SECCMDSWAP AANL AzlV0rHNOV DEG5_BOF.ANOV A.SECCMDHOPDISP4:NOPNOPHOPNOPNOP七、思考題與實(shí)際鐘表對比計(jì)時,分析誤差產(chǎn)生的原因,怎樣提高計(jì)時精度?項(xiàng)目 4 LCM 液晶模塊顯示實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、 了解液晶顯示模塊的工作原理2、 掌握液晶顯示模塊與單片機(jī)的接口方法3、 學(xué)會液晶顯示模塊的編程方法二、實(shí)驗(yàn)內(nèi)容編程實(shí)現(xiàn)在液晶顯示模塊上顯示兩屏文字,第一屏文字為 內(nèi)蒙古
44、民族大學(xué)物理 與電子信息學(xué)院”第二屏文字為“200 級單片機(jī)技術(shù)實(shí)驗(yàn)實(shí)驗(yàn)人 XXX。每屏文字 顯示 5秒鐘,循環(huán)顯示。三、實(shí)驗(yàn)原理實(shí)驗(yàn)所用液晶模塊是金鵬實(shí)業(yè)有限公司生產(chǎn)的帶中文字庫、每屏顯示兩行、每行 8 個 16X16 點(diǎn)陣漢字的 OCMJ2X8A 液晶模塊。該模塊具有上/下/左/右整屏移動顯示屏幕及整屏清除屏幕、光標(biāo)顯示、反白等 操作命令。模塊本身自帶上電低電平復(fù)位的阻容復(fù)位回路,上電復(fù)位后可自動進(jìn)行初始化設(shè)置,同時在接口提供一復(fù)位引腳,可提供用戶進(jìn)行軟件復(fù)位控制或硬件復(fù)位 控制。 簡單的 13 個用戶接口命令代碼,非常容易記憶。 標(biāo)準(zhǔn)用戶硬件接口采用 REQ/BUSY握手通訊協(xié)議,簡單可
45、靠。OCMJ2X8A 液晶模塊與 8051 系列單片機(jī)的接口電路如圖 4-1 所示O*5V圖 4-1 OCMJ 系列液晶模塊與單片機(jī)接口電路OCMJ2X8A 的引腳說明見表 4-1。表 4-1 OCMJ2X8A(128X32 點(diǎn)陣引腳說明引腳名稱方向說明引腳名稱方向說明1 LED+ I 背光源正極 LED+5V 10 DB3 I 數(shù)據(jù)位 32 LED- I 背光源正極 LED-0V 11 DB4 I 數(shù)據(jù)位 43 VSS I GND 12 DB5 I 數(shù)據(jù)位 54 VDD I +5V 13 DB6 I 數(shù)據(jù)位 6iconVceEAxi 89C52PIOPldPI?X2NESETP1J R1.4
46、Pl.5PI.6PI.7Pfl 1nj vPO.flVet5LEAI悄SEVDD0CMJ4XOOB七刈満潔15 KESE7 IT RT1 ifi 1C IBST21OF0.2KJ130F43OPFHILOATA*1*4 M14BUSY模塊接腳“3 VSS?】”E【51? DBO-7 13 BUSY A VDD(+5ff)廿REQ5 REQ I 請求信號,高電平有效 14 DB7 I 數(shù)據(jù)位 76 BUSY O 應(yīng)答信號。1 已收到數(shù)據(jù)并正在處理中,0 模塊空閑,可接收數(shù)據(jù)15 RES I 復(fù)位信號,低電平有效7 DB0 I 數(shù)據(jù)位 0 16 NC 空腳8 DB1 I 數(shù)據(jù)位 1 17 RT1
47、LCD 灰度調(diào)整,外接電阻端9 DB2 I 數(shù)據(jù)位 2 18 RT2 LCD 灰度調(diào)整,外接電阻端OCMJ2X8A 的接口協(xié)議為請求/應(yīng)答(REQ/BUSY 握手方式。應(yīng)答 BUSY 高電 平(BUSY =1 表示 OCMJ 忙于內(nèi)部處理,不能接收用戶命令;BUSY 低電平(BUSY =0 表示 OCMJ 空閑,等待接收用戶命令。發(fā)送命令到 OCMJ 可在 BUSY =0 后的任意 時刻開始,先把用戶命令的當(dāng)前字節(jié)放到數(shù)據(jù)線上,接著發(fā)高電平 REQ 信號(REQ =1 通知OCMJ 請求處理當(dāng)前數(shù)據(jù)線上的命令或數(shù)據(jù)。OCMJ 模塊在收到外部的 REQ高電平信號后立即讀取數(shù)據(jù)線上的命令或數(shù)據(jù),同
48、時將應(yīng)答線 BUSY 變?yōu)楦唠娖?表 明模塊已收到數(shù)據(jù)并正在忙于對此數(shù)據(jù)的內(nèi)部處理,此時,用戶對模塊的寫操作已經(jīng) 完成,用戶可以撤消數(shù)據(jù)線上的信號并可作模塊顯示以外的其他工作,也可不斷地查 詢應(yīng)答線 BUSY 是否為低(BUSY =0?,如果 BUSY =0,表明模塊對用戶的寫操作已經(jīng) 執(zhí)行完畢??梢栽偎拖乱粋€數(shù)據(jù)。如向模塊發(fā)出一個完整的顯示漢字的命令,包括坐標(biāo)及漢字代碼在內(nèi)共需 5 個字節(jié),模塊在接收到最后一個字節(jié)后才開始執(zhí)行整個 命令的內(nèi)部操作,因此,最后一個字節(jié)的應(yīng)答 BUSY 高電平(BUSY =1 持續(xù)時間較 長。用戶通過命令調(diào)用 OCMJ 系列液晶顯示器的各種功能。命令分為操作碼及
49、操 作數(shù)兩部分,操作數(shù)為十六進(jìn)制。共分為 3 類 13 條。分別是:一、字符顯示命令:1、顯示國標(biāo)漢字;2、顯示 8X8 ASCII 字符;3、顯示 8X16ASCII字符;二、圖形顯示命令:4、顯示位點(diǎn)陣;5、顯示字節(jié)點(diǎn)陣;三、屏幕控制命令:6、清屏;7、上移;8 下移;9、左移;10、右移;11、反白 12、光標(biāo)顯示 13、移動速度調(diào)整(注意:以下所示取值范圍分別為:2X8、4X8、4X12、5X10、8X10、8X15 的取值范圍 1、顯示國標(biāo)漢字命令格式:F0 XX 丫丫 QQ WW該命令為 5 字節(jié)命令(最大執(zhí)行時間為 1.2 毫秒,Ts2=1.2mS 其中XX:為以漢字為單位的屏幕
50、行坐標(biāo)值,取值范圍 00H 到 07H、02H 到 09H、00H至 U 0BH、 00H 至 U 09H、 00H 至 U 09H、 00H 至 U 0EHYY:為以漢字為單位的屏幕列坐標(biāo)值,取值范圍 00H 到 01H、00H 到 03H、00H至 U 03H、 00 至 U 04H、 00H 至 U 07H、 00H 至 U 07HQQ WW:坐標(biāo)位置上要顯示的 GB 2312 漢字區(qū)碼、位碼2、顯示 8X8 ASCII 字符命令格式:F1 XX 丫丫 AS該命令為 4 字節(jié)命令(最大執(zhí)行時間為 0.8 毫秒,Ts2=0.8mS 其中XX:為以 ASCII 碼為單位的屏幕行坐標(biāo)值,取值范
51、圍 00H 到 0FH、04H 到13H、 00H 至 U 17H、 00H 至 U 13H、 00H 至 U 13H、 00H 至 U 1DHYY:為以 ASCII 碼為單位的屏幕列坐標(biāo)值,取值范圍 00H 到仆 H、00H 到3FH、 00H 至 U 3FH、 00H 至 U 4FH、 00H 至 U 7FH、 00H 至 U 7FHAS:坐標(biāo)位置上要顯示的 ASCII 字符碼3、顯示 8X16 ASCII 字符命令格式:F9 XX 丫丫 AS該命令為 4 字節(jié)命令(最大執(zhí)行時間為 1.0 毫秒,Ts2=1.0mS 其中XX:為以 ASCII 碼為單位的屏幕行坐標(biāo)值,取值范圍 00H 到
52、OFH、04H 到13H、 00H 至 U 17H、 00H 至 U 13H、 00H 至 U 13H、 00H 至 U 1DHYY:為以 ASCII 碼為單位的屏幕列坐標(biāo)值,取值范圍 00H 到仆 H、00H 到3FH、 00H 至 U 3FH、 00H 至 U 4FH、 00H 至 U 7FH、 00H 至 U 7FHAS:坐標(biāo)位置上要顯示的 ASCII 字符碼4、顯示位點(diǎn)陣命令格式:F2 XX 丫丫該命令為 3 字節(jié)命令(最大執(zhí)行時間為 0.1 毫秒,Ts2=0.1mS 其中XX:為以 1*1 點(diǎn)陣為單位的屏幕行坐標(biāo)值,取值范圍 00H 到 7FH、20H 到9FH、00H 至 U0BF
53、H、 00H 至 U 9FH、 00H 至 U 09FH、 00H 至 U 0EFHYY:為以 1*1 點(diǎn)陣為單位的屏幕列坐標(biāo)值,取值范圍 00H 到 仆 H、00H 到3FH、 00H 至 U 3FH、 00H 至 U 4FH、 00H 至 U 7FH、 00H 至 U 7FH5、顯示字節(jié)點(diǎn)陣命令格式:F3 XX 丫丫 BT該命令為 4 字節(jié)命令(最大執(zhí)行時間為 0.1 毫秒,Ts2=0.1mS 其中XX:為以 1*8 點(diǎn)陣為單位的屏幕行坐標(biāo)值,取值范圍 00H 到 OFH、04H 到13H、 00H 至 U 17H、 00H 至 U 13H、 00H 至 U 13H、 00H 至 U 1D
54、HYY:為以 1*1 點(diǎn)陣為單位的屏幕列坐標(biāo)值,取值范圍 00H 到 仆 H、00H 到3FH、 00H 至 U 3FH、 00H 至 U 4FH、 00H 至 U 7FH、 00H 至 U 7FHBT:字節(jié)像素值,0 顯示白點(diǎn),1 顯示黑點(diǎn)6 清屏命令格式:F4該命令為單字節(jié)命令(最大執(zhí)行時間為空。7、 上移命令格式:F5該命令為單字節(jié)命令(最大執(zhí)行時間為移動一個點(diǎn)陣行。8、下移命令格式:F6該命令為單字節(jié)命令(最大執(zhí)行時間為移動一個點(diǎn)陣行。9、左移命令格式:F7該命令為單字節(jié)命令(最大執(zhí)行時間為(顯示字節(jié)為橫向11 毫秒,Ts2=11mS 其功能為將屏幕清25 毫秒,Ts2=25mS 其功
55、能為將屏幕向上30 毫秒,Ts2=30mS 其功能為將屏幕向下12 毫秒,Ts2=12mS 其功能為將屏幕向左移動一個點(diǎn)陣列10、右移命令格式:F8該命令為單字節(jié)命令(最大執(zhí)行時間為 12 毫秒,Ts2=12mS 其功能為將屏幕向右 移動一個點(diǎn)陣列。11、反白(新增指令命令格式:FAH該命令為單字節(jié)命令(最大執(zhí)行時間為 0.1 毫秒,Ts2=0.1mS。當(dāng)寫入指令#FAH; 以后寫入的圖形或字符、漢字的顯示會出現(xiàn)反顯效果,就是把本應(yīng)顯示的數(shù)據(jù)取反再顯示。 例如:寫入字節(jié):“00010011b 顯示的是:“ 11101100。 當(dāng)再次寫入指令 #FAH;取消反白功能,恢復(fù)原來顯示效果。12、光標(biāo)
56、顯示(新增指令命令格式:FBH+00H/07H/0FH該命令為雙字節(jié)命令(最大執(zhí)行時間為 0.11 毫秒,Ts2=0.1mS 該指令含有一個 參數(shù),參數(shù)=00H 時關(guān)光標(biāo)顯示;參數(shù)=07H 時顯示光標(biāo)為 8 點(diǎn) (一個字節(jié)長度;參數(shù) =0FH時顯示光標(biāo)為 16 點(diǎn)(兩個字節(jié)長度;光標(biāo)的移動是按照參數(shù)確定跳到下一地址 顯示,不在最后顯示的字符或漢字下方。光標(biāo)具有閃爍效果。13、調(diào)整移動速度(新增指令命令格式:FCH+00H/01H/07H/0FH該指令含有一個參數(shù),參數(shù)“00H 表示移動時按 1 個點(diǎn)行/列移動,這為默認(rèn)值,一 般不設(shè)置上電后以此為參數(shù) 滲數(shù)“01H 表示移動時按 2 個點(diǎn)行/列
57、移動滲數(shù)“07H 表示移動時按 8 個點(diǎn)行/列移動滲數(shù)“0FH 表示移動時按 16 個點(diǎn)行/列移動。四、實(shí)驗(yàn)步驟1、將 CPU 板上的 P10P17 接 CPU 掛箱上 LCD 模塊的 DB0DB7,CPU 板上的TO 接 BUSY, CPU 板上的 T1 接 REQ2、編寫匯編源程序。3、調(diào)試、仿真運(yùn)行,觀察實(shí)驗(yàn)結(jié)果五、程序流程圖圖 4-2 是程序流程圖。圖 4-2 程序流程圖六、參考程序MOV COUNTER2, #0;第一個漢字START2:MOV A,COUNTER2MOV DPTR,#TAB2MOVC Ar0A+DPTR;査表取數(shù)據(jù)LCALL WRITEIHC COUNTER2DJH
58、Z COUNTERlrSTART2 LCALL DELAY5SJMP MAINWRITE:CLR REQSETB BUSYJB BUSY,SMOV PORT,A;SETB RBQ;諸求接收命令(數(shù)JHB BUSY, $;忙,廉地磚待CLR REQ;接收完畢DELAY:MOV R7#0FH;6MHzU時13msDELI:MOV R6r#0D7H;DJNZ R6,$DJNZ R7,DELI RETDELAY5:MOV R5r#0E5HDEL5_2:MOV R4r#22HMOV R3,#9FHDJNZ R3ZSDJNZ R4ZDEL5_1DJNZ R5ZDEL522RETMOVCOUNTER2, #
59、0 f第一個漢豐START2:MOVCOUNTER2MOV DPTR, #TAB2MOVC Af0A+DPTR;査表取數(shù)據(jù)LC7VLL WRITEINC COUNTER2DJHZCOUNTER1,START2LCAIJIJ DELAYSSJMPMAINWRITE:CLRREQSETSBUSYJB BUSY30 ADOAD2ADDAD7ADSADSJZZL#U4 A7L373U2曰DAPTia1CLK了1_二北方向的指示燈。在實(shí)驗(yàn)掛箱上各發(fā)光二極管的陽極已經(jīng)通過保護(hù)電阻接到+5V 的電源上,發(fā)光二極管的陰極接到輸入端上,因此使其點(diǎn)亮應(yīng)使相應(yīng)輸入端為低電平。實(shí)驗(yàn)原理圖見圖 5-1。四、實(shí)驗(yàn)步驟1將
60、實(shí)驗(yàn)掛箱上 74LS273 的輸出 0002 用連接導(dǎo)線分別接到發(fā)光二極管L1L3 上,0305 用連接導(dǎo)線分別接到發(fā)光二極管 L5L6 上。74LS273 的片選 CS273 接CS2 此時 74LS273 的地址是 0CFB0H。2將 CPU 板上的 INT0 接到實(shí)驗(yàn)掛箱左下角藍(lán)色按鈕(這里作為緊急按鈕的左邊 P-插口上。該藍(lán)色按鈕是一個單脈沖發(fā)生器。每按下一次,從 P-輸出一個下降沿,從 P+輸出一個上升沿。3在計(jì)算機(jī)上打開 Keil 卩 Vision4 C5 軟件。按實(shí)驗(yàn)內(nèi)容設(shè)計(jì)、編輯實(shí)驗(yàn)程序,注意源程序中要盡量多加注釋,以便于檢查。然后進(jìn)行編譯、修改,直到?jīng)]有任何錯 誤。Keil卩 Vision4 C5 軟件的使用請
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國復(fù)合密封條市場調(diào)查研究報(bào)告
- 2025-2030年中國隨機(jī)旋轉(zhuǎn)滾子退磁機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 內(nèi)部控制對會計(jì)信息披露質(zhì)量的影響
- 深探色彩魔力
- 行政管理常識
- 腦梗后遺癥安全護(hù)理
- 語言活動窗外的垃圾說課
- 沙扒灣旅游計(jì)劃
- 胸腔積液相關(guān)護(hù)理知識
- 年終總結(jié)工傷對比
- 護(hù)理基礎(chǔ)知識1000題
- 課程思政建設(shè)論文:新版義務(wù)教育英語課標(biāo)的中國底色
- 馬工程-公共財(cái)政概論-課程教案
- GB/T 16956-1997船用集裝箱綁扎件
- 使役、被動 梳理講義-高三日語一輪復(fù)習(xí)
- 千年菩提路解說詞
- 古代漢語課件-副詞
- 采礦學(xué)-I課件第七章-主要開拓巷道類型和位置的選擇
- BCH編碼解讀課件
- 攝像機(jī)基本原理(中文)
- 人員招收、招聘來源及人員穩(wěn)定性保障措施
評論
0/150
提交評論