版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機實驗報告班級:應(yīng)電0921
姓名:郭龔有
學(xué)號:09472106
襄樊學(xué)院理工學(xué)院2020-6-28實驗1Keil的利用(匯編語言)實驗?zāi)康模撼醪桨盐誎eil(匯編語言)和ZY15MCU12BD型綜合單片機實驗箱的操作和利用,能夠輸入和運行簡單的程序。實驗設(shè)備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝Keil的運算機一臺。實驗原理及環(huán)境:在運算機上已安裝Keil軟件。那個軟件既能夠與硬件(ZY15MCU12BD型綜合單片機實驗箱)連接,在硬件(單片機)上運行程序;也能夠不與硬件連接,僅在運算機上以虛擬仿真的方式運行程序。若是程序有對硬件的驅(qū)動,就需要與硬件連接;若是沒有硬件動作,僅有軟件操作,就能夠夠利用虛擬仿真。實驗內(nèi)容:把握軟件的開發(fā)進程:1) 成立一個工程項目選擇芯片確信選項。2) 加入C源文件或匯編源文件。3) 用項目治理器生成各類應(yīng)用文件。4) 檢查并修改源文件中的錯誤。5) 編譯連接通事后進行軟件模擬仿真。6) 編譯連接通事后進行硬件仿真。7) IAP編程操作按以上步驟實此刻輸出一個頻率為1Hz的方波。在2的基礎(chǔ)上,實現(xiàn)同時在和上各輸出一個頻率同為但電平狀態(tài)相反的方波。實驗步驟:如圖1-1所示:①Project^②NewProject^③輸入工程名test^④保留工程文件(鼠標點擊保留按鈕)彈出下一界面。如圖1-2所示:①選CPU廠家(Atmel)-②選CPU型號(89C51),③選好后確信接著選晶振頻率及生成HEX文件等。如圖1-3所示:①Project-②OptionsforTarget‘Target—③在Target中—④更改CPU晶振頻率為12MHz-⑤在Output-⑥選擇生成HEX格式其它采納缺省設(shè)置一⑦選好后確信。成立匯編源文件如圖1-4所示:①File-②New,③彈出源文件編輯窗口。輸入以下源文件:ORG0000HAGAIN:CPLMOVR0,#10涎時秒LOOP1: MOVR1,#100LOOP2: MOVR2,#250DJNZR2,$DJNZR1,LOOP2DJNZR0,LOOP1SJMPAGAINEND源程序編寫完后,①File-②SaveAs將文件以保留在E:\test目錄下,取得匯編語言源程序。用項目治理器生成(編譯)各類應(yīng)用文件①點擊Target1前之+號一顯現(xiàn)②SourceGroup1-③點擊它并按鼠標右鍵會生彈出下拉菜單見圖1-5編譯文件文件窗口一選擇④AddFilestoGroup‘SourceGroup1’一⑤向項目中添加源文件一⑦在SourceGroup1前會顯現(xiàn)一個+號一⑧點擊之彈出test.asm文件名點擊該文件名一⑨主窗口中會顯現(xiàn)該程序編譯:Project—Buildtarget就會生成一系列到文件如OBJ文件LST文件HEX文件等。檢查并修改源文件中的錯誤若是在源文件中存在錯誤在Output窗口中會顯現(xiàn)錯誤提示信息,你能夠在源程序中進行修改,然后存盤后從頭Build觀看錯誤提示信息。編譯連接通事后進行軟件模擬仿真Debug—Start/StopDebugSession進入軟件模擬的仿真窗口,可利用單步、設(shè)斷點來進行調(diào)試和除錯。編譯連接通事后進行硬件仿真設(shè)置硬件實時仿真調(diào)試選項:Project-OptionsforTarget‘Targetl’一Debug.硬件實時仿真調(diào)試選項窗口,見圖1-5。選硬件仿真選項,按確信按鈕確信。點擊Settings設(shè)置串行口選項,見圖1-5。串行口Port應(yīng)與實際利用的PC機串行口相一致,波特率Baudrate必需利用9600。實驗箱的仿真串口必需與PC機串口連接,撥位開關(guān)K10必需撥在B端,連接P10和L0,連接P11和L1,連接完畢后通電。實驗2十六進制與十進制的轉(zhuǎn)換實驗?zāi)康模簩嵺`匯編語言順序結(jié)構(gòu)的編程方式,把握十六進制數(shù)轉(zhuǎn)換成十進制數(shù)的編程實現(xiàn),把握單步運行程序的大體技術(shù)。實驗設(shè)備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝Keil的運算機一臺。實驗步驟:成立一個工程,將在預(yù)習(xí)中做好的*.asm文件加入。調(diào)出存儲器編輯窗口,將30H單元修改成某一值。在希望停下來的指令上設(shè)斷點,然后運行,在斷點處停下來后,再單步運行,能夠看到各單元的轉(zhuǎn)變情形。運行完最后一條指令后,在31H?33H中應(yīng)取得30H中十六進制數(shù)對應(yīng)的十進制數(shù)。實驗源程序:ORG 0000HMOV A,30HMOV B,#64HDIV ABMOV 31H,AMOV A,BMOV B,#0AHDIV ABMOV 32H,AMOV 33H,BSJMP$END實驗38段LED顯示器動態(tài)顯示實驗?zāi)康模喊盐?段LED顯示器的利用及顯示程序的設(shè)計方式。實驗設(shè)備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝Keil的運算機一臺。LED顯示器的列位由8255的A口驅(qū)動,低電平對應(yīng)位發(fā)光,高電平對應(yīng)位熄滅。實驗內(nèi)容:編寫一個6位LED顯示器驅(qū)動子程序(在主程序中已對接口芯片8255做好必要的初始化)。字形表按0?F、0.?F.、-、滅的順序排列。該子程序的要求如下:入口:待顯示數(shù)(00H?1FH)放在20H?25H(別離對應(yīng)顯示器的左起第1?第6位)中。出口:每位LED顯示后返回。占用:R0、R一、R二、A、PSW、DPTR。顯示子程序的流程圖如圖5-2和圖5-3:
3.按以下框圖編寫一段程序,運行后會在顯示器上應(yīng)顯現(xiàn)持續(xù)向左移動的0?F。圖5-5實驗內(nèi)容3流程圖#實驗步驟:將?與JD0?JD7連接起來。開關(guān)KC倒向上方。成立一個工程,將在預(yù)習(xí)中做好的實驗內(nèi)容1和2的程序拷貝到一個*.asm文件加入。編譯后與單片機硬件連接,運行。在20H起始的6個字節(jié)中置入00H?0FH中的任意6個值,然后持續(xù)運行此程序,應(yīng)顯示0?F中的6個數(shù)字;在20H起始的6個字節(jié)中置入10H?1FH中的任意6個值,然后持續(xù)運行此程序,應(yīng)顯示0.?F.中的6個數(shù)字。若是運行結(jié)果不正常,能夠用設(shè)斷點、單步運行的方式查找錯誤所在,修改后從頭編譯、與單片機硬件連接,運行。直至取得正確的結(jié)果。成立一個工程,將在預(yù)習(xí)中做好的實驗內(nèi)容1和3的程序拷貝到一個*.asm文件加入。編譯后與單片機硬件連接,運行。觀看LED顯示器,應(yīng)從右向左依次顯現(xiàn)0、一、二、3……實驗源程序如下:ORG0000HMOVSP,#6FHMOV20H,#00MOV21H,#00MOV22H,#00MOV23H,#00
MOV24H,#00MOV25H,#00MOVDPTR,#4003H;8255初始化MOVA,#B;A口、B口方式0輸出,C口高4位輸出,低4位輸入MOVX@DPTR,A;ACALLDELAY500MS ;延時LOOP3:LCALLDISP ;調(diào)用顯示子程序MOV20H,21HMOV21H,22HMOV22H,23HMOV23H,24HMOV24H,25HINC25HANL25H,#0FHSJMPLOOP3DISP:MOVMOVR0,#20HR2,#0FEHDISP1:MOVA,@R0MOVDPTR,#TABMOVCA,@A+DPTRMOVDPTR,#4001HMOVX@DPTR,AMOVA,R2MOVDPTR,#4000HMOVX@DPTR,ACALLDELAY500USMOVA,#0FFHMOVX@DPTR,AMOVA,R2RLAMOVR2,AINCR0CJNER0,#26H,DISP1RETDELAY500MS:PUSH00HMOVR0,#25;延時秒NEXT:ACALLDELAY20MSDJNZR0,NEXTPOP00HRETDELAY500US:PUSH03HMOVR3,#250DJNZR3,$POP03HRETDELAY20MS:PUSH06HPUSH07HMOVR7,#99AGAIN:MOVR6,#100DJNZR6,$DJNZR7,AGAINPOP07HPOP06HRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;0,1,2,3,4,5,6,7DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH;8,9,A,B,C,D,E,FDB 40H,79H,24H,30H,19H,12H,2H,78H;0.,1.,2.,3.,4.,5.,6.,7.DB 00H,10H,08H,03H,46H,21H,06H,0EH;8.,9.,A.,B.,C.,D.,E.,F.END實驗4矩陣鍵盤的利用實驗?zāi)康模喊盐站仃囨I盤的利用及鍵盤掃描程序的設(shè)計方式。實驗設(shè)備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝Keil的運算機一臺。實驗原理及環(huán)境:實驗箱上有一個16鍵的矩陣鍵盤,分為4行X4列。4行別離連接到一片8255(與8段LED顯示器的段驅(qū)動和位驅(qū)動共用)的PC0?PC3,4列別離連接到8255的PC4?PC7°8255的A口、B口、C口、操縱口的地址別離為片外RAM的4000H、4001H、4002H、4003H。第4列第3列第2列第1列行PC300H01H02H03H第4行輸PC204H05H06H07H第3行、PC1入08H09H0AH0BH第2行PC00CH0DH0EH0FH第1行PC7PC6PC5PC4列驅(qū)動圖6-1鍵盤布置及鍵值選擇列驅(qū)動碼使某一列為低電平而其它列為高電平,再讀取行輸入,假設(shè)該列有鍵按下那么相應(yīng)的位即是低電平。每一個鍵均安排一個鍵值,如圖6-1所示。實驗內(nèi)容:編寫一個鍵盤掃描子程序(在主程序中已對接口芯片8255做好必要的初始化)。那個程序?qū)︽I盤作一次掃描,假設(shè)無鍵按下,返回時累加器A中為FFH,假設(shè)有鍵按下,返回時A中為該鍵鍵值。查鍵值子程序能夠自行編寫,也能夠利用下面那個查表子程序,那個子程序的參數(shù)如下:入口:行列關(guān)鍵值碼放在累加器A中,高4位是列驅(qū)動碼(被掃描列的對應(yīng)位為0,其余位均為1),低4位是行狀態(tài)(按下鍵的對應(yīng)位為0,其余位均為1)。出口:鍵碼放在A中帶出。占用:R—、A、PSW、DPTR。程序清單如下:;查鍵值子程序KEY20:PUSHACC ;暫存關(guān)鍵值MOVR1,#00H;查鍵值自變量清0KEY21:JNB,KEY22;計算列數(shù)RRAINCR1SJMPKEY21KEY22:MOVA,R1 ;按每列4個鍵計算MOVB,#4MULABMOVR1,APOPACC ;恢復(fù)關(guān)鍵值KEY23:JNB,KEY24;計算行數(shù)RRAINCR1SJMPKEY23KEY24:MOVDPTR,#KEYTAB;讀取鍵值MOVA,R1MOVCA,@A+DPTRRETKEYTAB:DB0FH,0BH,07H,03HDB0EH,0AH,06H,02HDB0DH,09H,05H,01HDB0CH,08H,04H,00H鍵盤掃描子程序自身無法運行,為了運行那個子程序,另編寫以下程序:ORG0000HMOVSP,#6FHMOVR0,#5 ;延時秒LOOP1:MOVR1,#200LOOP2:MOVR2,#250DJNZR2,$DJNZR1,LOOP2DJNZR0,LOOP1MOVDPTR,#(ADD_8255+3);8255初始化MOVA,#B;A口、B口方式0輸出,C口高4位輸出,低4位輸入MOVX@DPTR,ALOOP3:LCALLDIS ;調(diào)用顯示子程序LCALLKEY;鍵盤掃描子程序入口CJNEA,#0FFH,LOOP4;如果有鍵按下轉(zhuǎn)SJMPLOOP3LOOP4:MOV20H,21HMOV21H,22HMOV22H,23HMOV23H,24HMOV24H,25HMOV25H,ASJMPLOOP3其中顯示子程序利用實驗3中的顯示子程序。程序運行后,每按一鍵便從顯示器的右端移入一個對應(yīng)的數(shù)。實驗步驟:將?與JD0?JD7連接起來。開關(guān)KC倒向上方。成立一個工程,將在預(yù)習(xí)中做好的實驗內(nèi)容1和2的程序和實驗3中的顯示子程序拷貝到一個的*.asm文件加入。編譯后與單片機硬件連接,運行。按下鍵盤上的各鍵,相應(yīng)的數(shù)字會出此刻LED顯示器上。實驗源程序如下:ORG0000HMOVSP,#6FHMOV20H,#00MOV21H,#00MOV22H,#00MOV23H,#00MOV24H,#00MOV25H,#00ACALLDELAY500MS;延時秒MOVDPTR,#4003H;8255初始化MOVA,#B;A口、B口方式0輸出,C口高4位輸出,低4位輸入MOVX@DPTR,ALOOP3:LCALLDISP ;調(diào)用顯示子程序LCALLKEY ;鍵盤掃描子程序入口CJNEA,#0FFH,LOOP4;如果有鍵按下轉(zhuǎn)SJMPLOOP3KEY:MOVA,#00H;使4根列線都輸出0MOVDPTR,#4002HMOVX@DPTR,AMOVXA,@DPTRANLA,#0FHCJNEA,#0FH,KEYDNMOVA,#0FFHRETKEYDN:MOVR2,#BKEYDN1:MOVA,R2MOVX@DPTR,AMOVXA,@DPTRANLA,#0FHCJNEA,#0FH,CONTNEXTCOLUMN:MOVA,R2RLCAMOVR2,AJCKEYDN1SJMPNOKEYDNCONT:MOV03H,ALCALLDELAY20MS;延時20msMOVXA,@DPTRANLA,#0FHCJNEA,03H,NOKEYDNWAITKEYUP:MOVXA,@DPTRANLA,#0FHCJNEA,#0FH,WAITKEYUP;讀行狀態(tài),直到鍵松開MOVA,R2ANLA,#0F0HMOVR2,AMOVA,03HORLA,R2LCALLKEY20RETNOKEYDN: MOVA,#0FFHRETKEY20: PUSHACC ;暫存關(guān)鍵值MOVR1,#00H;查鍵值自變量清0KEY21: JNB,KEY22;計算列數(shù)RRAINCR1SJMPKEY21KEY22: MOVA,R1 ;按每列4個鍵計算MOVB,#4MULABMOVR1,APOPACC;恢復(fù)關(guān)鍵值KEY23: JNB,KEY24;計算行數(shù)RRAINCR1SJMPKEY23KEY24: MOVDPTR,#KEYTAB;讀取鍵值MOVA,R1MOVCA,@A+DPTRRETKEYTAB:DB0FH,0BH,07H,03HDB0EH,0AH,06H,02HDB0DH,09H,05H,01HDB0CH,08H,04H,00HDISP: MOVR0,#20HMOVR2,#0FEHDELAY500MS:PUSH00HMOVR0,#25 ;延時秒NEXT:ACALLDELAY20MSDJNZR0,NEXTPOP00HRETDELAY500US:PUSH03HMOVR3,#250DJNZR3,$POP03HRETDELAY20MS:PUSH06HPUSH07HMOVR7,#99AGAIN:MOVR6,#100DJNZR6,$DJNZR7,AGAINPOP07HPOP06HRETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;0,1,2,3,4,5,6,7DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH;8,9,A,B,C,D,E,FDB 40H,79H,24H,30H,19H,12H,2H,78H;0.,1.,2.,3.,4.,5.,6.,7.DB 00H,10H,08H,03H,46H,21H,06H,0EH;8.,9.,A.,B.,C.,D.,E.,F.END實驗5A/D轉(zhuǎn)換實驗?zāi)康模喊盐沼肁DC0809實現(xiàn)A/D的方式。實驗設(shè)備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝Keil的運算機一臺。實驗原理及環(huán)境:電位器W1將+5V電壓分壓后送入ADC0809的輸入IN4?IN7,調(diào)劑電位器W1能夠取得0?+5V的電壓輸入。ADC0809的接口參數(shù)如下:輸入電壓范圍 0?+5V啟動IN0?IN7A/D轉(zhuǎn)換 寫8000H?8007H取轉(zhuǎn)換結(jié)果 讀80XXHEOC通過一個反相器輸出實驗內(nèi)容:設(shè)計一個程序,將IN4輸入的0?+5V模擬電壓轉(zhuǎn)換成數(shù)字量,再將那個2位十六進制轉(zhuǎn)換成3位十進制數(shù),放在LED顯示器的第四?六位顯示。其中顯示子程序能夠用實驗3中的子程序。判轉(zhuǎn)換是不是終止能夠?qū)DC0809的EOC(經(jīng)反相器)引入到,然后查詢的狀態(tài)。實驗步驟:將?與JD0?JD7連接起來。開關(guān)KC倒向上方。將?與U9D0?U9D7連接起來。將與EOC連接起來。成立一個工程,將在預(yù)習(xí)中做好的實驗程序*.asm文件加入。編譯后與單片機硬件連接,運行。旋轉(zhuǎn)電位器W1,LED顯示器上的數(shù)字應(yīng)在000000?000255之間轉(zhuǎn)變(因受電位器的調(diào)劑范圍限制,有可能小于那個范圍)。實驗源程序如下:ORG0000HMOVSP,#6FHMOV20H,#00MOV21H,#00MOV22H,#00MOV23H,#00MOV24H,#00MOV25H,#00MOVDPTR,#4003H;8255初始化MOVA,#B;A口、B口方式0輸出,C口高4位輸出,低4位輸入MOVX@DPTR,A;ACALLDELAY500MS;延時秒LOOP3:MOVA,#0FFHMOVDPTR,#8004HMOVX@DPTR,A;寫任意值到(8004H)啟動IN4A/D轉(zhuǎn)換WAITZHJS:ORLP1,#01HMOVC,JCWAITZHJS;等待轉(zhuǎn)換終止MOVXA,@DPTR;使AD轉(zhuǎn)換的數(shù)據(jù)輸出;ORLP0,#0FFH;MOVA,P0;讀?0口DJNZR7,AGAIN1SJMPLOOP3DISP:MOVR0,#20HMOVR2,#0FEHDISP1:MOVA,@R0MOV DPTR, #TABMOVCA,@A+DPTRMOV DPTR, #4001HMOVX @DPTR, AMOV A,R2MOVDPTR,#4000HMOVX@DPTR,ACALLDELAY500USMOVA,#0FFHMOVX@DPTR,AMOV A,R2RLAMOV R2,AINCR0CJNER0,#26H,DISP1RETDELAY500MS:PUSH00HMOVR0,#25;延時秒NEXT:ACALLDELAY20MSDJNZR0,NEXTPOP00HRETDELAY500US:PUSH03HMOVR3,#250DJNZR3,$POP03HRETDELAY20MS:PUSH06HPUSH07HMOVR7,#99AGAIN:MOVR6,#100DJNZR6,$DJNZR7,AGAINPOP07HPOP06HRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H;0,1,2,3,4,5,6,7DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH;8,9,A,B,C,D,E,FDB40H,79H,24H,30H,19H,12H,2H,78H;0.,1.,2.,3.,4.,5.,6.,7.DB00H,10H,08H,03H,46H,21H,06H,0EH;8.,9.,A.,B.,C.,D.,E.,F.END實驗6D/A轉(zhuǎn)換實驗?zāi)康模喊盐沼肈AC0832實現(xiàn)D/A轉(zhuǎn)換器的方式。實驗設(shè)備:ZY15MCU12BD型綜合單片機實驗箱一臺、具有一個RS232串行口并安裝Keil的運算機臺。實驗原理及環(huán)境:DAC0832的連接利用單緩沖方式,D/A轉(zhuǎn)換口地址為6000H。當(dāng)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣州紅盾網(wǎng)年度報告(共10篇)
- 2024年菏澤學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 2024屆云南三校高考備考聯(lián)考卷(五)文科綜合試題答案及雙向細目表
- 2025支票及質(zhì)押借款合同
- 2024年度天津市公共營養(yǎng)師之三級營養(yǎng)師能力提升試卷A卷附答案
- 2024年度天津市公共營養(yǎng)師之二級營養(yǎng)師測試卷(含答案)
- 2024年度四川省公共營養(yǎng)師之四級營養(yǎng)師題庫綜合試卷B卷附答案
- 2024年度四川省公共營養(yǎng)師之三級營養(yǎng)師考試題庫
- 陶瓷加工項目告
- 2025房地產(chǎn)包銷合同范本
- 腳手架質(zhì)量驗收標準
- 小學(xué)思政課《愛國主義教育》
- 中藥材的性狀及真?zhèn)舞b別培訓(xùn)-課件
- 泵站項目劃分
- 綠化養(yǎng)護工作檢查及整改記錄表
- 新能源發(fā)電技術(shù)學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- GB/T 42752-2023區(qū)塊鏈和分布式記賬技術(shù)參考架構(gòu)
- Module 9 (教案)外研版(一起)英語四年級上冊
- 初中物理-初三物理模擬試卷講評課教學(xué)課件設(shè)計
- DG-TJ 08-2367-2021 既有建筑外立面整治設(shè)計標準
- 公文流轉(zhuǎn)單(標準模版)
評論
0/150
提交評論