




已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)一 I/O口輸入輸出實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?掌握單片機(jī)P1口、P3口的使用方法。 二、實(shí)驗(yàn)內(nèi)容 以P1 口為輸出口,接八位邏輯電平顯示,LED 顯示跑馬燈效果。以P3 口為輸入口,接八位邏輯電平輸出,用來控制跑馬燈的方向。 三、實(shí)驗(yàn)要求 根據(jù)實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,并在實(shí)驗(yàn)儀上調(diào)試和驗(yàn)證。四、實(shí)驗(yàn)步驟 1)系統(tǒng)各跳線器處在初始設(shè)置狀態(tài)。用導(dǎo)線連接八位邏輯電平輸出模塊的K0 到CPU 模塊的RXD(P3.0 口); 用8 位數(shù)據(jù)線連接八位邏輯電平顯示模塊的JD4B 到CPU 模塊JD8(P1 口)。 2)啟動(dòng)PC 機(jī),打開THGMW-51 軟件,輸入源程序,并編譯源程序。編譯無誤后,下載程序 運(yùn)行。 3)觀察發(fā)光二極管顯示跑馬燈效果,撥動(dòng)K0 可改變跑馬燈的方向。 五、實(shí)驗(yàn)參考程序;/* ;文件名: Port for MCU51 ;功能: I/O口輸入、輸出實(shí)驗(yàn) ;接線: 用導(dǎo)線連接八位邏輯電平輸出模塊的K0到CPU模塊的RXD(P3.0口); ; 用8位數(shù)據(jù)線連接八位邏輯電平顯示模塊的JD2B到CPU模塊的JD8(P1口)。 ;/* DIR BIT P3.0 ORG 0000H LJMP START ORG 0100H START: OUTPUT1: MOV A, #0FEH MOV R5, #8 LOOP1: CLR C MOV C,DIR JC OUTPUT2 MOV P1, ARL AACALL DELAY DJNZ R5, LOOP1 SJMP OUTPUT1 OUTPUT2: MOV A, #07FH MOV R5, #8 LOOP2: CLR C MOV C,DIR JNC OUTPUT1 MOV P1, A RR A ACALL DELAY DJNZ R5,LOOP2 SJMP OUTPUT2 DELAY: MOV R6,#0 DELAYLOOP1: MOV R7,#0 DELAYLOOP2: NOP NOP DJNZ R7,DELAYLOOP2 DJNZ R6,DELAYLOOP1 RETEND 6、 實(shí)驗(yàn)結(jié)果當(dāng)八位邏輯電平的K0撥到上方,即輸出高電平時(shí),實(shí)驗(yàn)箱B5區(qū)的八個(gè)LED燈從左至右循環(huán)點(diǎn)亮,當(dāng)K0撥到下方,即輸出低電平時(shí),八個(gè)LED燈從右至左循環(huán)點(diǎn)亮。7、 結(jié)果分析程序通過查詢方式不斷檢測P3.0口的輸入狀態(tài),當(dāng)P3.0輸入為0時(shí),由P1口通過左移指令RL輪流輸出低電平驅(qū)動(dòng)LED發(fā)光,在左移時(shí)通過軟件延時(shí)控制LED 亮的時(shí)間;當(dāng)P3.0輸入為1時(shí),由P1口通過右移指令RR輪流輸出低電平驅(qū)動(dòng)LED發(fā)光,在右移時(shí)同樣通過軟件延時(shí)控制LED 亮的時(shí)間,如此循環(huán)掃描查詢,便可實(shí)現(xiàn)流水燈的效果。實(shí)驗(yàn)二 外部中斷實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?學(xué)習(xí)外部中斷技術(shù)的基本使用方法。 二、實(shí)驗(yàn)內(nèi)容 INT0 端接單次脈沖發(fā)生器。按一次脈沖產(chǎn)生一次中斷,CPU 使P1.0 狀態(tài)發(fā)生一次反轉(zhuǎn),P1.0接LED 燈,以查看信號反轉(zhuǎn)。 三、實(shí)驗(yàn)要求 根據(jù)實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,并在實(shí)驗(yàn)儀上調(diào)試和驗(yàn)證。四、實(shí)驗(yàn)步驟 1)系統(tǒng)各跳線器處在初始設(shè)置狀態(tài),用導(dǎo)線連接單次脈沖模塊的輸出端到CPU 模塊的P32;CPU 模塊的P10 接八位邏輯電平顯示模塊的燈。 2)啟動(dòng)PC 機(jī),打開THGMW-51 軟件,輸入源程序,并編譯源程序。編譯無誤后,下載程序運(yùn)行。 3)連續(xù)按動(dòng)單次脈沖產(chǎn)生電路的按鍵,發(fā)光二極管L0 每按一次狀態(tài)取反,即隔一次點(diǎn)亮。 五、實(shí)驗(yàn)參考程序 ;/* ;文件名: EXint for MCU51 ;功能: 外部中斷實(shí)驗(yàn) ;接線: 導(dǎo)線連接單次脈沖模塊的輸出端到CPU模塊的P32, ; CPU模塊的P10接八位邏輯電平顯示模塊的L0燈。 ;/* LED BIT P1.0 LEDBUF BIT 20H ORG 0 LJMP START ORG 3 INTERRUPT0: PUSH PSW ; 保護(hù)現(xiàn)場 CPL LEDBUF ; 取反LED MOV C, LEDBUF MOV LED, C POP PSW ; 恢復(fù)現(xiàn)場 RETI START: CLR LEDBUF CLR LED MOV TCON, #01H ; 外部中斷0下降沿觸發(fā) MOV IE, #81H ; 打開外部中斷允許位(EX0)及總中斷允許位(EA) OK: LJMP OK END 六、實(shí)驗(yàn)結(jié)果每按下E3區(qū)的單次脈沖觸發(fā)按鈕時(shí),B5區(qū)的發(fā)光二極管狀態(tài)取反一次,即原來是亮按下時(shí)滅,原來是滅則按下時(shí)亮。7、 結(jié)果分析 程序由外部中斷0實(shí)現(xiàn),外部中斷0由下降沿觸發(fā),外部輸入由單次脈沖觸發(fā)器輸入,每次按下按鈕時(shí)會(huì)觸發(fā)單次脈沖,產(chǎn)生一個(gè)下降沿,從而使程序產(chǎn)生中斷,在中斷服務(wù)函數(shù)的程序里面對P1.0取反,由P1.0驅(qū)動(dòng)LED,就可實(shí)現(xiàn)本實(shí)驗(yàn)的功能。實(shí)驗(yàn)三 定時(shí)/計(jì)數(shù)器實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)MCS-51 內(nèi)部計(jì)數(shù)器的使用和編程方法。二、實(shí)驗(yàn)內(nèi)容使用MCS-51 內(nèi)部定時(shí)/計(jì)數(shù)器,定時(shí)一秒鐘,CPU 運(yùn)用定時(shí)中斷方式,實(shí)現(xiàn)每一秒鐘輸出狀態(tài)發(fā)生一次反轉(zhuǎn),即發(fā)光管每隔一秒鐘亮一次。三、實(shí)驗(yàn)要求根據(jù)實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,并在實(shí)驗(yàn)儀上調(diào)試和驗(yàn)證。4、 實(shí)驗(yàn)步驟1)系統(tǒng)各跳線器處在初始設(shè)置狀態(tài),用導(dǎo)線連接CPU 模塊P10 到八位邏輯電平顯示模塊的L0。2)啟動(dòng)PC 機(jī),打開THGMW-51 軟件,輸入源程序,并編譯源程序。編譯無誤后,下載程序運(yùn)行。3)運(yùn)行程序觀察發(fā)光二極管隔一秒點(diǎn)亮一次,點(diǎn)亮?xí)r間為一秒。五、實(shí)驗(yàn)參考程序;/*;文件名: TIMER FOR MCU51;功能: 定時(shí)/計(jì)數(shù)器實(shí)驗(yàn);接線: 導(dǎo)線連接CPU模塊P10到八位邏輯電平顯示模塊的L0.;/* TICK EQU 10000 ; 10000 X 100US = 1S T100US EQU 156 ; 100US時(shí)間常數(shù)(6M) C100US EQU 30H ; 100US記數(shù)單元 LEDBUF BIT 20H ORG 0 LJMP START ORG 000BHT0INT: PUSH PSW MOV A, C100US+1 JNZ GOON DEC C100USGOON: DEC C100US+1 MOV A, C100US ORL A, C100US+1 JNZ EXIT ; 100US 記數(shù)器不為0, 返回 MOV C100US, #27H ; #HIGH(TICK) MOV C100US+1, #10H ; #LOW(TICK) CPL LEDBUF ; 100US 記數(shù)器為0, 重置記數(shù)器 ; 取反LEDEXIT: POP PSW RETISTART: MOV TMOD, #02H ; 方式2, 定時(shí)器 MOV TH0, #T100US MOV TL0, #T100US MOV IE, #10000010B ; EA=1, IT0 = 1 SETB TR0 ; 開始定時(shí) CLR LEDBUF CLR P1.0 MOV C100US, #27H ;#HIGH(TICK) MOV C100US+1, #10H ;#LOW(TICK)LOOP: MOV C, LEDBUF MOV P1.0, C LJMP LOOPEND6、 實(shí)驗(yàn)結(jié)果運(yùn)行程序之后,B5區(qū)的發(fā)光二極管L0隔一秒點(diǎn)亮一次,每次點(diǎn)亮?xí)r間為一秒。七、結(jié)果分析 本實(shí)驗(yàn)通過定時(shí)器0的方式2實(shí)現(xiàn)精確定時(shí),但定時(shí)器的最長定時(shí)時(shí)間達(dá)不到一秒,所以通過一個(gè)時(shí)間變量實(shí)現(xiàn),總的定時(shí)時(shí)間等于定時(shí)器定時(shí)時(shí)間乘以時(shí)間變量初值,這樣就可實(shí)現(xiàn)一秒的定時(shí),程序通過掃描不斷檢測時(shí)間變量的值,當(dāng)定時(shí)時(shí)間一秒到時(shí),對P1.0的狀態(tài)取反,實(shí)現(xiàn)L0每隔一秒亮一次。實(shí)驗(yàn)四 交通燈控制實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康恼莆帐致房诮煌艨刂品椒?。二、?shí)驗(yàn)內(nèi)容利用系統(tǒng)提供的雙色LED 顯示電路,和四位靜態(tài)數(shù)碼管顯示電路模擬十字路口交通信號燈。4 位LED 數(shù)碼管顯示時(shí)間,LED 顯示紅綠燈狀態(tài)。三、實(shí)驗(yàn)要求根據(jù)實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,并在實(shí)驗(yàn)儀上調(diào)試和驗(yàn)證。四、實(shí)驗(yàn)步驟1)系統(tǒng)各跳線器處在初始設(shè)置狀態(tài)。P10 同時(shí)接G1、G3;P11 同時(shí)接R1、R3;P1.2 同時(shí)接G2、G4;P1.3 同時(shí)接R2、R4;P1.6、P1.7 分別接靜態(tài)數(shù)碼顯示的DIN、CLK。2)啟動(dòng)PC 機(jī),打開THGMW-51 軟件,輸入源程序,并編譯源程序。編譯無誤后,下載程序運(yùn)行。3)觀察十字路口交通燈效果。五、實(shí)驗(yàn)參考程序;/*;文件名:交通燈程序 FOR MCU51;功能:雙色LED模擬交通燈信號,并通過調(diào)用靜態(tài)數(shù)碼顯示狀態(tài)時(shí)間。;接線:P1.0同時(shí)接G1、G3,P1.1接R1、R3,P1.2接G2、G4,P1.3同時(shí)接R2、R4,;P1.6、P1.7接靜態(tài)數(shù)碼顯示的DIN、CLK。;/* SECOND1 EQU 30H ;東西秒寄存器 SECOND2 EQU 31H ;南北秒寄存器 DBUF EQU 40H ;顯示緩沖1 TEMP EQU 44H ;顯示緩沖2 LED_G1 BIT P1.0 ;東西綠燈 LED_R1 BIT P1.1 ;東西紅燈 LED_G2 BIT P1.2 ;南北綠燈 LED_R2 BIT P1.3 ;南北紅燈 DIN BIT P1.6 ;串行顯示數(shù)據(jù) CLK BIT P1.7 ;串行顯示時(shí)鐘 ORG 0000H LJMP START ORG 0100HSTART: LCALL STATE0 ;調(diào)用狀態(tài)0 LCALL DELAY ;調(diào)用延時(shí) MOV TMOD,#01H ;置T0工作方式1 MOV TH0, #3CH ;置T0定時(shí)初值50MS MOV TL0, #0B0H SETB TR0 ;啟動(dòng)T0 CLR EALOOP: MOV R2,#20 ;置1S計(jì)數(shù)初值 50MS*20=1S MOV R3,#20 ;紅燈20S MOV SECOND1,#25 ;東西秒顯示初值25S MOV SECOND2,#25 ;南北秒顯示初值25S LCALL DISPLAY LCALL STATE1 ;調(diào)用狀態(tài)1WAIT1: JNB TF0,WAIT1 ;查詢50MS到否 CLR TF0 MOV TH0, #3CH ;恢復(fù)T0定時(shí)初值50MS MOV TL0, #0B0H SETB TR0 ;啟動(dòng)T0 DJNZ R2,WAIT1 ;判1S到否?未到繼續(xù)狀態(tài)1 MOV R2,#20 ;置50MS計(jì)數(shù)初值 DEC SECOND1 ;東西秒顯示減一 DEC SECOND2 ;南北秒顯示減一 LCALL DISPLAY DJNZ R3,WAIT1 ;狀態(tài)1維持20S MOV R2,#5 ;置50MS計(jì)數(shù)初值 5*4=20 MOV R3,#3 ;綠燈閃3S MOV R4,#4 ;閃爍間隔200MS MOV SECOND1,#5 ;東西秒顯示初值5S MOV SECOND2,#5 ;南北秒顯示初值5S LCALL DISPLAYWAIT2: LCALL STATE2 ;調(diào)用狀態(tài)2 JNB TF0,WAIT2 ;查詢50MS到否 CLR TF0 MOV TH0, #3CH ;恢復(fù)T0定時(shí)初值50MS MOV TL0, #0B0H DJNZ R4,WAIT2 ;判200MS到否?未到繼續(xù)狀態(tài)2 CPL LED_G1 ;東西綠燈閃 MOV R4,#4 ;閃爍間隔200MS DJNZ R2,WAIT2 ;判1S到否?未到繼續(xù)狀態(tài)2 MOV R2,#5 ;置50MS計(jì)數(shù)初值 DEC SECOND1 ;東西秒顯示減一 DEC SECOND2 ;南北秒顯示減一 LCALL DISPLAY DJNZ R3,WAIT2 ;狀態(tài)2維持3S MOV R2,#20 ;置50MS計(jì)數(shù)初值 MOV R3,#2 ;黃燈2S MOV SECOND1,#2 ;東西秒顯示初值2S MOV SECOND2,#2 ;南北秒顯示初值2S LCALL DISPLAYWAIT3: LCALL STATE3 ;調(diào)用狀態(tài)3 JNB TF0,WAIT3 ;查詢30MS到否 CLR TF0 MOV TH0, #3CH ;恢復(fù)T0定時(shí)初值50MS MOV TL0, #0B0H DJNZ R2,WAIT3 ;判1S到否?未到繼續(xù)狀態(tài)3 MOV R2,#20 ;置50MS計(jì)數(shù)初值 DEC SECOND1 ;東西秒顯示減一 DEC SECOND2 ;南北秒顯示減一 LCALL DISPLAY DJNZ R3,WAIT3 ;狀態(tài)3維持2S MOV R2,#20 ;置50MS計(jì)數(shù)初值 MOV R3,#20 ;紅燈20S MOV SECOND1,#25 ;東西秒顯示初值25S MOV SECOND2,#25 ;南北秒顯示初值25S LCALL DISPLAYWAIT4: LCALL STATE4 ;調(diào)用狀態(tài)4 JNB TF0,WAIT4 ;查詢50MS到否 CLR TF0 MOV TH0, #3CH ;恢復(fù)T0定時(shí)初值50MS MOV TL0, #0B0H DJNZ R2,WAIT4 ;判1S到否?未到繼續(xù)狀態(tài)4 MOV R2,#20 ;置50MS計(jì)數(shù)初值 DEC SECOND1 ;東西秒顯示減一 DEC SECOND2 ;南北秒顯示減一 LCALL DISPLAY DJNZ R3,WAIT4 ;狀態(tài)4維持20S MOV R2,#5 ;置50MS計(jì)數(shù)初值 5*4=20 MOV R4,#4 ;閃爍間隔200MS MOV R3,#3 ;綠燈閃3S MOV SECOND1,#5 ;東西秒顯示初值5S MOV SECOND2,#5 ;南北秒顯示初值5S LCALL DISPLAYWAIT5: LCALL STATE5 ;調(diào)用狀態(tài)5 JNB TF0,WAIT5 ;查詢50MS到否 CLR TF0 MOV TH0, #3CH ;恢復(fù)T0定時(shí)初值100MS MOV TL0, #0B0H DJNZ R4,WAIT5 ;判200MS到否?未到繼續(xù)狀態(tài)5 CPL LED_G2 ;南北綠燈閃 MOV R4,#4 ;閃爍200MS DJNZ R2,WAIT5 ;判1S到否?未到繼續(xù)狀態(tài)5 MOV R2,#5 ;置100MS計(jì)數(shù)初值 DEC SECOND1 ;東西秒顯示減一 DEC SECOND2 ;南北秒顯示減一 LCALL DISPLAY DJNZ R3,WAIT5 ;狀態(tài)5維持3S MOV R2,#20 ;置50MS計(jì)數(shù)初值 MOV R3,#2 ;黃燈2S MOV SECOND1,#2 ;東西秒顯示初值2S MOV SECOND2,#2 ;南北秒顯示初值2S LCALL DISPLAYWAIT6: LCALL STATE6 ;調(diào)用狀態(tài)6 JNB TF0,WAIT6 ;查詢100MS到否 CLR TF0 MOV TH0, #3CH ;恢復(fù)T0定時(shí)初值100MS MOV TL0, #0B0H DJNZ R2,WAIT6 ;判1S到否?未到繼續(xù)狀態(tài)6 MOV R2,#20 ;置100MS計(jì)數(shù)初值 DEC SECOND1 ;東西秒顯示減一 DEC SECOND2 ;南北秒顯示減一 LCALL DISPLAY DJNZ R3,WAIT6 ;狀態(tài)6維持2S LJMP LOOP ;大循環(huán)STATE0: ;狀態(tài)0 MOV P1,#0 CLR LED_G1 SETB LED_R1 ;東西紅燈亮 CLR LED_G2 SETB LED_R2 ;南北紅燈亮 RETSTATE1: ;狀態(tài)1 SETB LED_G1 ;東西綠燈亮 CLR LED_R1 CLR LED_G2 SETB LED_R2 ;南北紅燈亮 RETSTATE2: ;狀態(tài)2 CLR LED_R1 CLR LED_G2 SETB LED_R2 ;南北紅燈亮 RETSTATE3: ;狀態(tài)3 SETB LED_G1 SETB LED_R1 ;東西黃燈亮 CLR LED_G2 SETB LED_R2 ;南北紅燈亮 RETSTATE4: ;狀態(tài)4 CLR LED_G1 SETB LED_R1 ;東西紅燈亮 SETB LED_G2 ;南北綠燈亮 CLR LED_R2 RETSTATE5: ;狀態(tài)5 CLR LED_G1 SETB LED_R1 ;東西紅燈亮 CLR LED_R2 RETSTATE6: ;狀態(tài)6 CLR LED_G1 SETB LED_R1 ;東西紅燈亮 SETB LED_G2 SETB LED_R2 ;南北黃燈亮 RETDISPLAY: ;數(shù)碼顯示 MOV A, SECOND1 ;東西秒寄存器 MOV B, #10 ;16進(jìn)制數(shù)拆成兩個(gè)10進(jìn)制數(shù) DIV AB MOV DBUF+1,A MOV A,B MOV DBUF, A MOV A, SECOND2 ;南北秒寄存器 MOV B, #10 ;16進(jìn)制數(shù)拆成兩個(gè)10進(jìn)制數(shù) DIV AB MOV DBUF+3, A MOV A,B MOV DBUF+2, A MOV R0,#DBUF MOV R1,#TEMP MOV R7,#4DP10:MOV DPTR,#LEDMAP MOV A,R0 MOVC A,A+DPTR MOV R1,A INC R0 INC R1 DJNZ R7,DP10 MOV R0,#TEMP MOV R1,#4DP12:MOV R7,#8 MOV A,R0DP13:RLC A MOV DIN,C CLR CLK SETB CLK DJNZ R7,DP13 INC R0 DJNZ R1,DP12 RETLEDMAP: DB 3FH,6,5BH,4FH,66H,6DH ;0,1,2,3,4,5 DB 7DH,7,7FH,6FH,77H,7CH ;6,7,8,9,A,B DB 58H,5EH,7BH,71H,0,40H ;C,D,E,F(xiàn), , -DELAY: MOV R5, #5DLOOP0:MOV R6, #0DLOOP1:MOV R7, #0DLOOP2: NOP NOP DJNZ R7, DLOOP2 DJNZ R6, DLOOP1 DJNZ R5, DLOOP0 RETEND六、實(shí)驗(yàn)結(jié)果程序開始運(yùn)行后,B5區(qū)模擬的東西紅燈亮,南北綠燈亮,同時(shí)兩個(gè)方向的數(shù)碼管分別從25秒開始倒計(jì)時(shí),當(dāng)?shù)褂?jì)時(shí)到5秒時(shí),南北綠燈閃亮3秒后變黃,再過2秒,即倒計(jì)時(shí)到0時(shí),變?yōu)闁|西綠燈亮,南北紅燈亮,同時(shí)兩個(gè)方向的數(shù)碼管分別同時(shí)從25秒開始倒計(jì)時(shí),但倒計(jì)時(shí)到5秒時(shí),東西綠燈閃亮3秒后變黃,再過2秒之后又回到初始狀態(tài),繼續(xù)循環(huán)運(yùn)行。七、結(jié)果分析 本實(shí)驗(yàn)通過雙色的LED模擬交通燈的顯示狀態(tài),并用靜態(tài)數(shù)碼管結(jié)合定時(shí)器實(shí)現(xiàn)定時(shí)及顯示功能,將交通燈的顯示分為六個(gè)不同的狀態(tài),程序運(yùn)行之后進(jìn)行計(jì)數(shù)顯示,當(dāng)計(jì)時(shí)時(shí)間到達(dá)某一個(gè)狀態(tài)之后,跳轉(zhuǎn)進(jìn)入相應(yīng)的狀態(tài)執(zhí)行,執(zhí)行完之后繼續(xù)進(jìn)入下一個(gè)狀態(tài),實(shí)驗(yàn)通過程序模擬了交通燈的顯示。實(shí)驗(yàn)五 串轉(zhuǎn)并與并轉(zhuǎn)串實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?掌握使用74LS164 擴(kuò)展輸出的方法。2掌握使用74LS165 擴(kuò)展輸入的方法。二、實(shí)驗(yàn)內(nèi)容使用74LS165 擴(kuò)展輸入數(shù)據(jù),使用74LS164 擴(kuò)展輸出數(shù)據(jù)。74LS165 的并行口接八位邏輯電平輸出(開關(guān)),CPU 使用P1.0、P1.1 和P1.2 串行讀入開關(guān)狀態(tài);74LS164 的并行口接一只數(shù)碼管,CPU 使用P1.3 和P1.4 串行輸出剛讀入的開關(guān)狀態(tài),使之在數(shù)碼管上顯示出來。三、實(shí)驗(yàn)要求根據(jù)實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,并在實(shí)驗(yàn)儀上調(diào)試和驗(yàn)證。四、實(shí)驗(yàn)步驟1)系統(tǒng)各跳線器處在初始設(shè)置狀態(tài)。用導(dǎo)線對應(yīng)連接八位邏輯電平輸出模塊的QH165、CLK165、SH/LD 到CPU 模塊的P10、P11、P12。用導(dǎo)線對應(yīng)連接靜態(tài)數(shù)碼管顯示模塊的DIN、CLK 到CPU 模塊的P13、P14。2)啟動(dòng)PC 機(jī),打開THGMW-51 軟件,輸入源程序,并編譯源程序。編譯無誤后,下載程序運(yùn)行。3)觀察數(shù)碼(八段碼)管的亮滅與撥動(dòng)開關(guān)的狀態(tài)是否一致。撥動(dòng)開關(guān)撥下輸出為低電平,段碼點(diǎn)亮。五、實(shí)驗(yàn)參考程序;/*;/*文件名:164165 串轉(zhuǎn)并,并轉(zhuǎn)串實(shí)驗(yàn)程序;功能:把開關(guān)量通過74*165串行輸入到內(nèi)存,并通過74*164串行輸出到數(shù);碼管上顯示。;接線:P1.0接QH165,P1.1接CLK165,P1.2接SH_LD,;P1.3、P1.4接靜態(tài)數(shù)碼顯示的DIN、CLK。;/* QH165 BIT P1.0 CLK165 BIT P1.1 SH_LD BIT P1.2 DAT164 BIT P1.3 CLK164 BIT P1.4 MEMORY EQU 30H ORG 0000H AJMP START ORG 00B0H START: SETB CLK165 CLR SH_LD SETB SH_LD MOV R7, #8INPUT: RR A MOV C, QH165 MOV ACC.7, C CLR CLK165 NOP SETB CLK165 DJNZ R7, INPUT MOV MEMORY,A MOV A,MEMORY MOV R6,#8OUTPUT: RRC A MOV DAT164,C CLR CLK164 SETB CLK164 DJNZ R6, OUTPUT ACALL DELAY SJMP STARTDELAY: MOV R0,#5DD2: MOV R1,#0FFH DJNZ R1,$ DJNZ R0,DD2 RET END六、實(shí)驗(yàn)結(jié)果當(dāng)把E4區(qū)的八位邏輯電平的撥碼開關(guān)K0K7向上撥時(shí),即邏輯電平輸出高電平時(shí),B4區(qū)的四位數(shù)碼管的段碼AH依次點(diǎn)亮,即K0K7每一段向上撥時(shí),對應(yīng)的AH數(shù)碼管段碼點(diǎn)亮。7、 結(jié)果分析 實(shí)驗(yàn)通過74LS165八位邏輯電平的并行輸出數(shù)據(jù)轉(zhuǎn)成串行數(shù)據(jù),輸入單片機(jī)的P1.0口,再通過P1.3輸出到74LS164的數(shù)據(jù)輸入端,再由164的串轉(zhuǎn)并輸出口驅(qū)動(dòng)數(shù)碼管的八位段碼,從而實(shí)現(xiàn)了并轉(zhuǎn)串、串轉(zhuǎn)并的功能。實(shí)驗(yàn)六 8255 控制鍵盤與顯示實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?掌握8255 輸入、輸出編程方法。2掌握陣列鍵盤和數(shù)碼管動(dòng)態(tài)掃描顯示的控制方法。二、實(shí)驗(yàn)內(nèi)容用8255 可編程并行口做一個(gè)鍵盤、顯示掃描實(shí)驗(yàn),把按鍵輸入的鍵值,顯示在8255 控制的七段數(shù)碼管上。8255 PB 口做鍵盤輸入線,PC 口做顯示掃描線,PA 口做顯示數(shù)據(jù)線。三、實(shí)驗(yàn)要求根據(jù)實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,并在實(shí)驗(yàn)儀上調(diào)試和驗(yàn)證。四、實(shí)驗(yàn)步驟1)系統(tǒng)各跳線器處在初始設(shè)置狀態(tài),S11E 和S12E 紅開關(guān)全部打到下方(OFF)。2)用8 位數(shù)據(jù)線對應(yīng)連接8255 模塊的JD3C(PA 口)、JD4C(PB 口)、JD5C(PC 口)到8279模塊的JD3E、JD2E、JD4E;用導(dǎo)線連接8255 模塊的CS_8255 到地。3)啟動(dòng)PC 機(jī),打開THGMW-51 軟件,輸入源程序,并編譯源程序。編譯無誤后,下載程序運(yùn)行。4)在鍵盤上按任一單鍵,觀察數(shù)碼管的顯示,數(shù)碼管低位顯示按鍵值。五、實(shí)驗(yàn)參考程序;/*;文件名: 8255KD FOR MCU51;功能: 8255控制鍵盤顯示實(shí)驗(yàn);接線: 連接8279鍵盤顯示模塊的JD3E到8255模塊的JD3C(PA口);JD2E到8255模塊的JD4C(PB口);JD4E到8255模塊的JD5C(PC口);用導(dǎo)線連接8255模塊的CS_8255到地。;/*D8255A EQU 8000H ;8255 PA 口地址D8255B EQU 8001H ;8255 PB 口地址D8255C EQU 8002H ;8255 PC 口地址D8255 EQU 8003H ;8255 狀態(tài)/命令口地址LEDBUF EQU 50H ;顯示緩存KEYVAL EQU 60H ;讀到的鍵碼 ORG 0000H LJMP START ORG 0100H START: MOV SP,#80H MOV DPTR,#D8255 MOV A,#90H ;方式0,PB,PC口輸出,PA口輸入 MOVX DPTR,A MOV LEDBUF,#10H MOV LEDBUF+1,#11H MOV LEDBUF+2,#11H MOV LEDBUF+3,#11H MOV LEDBUF+4,#5 MOV LEDBUF+5,#5 MOV LEDBUF+6,#2 MOV LEDBUF+7,#8 KB_DIS: LCALL RD_KB ;讀鍵盤 MOV A,#0FFH CJNE A,KEYVAL,TOSHOW ;判讀到鍵 SJMP SHOW ;沒有則繼續(xù)讀鍵TOSHOW: MOV LEDBUF,KEYVAL SHOW: LCALL DISPLAY SJMP KB_DIS RD_KB: ;鍵盤掃描 MOV A,#02H ;掃描第一行 MOV DPTR,#D8255C MOVX DPTR,A MOV DPTR,#D8255A MOVX A,DPTR MOV R1,#00H CJNE A,#0FFH,KEYCAL ;判鍵是否按下 MOV A,#01H ;掃描第二行 MOV DPTR,#D8255C MOVX DPTR,A MOV DPTR,#D8255A MOVX A,DPTR MOV R1,#08H CJNE A,#0FFH,KEYCAL SJMP NOKEY ;無鍵按下KEYCAL: MOV R0,#08H ;計(jì)算鍵碼 SHIFT: RRC A JNC TORET INC R1 DJNZ R0,SHIFT SJMP NOKEY ;無鍵按下TORET: MOV KEYVAL,R1 RET NOKEY: MOV KEYVAL,#0FFH ;返回?zé)o鍵標(biāo)志 RET DISPLAY: MOV R7,#8 ;8個(gè)數(shù)碼管 MOV R5,#0 MOV R0,#LEDBUF DLOOP: MOV A,R5 RL A RL A RL A ANL A,#11111011B INC R5 MOV DPTR,#D8255C MOVX DPTR,A ;點(diǎn)亮對應(yīng)的LED MOV A,R0 MOV DPTR,#LEDSEG MOVC A,A+DPTR INC R0 MOV DPTR,#D8255B MOVX DPTR,A ;顯示數(shù)據(jù) LCALL DELAY DJNZ R7,DLOOP RETDELAY: PUSH R7 MOV R7,#200DELAYLOOP: NOP DJNZ R7,DELAYLOOP POP R7 RETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,B DB 39H,5EH,79H,71H,00H,40H;C,D,E,F, ,-END6、 實(shí)驗(yàn)結(jié)果程序運(yùn)行后,E7區(qū)數(shù)碼管的前七位依次顯示“8 2 5 5 - - - 0”,當(dāng)按下E7區(qū)的按鍵時(shí),數(shù)碼管的前七位不變,依然顯示“8 2 5 5 - - -”,而第八位將顯示按下的鍵碼值,從0F。7、 結(jié)果分析 本實(shí)驗(yàn)通過8255I/O擴(kuò)展芯片以及8279鍵盤/顯示接口芯片為硬件基礎(chǔ),實(shí)現(xiàn)了鍵盤輸入到數(shù)碼管輸出顯示的功能。程序中通過對鍵盤按下與否進(jìn)行循環(huán)掃描,當(dāng)有按鍵按下時(shí),通過程序?qū)︽I值進(jìn)行計(jì)算,并將結(jié)果送到數(shù)碼管進(jìn)行顯示。當(dāng)無按鍵按下時(shí),程序保持上一狀態(tài)繼續(xù)掃描,直到有不同的按鍵按下時(shí)狀態(tài)改變。由于矩陣按鍵及數(shù)碼顯示會(huì)用到較多的I/O口,而單片機(jī)的I/O口數(shù)量有限,所以利用8255對其進(jìn)行擴(kuò)展,再利用專門的鍵盤/顯示芯片8279實(shí)現(xiàn)鍵盤掃描和鍵值顯示的功能。實(shí)驗(yàn)七 并行A/D 轉(zhuǎn)換實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?掌握ADC0809 模/數(shù)轉(zhuǎn)換芯片與單片機(jī)的連接方法及ADC0809 的典型應(yīng)用。2掌握用查詢方式、中斷方式完成模/數(shù)轉(zhuǎn)換程序的編寫方法。二、實(shí)驗(yàn)內(nèi)容利用系統(tǒng)提供的ADC0
溫馨提示
- 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)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理技能考核要點(diǎn)試題及答案
- 行政管理??瓶荚?025試題及答案總結(jié)
- 漢語拼音課件
- 2025年語文考試內(nèi)容深度剖析試題及答案
- 藥學(xué)職業(yè)道德與社會(huì)責(zé)任試題及答案
- 漢字與文化課件
- 幼兒園家長會(huì)
- 廣場空間教學(xué)課件
- 兒童法律教育
- 婦女法律知識課件
- 施工現(xiàn)場安全隱患檢查表
- 酒店業(yè)大數(shù)據(jù)分析與精準(zhǔn)營銷應(yīng)用
- 《太陽升起來了》課件
- 近五年重慶中考數(shù)學(xué)真題及答案2024
- 掃地機(jī)器人結(jié)構(gòu)設(shè)計(jì)說明書
- 汽車清潔保養(yǎng)服務(wù)合同示范文本
- 【基于單片機(jī)的電梯控制系統(tǒng)設(shè)計(jì)7000字(論文)】
- HY/T 0379-2023赤潮災(zāi)害風(fēng)險(xiǎn)評估與區(qū)劃導(dǎo)則
- 鄭和完整版本
- 2024年安慶市金融控股集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- SJ-T 11841.2.2-2022 顯示系統(tǒng)視覺舒適度 第2-2部分:平板顯示-藍(lán)光測量方法
評論
0/150
提交評論