2023年廣工單片機實驗報告全部_第1頁
2023年廣工單片機實驗報告全部_第2頁
2023年廣工單片機實驗報告全部_第3頁
2023年廣工單片機實驗報告全部_第4頁
2023年廣工單片機實驗報告全部_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗報告課程名稱單片機原理及應用一學生學院信息工程學院專業(yè)班級13級應用電子專業(yè)4班學號姓名陳文威指導教師李優(yōu)新2023年12月12日0MoURO,#DSOOOODLO:2MOV"A,@R0。MOVoDPTR,#TAB。MOVOA,@A+DPTRMOVSBUF,ADL1:oJNBTLDL1oCLR。TI4NCsRO。DJNZ.R7,DLO◎RETTAB:DBOFCH,60H,ODAH,0F2H,66H,0B6HDBOBEH,0E0H,0FEH,0E6H,0EEH,03EH,9CHDB7AH,9EH,8EHEND原理:AT89s51單片機的UART在工作方式0下通過P30口將數(shù)據(jù)送到74LS164中鎖存,并通過LED數(shù)碼管顯示出傳輸?shù)臄?shù)字?,F(xiàn)象:數(shù)碼管顯示數(shù)字。五、思考題I.修改程序使數(shù)碼管顯示16進制數(shù)?修改DSOOOO,DSOO0,DSOO,DSO中的數(shù)值,將其改為相應的數(shù)字即可。例:MOVDS(X)()0,#OAH^MOVoDSO00,#02HgMOVDSOO,#()CH。MOVoDS0.#04H2.2.2.為什么顯示之后要加上延時?2.由于單片機一條指令執(zhí)行的時間只有幾微秒,假如不加上延時,數(shù)碼管上的數(shù)字就會不斷的閃爍,不穩(wěn)定。不利于觀測結(jié)果。心得:了解了數(shù)碼管個管腳與單片機的連接關(guān)系,以及如何使用單片機SPI的方式來擴展端口。實驗四A/D轉(zhuǎn)換?亮度測量實驗一.實驗目的熟悉0809的工作因素,掌握A/D轉(zhuǎn)換程序的設(shè)計方法以及以51連接的接口電路設(shè)計方法。學習傳感器件的應用。.實驗內(nèi)容和規(guī)定按照硬件連接圖和程序流程圖,編寫A/D轉(zhuǎn)換程序,通過調(diào)節(jié)ADCO809的REF與轉(zhuǎn)換值之間的關(guān)系,了解光敏電阻的電氣特性。光敏電阻特性:光敏電阻的阻值與亮度成反比,電氣特性等效于一個可變電阻,如實驗電路所示R13光敏電阻和電阻R16(4K7)串聯(lián),光敏電阻的阻值隨環(huán)境亮度而變化,加在光敏電阻的電壓也隨之變化。變化的電壓加分到0809的IN-0端和監(jiān)視電路。單片機通過74LS373和與非門,訪問0809,對IN-0端電壓進行AD轉(zhuǎn)換,并將數(shù)據(jù)解決后通過數(shù)碼管顯示出來。數(shù)碼管的顯示數(shù)值滿足以下公式:顯示數(shù)值=IN-0/REF+X256..實驗重要儀器設(shè)備和材料:1.AMC51單片機綜合開發(fā)系統(tǒng)一臺2.微機一臺四.實驗方法,環(huán)節(jié)及結(jié)果測試.啟動AMC51實驗裝置,檢查跳線,一般無需改動。.運營KEIL,具體操作環(huán)節(jié)參照實驗一。.參考以下電路圖和流程圖編寫程序。.編譯程序,把把生成的.HEX目的文獻下載到AT89s51運營。.觀測程序在AMC51實驗裝置的實際運營情況。(1)同手擋住“亮度傳感器”,改變亮度,觀測數(shù)碼管的數(shù)值變化。(2)調(diào)節(jié)ADC0809的REF+觀測REF和采樣電壓的關(guān)系。先按一下液晶屏下方的“RESET”再按一下“MODESSWITCH”按鈕,液晶屏切換到MODEl..用一字小螺絲刀分別順時針和逆時針扭動“亮度傳感器”下方藍色長方體的變阻器上面的螺絲。從液晶屏觀測到REF的變化。五.實驗報告規(guī)定1.實驗原理分析,實驗現(xiàn)象及結(jié)果。實驗原理:光敏電阻的阻值與亮度成反比,電氣特性等效于-一個可變電阻,如實驗電路所示R13光敏電阻和電阻R16(4K7)串聯(lián),光敏電阻的阻值隨環(huán)境亮度而變化力J在光敏電阻的電壓也隨之變化。變化的電壓加分到0809的IN-0端和監(jiān)視電路。單片機通過74LS373和與非門,訪問0809,對IN-0端電壓進行AD轉(zhuǎn)換,并將數(shù)據(jù)解決后通過數(shù)碼管顯示出來。數(shù)碼管的顯示數(shù)值滿足以下公式:顯示數(shù)值=IN-0/REF+X256.ADCO809的工作過程??方面輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完畢,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當0E輸入高電平時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。轉(zhuǎn)換數(shù)據(jù)的傳送A/D轉(zhuǎn)換后得到的數(shù)據(jù)應及時傳送給單片機進行解決。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認A/D轉(zhuǎn)換的完畢,由于只有確認完畢后,才干進行傳送。為此可采用下述三種方式。(1)定期傳送方式a對于一種A/D轉(zhuǎn)換其來說,轉(zhuǎn)換時間作為一項技術(shù)指標是己知的和固定的。例如ADC0809轉(zhuǎn)換時間為128us,相稱于6MHz的MCS-51單片機共64個機器周期??蓳?jù)此設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用此子程序,延遲時間一到,轉(zhuǎn)換肯定已經(jīng)完畢了,接著就可進行數(shù)據(jù)傳送。(2)查詢方式AA/D轉(zhuǎn)換芯片由表白轉(zhuǎn)換完畢的狀態(tài)信號,例如ADC0809的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可確認轉(zhuǎn)換是否完畢,并接著進行數(shù)據(jù)傳送。(3)中斷方式把表白轉(zhuǎn)換完畢的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進行數(shù)據(jù)傳送。不管使用上述哪種方式,只要一旦擬定轉(zhuǎn)換完畢,即可通過指令進行數(shù)據(jù)傳送。一方面送出口地址并以信號有效時,0E信號即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機接受。實驗現(xiàn)象:(1)通過手擋住“亮度傳感器”,減少亮度,數(shù)碼管的逐漸數(shù)值變大,大到255就不再增長,由于顯示數(shù)值=IN-0/REF+X256.,隨著亮度的變小,光敏電阻的阻值隨環(huán)境亮度變小而變大,加在光敏電阻的電壓也隨之變化,變化的電壓加分到0809的IN-0端也變大(具體數(shù)值已經(jīng)通過A/D轉(zhuǎn)換輸也可以從液晶屏直接讀出),從而數(shù)碼管的數(shù)值在參考電壓REF+沒有變的情況下,顯示數(shù)值也增長,輸入電壓IN-0最大等于基準電壓REF+,因而顯示值大約是256,實驗顯示最大是255.(2)調(diào)節(jié)REF+的,同理,由于顯示數(shù)值=IN-0/REF+X256.,調(diào)節(jié)REF+,可以改變數(shù)碼管的顯示值,最大仍然是256,調(diào)節(jié)REF+的具體數(shù)字也可以直接從液晶屏讀出,REF+越大,數(shù)碼管的顯示值越小,基準電壓REF+越小,數(shù)碼管的顯示值越大,最大為256,實驗顯示最大是255.,存在一定誤差。結(jié)果:通過調(diào)節(jié)ADC0809的參考電壓REF(以及亮度傳感器)與轉(zhuǎn)換值之間的關(guān)系,了解光敏電阻的電氣特性,光敏電阻的阻值與亮度成反比,電氣特性等效于一個可變電阻。2.完畢思考題,修改后的程序代碼清單(具體注釋)程序代碼如下CHENLEQU5CH。。;A/D轉(zhuǎn)換通道地址。DISPLAY_BUFFEREQU5DH。。;顯示緩存DSOEQU3FH。。;數(shù)碼管個位DS00EQU3EH。。。;數(shù)碼管十位DS000EQU3DH;數(shù)碼管百位DS0000oEQU3CH。。;數(shù)碼管千位ORG0000H。。;下一條指令的地址為0000HAJMPMAIN,。;跳轉(zhuǎn)到MAIN函數(shù)。ORGOO13H。。。;外部中斷INTIAJMPINT_1;跳轉(zhuǎn)到INTJL函數(shù)ORG0030H;下一條指令的地址為0030HORG0030HMAIN:SETBIT1;初始化程序;inti邊沿觸發(fā)SETBEXlo。;開INTI中斷SETBEA。。。。。:CPU開放中斷MOVCHENLz#0F8H。。;通道0口地址MOVDPII,#7FH?。;ADC0809高位地址#7FH。;;等待子程序;等待INTI中斷外部中斷1程序;保護現(xiàn)場;重新設(shè)立ADC0809高位地址#7FH。;繼續(xù)放AD轉(zhuǎn)換數(shù)據(jù);讀取A/D轉(zhuǎn)換值MOVDPL,CHENLMOVA,#0MOVX@DPTR,A。。。;啟動A/DLOOP_MAIN:AJMPLOOP_MAININT_1:PUSHPSWooPUSHACCPUSHDPHPUSHDPLMOVDPH,#7FHMOVDPL,CHENLMOVXA,@DPTR:ADC0809低位地址放AD轉(zhuǎn)換數(shù)據(jù);人清除數(shù)據(jù)MOVDISPLAY_BUFFER,A:保存A/D的數(shù)值A(chǔ)CALLTRAN_BCD。。;將A/D的數(shù)值轉(zhuǎn)換成BCD碼ACALLD1SP。調(diào)用串行顯示子程序MOVA#0ACALLDELAYQ調(diào)用延時程序MOVDPH,#7FH;再次設(shè)立ADC0809高位地址#7FHMOVDPL,CHENL;再次放AD轉(zhuǎn)換數(shù)據(jù)MOVX@DPTR,A。,POPDPLPOPDPHPOPACCPOPPSWRETIDELAY:。MOVR6,#64HD22:oMOVR5,#0F9HD21:。DJNZR5,D21DJNZR6,D22

;再次A/D啟動程序;恢復現(xiàn)場;彈出標志位;中斷返回;R5,R6為臨時延時變質(zhì);6M晶振延時0.1S:R5減為。繼續(xù);R6減為0繼續(xù)MOVR7,#0AHooMOVB,R7DIVAB。。MOVDS0zMOVR7,#0AHooMOVB,R7DIVAB。。MOVDS0zBMOVB,R7DIVABMOVDSOO,BMOVB,R7DIVABMOVDSOOO,BMOVB,R7DIVABMOVDSOOOO,B;求數(shù)碼管十位;將十位數(shù)字送到品示發(fā)送緩沖;求數(shù)碼管百位;將百位數(shù)字送到顯示發(fā)送緩沖;求數(shù)碼管千位;將千位數(shù)字送到顯示發(fā)送緩沖TRANBCD:TRANMOVA,DlSPLAY_BUFFER;讀入緩沖;R7為10;送10到B求數(shù)碼管個位;將個位數(shù)字送到顯示發(fā)送緩沖;送10至IJBRETRETRET:子程序返回

DISP:MOVR7,#4MOVRO,#DSO000DLO:MOVA,@R0RETDISP:MOVR7,#4MOVRO,#DSO000DLO:MOVA,@R0MOVDPTR,#TABMOVCA,@A+DPTRMOVSBUF,ADL1:JNBT1,DL1CLRTIINCROoDJNZR7,DL0RETTAB:DBDISP:MOVR7,#4MOVRO,#DSO000DLO:MOVA,@R0MOVDPTR,#TABMOVCA,@A+DPTRMOVSBUF,ADL1:JNBT1,DL1CLRTIINCROoDJNZR7,DL0RETTAB:DBDB7AH,9EH,8EHENDDISP:MOVR7,#4MOVRO,#DSO000DLO:MOVA,@R0MOVDPTR,#TABMOVCA,@A+DPTRMOVSBUF,ADL1:JNBT1,DL1CLRTIINCROoDJNZR7,DL0RETTAB:DBDB7AH,9EH,8EHEND思考題;取待顯示的數(shù)據(jù);查表;查得相應的七段代碼;啟動串行口發(fā)送數(shù)據(jù);等待一幀發(fā)送結(jié)束;清串行□中斷標志:指向下一個數(shù)據(jù);R7為零繼續(xù);共陰七段數(shù)碼管代碼表;(0-6段碼)(7-9ABC段碼)OFCH,60H,0DAH,OF2HOFCH,60H,0DAH,OF2H,66H,0B6HDB0BEH,0E0H,OFEH,OE6H,0EEH,03EH,9CH;(D?F段碼)OFCH,60H,0DAH,OF2H,66H,0B6HDB0BEH,0E0H,OFEH,OE6H,0EEH,03EH,9CH;(D?OFCH,60H,0DAH,OF2H,66H,0B6HDB0BEH,0E0H,OFEH,OE6H,0EEH,03EH,9CH;(D?F段碼)答:將MOVDPH,#7FH;通道0口地址改為通道1口地址,使其通道一接受數(shù)據(jù)并進行AD轉(zhuǎn)化。通道1口地址暫時不會求。2.為什么從數(shù)碼管觀測到,在亮度沒有變化的情況下,隨著ADC0809的REF+的變化,AD轉(zhuǎn)化結(jié)果發(fā)生變化。答:由于D轉(zhuǎn)化結(jié)果顯示數(shù)值=IN-O/REF+X256.,隨著ADC0809的REF+的變化,調(diào)節(jié)REF+,可以改變數(shù)碼管的顯示值,最大仍然是256,調(diào)節(jié)REF+的具體數(shù)字也可以直接從液晶屏讀出,REF+越大,數(shù)碼管的顯示值越小,基準電壓REF+越小,數(shù)碼管的顯示值越大,最大是當輸入電壓IN—0等于基準電壓REF+時為256,實驗顯示最大是255.,存在一定誤差。實驗一:開發(fā)軟件使用與調(diào)試方法實驗目的:學習KEIL的使用方法,用Keil開發(fā)工具編譯C源碼、匯編源程序。掌握單片機的編程及調(diào)試。二.實驗內(nèi)容和規(guī)定:編寫C語言程序,用Keil將程序編譯并生成HEX文獻調(diào)試程序。通過并口通信線連接PC與實驗箱,用Easy51Pro把程序下載到AT89s51觀測實驗箱LED的變化。三.實驗規(guī)定程序代碼:ORG0000HAJMPMAINORGoo0030HMAIN:oMOVP2,#0FFH。MOVA,#0FEHo?M0P0?ALOOP:JB-P2.0,LOOPACALLDELAY_100MS。JBoP2.0,LOOP,RR$。AHRER:^JNBP2.O,HRER^MOVP0,AAJMPLOOPDELAY100MS:—MOVoR6,#64HD22:MOVR5,#OF9HD21:0NZ,R5,D21。DJNZoR6,D22RET-END四.實驗心得:通過本次實驗,熟悉了kei1軟件的使用。初步掌握單片機的編程及調(diào)試實驗二定期器和中斷應用程序設(shè)計與調(diào)試一.實驗目的:掌握單片機的定期器,中斷功能系統(tǒng)的應用二.實驗內(nèi)容和規(guī)定:編寫程序,用AT89c51的內(nèi)部定期器/計數(shù)器TO的方式1產(chǎn)生周期為0.2秒的TTL脈沖(TCH和TCL溢出的時候,產(chǎn)生一個中斷),從P05輸出。計算如下:振蕩器的頻率f=6M=6000000,方式1計數(shù)器的長度為L=16.2的16次方即65536定期時間(溢出時間)t=0.1s

定期常數(shù)TC=6x0.1/12=65536-50000=15536,將15536轉(zhuǎn)換成16進制為3cB0,TCH=3CH(高八位)JCL=B0H(低八位)。三.實驗重要儀器設(shè)備和材料:1AMC51單片機綜合開發(fā)系統(tǒng)一臺2.微機一臺四.實驗方法,環(huán)節(jié)及結(jié)果測試L啟動ANC51實驗裝置,檢查跳線,一般無需改動。.運營KeiI調(diào)試程序,具體操作環(huán)節(jié)參考實驗一。.參考以下電路圖和流程圖編寫程序。.編譯程序,把生成的.HEX目的文獻下載到AT89S51運營。.觀測AMC51實驗裝置的LED在運營程序時閃爍的情況。參考程序代碼ORG。000ORG。0000HORG。000ORG。0000H;下一條指令的地址為OOOOHSTART:oAJMPMAIN;跳入主程序START:oAJMPMAINSTART:oAJMPMAIN;跳入主程序。ORG000BH;下一條指令的地址為000BHqAJMPINT_T0;定期器0中斷程序?ORG0030H;下一條指令的地址為0030HMAIN:MOVTMOD,#01H;設(shè)定期器TO為16位定期器MOVTH0,#3CH;設(shè)定TO的定期值(0.1s)MOVTLO,#OBOH;設(shè)定TO的定期值(0.1s)。SETBTRO。SETBETO。SETBEA。SETBTRO。SETBTRO。SETBETO。SETBEA;啟動定期器TO;開定期/計數(shù)器0允許;CPU開放中斷MAIN1:SJMPMAIN1:SJMPMAIN_11NT_T0MAIN1:SJMPMAIN_11NT_T0:PUSHACCPUSHPSWMOVTHO,#3CH1NT_T0:PUSHACC1NT_T0:PUSHACCPUSHPSWMOVTHO,#3CH:保護現(xiàn)場;設(shè)定TO的定期值(0.1s)MOVTLO,#0B0HMOVTLO,#0BMOVTLO,#0B0H;設(shè)定TO的定期值(0.1s)CPLPO.5CPLPO.5;取反,流水燈閃爍CPLPO.5POPPSw;恢復現(xiàn)場POPACCRET1;中斷返回END五.實驗報告規(guī)定L實驗原理分析,實驗現(xiàn)象。通過啟動TO中斷,設(shè)定定期值為0.1S,當定期器溢出后,重新置位,并將P05取反,其中P05口相應的發(fā)光二極管將導致閃爍的結(jié)果。2.按思考題修改程序,修改程序后的調(diào)試結(jié)果;程序流程圖;源程序及注釋。思考題1.假如要輸出一個周期為1秒的方波,應怎么樣修改程序?答:周期為1S,就是每次延時0.5S,源程序0.1S延時5次循環(huán)后,再開中斷。ORGOOO。0IISTART:。AJMP。MAIN,ORGOOOBHAJMPINT_T0。ORG003OHMAIN:MOVTMOD,#01HMOVTHO,#3CH0MOVTLO,#OBOH0MOVR2,#05H0setbTR0oSETBETO0SETBEAMAIN_1:SJMPMAIN_1INT_TO:DJNZR2JNT;當R2=5每次減1到為0才繼續(xù)執(zhí)行,啟動中斷,也MOVMOVMOVR2,#05MOVR2,#05H就是延時5次,一共0.53,周期就是1S,頻率1HZ。CPLP0.5MNT:oPUSHACCPUSHPSW?MOVTHO,#3CHMOVTLO,#OBOHPOPPSWPOPACCooRETIEND程序流程圖主程序:開始中斷程序:1IP0.5取反初始化II分別延時循環(huán)5次,2次等待中斷一1T2.假如要同時輸出多個頻率不同的方波(fl=lHZf2=2HZ),應怎么樣修改程序?(改為2.5HZ)答:頻率1HZ,周期為1S,就是每次延時0.5S,源程序0.1S延時5次循環(huán)后,再開中斷。頻率為2HZ,周期為0.5S,就是每次延時0.25S,源程序0.1S大約延時2次循環(huán)后,再開中斷。程序如下ORGo0000HSTART:oAJMP。MAIN000BHAJMPINTTOORG0030HMAIN:MOVTMOD,#01HMOVTH0,#3CHMOVTLOZ#OBOHMOVR2Z#05HooMOVR3,#02HSETBTROETO。。SETBEAMAIN1:SJMPMAIINTTO:DJNZR2JNT;[當R2=5每次減1到為0才繼續(xù)執(zhí)行,啟動中斷,MOVR2,#05H就是延時5次,一共0.5S,周期就是1S,頻率1HZ]CPLP0.5DJNZR

溫馨提示

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

評論

0/150

提交評論