




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Mcs51系列單片機實訓(xùn)指導(dǎo)書軟件實驗實驗一數(shù)據(jù)傳送(RAM>XRAM)一、實驗?zāi)康氖煜ば茄屑森h(huán)境軟件或熟悉Keil C51集成環(huán)境軟件的使用方法。熟悉MCS51匯編指令,能自己編寫簡單的程序,掌握數(shù)據(jù)傳輸?shù)姆椒?。二、實驗?nèi)容1、熟悉星研集成環(huán)境軟件或熟悉Keil C51集成環(huán)境軟件的安裝和使用方法。2、編寫程序,實現(xiàn)內(nèi)外部數(shù)據(jù)段的傳送、校驗。三、程序框圖四、實驗步驟在內(nèi)部RAM 30H 3FH中輸入數(shù)據(jù);使用單步、斷點方式調(diào)試程序,檢測外部數(shù)據(jù)RAM的1000H 100FH中的內(nèi)容。熟悉查看特殊功能寄存器、內(nèi)部數(shù)據(jù)RAM、外部數(shù)據(jù)空間的各種方法。五、程序清單;將內(nèi)部RAM Addre
2、ss1 開始的16個字節(jié)送到外部RAM從Address2開始的單元里,再作比較。Address1DATA30HAddress2XDATA1000HORG0000HLJMPSTARORG0100HSTAR:MOVSP,#60HMOVR0,#Address1MOVDPTR,#Address2MOVR7,#10HSTAR1:MOVA,R0;傳送MOVXDPTR,AINCR0INCDPTRDJNZR7,STAR1MOVR0,#Address1MOVDPTR,#Address2MOVR7,#10HSTAR2:MOVB,R0;比較MOVXA,DPTRCJNEA,B,STAR3INCR0INCDPTRDJN
3、ZR7,STAR2SJMP$;傳送正確STAR3:SJMP$;傳送錯誤END如果讀者使用星研集成環(huán)境軟件,請考慮以下問題:1、運行程序前,打開變量窗、二個存貯器窗(一個選擇片內(nèi)數(shù)據(jù);一個選擇片外數(shù)據(jù),起始地址選擇1000H),每個存貯器窗有四個標(biāo)簽,有何好處?;2、使用單步進入命令,運行到第十四行后,運行過程中變量窗有何變化?將鼠標(biāo)停留在A、SP、R0、DPTR上一秒后,出現(xiàn)什么?,它與變量窗使用場合的區(qū)別?3、將光標(biāo)移到第十四行上,使用運行到光標(biāo)處命令,觀察運行結(jié)果,體會它與單步進入命令的不同處。4、在二十行上,設(shè)置一個斷點,使用全速斷點命令運行幾次,觀察運行結(jié)果,它與運行到光標(biāo)處命令有何區(qū)
4、別?5、使用全速運行命令,稍后,點擊工具條上停止運行命令按鈕,當(dāng)前執(zhí)行箭頭停在哪一行?運行結(jié)果是否正確?它與全速斷點運行命令有何區(qū)別?6、觀察寄存器,有哪幾種方法?1)在工作區(qū)窗的通用寄存器標(biāo)簽視中;2)變量窗3)鼠標(biāo)停留在寄存器上4)觀察窗 5)寄存器窗7、查看CPU內(nèi)部數(shù)據(jù)RAM、CPU片外數(shù)據(jù)RAM:1)存貯器窗 2)變量窗 3)鼠標(biāo)停留在CPU內(nèi)部數(shù)據(jù)RAM、CPU片外數(shù)據(jù)RAM的地址、R0、DPTR上六、思考題 編寫一個程序,將外部數(shù)據(jù)RAM中的數(shù)據(jù)傳送到內(nèi)部數(shù)據(jù)RAM中。 實驗二 雙字節(jié)BCD碼(十進制數(shù))加法一、實驗?zāi)康氖煜?1匯編指令,學(xué)會使用星研集成環(huán)境軟件,能自己編寫簡單的
5、程序,熟悉BCD碼,了解如何調(diào)用系統(tǒng)提供的子程序。二、實驗內(nèi)容從鍵盤上輸入4位被加數(shù)、加數(shù),實現(xiàn)雙字節(jié)BCD碼(四位數(shù))的加法,結(jié)果顯示在數(shù)碼管上;熟悉使用斷點、單步進入、單步、運行到光標(biāo)處、修改PC指針、全速運行等各種調(diào)試手段;熟悉查看特殊功能寄存器、內(nèi)部數(shù)據(jù)RAM、外部數(shù)據(jù)空間的各種方法。三、實驗框圖四、實驗步驟1、連線說明:D3區(qū) :CLKB2區(qū):2MD3區(qū) :CSA3區(qū):CS5D3區(qū) :A0A3區(qū):A02、在F4區(qū)的鍵盤上輸入4位被加數(shù)、加數(shù)3、結(jié)果顯示在F4區(qū)的數(shù)碼管上五、程序清單EXTRNCODE(Display8, GetBCDKey)BufferDATA30H;8字節(jié)顯示緩沖區(qū)
6、F1BIT0D1H;PSW.1ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HCLRF1;先清除顯示,再接收鍵輸入START1:MOVR0,#bufferMOVA,#4;按鍵次數(shù)LCALLGetBCDKey;得到雙字節(jié)十進制數(shù)(被加數(shù))SETBF1;接收到第一個鍵,才清除顯示MOVR0,#buffer+4MOVA,#4;按鍵次數(shù)LCALLGetBCDKey;得到雙字節(jié)十進制數(shù)(加數(shù))MOVA,buffer+1ADDA,buffer+5DAAMOVbuffer+5,AMOVA,bufferADDCA,buffer+4DAAMOVbuffer+4,ACLRARLC
7、ADisplay:PUSHACC;顯示結(jié)果MOVR0,#bufferMOVA,buffer+5;低位ACALLB1toB2;壓縮BCD碼轉(zhuǎn)換成非壓縮BCD碼MOVA,buffer+4;高位ACALLB1toB2POPACC;進位ACALLB1toB2MOVR0,#10H;最高二位消隱INCR0MOVR0,#10HMOVR0,#buffer+5MOVR7,#5ACALLBlackDisplay;將高位0消隱MOVR0,#bufferLCALLDisplay8SJMPSTART1;將一個字節(jié)壓縮BCD碼轉(zhuǎn)換成二個字節(jié)非壓縮BCD碼B1toB2:PUSHACCANLA,#0FHMOVR0,AINCR
8、0POPACCANLA,#0F0HSWAPAMOVR0,AINCR0RETBlackDisplay:MOVA,R0;將高位0消隱JNZExitMOVA,#10HMOVR0,ADECR0DJNZR7,BlackDisplayExit:RETEND實驗三冒泡排序一、實驗?zāi)康氖煜な褂肕CS51指令,掌握匯編語言的設(shè)計和調(diào)試方法,了解如何使用高效方法對數(shù)據(jù)排序。二、實驗內(nèi)容編寫并調(diào)試一個排序程序,要求使用冒泡法將一組數(shù)據(jù)從小到大重新排列。三、程序框圖四、實驗步驟使用斷點方式調(diào)試程序,檢查內(nèi)部RAM 30H3FH中數(shù)據(jù)是否按從小到大的順序排列。五、程序清單bSortBITF0ORG0000HLJMPST
9、ARORG0100HSTAR:MOVSP,#60H;堆棧MOVR0,#30H;存放待排序數(shù)據(jù)的首地址MOVR7,#16;數(shù)據(jù)個數(shù)MOVDPTR,#TAB_1STAR1:CLRAMOVCA,A+DPTRMOVR0,A;將數(shù)據(jù)移入內(nèi)部RAM中INCR0INCDPTRDJNZR7,STAR1MOVR7,#16-1;存放比較次數(shù)STAR2:PUSH07HMOVR0,#30H;存放啟始地址CLRbSortMOVR1,00HINCR1MOVA,R0STAR3:MOVB,AMOVA,R1CJNEA,B,$+3JNCSTAR5XCHA,R0MOVR1,ASETBbSortSTAR5:INCR0INCR1DJN
10、ZR7,STAR3POP07HJNBbSort,ExitDECR7SJMPSTAR2Exit:SJMP$TAB_1:DB 0H,5H,6H,3H,8H,92H,04H,57H,46H,01H,0FFH,0A0H,45H,99H,55H,66HEND六、思考題你還知道哪些排序方法?另外編寫一個排序子程序。(數(shù)據(jù)結(jié)構(gòu)方面的教材上有十幾種排序方法)。實驗四 電子鐘(定時器、中斷綜合實驗)一、實驗?zāi)康氖煜CS51類CPU的定時器、中斷系統(tǒng)編程方法,了解定時器的應(yīng)用、實時程序的設(shè)計和調(diào)試技巧。二、實驗內(nèi)容編寫一個時鐘程序,產(chǎn)生一個50ms的定時中斷,對定時中斷計數(shù),將時、分、秒顯示在數(shù)碼管上。三、程序
11、框圖四、實驗步驟1、連線說明:D3區(qū) :CLKB2區(qū):2MD3區(qū) :CSA3區(qū):CS5D3區(qū) :A0A3區(qū):A02、時間顯示在數(shù)碼管上五、程序清單ms50DATA31H;存放多少個50mssecDATA32H;秒minDATA33H;分hourDATA34H;時bufferDATA35H;顯示緩沖區(qū)EXTRNCODE(Display8)ORG0000HLJMPSTARORG000BH;定時器T0中斷處理入口地址LJMPINT_Timer0ORG0100HSTAR:MOVSP,#60H;堆棧MOVms50,A;清零ms50MOVhour,#12;設(shè)定初值: 12:59:50MOVmin,#59M
12、OVsec,#50MOVTH0,#60;定時中斷計數(shù)器初值MOVTL0,#176;定時50msMOVTMOD,#1;定時器0:方式一MOVIE,#82H;允許定時器0中斷SETBTR0;開定時器T0STAR1:LCALLDisplay;調(diào)用顯示JNBF0,$CLRF0SJMPSTAR1;需要重新顯示時間;中斷服務(wù)程序INT_Timer0:MOVTL0,#176-5MOVTH0,#60PUSH01HMOVR1,#ms50INCR1;50ms單元加1CJNER1,#20,ExitIntMOVR1,#0;恢復(fù)初值INCR1INCR1;秒加1CJNER1,#60,ExitInt1MOVR1,#0INC
13、R1INCR1;分加1CJNER1,#60,ExitInt1MOVR1,#0INCR1INCR1;時加1CJNER1,#24,ExitInt1MOVR1,#0ExitInt1:SETBF0ExitInt:POP01HRETIHexToBCD:MOVB,#10DIVABMOVR0,BINCR0MOVR0,AINCR0RETDisplay:MOVR0,#bufferMOVA,secACALLHexToBCDMOVR0,#10H;第三位不顯示INCR0MOVA,minACALLHexToBCDMOVR0,#10H;第六位不顯示INCR0MOVA,hourACALLHexToBCDMOVR0,#buf
14、ferLCALLDisplay8RETEND六、思考題1、電子鐘走時精度與哪些有關(guān)系?中斷程序中給TL0賦值為什么與初始化程序中不一樣?2、使用定時器方式二,重新編寫程序。 實驗五 頻率計(定時器、計數(shù)器、中斷綜合實驗)一、實驗?zāi)康氖煜CS51類CPU的定時器、計數(shù)器、中斷系統(tǒng)編程方法,了解定時器、計數(shù)器的應(yīng)用、實時程序的設(shè)計和調(diào)試技巧。二、實驗內(nèi)容使用定時器0產(chǎn)生定時,使用計數(shù)器1計數(shù)外部脈沖,用P3.5測量信號頻率(最大不能超過0.5MHZ),將頻率值顯示在數(shù)碼管上。三、程序框圖四、實驗步驟1、連線說明:D3區(qū) :CLKB2區(qū):2MD3區(qū) :CSA3區(qū):CS5D3區(qū) :A0A3區(qū):A02
15、、將導(dǎo)線的一頭插入A3區(qū)的T1(P3.5)3、打開實驗儀的電源4、將導(dǎo)線的另一頭與B2區(qū)的500K1953的信號相連,對應(yīng)的頻率值顯示在數(shù)碼管上五、程序清單;程序名稱:頻率計(P3.5計數(shù) 1秒處理一次)Count50msDATA30HPulseCountDATA31H;脈沖計數(shù)第三個字節(jié)bufferDATA32H;8個字節(jié)顯示緩沖區(qū)EXTRNCODE(Display8)ORG0000HLJMPSTARORG000BHLJMPTimerT0;T0計時中斷處理入口ORG001BHLJMPCounterT1;T1計數(shù)中斷處理入口ORG0100HSTAR:MOVSP,#60HMOVTMOD,#010
16、10001B;T0定時,T1計數(shù),方式1MOVTH0,#03CH;50ms定時MOVTL0,#0B0HMOVCount50ms,#20;20 * 50ms = 1sMOVTH1,#00H;計數(shù)MOVTL1,#00HMOVPulseCount,#0SETBEASETBET1SETBET0SETBTR0SETBTR1STAR1:JBTR0,$SETBTR0;刷新顯示SETBTR1ACALLB4toD4Display:MOVR0,#buffer;顯示結(jié)果MOVA,R7;低位ACALLB1toB2;壓縮BCD碼轉(zhuǎn)換成非壓縮BCD碼MOVA,R6ACALLB1toB2MOVA,R5ACALLB1toB2
17、MOVA,R4;高位ACALLB1toB2MOVR0,#buffer+7MOVR7,#7ACALLBlackDisplay;將高位0消隱MOVR0,#bufferLCALLDisplay8SJMPSTAR1TimerT0:MOVTH0,#03CH;50ms定時MOVTL0,#0B0HDJNZCount50ms,TimerT0_exitMOVCount50ms,#20CLRTR0CLRTR1MOVR1,PulseCountMOVR2,TH1MOVR3,TL1MOVPulseCount,#0MOVTH1,#0MOVTL1,#0TimerT0_exit:RETICounterT1:INCPulseC
18、ountRETI;B4toD4子程序請參閱實驗四、B1toB2、BlackDisplay子程序請參閱實驗二END六、思考題1、為什么測試較高頻率信號時,數(shù)碼管上顯示的數(shù)據(jù)一直在變化?2、為什么頻率信號不能超過0.5MHZ?硬件實驗實驗一跑馬燈實驗一、實驗?zāi)康呐c要求熟悉星研集成環(huán)境軟件或熟悉Keil C51集成環(huán)境軟件的使用方法。熟悉MCS51匯編指令,能自己編寫簡單的程序,控制硬件。二、實驗設(shè)備 STAR系列實驗儀一套、PC機一臺三、實驗內(nèi)容1、熟悉星研集成環(huán)境軟件或熟悉Keil C51集成環(huán)境軟件的安裝和使用方法。2、照接線圖編寫程序:使用P1口控制F5區(qū)的8個指示燈,循環(huán)點亮,瞬間只有一個
19、燈亮。2、觀察實驗結(jié)果,驗證程序是否正確。四、實驗原理圖五、實驗步驟 1、連線說明: A3區(qū):JP51F5區(qū):JP652、編寫程序或運行參考程序。 3、實驗結(jié)果:通過F5區(qū)的LED指示燈(8個指示燈輪流點亮),觀察實驗的輸出結(jié)果是否正確。六、演示程序ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HMOVA,#0FFHCLRCSTART1:RLCAMOVP1,AACALLDelaySJMPSTART1Delay:MOVR5,#2;延時Delay1:MOVR6,#0Delay2:MOVR7,#0DJNZR7,$DJNZR6,Delay2DJNZR5,Delay1R
20、ETEND如果讀者使用星研集成環(huán)境軟件,請考慮以下問題?1、運行程序前,打開變量窗;2、使用單步進入命令,運行到第六行后,運行過程中變量窗有何變化?將鼠標(biāo)停留在A、SP上一秒后,出現(xiàn)什么?,它與變量窗使用場合的區(qū)別?3、第九行是調(diào)用延時子程序,如何進入延時子程序(使用單步進入命令)?如何將延時子程序一下子運行完畢(使用單步命令;也可以將光標(biāo)移到下一行,使用運行到光標(biāo)處命令;)?單步進入命令與單步命令有何區(qū)別?4、運行幾次后,在第十行設(shè)置一個斷點,使用全速斷點命令運行幾次,觀察運行結(jié)果,它與運行到光標(biāo)處命令有何區(qū)別?5、Delay是一個延時子程序,改變延時常數(shù),使用全速運行命令,顯示發(fā)生了什么變
21、化?6、觀察寄存器,有哪幾種方法?1)在工作區(qū)窗的通用寄存器標(biāo)簽視中;2)變量窗3)鼠標(biāo)停留在寄存器上4)觀察窗5)寄存器窗實驗二74HC138譯碼器實驗一、實驗?zāi)康呐c要求1、掌握74HC138譯碼器的工作原理,熟悉74HC138譯碼器的具體運用連接方法,了解74HC138是如何譯碼的。2、認真預(yù)習(xí)本節(jié)實驗內(nèi)容,嘗試自行編寫程序,填寫實驗報告二、實驗設(shè)備STAR系列實驗儀一套、PC機一臺 三、實驗內(nèi)容1、編寫程序:使用單片機的P1.0、P1.1、P1.2控制74HC138的數(shù)據(jù)輸入端,通過譯碼產(chǎn)生8選1個選通信號,輪流點亮8個LED指示燈。2、運行程序,驗證譯碼的正確性。四、實驗原理圖五、實驗
22、步驟1、連線說明: C2區(qū):A、B、CA3區(qū):P1.0、P1.1、P1.2C2區(qū):G1、G2A、G2BC1區(qū):VCC、GND、GNDC2區(qū):JP36F5區(qū):JP65(LED指示燈)2、 調(diào)試程序,查看運行結(jié)果是否正確。六、演示程序;138譯碼器實驗(跑馬燈),P1.0-A, P1.1-B, P1.2-C, /G2B-GND, /G2A-GNDORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HCLRA;初值,第一次0位LED亮START1:MOVP1,AACALLDLTIMEINCACLRACC.3;A的值在0.7之間SJMPSTART1DLTIME:MOVR5,
23、#20DLTIME1:MOVR6,#100DLTIME2:MOVR7,#100DJNZR7,$DJNZR6,DLTIME2DJNZR5,DLTIME1RETEND 七、實驗擴展及思考 在單片機系統(tǒng)中,74HC138通常用來產(chǎn)生片選信號,請讀者考慮一下,應(yīng)如何處理? 實驗三8255控制交通燈實驗一、實驗?zāi)康呐c要求1、 了解8255芯片的工作原理,熟悉其初始化編程方法以及輸入、輸出程序設(shè)計技巧。學(xué)會使用8255并行接口芯片實現(xiàn)各種控制功能,如本實驗(控制交通燈)等。2、 熟悉8255內(nèi)部結(jié)構(gòu)和與單片機的接口邏輯,熟悉8255芯片的3種工作方式以及控制字格式。3、 認真預(yù)習(xí)本節(jié)實驗內(nèi)容,嘗試自行編寫
24、程序,填寫實驗報告。二、實驗設(shè)備STAR系列實驗儀一套、PC機一臺三、實驗內(nèi)容1、編寫程序:使用8255的PA0.2、PA5.7控制LED指示燈,實現(xiàn)交通燈功能。2、連接線路驗證8255的功能,熟悉它的使用方法。四、實驗原理圖五、實驗步驟1、連線說明:B4區(qū):CS、A0、A1A3區(qū):CS1、A0、A1B4區(qū):JP56(PA口)F5區(qū):JP652、觀察實驗結(jié)果,是否能看到模擬的交通燈控制過程。六、演示程序COM_ADDXDATA0F003HPA_ADDXDATA 0F000HPB_ADDXDATA0F001HPC_ADDXDATA0F002HORG0000HLJMPSTARORG0100HSTA
25、R:MOVSP,#60H MOVDPTR,#COM_ADDMOVA,#80H;PA、PB、PC為基本輸出模式MOVXDPTR,AMOVDPTR,#PA_ADD;燈全熄滅MOVA,#0FFHMOVXDPTR,ASTART1:MOVA,#37HMOVCA,A+PCMOVXDPTR,A;東西綠燈,南北紅燈ACALLDL5SMOVR4,#6START2:MOVA,#30HMOVCA,A+PCMOVXDPTR,A;東西綠燈閃爍,南北紅燈ACALLDL500msMOVA,#29HMOVCA,A+PCMOVXDPTR,AACALLDL500msDJNZR4,START2MOVA,#23H;東西黃燈亮,南北紅
26、燈MOVCA,A+PCMOVXDPTR,AACALLDL3SMOVA,#1EH;東西紅燈,南北綠燈MOVCA,A+PCMOVXDPTR,AACALLDL5SMOVR4,#6START3:MOVA,#17H;東西紅燈,南北綠燈閃爍MOVCA,A+PCMOVXDPTR,AACALLDL500msMOVA,#10HMOVCA,A+PCMOVXDPTR,AACALLDL500msDJNZR4,START3MOVA,#0AH;東西紅燈,南北黃燈亮MOVCA,A+PCMOVXDPTR,AACALLDL3SSJMPSTART1DB01111110B;東西綠燈,南北紅燈DB11111110B;東西綠燈閃爍,南
27、北紅燈DB10111110B;東西黃燈亮,南北紅燈DB11011011B;東西紅燈,南北綠燈DB11011111B;東西紅燈,南北綠燈閃爍DB11011101B;東西紅燈,南北黃燈亮DL500ms:MOVR5,#25DL500ms1:MOVR6,#100DL500ms2:MOVR7,#100DJNZR7,$DJNZR6,DL500ms2DJNZR5,DL500ms1RETDL3S:MOVR4,#6DL3S1:LCALLDL500msDJNZR4,DL5S1RETDL5S:MOVR4,#10DL5S1:LCALLDL500msDJNZR4,DL5S1RETEND七、實驗擴展及思考1、如何對825
28、5的PC口進行位操作?實驗四8253方波實驗一、實驗?zāi)康呐c要求了解8253的內(nèi)部結(jié)構(gòu)、工作原理;了解8253與單片機的接口邏輯;熟悉8253的控制寄存器和初始化編程方法,熟悉8253的6種工作模式。 二、實驗設(shè)備 STAR系列實驗儀一套、PC機一臺 三 、實驗內(nèi)容1、編寫程序:使用8253的計數(shù)器0和計數(shù)器1實現(xiàn)對輸入時鐘頻率的兩級分頻,得到一個周期為1秒的方波,用此方波控制蜂鳴器,發(fā)出報警信號,也可以將輸入腳接到邏輯筆上來檢驗程序是否正確。2、連接線路,驗證8253的功能,熟悉它的使用方法。四、實驗原理圖五、實驗步驟1、連線說明:D5區(qū):CS、A0、A1A3區(qū):CS5、A0、A1D5區(qū):CL
29、K0B2區(qū):2MD5區(qū):OUT0D5區(qū):CLK1D5區(qū):OUT1E3區(qū):Ctrl(蜂鳴器)D5區(qū):GATE0、GATE1C1區(qū)的VCC2、測試實驗結(jié)果:蜂鳴器發(fā)出時有時無的聲音;用邏輯筆測試蜂鳴器的輸入端口,紅綠燈交替點亮。 六、演示程序COM_ADDRXDATA0B003HT0_ADDRXDATA0B000HT1_ADDRXDATA0B001HORG0000HLJMPSTARORG0100HSTAR:MOVSP,#60HMOVA,#35HMOVDPTR,#COM_ADDRMOVXDPTR,A ;計數(shù)器T0設(shè)置在模式2狀態(tài),BCD碼計數(shù)CLRAMOVDPTR,#T0_ADDRMOVXDPTR,
30、AMOVA,#10HMO VXDPTR,A;CLK0/1000MOVA,#77HMOVDPTR,#COM_ADDRMOVXDPTR,A ;計數(shù)器T1為模式3狀態(tài),輸出方波,BCD碼計數(shù)CLRAMOVDPTR,#T1_ADDRMOVXDPTR,AMOVA,#10HMOVXDPTR,A;CLK1/1000SJMP$;OUT1輸出頻率為1s的方波END七、實驗擴展及思考1、8253還有其它五種工作方式,其它工作模式下,硬件如何設(shè)計?程序如何編寫?2、使用8253,編寫一個實時鐘程序。 實驗五8250可編程通信實驗(與微機)一、實驗?zāi)康呐c要求了解8250的內(nèi)部結(jié)構(gòu)、工作原理;了解8250與單片機的接口
31、邏輯;掌握對8250的初始化編程方法,學(xué)會使用8250實現(xiàn)設(shè)備之間的串行通信。認真預(yù)習(xí),做好實驗前的準(zhǔn)備工作,填寫實驗報告二、實驗設(shè)備 STAR ES598PCI實驗儀一套、PC機一臺三、實驗內(nèi)容1、編寫程序:通過初始化8250,設(shè)置波特率為4800bps(或其它,但與微機部分一致),數(shù)據(jù)格式為8數(shù)據(jù)位,1停止位,偶校驗;然后打開PC機的串行通信測試軟件,向8250發(fā)送一批數(shù)據(jù),8250接收完數(shù)據(jù)之后,再將數(shù)據(jù)依次發(fā)送回去。2、按圖連線,運行程序,觀察實驗結(jié)果,掌握8250的各項功能及編程方法。四、實驗原理圖五、實驗步驟1、連線說明:D4區(qū):CS、A0、A1、A2A3區(qū):CS1、A0、A1、A
32、2D4區(qū):SIN、SOUTE6區(qū):RxD、TxD2、運行程序3、運行“串口助手(ComPort.EXE)”,設(shè)置串口(波特率4800,8個數(shù)據(jù)位,一個停止位,偶校驗),打開串口,選擇“HEX發(fā)送”、“HEX顯示”,向8250發(fā)送數(shù)據(jù)10個數(shù)據(jù)(輸入數(shù)據(jù)之間用空格分隔),是否能接收到10個字節(jié)數(shù)據(jù),將接收到的數(shù)據(jù)發(fā)送回微機,接收到的數(shù)據(jù)是否與發(fā)送數(shù)據(jù)一致。4、改變傳輸數(shù)據(jù)的數(shù)目,重復(fù)實驗,觀察結(jié)果。六、演示程序;8250和PC機通信,需要在PC上運行一個串口軟件,并設(shè)置與8250相同的波特率NS8250_Base_AddressXDATA0FF00HRHRXDATANS8250_Base_Add
33、ress;接收數(shù)據(jù)緩沖區(qū)THRXDATANS8250_Base_Address;發(fā)送數(shù)據(jù)緩沖區(qū)IERXDATANS8250_Base_Address+1;中斷控制寄存器FCRXDATA NS8250_Base_Address+2;FIFO控制寄存器ISRXDATANS8250_Base_Address+2;中斷狀態(tài)寄存器LCRXDATANS8250_Base_Address+3;串行口控制寄存器MCRXDATANS8250_Base_Address+4;MODEM控制寄存器LSRXDATA NS8250_Base_Address+5;串行口狀態(tài)寄存器MSRXDATANS8250_Base_Ad
34、dress+6;MODEM狀態(tài)寄存器DLLXDATANS8250_Base_Address;波特率除數(shù)鎖存器低位DLMXDATANS8250_Base_Address+1;波特率除數(shù)鎖存器高位ORG0LJMPSTARORG100HSTAR:MOVSP,#60HACALLINIT8250START2:MOVDPTR,#2000H ;接收數(shù)據(jù)(接收完設(shè)定的數(shù)據(jù)個數(shù))MOVR6,#00MOVR7,#10CALLRECEIVE_GROUPMOVDPTR,#2000H ;發(fā)送數(shù)據(jù)(發(fā)完設(shè)定的數(shù)據(jù)個數(shù))MOVR6,#00MOVR7,#10CALLSEND_GROUPJNCSTART2WARNING1:CL
35、RP1.0;P1.0接蜂鳴器,出錯報警SJMP$;發(fā)送一組字符子程序,數(shù)據(jù)的首地址在DPTR中,個數(shù)在R6R7中Send_Group:DECR7CJNER7,#0FFH,Send_Group_1DECR6CJNER6,#0FFH,Send_Group_1CLRCSend_Group_2:RETSend_Group_1:MOVXA,DPTRINCDPTRACALLSend_ByteJNCSend_GroupRET;接收一組字符子程序,存放首地址在DPTR中,個數(shù)在R6R7中Receive_Group:DECR7CJNER7,#0FFH,Receive_Group_1DECR6CJNER6,#0F
36、FH,Receive_Group_1CLRCReceive_Group_2:RETReceive_Group_1:ACALLReceive_ByteMOVXDPTR,AINCDPTRSJMPReceive_GroupINIT8250:MOVDPTR,#ISRMOVA,#06HMOVXDPTR,AMOVDPTR,#LCRMOVA,#83H;允許訪問波特率因子寄存器MOVXDPTR,AMOVDPTR,#DLLMOVA,#40;除數(shù)低位寄存器,波特率設(shè)為4800=(3.072*1000000/16)/DLMDLLMOVXDPTR,AMOVDPTR,#DLMMOVA,#00H;00H送高字節(jié)寄存器MO
37、VXDPTR,AMOVDPTR,#LCRMOVA,#1BH ;不允許訪問波特率因子寄存器,數(shù)據(jù)格式為8數(shù)據(jù)位,1停止位,偶校驗MOVXDPTR,A RET;發(fā)送一個字節(jié)子程序,發(fā)送A中的數(shù),失敗置CYSend_Byte:PUSHDPLPUSHDPHPUSH06HPUSH07HPUSHACCMOVR6,#0MOVR7,#10MOVDPTR,#LSRREP11:MOVXA,DPTRJBACC.5,OUTPORT1DJNZR6,REP11DJNZR7,REP11POPACCSETBCSJMPEXIT8250;8250有問題OUTPORT1:POPACCMOVDPTR,#RHRMOVXDPTR,ACL
38、RCEXIT8250:POP07HPOP06HPOPDPHPOPDPLRET;接收一個字節(jié)子程序,接收字節(jié)在A中,接收失敗置CYReceive_Byte:PUSHDPLPUSHDPHMOVDPTR,#LSRReceive1:MOVXA,DPTRJNBACC.0,Receive1Receive2:MOVDPTR,#RHRMOVXA,DPTRReceive3:POPDPHPOPDPLRETEND七、實驗擴展及思考1、思考8250與8251有何異同之處?2、8250也可以做自發(fā)自收的實驗,該如何連線及修改程序?3、如何通過中斷處理方式實現(xiàn)8250串行接收,需要更改哪些線路?實驗六簡易電子琴實驗一、實
39、驗?zāi)康呐c要求掌握蜂鳴器的使用方法;掌握蜂鳴器的不同發(fā)音的方法。二、實驗設(shè)備STAR系列實驗儀一套、PC機一臺。三、實驗內(nèi)容1、簡易電子琴原理:(1) 蜂鳴器輸入不同頻率的方波,會發(fā)出不同的聲音;(2) 通過按鍵,由單片機控制產(chǎn)生不同頻率的方波,從而發(fā)出不同的聲音。2實驗過程(1) 通過單片機,使F5區(qū)的17號鍵由低到高發(fā)出17的音階。四、實驗原理圖五、實驗步驟1、主機連線說明:E3區(qū):CtrlA3區(qū):P1.7F5區(qū):JP74A3區(qū):JP51(P1口)2、運行程序,按F5區(qū)的17號鍵,輸出7種音階3、使用F5區(qū)的17號鍵,彈一首生日快樂。六、演示程序K1BITP1.0;按鍵1K2BITP1.1;
40、按鍵2K3BITP1.2;按鍵3K4BITP1.3;按鍵4K5BITP1.4;按鍵5K6BITP1.5;按鍵6K7BITP1.6;按鍵7 BuzzerBITP1.7;蜂鳴器M1EQU17M2EQU16M3EQU15M4EQU14M5EQU13M6EQU12M7EQU11ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HMAIN:MOVP1,#0FFH;P1口初始化LCALLDemo;播放一段演示音樂MAIN_1:JBK1,MAIN_2;1號鍵是否按下LCALLSound1;1號鍵發(fā)音子程序MAIN_2:JBK2,MAIN_3;2號鍵是否按下LCALLSound2;2號鍵發(fā)音子程序MAIN_3:JBK3,MAIN_4;3號鍵是否按下LCALLSound3;3號鍵發(fā)音子程序MAIN_4:JBK4,MAIN_5;4號鍵是否按下LCALLSound4;4號鍵發(fā)音子程序MAIN_5:JBK5,MAIN_6;5號鍵是否按下LCALLSound5;5號鍵發(fā)音子程序MAIN_6:JBK6,MAIN_7;6號鍵是否按下LCALLSound6;6號鍵發(fā)音子程序MAIN_7:J
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程項目轉(zhuǎn)包合同協(xié)議書
- 2025江蘇省安全員A證考試題庫附答案
- 2025廣東省安全員-B證考試題庫及答案
- 前端開發(fā)項目合同范本
- 華爾街英語合同范本
- 辦公樓更換燈合同范本
- 廠房裝修工人合同范本
- 農(nóng)村坑塘建房合同范本
- 小學(xué)語文習(xí)作單元整合教學(xué)策略
- 廠家賣家具合同范本
- 踝關(guān)節(jié)骨性關(guān)節(jié)炎課件整理
- 中藥功效快快記憶法(完整版)
- 01S201室外消火栓安裝圖集
- 電機與電氣控制技術(shù)PPT完整全套教學(xué)課件
- 高處作業(yè)安全經(jīng)驗分享
- 中國音樂學(xué)院音樂基礎(chǔ)知識(四級)(基本樂科)備考試題庫(含答案)
- 裝飾材料復(fù)試清單
- 有限公司事業(yè)合伙人管理辦法
- 工余安健環(huán)管理制度
- 關(guān)于“全民閱讀”的中考語文非連續(xù)性文本閱讀試題及答案閱讀(2018廣東廣州中考語文非連續(xù)性文本閱讀試題及答案)
- 某學(xué)校食堂服務(wù)投標(biāo)書
評論
0/150
提交評論