




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)一 :擴(kuò)展存儲器讀寫實(shí)驗(yàn)一.實(shí)驗(yàn)要求編制簡單程序,對實(shí)驗(yàn)板上提供的外部存貯器(62256)進(jìn)行讀寫操作。二.實(shí)驗(yàn)?zāi)康?學(xué)習(xí)片外存儲器擴(kuò)展方法。2學(xué)習(xí)數(shù)據(jù)存儲器不同的讀寫方法。三.實(shí)驗(yàn)電路及連線 將P1.0接至L1。CS256連GND孔。四.實(shí)驗(yàn)說明1單片機(jī)系統(tǒng)中,對片外存貯器的讀寫操作是最基本的操作。用戶藉此來熟悉MCS51單片機(jī)編程的基本規(guī)則、基本指令的使用和使用本仿真實(shí)驗(yàn)系統(tǒng)調(diào)試程序的方法。用戶編程可以參考示例程序和流程框圖。本示例程序中對片外存貯器中一固定地址單元進(jìn)行讀寫操作,并比較讀寫結(jié)果是否一致。不一致則說明讀寫操作不可靠或該存儲器單元不可靠,程序轉(zhuǎn)入出錯處理代碼段(本
2、示例程序通過熄滅一個發(fā)光二極管來表示出錯)。讀寫數(shù)據(jù)的選用,本例采用的是55(0101,0101)與AA(1010,1010)。一般采用這兩個數(shù)據(jù)的讀寫操作就可查出數(shù)據(jù)總線的短路、斷路等,在實(shí)際調(diào)試用戶電路時非常有效。用戶調(diào)試該程序時,可以靈活使用單步、斷點(diǎn)和變量觀察等方法,來觀察程序執(zhí)行的流程和各中間變量的值。2在I狀態(tài)下執(zhí)行MEM1程序,對實(shí)驗(yàn)機(jī)數(shù)據(jù)進(jìn)行讀寫,若L1燈亮說明RAM讀寫正常。3也可進(jìn)入LCA51的調(diào)試工具菜單中的對話窗口,用監(jiān)控命令方式讀寫RAM,在I狀態(tài)執(zhí)行SX0000 55,SPACE, 屏幕上應(yīng)顯示55,再鍵入AA,SPACE,屏幕上也應(yīng)顯示AA,以上過程執(zhí)行效果與編程
3、執(zhí)行效果完全相同。注:SX是實(shí)驗(yàn)機(jī)對外部數(shù)據(jù)空間讀寫命令。4本例中,62256片選接地時,存儲器空間為00007FFFH。五.實(shí)驗(yàn)程序框圖實(shí)驗(yàn)示例程序流程框圖如下:六.實(shí)驗(yàn)源程序:ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HMOV DPTR,#0000H ;置外部RAM讀寫地址MOV A,#55H ;測試的數(shù)據(jù)一MOV B,AMOVX DPTR,A ;寫外部RAMMOVX A,DPTR ;讀外部RAMXRL A,B ;比較讀回的數(shù)據(jù)JNZ ERRORMOV A,#0AAH ;測試的數(shù)據(jù)二MOV B,AMOVX DPTR,AMOVX A,DPTRXR
4、L A,BJZ PASS ;測試通過ERROR: SETB P1.0 ;測試失敗,點(diǎn)亮LEDSJMP $PASS: CPL P1.0 ;LED狀態(tài)(亮/滅)轉(zhuǎn)換MOV R1,#00H ;延時DELAY: MOV R2,#00HDJNZ R2,$DJNZ R1,DELAYLJMP START ;循環(huán)測試END實(shí)驗(yàn)二 P1口輸入、輸出實(shí)驗(yàn)一.實(shí)驗(yàn)要求1.P1口做輸出口,接八只發(fā)光二極管,編寫程序,使發(fā)光二極管循環(huán)點(diǎn)亮。2.P1口做輸入口,接八個扭子開關(guān),以實(shí)驗(yàn)機(jī)上74LS273做輸出口,編寫程序讀取開關(guān)狀態(tài),將此狀態(tài),在發(fā)光二極管上顯示出來。二.實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)P1口的使用方法。2.學(xué)習(xí)延時子程序
5、的編寫和使用。三.實(shí)驗(yàn)電路及連線實(shí)驗(yàn)三 P3口輸出控制繼電器實(shí)驗(yàn)一.實(shí)驗(yàn)要求利用P3.5輸出高低,控制繼電器的開合,實(shí)現(xiàn)對外部裝置的控制。二.實(shí)驗(yàn)?zāi)康恼莆绽^電器控制的基本方法和經(jīng)驗(yàn)。三.實(shí)驗(yàn)電路及連線P3.5 接JD。R-MID接L1燈,R-CLOSE接GND。四.實(shí)驗(yàn)說明現(xiàn)代自動控制設(shè)備中,都存在一個電子電路與電氣電路的互相連接問題,一方面要使電子電路的控制信號能夠控制電氣電路的執(zhí)行元件(電動機(jī),電磁鐵,電燈等),另一方面又要為電子線路的電氣電路提供良好的電隔離,以保護(hù)電子電路和人身的安全。電子繼電器便能完成這一橋梁作用。繼電器電路中一般都要在繼電器的線圈兩頭加一個二極管以吸收繼電器線圈斷電
6、時產(chǎn)生的反電勢,防止干擾。本電路的控制端為JD,當(dāng)JD為高電平時,繼電器不工作,當(dāng)JD為低電平時,繼電器工作,常開觸點(diǎn)吸合。執(zhí)行時,對應(yīng)的LED將隨繼電器的開關(guān)而亮滅。五.實(shí)驗(yàn)程序框圖六.源程序ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HJD: CPL P3.5 ;P3.5取反LCALL DELAY ;延時NOPSJMP JDDELAY: ;延時子程序(1秒)MOV R0,#0AHDELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2HDJNZ R2,$DJNZ R1,DELAY2DJNZ R0,DELAY1RETEND實(shí)驗(yàn)四
7、 簡單I/O實(shí)驗(yàn)(交通燈控制)一.實(shí)驗(yàn)要求以74LS273作為輸出口,控制4個雙色LED燈(可發(fā)紅,綠,黃光),模擬交通燈管理。二.實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)在單片機(jī)系統(tǒng)中擴(kuò)展簡單I/O接口的方法。2.學(xué)習(xí)數(shù)據(jù)輸出程序的設(shè)計方法。3.學(xué)習(xí)模擬交通燈控制的方法。4.學(xué)習(xí)雙色燈的使用。三.實(shí)驗(yàn)電路及連線PO0-PO3接DG1-DG4,PO4-P07接 DR1-DR4。CS273 接8300H。四.實(shí)驗(yàn)說明1.因?yàn)楸緦?shí)驗(yàn)是交通燈控制實(shí)驗(yàn),所以要先了解實(shí)際交通燈的變化規(guī)律。假設(shè)一個十字路口為東西南北走向。初始狀態(tài)0為東西紅燈,南北紅燈。然后轉(zhuǎn)狀態(tài)1南北綠燈通車,東西紅燈。過一段時間轉(zhuǎn)狀態(tài)2,南北綠燈閃幾次轉(zhuǎn)亮黃
8、燈,延時幾秒,東西仍然紅燈。再轉(zhuǎn)狀態(tài)3,東西綠燈通車,南北紅燈。過一段時間轉(zhuǎn)狀態(tài)4,東西綠燈閃幾次轉(zhuǎn)亮黃燈,延時幾秒,南北仍然紅燈。最后循環(huán)至狀態(tài)1。2.雙色LED是由一個紅色LED管芯和一個綠色LED管芯封裝在一起,公用負(fù)端。當(dāng)紅色正端加高電平,綠色正端加低電平時,紅燈亮;紅色正端加低電平,綠色正端加高電平時,綠燈亮;兩端都加高電平時,黃燈亮。五.實(shí)驗(yàn)程序框圖程序框圖: 六.源程序ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HLCALL STATUS0 ;初始狀態(tài)(
9、都是紅燈)CIRCLE: LCALL STATUS1 ;南北綠燈,東西紅燈LCALL STATUS2 ;南北綠燈閃轉(zhuǎn)黃燈,東西紅燈LCALL STATUS3 ;南北紅燈,東西綠燈LCALL STATUS4 ;南北紅燈,東西綠燈閃轉(zhuǎn)黃燈LJMP CIRCLESTATUS0: ;南北紅燈,東西紅燈MOV DPTR,#8300HMOV A,#0FHMOVX DPTR,AMOV R2,#10 ;延時1秒LCALL DELAYRETSTATUS1: ;南北綠燈,東西紅燈MOV DPTR,#08300HMOV A,#5AH ;南北綠燈,東西紅燈MOVX DPTR,AMOV R2,#50 ;延時5秒LCAL
10、L DELAYRETSTATUS2: ;南北綠燈閃轉(zhuǎn)黃燈,東西紅燈MOV DPTR,#8300HMOV R3,#03H ;綠燈閃3次FLASH: MOV A,#5FHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#5AHMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASHMOV A,#0AH ;南北黃燈,東西紅燈MOVX DPTR,AMOV R2,#10 ;延時1秒LCALL DELAYRETSTATUS3: ;南北紅燈,東西綠燈MOV DPTR,#8300HMOV A,#0A5HMOVX DPTR,AMOV R2,#50
11、 ;延時5秒LCALL DELAYRETSTATUS4: ;南北紅燈,東西綠燈閃轉(zhuǎn)黃燈MOV DPTR,#8300HMOV R3,#03H ;綠燈閃3次FLASH1: MOV A,#0AFHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#0A5HMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASH1MOV A,#05H ;南北紅燈,東西黃燈MOVX DPTR,AMOV R2,#10 ;延時1秒LCALL DELAYNOPRETDELAY: ;延時子程序PUSH 2PUSH 1PUSH 0DELAY1: MOV 1,#00H
12、DELAY2: MOV 0,#0B2HDJNZ 0,$DJNZ 1,DELAY2 ;延時 100 mSDJNZ 2,DELAY1POP 0POP 1POP 2RETEND實(shí)驗(yàn)一時,P1.0-P1.7接L1-L8。實(shí)驗(yàn)二時,P1.0-P1.7接K1-K8,PO0-PO7接L1-L8。CS273接8300H。四.實(shí)驗(yàn)說明1.P1口是準(zhǔn)雙向口。它作為輸出口時與一般的雙向口使用方法相同。由準(zhǔn)雙向口結(jié)構(gòu)可知當(dāng)P1口作為輸入口時,必須先對它置高電平使內(nèi)部MOS管截止。因?yàn)閮?nèi)部上拉電阻阻值是20K40K,故不會對外部輸入產(chǎn)生影響。若不先對它置高,且原來是低電平,則MOS管導(dǎo)通,讀入的數(shù)據(jù)是不正確的。2.延時
13、子程序的延時計算問題對于程序DELAY: MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知 MOV,DJNZ 指令均需用兩個機(jī)器周期,而一個機(jī)器周期時間長度為1211.0592MHz,所以該段程序執(zhí)行時間為:(0B31)×2561)×2×12÷11059200100.002mS五.實(shí)驗(yàn)程序框圖 主程序框圖(1): 程序框圖(2):六.1、主程序ORG 0000HLJMP STARTO
14、RG 0040HSTART:MOV SP,#60H MOV A,#0FEHROTATE: MOV P1,A ;寫 P1口RL A ;循環(huán)左移LCALL DELAY ;延時NOPSJMP ROTATEDELAY: ;延時子程序(1秒)MOV R0,#0AHDELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2HDJNZ R2,$DJNZ R1,DELAY2DJNZ R0,DELAY1RETEND2、讀P1口程序框ORG 0000HLJMP STARTORG 0040HSTART:MOV DPTR,#8300H ;并行輸出口地址MOV P1,#0FFH ;因P1口是
15、準(zhǔn)雙向口,所以把P1口作為;輸入口時,應(yīng)先置高電平.READ: MOV A,P1 ;讀開關(guān)狀態(tài)MOVX DPTR,A ;把讀入的數(shù)據(jù)輸出AJMP READEND實(shí)驗(yàn)五 外部中斷實(shí)驗(yàn)(急救車與交通燈)一.實(shí)驗(yàn)要求在實(shí)驗(yàn)四內(nèi)容的基礎(chǔ)上增加允許急救車優(yōu)先通過的要求。有急救車到達(dá)時,兩向交通信號為全紅,以便讓急救車通過。假定急救車通過路口時間為10秒,急救車通過后,交通燈恢復(fù)中斷前狀態(tài)。本實(shí)驗(yàn)以按鍵為中斷申請,表示有急救車通過。二.實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)外部中斷技術(shù)的基本使用方法。2.學(xué)習(xí)中斷處理程序的編程方法。三.實(shí)驗(yàn)電路及連線PO0-PO3接DG1-DG4,PO4-P07接 DR1-DR4。C
16、S273 接8300H。K8接P3.2。四.實(shí)驗(yàn)說明中斷服務(wù)程序的關(guān)鍵是:1.保護(hù)進(jìn)入中斷時的狀態(tài),并在退出中斷之前恢復(fù)進(jìn)入時的狀態(tài)。2.必須在中斷程序中設(shè)定是否允許中斷重入,即設(shè)置EX0位。本例中使用了INT0中斷,一般中斷程序進(jìn)入時應(yīng)保護(hù)PSW,ACC以及中斷程序使用但非其專用的寄存器。本例的INT0程序保護(hù)了PSW,ACC,2等三個寄存器并且在退出前恢復(fù)了這三個寄存器。另外中斷程序中涉及到關(guān)鍵數(shù)據(jù)的設(shè)置時應(yīng)關(guān)中斷,即設(shè)置時不允許重入。本例中沒有涉及這種情況。實(shí)驗(yàn)開始時K8應(yīng)在H(高電平)端,要產(chǎn)生中斷時先撥向L(低電平)端再撥回H端。五.實(shí)驗(yàn)程序框圖六.源程序ORG 0000HLJMP
17、STARTORG 0003H ;INT 0 中斷入口地址LJMP INT0ORG 0040HSTART:MOV SP,#60HSETB EX0 ;INT 0 中斷有效SETB IT0SETB EALCALL STATUS0 ;初始狀態(tài)(都是紅燈)CIRCLE: LCALL STATUS1 ;南北綠燈,東西紅燈LCALL STATUS2 ;南北綠燈閃轉(zhuǎn)黃燈,東西紅燈LCALL STATUS3 ;南北紅燈,東西綠燈LCALL STATUS4 ;南北紅燈,東西綠燈閃轉(zhuǎn)黃燈LJMP CIRCLEINT0:PUSH PSW ;保護(hù)現(xiàn)場PUSH 2PUSH ACCMOV DPTR,#8300HMOV A,
18、#0FH ;南北,東西都亮紅燈MOVX DPTR,AMOV R2,#100 ;延時10秒LCALL DELAYPOP ACC ;恢復(fù)現(xiàn)場MOVX DPTR,APOP 2POP PSWRETISTATUS0: ;南北紅燈,東西紅燈MOV DPTR,#8300HMOV A,#0FHMOVX DPTR,AMOV R2,#10 ;延時1秒LCALL DELAYRETSTATUS1: ;南北綠燈,東西紅燈MOV DPTR,#8300HMOV A,#5AH ;南北綠燈,東西紅燈MOVX DPTR,AMOV R2,#50 ;延時5秒LCALL DELAYRETSTATUS2: ;南北綠燈閃轉(zhuǎn)黃燈,東西紅燈M
19、OV DPTR,#8300HMOV R3,#03H ;綠燈閃3次FLASH: MOV A,#5FHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#5AHMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASHMOV A,#0AH ;南北黃燈,東西紅燈MOVX DPTR,AMOV R2,#10 ;延時1秒LCALL DELAYRETSTATUS3: ;南北紅燈,東西綠燈MOV DPTR,#8300HMOV A,#0A5HMOVX DPTR,AMOV R2,#50 ;延時5秒LCALL DELAYRETSTATUS4: ;南北紅燈
20、,東西綠燈閃轉(zhuǎn)黃燈MOV DPTR,#8300HMOV R3,#03H ;綠燈閃3次FLASH1: MOV A,#0AFHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#0A5HMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASH1MOV A,#05H ;南北紅燈,東西黃燈MOVX DPTR,AMOV R2,#10 ;延時1秒LCALL DELAYNOPRETDELAY: ;延時子程序PUSH 2PUSH 1PUSH 0DELAY1: MOV 1,#00HDELAY2: MOV 0,#0B2HDJNZ 0,$DJNZ 1,
21、DELAY2 ;延時 100 mSDJNZ 2,DELAY1POP 0POP 1POP 2RETEND實(shí)驗(yàn)六 定時器實(shí)驗(yàn)一.實(shí)驗(yàn)要求由8031內(nèi)部定時器1,按方式1工作,即作為16位定時器使用每0.05秒鐘T1溢出中斷一次。P1口的P1.0-P1.7分別接八個發(fā)光二極管。要求編寫程序模擬一時序控制裝置。開機(jī)后第一秒鐘L1,L3亮,第二秒鐘L2,L4亮,第三秒鐘L5,L7亮,第四秒鐘L6,L8亮,第五秒L1,L3,L5,L7亮,第六秒鐘L2,L4,L6,L8亮,第七秒鐘八個二極管全亮,第八秒鐘全滅,以后又從頭開始,L1,L3亮,然后L2,L4亮.一直循環(huán)下去。二.實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)8031內(nèi)部計數(shù)
22、器的使用和編程方法。2. 進(jìn)一步掌握中斷處理程序的編程方法。三.實(shí)驗(yàn)電路及連線P1.0-P1.7 接 L1-L8四.實(shí)驗(yàn)說明1.關(guān)于內(nèi)部計數(shù)器的編程主要是定時常數(shù)的設(shè)置和有關(guān)控制寄存器的設(shè)置。內(nèi)部計數(shù)器在單片機(jī)中主要有定時器和計數(shù)器兩個功能。本實(shí)驗(yàn)用的是定時器,有關(guān)計數(shù)器的說明請查閱實(shí)驗(yàn)七。2.內(nèi)部計數(shù)器用作定時器時,是對機(jī)器周期計數(shù)。每個機(jī)器周期的長度是12個振蕩器周期。因?yàn)閷?shí)驗(yàn)系統(tǒng)的晶振是11.0592MHz,所以定時常數(shù)的設(shè)置可按以下方法計算:機(jī)器周期=12÷11.0592MHz1.0857S(65536-定時常數(shù))*1.0857S=50mS定時常數(shù)4C00H 3.定
23、時器的有關(guān)的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于設(shè)置定時器/計數(shù)器的工作方式03,并確定用于定時還是用于計數(shù)。TCON主要功能是為定時器在溢出時設(shè)定標(biāo)志位,并控制定時器的運(yùn)行或停止等。4.在例程的中斷服務(wù)程序中,因?yàn)橹袛喽〞r常數(shù)的設(shè)置對中斷程序的運(yùn)行起到關(guān)鍵作用,所以在置數(shù)前要先關(guān)對應(yīng)的中斷,置數(shù)完之后再打開相應(yīng)的中斷。五.實(shí)驗(yàn)程序框圖 程序框圖:六.實(shí)驗(yàn)程序ORG 0000HAJMP STARTORG 001BH ;T1中斷入口地址AJMP INT_T1ORG 0100HSTART:MOV SP,#60HMOV TM
24、OD,#10H ;置T1為方式1MOV TL1,#00H ;延時50mS的時間常數(shù)MOV TH1,#4BHMOV R0,#00HMOV R1,#20SETB TR1SETB ET1SETB EA ;開中斷SJMP $INT_T1: ;T1中斷服務(wù)子程序PUSH ACC ;保護(hù)現(xiàn)場PUSH PSWPUSH DPLPUSH DPHCLR TR1 ;關(guān)中斷MOV TL1,#00H ;延時50mS常數(shù)MOV TH1,#4BHSETB TR1 ;開中斷DJNZ R1,EXITMOV R1,#20 ;延時一秒的常數(shù)MOV DPTR,#DATA ;置常數(shù)表基址MOV A,R0 ;置常數(shù)表偏移量MOVC A,
25、A+DPTR ;讀常數(shù)表MOV P1,A ;送P1口顯示INC R0ANL 00,#07HEXIT:POP DPH ;恢復(fù)現(xiàn)場POP DPLPOP PSWPOP ACCRETI;LED顯示常數(shù)表DATA: DB 0FAH,0F5H,0AFH,05FH,0AAH,55H,00H,0FFHEND實(shí)驗(yàn)七 計數(shù)器實(shí)驗(yàn)一.實(shí)驗(yàn)要求8031內(nèi)部定時計數(shù)器,按計數(shù)器模式和方式1工作,對P3.4(T0)引腳進(jìn)行計數(shù)。使用8031的T1作定時器,50ms中斷一次,看T0內(nèi)每0.50ms來了多少脈沖,將其數(shù)值按二進(jìn)制數(shù)在74LS273驅(qū)動LED燈上顯示出來,5秒后再次測試。二.實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)8031內(nèi)部定時/計
26、數(shù)器使用方法。2.進(jìn)一步掌握中斷處理編程方法。三.實(shí)驗(yàn)電路及連線P3.4接一計數(shù)脈沖( 25模塊中的149.06K頻率)。 PO0PO7接 L1L8。 CS273接8300H。四.實(shí)驗(yàn)說明1.本實(shí)驗(yàn)中內(nèi)部計數(shù)器起計數(shù)器的作用。外部事件計數(shù)脈沖由P3.4引入定時器T0。單片機(jī)在每個機(jī)器周期采樣一次輸入波形,因此單片機(jī)至少需要兩個機(jī)器周期才能檢測到一次跳變。這就要求被采樣電平至少維持一個完整的機(jī)器周期,以保證電平在變化之前即被采樣。同時這就決定了輸入波形的頻率不能超過機(jī)器周期頻率。2.實(shí)驗(yàn)時P3.4對應(yīng)的連線為149.06KHZ孔,0.5ms內(nèi)來了80次(50H)脈沖。五.實(shí)驗(yàn)程序框圖
27、六.實(shí)驗(yàn)程序:ORG 0000HAJMP STARTORG 000BH ;T0中斷入口地址RETIORG 001BH ;T1中斷入口地址AJMP INT_T1ORG 0040HSTART:MOV SP,#60HMOV TMOD,#1DH ;置T1為方式1 ;置T0為方式1,計數(shù)方式, ;
28、門控選通位有效MOV TL0,#0H ;計數(shù)器清零MOV TH0,#0HMOV TL1,#32H ;延時0.50mS常數(shù)MOV TH1,#0FEHMOV R0,#20 ;延時 5 秒常數(shù)SETB TR0 ;啟動T0SETB ET0SETB TR1 ;啟動T1SETB ET1SETB EA ;開中斷SJMP $INT_T1:PUSH ACCPUSH PSWCLR TR1MOV TL1,#32H ;延時0.50mS 常數(shù)MOV TH1,#0FEHMOV R1,TL0 ;保存計數(shù)值MOV R2,TH0MOV TL0,#00H ;清計數(shù)器MOV TH0,#00HSETB TR1DJNZ R0,EXIT
29、MOV R0,#20 ;延時 5 秒常數(shù)MOV DPTR,#8300H ;LED地址MOV A,R1MOVX DPTR,A ;把計數(shù)值在LED上顯示EXIT:POP PSWPOP ACCRETIEND實(shí)驗(yàn)八 8255輸入、輸出實(shí)驗(yàn)一.實(shí)驗(yàn)要求編寫程序,使用8255可編程并行口芯片,來檢測八位撥動開關(guān)的狀態(tài),并控制八位發(fā)光二極管。使得八位發(fā)光二極管的亮滅變化與八位撥動開關(guān)的狀態(tài)相一致。實(shí)驗(yàn)中用8255PB口作輸入,PC口做輸出。二.實(shí)驗(yàn)?zāi)康牧私?255芯片結(jié)構(gòu)及編程方法。三.實(shí)驗(yàn)電路及連線8255的PB0PB7(PB口)接至八位撥動開關(guān)K1K8。將PC0PC7(PC口)接至八位發(fā)光二極管L1 -
30、 L8。CS8255接8500H。四.實(shí)驗(yàn)說明可編程通用接口芯片8255A有三個八位的并行I/O口,請用戶仔細(xì)閱讀有關(guān)書籍掌握其特點(diǎn)和各種用法。由于8255的A1、A2腳分別接至地址線的A0、A1。所以相對應(yīng)8255各口/寄存器的地址分配如下:PA口:8500H; PB口:8502H;PC口:8504H;控制寄存器地址:8506H。本示例程序中使用PB口作輸入,檢測八位撥動開關(guān)的狀態(tài);使用PC口作輸出,控制八個發(fā)光二極管的亮滅。五.實(shí)驗(yàn)程序框圖 實(shí)驗(yàn)程序流程框圖如下:
31、; 六.實(shí)驗(yàn)程序見: ;-D8255 EQU 8506H ;8255 狀態(tài)/命令口地址D8255A EQU 8500H ;8255 PA 口地址D8255B EQU 8502H ;8255 PB 口地址D8255C EQU 8504H ;8255 PC 口地址;-ORG 0000HLJMP STARTORG 0100HSTART:LCALL DELAY ;延時MOV DPTR,#D8255MOV A,#82H ;置8255狀態(tài);方式0,PA,PC口輸出,PB口輸入MOVX DPTR,AROTATE:MOV DPTR,#D8255BMOVX A,DPTR ;讀開關(guān)狀態(tài)MOV DPTR,#D825
32、5CMOVX DPTR,A ;點(diǎn)亮對應(yīng)的LEDSJMP ROTATEDELAY: MOV R0,#0H ;延時子程序DELAY1: MOV R1,#0HDJNZ R1,$DJNZ R0,DELAY1RETEND實(shí)驗(yàn)九 8255掃描鍵盤、顯示實(shí)驗(yàn)一.實(shí)驗(yàn)要求利用8255可編程并行口做一個掃描鍵盤實(shí)驗(yàn),把按鍵輸入的鍵碼,顯示在由8279控制的七段數(shù)碼管上。8255PA口做鍵盤輸入線,PB口作掃描線。二.實(shí)驗(yàn)?zāi)康?.掌握8255編程方法。2.掌握掃描鍵盤和顯示的編程方法。三.實(shí)驗(yàn)電路及連線CS8255接8500H,則命令字地址為8506H,PA口地址為8500H,PB口地址為8502H,PC口地址為
33、8504H。CS8279接8700H,則8279的狀態(tài)口地址為8701H; 8279的數(shù)據(jù)口地址為8700H;模塊中的十個短路套都套在8255側(cè)。四.實(shí)驗(yàn)說明在PA口與PB口組成的64點(diǎn)陣列上,把按鍵接在不同的點(diǎn)上,將得到不同的鍵碼,本實(shí)驗(yàn)采用8×2的陣列,共可按16個鍵。顯示部分由8279控制,由7407驅(qū)動8位數(shù)碼管顯示。五.實(shí)驗(yàn)程序框圖 主程序框圖
34、160; 讀鍵顯示部分框圖六.實(shí)驗(yàn)程序:D8255 EQU 8506H ;8255狀態(tài)/數(shù)據(jù)口地址D8255A EQU 8500H ;8255 PA口地址D8255B EQU 8502H ;8255 PB口地址Z8279 EQU 8701H ;8279狀態(tài)口地址D8279 EQU 8700H ;8279數(shù)據(jù)口地址DISPTR EQU 08H ;當(dāng)前顯示位置KEYVAL EQU 09H ;讀到的鍵碼ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HLCALL DELAY ;延時MOV DISPTR,#30H ;顯示緩沖區(qū)頭指針MOV
35、 DPTR,#D8255MOV A,#90H ;置8255狀態(tài);方式0,PB,PC口輸出,PA口輸入MOVX DPTR,AMOV DPTR,#Z8279 ;置8279命令字MOV A,#0D3HMOVX DPTR,A ;清LED顯示MOV A,#00HMOVX DPTR,AMOV A,#38HMOVX DPTR,AMOV A,#0D1HKB_DIS:LCALL RD_KB ;讀鍵盤MOV A,#0FFHCJNE A,KEYVAL,DISBUF ;判讀到鍵SJMP KB_DIS ;沒有則繼續(xù)讀鍵DISBUF:LCALL DISP ;把鍵移入顯存LCALL DELAY ;延時消抖LCALL DEL
36、AYSJMP KB_DISDISP: ;顯存依次前移MOV R1,#31H ;在最后加入新鍵值MOVE:MOV A,R1DEC R1MOV R1,AINC R1INC R1CJNE R1,#38H,MOVEMOV 37H,KEYVALMOV KEYVAL,#0FFHMOV DPTR,#Z8279MOV A,#90HMOVX DPTR,AMOV R0,#08HMOV R1,#30HMOV DPTR,#D8279LP: MOV A,R1MOVX DPTR,AINC R1DJNZ R0,LPRETRD_KB: ;鍵盤掃描MOV A,#02H ;掃描第一行MOV DPTR,#D8255BMOVX DP
37、TR,AMOV DPTR,#D8255AMOVX A,DPTRMOV R1,#00HCJNE A,#0FFH,KEYCAL ;判鍵是否按下MOV A,#01H ;掃描第二行MOV DPTR,#D8255BMOVX DPTR,AMOV DPTR,#D8255AMOVX A,DPTRMOV R1,#08HCJNE A,#0FFH,KEYCALSJMP NOKEY ;無鍵按下KEYCAL: ;計算鍵碼MOV R0,#08HSHIFT:RRC AJNC CALCINC R1DJNZ R0,SHIFTCALC: ;換算顯示碼MOV DPTR,#DL_DATMOV A,R1MOVC A,A+DPTRMOV
38、 KEYVAL,ARETNOKEY: MOV KEYVAL,#0FFH ;返回?zé)o鍵標(biāo)志RETDELAY: MOV R0,#0H ;延時子程序DELAY1: MOV R1,#0HDJNZ R1,$DJNZ R0,DELAY1RETDL_DAT: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,FEND實(shí)驗(yàn)十 8279顯示實(shí)驗(yàn)一.實(shí)驗(yàn)要求編制程序,利用8279及鍵盤顯示接口電路,編程實(shí)現(xiàn)按鍵的讀取,并將按鍵值顯示在數(shù)碼管上。二.實(shí)驗(yàn)?zāi)康?掌握在8
39、031系統(tǒng)中擴(kuò)展8279鍵盤顯示接口的方法。2掌握8279工作原理和編程方法。三.實(shí)驗(yàn)電路及連線CS8279接8700H。 模塊中的十個短路套都套在8279側(cè)。四.實(shí)驗(yàn)說明利用8279可實(shí)現(xiàn)對鍵盤/顯示器的自動掃描,以減輕CPU負(fù)擔(dān),并具有顯示穩(wěn)定、程序簡單、不會出現(xiàn)誤動作等特點(diǎn)。本實(shí)驗(yàn)系統(tǒng)中8279的狀態(tài)/命令口地址位8701H;數(shù)據(jù)口地址位8700H。示例程序運(yùn)行將顯示"8279 -",并等待按鍵輸入,將鍵值顯示在數(shù)碼管上(只響應(yīng)0-F按鍵)。五.實(shí)驗(yàn)程序框圖
40、160; 六.實(shí)驗(yàn)程序: Z8279 EQU 08701H ;8279 狀態(tài)/命令口地址D8279 EQU 08700H ;8279 數(shù)據(jù)口地址LEDMOD EQU 10H ;右端輸入 八位字符顯示;外部譯碼鍵掃描方式,雙鍵互鎖LEDFEQ EQU 38H ;掃描速率LEDCLS EQU 0D1H ;清除LEDWR0 EQU 80H ;設(shè)定的將要寫入的顯示RAM地址ORG 0000HAJMP STARTORG 0040HSTART:MOV SP,#60HLCALL INIT8279 ;初始化8279WAIT: MOV DPTR,#Z8
41、279MOVX A,DPTRANL A,#0FHJZ WAITMOV A,#40HMOVX DPTR,AMOV DPTR,#D8279MOVX A,DPTRANL A,#3FHMOV R4,#00HMOV R5,ALCALL DISLEDSJMP WAITINIT8279: ;8279初始化子程序PUSH DPH ;保存現(xiàn)場PUSH DPLPUSH ACCLCALL DELAY ;延時MOV DPTR ,#Z8279MOV A,#LEDMOD ;置8279工作方式MOVX DPTR,AMOV A,#LEDFEQ ;置鍵盤掃描速率MOVX DPTR,AMOV A,#LEDCLS ;清除 LED
42、顯示MOVX DPTR,ALCALL DELAY ;延時MOV DPTR,#Z8279MOV A,#90HMOV DPTR,#D8279MOV A,#40HMOVX DPTR,AMOV A,#40HMOVX DPTR,AMOV A,#0HMOVX DPTR,AMOV A,#0HMOVX DPTR,AMOV A,#0EFHMOVX DPTR,AMOV A,#27HMOVX DPTR,AMOV A,#5BHMOVX DPTR,AMOV A,#7FHMOVX DPTR,APOP ACC ;恢復(fù)現(xiàn)場POP DPLPOP DPHRET
43、; ;顯示字符子程序 ;輸入: R4,位置 R5,值DISLED: PUSH DPH ;保存現(xiàn)場PUSH DPLPUSH ACCMOV A,#LEDWR0 ;置顯示起始地址ADD A,R4 ;加位置偏移量MOV DPTR,#Z8279MOVX DPTR,A ;設(shè)定
44、顯示位置MOV DPTR,#LEDSEG ;置顯示常數(shù)表起始位置MOV A,R5MOVC A,A+DPTR ;查表MOV DPTR,#D8279MOVX DPTR,A ;顯示數(shù)據(jù)POP ACC ;恢復(fù)現(xiàn)場POP DPLPOP DPHRETDELAY: ;延時子程序PUSH 0 ;保存現(xiàn)場PUSH 1MOV 0,#0HDELAY1: MOV 1,#0HDJNZ 1,$DJNZ 0,DELAY1POP 1 ;恢復(fù)現(xiàn)場POP 0RETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'DB 7FH,6FH,77H,
45、7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'DB 6DH,02H,08H,00H,59H,0FH,76H ;'U,-,_, ,I,O,P, 'END實(shí)驗(yàn)十一 8279顯示電子鐘實(shí)驗(yàn)一.實(shí)驗(yàn)要求利用8279鍵盤顯示接口電路,做成一個電子鐘。該鐘使用T1作50ms的定時中斷。利用8279可實(shí)現(xiàn)對鍵盤/顯示器的自動掃描,以減輕CPU負(fù)擔(dān),其有顯示穩(wěn)定、程序簡單、不會出現(xiàn)誤動作等特點(diǎn)。本實(shí)驗(yàn)利用8279實(shí)現(xiàn)顯示掃描自動化。8279操作命令字較多,根據(jù)需要來靈活使用,通過本實(shí)驗(yàn)可初步熟悉使用方法。電子鐘做成如下格式:XX XX XX 由左向
46、右分別為: 時、分、秒。二.實(shí)驗(yàn)?zāi)康?.掌握在8031系統(tǒng)中擴(kuò)展8279鍵盤顯示接口的方法。2.掌握8279工作原理和編程方法。3.進(jìn)一步掌握中斷處理程序的編程方法。三.實(shí)驗(yàn)電路及連線CS8279接8700H。 模塊中的十個短路套都套在8279側(cè)。四.實(shí)驗(yàn)說明8279通用接口芯片,根據(jù)應(yīng)用需要可以在多種模式下工作,詳見有關(guān)手冊。五.實(shí)驗(yàn)程序框圖 ISLED子程序框圖 &
47、#160; DISPLAY子程序框圖六.實(shí)驗(yàn)程序見:Z8279 EQU 08701H ;8279 狀態(tài)/命令口地址D8279 EQU 08700H ;8279 數(shù)據(jù)口地址LEDMOD EQU 00H ;左邊輸入 八位字符顯示 ;外部譯碼鍵掃描方式,雙鍵互鎖LEDFEQ EQU 2FH ;掃描速率LEDCLS EQU 0C1H ;清除顯示 RAMLEDWR0 EQU 80H ;設(shè)定的將要寫入的顯示RAM地址
48、ORG 0000HAJMP STARTORG 001BH ;INT T1 入口地址AJMP INT_T1ORG 0040HSTART:MOV SP,#60HLCALL INIT8279 ;初始化8279MOV R3,#0H ;時MOV R2,#0H ;分MOV R1,#0H ;秒MOV R6,#0H ;標(biāo)志MOV TMOD,#10HMOV TL1,#00H ;50 mS 的時間常數(shù)MOV TH1,#04CHMOV R0,#20SETB TR1SETB ET1SETB EA ;允許中斷WAIT: CJNE R6,#0FFH,WAITLCALL DISPLAYMOV R6,#0SJMP WAITI
49、NIT8279: ;8279初始化子程序PUSH DPH ;保存現(xiàn)場PUSH DPLPUSH ACCLCALL DELAY ;延時MOV DPTR ,#Z8279MOV A,#LEDMOD ;置8279工作方式MOVX DPTR,AMOV A,#LEDFEQ ;置鍵盤掃描速率MOVX DPTR,AMOV A,#LEDCLS ;清除 LED 顯示MOVX DPTR,ALCALL DELAY ;延時POP ACC ;恢復(fù)現(xiàn)場POP DPLPOP DPHRET ;顯示字符子程序
50、160; ;輸入: R4,位置 R5,值DISLED: PUSH DPH ;保存現(xiàn)場PUSH DPLPUSH ACCMOV A,#LEDWR0 ;置顯示起始地址ADD A,R4 ;加位置偏移量MOV DPTR,#Z8279MOVX DPTR,A ;設(shè)定顯示位置MOV DPTR,#LEDSEG ;置顯示常數(shù)表起始位置MOV A,R5MOVC A,A+DPTR ;查表MOV DPTR,#D8279MOVX DPTR,A ;顯示數(shù)據(jù)POP ACC ;恢復(fù)現(xiàn)場POP DPLPOP DPHRETDELAY: ;延時子程序
51、PUSH 0 ;保存現(xiàn)場PUSH 1MOV 0,#0HDELAY1: MOV 1,#0HDJNZ 1,$DJNZ 0,DELAY1POP 1 ;恢復(fù)現(xiàn)場POP 0RETINT_T1: ;INT_T1中斷服務(wù)子程序PUSH DPH ;保護(hù)現(xiàn)場PUSH DPLPUSH ACCPUSH PSWCLR TR1MOV TL1,#00H ;50mS 定時常數(shù)MOV TH1,#4CHSETB TR1DJNZ R0,EXIT ;判斷毫秒=0MOV R0,#20 ;DELAY 1 SECONDMOV R6,#0FFH ;置秒標(biāo)志CJNE R1,#59H,SECOND ;判斷秒=59MOV R1,#99HCJNE
52、 R2,#59H,MINUTE ;判斷分=59MOV R2,#99HCJNE R3,#23H,HOUR ;判斷時=23MOV R3,#99HHOUR:MOV A,R3ADD A,#1 ;時加1DA AMOV R3,AMINUTE:MOV A,R2ADD A,#1 ;分加1DA AMOV R2,ASECOND:MOV A,R1ADD A,#1 ;秒加1DA AMOV R1,AEXIT:POP PSW ;恢復(fù)現(xiàn)場POP ACCPOP DPLPOP DPHRETI ;中斷返回DISPLAY:MOV A,R3ANL A,#0FHMOV R5,AMOV R4,#6LCALL DISLED ;顯示小時低位
53、MOV A,R3SWAP AANL A,#0FHMOV R5,AMOV R4,#7LCALL DISLED ;顯示小時高位MOV A,R2ANL A,#0FHMOV R5,AMOV R4,#3LCALL DISLED ;顯示分鐘低位MOV A,R2SWAP AANL A,#0FHMOV R5,AMOV R4,#4LCALL DISLED ;顯示分鐘高位MOV A,R1ANL A,#0FHMOV R5,AMOV R4,#0LCALL DISLED ;顯示秒低位MOV A,R1SWAP AANL A,#0FHMOV R5,AMOV R4,#1LCALL DISLED ;顯示秒高位RETLEDSEG
54、: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'DB 6DH,02H,08H,00H,59H,0FH,76H ;'U,-,_, ,I,O,P, 'END 實(shí)驗(yàn)十二 8279鍵盤顯示實(shí)驗(yàn)(電子秒表)一.實(shí)驗(yàn)要求利用實(shí)驗(yàn)機(jī)上提供的8279鍵盤電路,數(shù)碼顯示電路,設(shè)計一個電子鐘,用小鍵盤控制電子鐘的啟停及初始值的預(yù)值。電子鐘做成如下格式:XX XX XX XX 由左向右分別為: 時、分、
55、秒、百分之一秒1.C鍵:清除,顯示00.00.00.002.A鍵:啟動,電子鐘計時3.D鍵:停止,電子鐘停止計時4.B鍵:設(shè)置初值:由左向右依次輸入預(yù)置的時、分、秒、百分之一秒值,同時應(yīng)具有判斷輸入錯誤的能力,若 輸入有錯,則顯示:00.00.00.00按B鍵即可重新輸入預(yù)置值:5.E鍵:程序退出。二.實(shí)驗(yàn)?zāi)康?.進(jìn)一步掌握8279鍵盤顯示電路的編程方法。2.進(jìn)一步掌握定時器的使用和編程方法。3.進(jìn)一步掌握中斷處理程序的編程方法。三.實(shí)驗(yàn)電路及連線CS8279接8700H。 模塊中的十個短路套都套在8279側(cè)。四.實(shí)驗(yàn)說明8279通用接口芯片,根據(jù)應(yīng)用需要可以在多種模式下工作,詳見有
56、關(guān)手冊。五.實(shí)驗(yàn)程序框圖 主程序框圖 SET_T子程序框圖
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 咖啡師情緒管理知識試題及答案
- 探索珠寶鑒定師考試試題及答案背后
- 檔案管理的理論體系與實(shí)踐試題及答案
- 2024年公務(wù)員實(shí)戰(zhàn)演練試題及答案
- 2024年檔案管理員應(yīng)對考試策略試題及答案
- 提升實(shí)施能力 收納師試題與答案解析
- 常見調(diào)酒工具識別題及答案
- 2024年秘書證考試全新視野試題及答案
- 咖啡的創(chuàng)新種植方式試題及答案
- 多媒體應(yīng)用設(shè)計師職業(yè)資格考核試題試題及答案
- 生物質(zhì)循環(huán)流化床鍋爐最終版.ppt
- 紅頭文件模板
- 固定收益部績效考核辦法
- 光纖端面清洗操作規(guī)范方案和判定標(biāo)準(zhǔn)
- Power---PowerVM安裝配置手冊
- 小型液壓機(jī)液壓系統(tǒng)設(shè)計
- 1 ultrafleXtreme質(zhì)譜儀
- 超聲操作規(guī)范
- 六類網(wǎng)線檢測報告(共9頁)
- 高中三年成績單模板(新留學(xué))
- 2020急診科護(hù)士分層培訓(xùn)計劃
評論
0/150
提交評論