單片機實習報告(WORD檔)_第1頁
單片機實習報告(WORD檔)_第2頁
單片機實習報告(WORD檔)_第3頁
單片機實習報告(WORD檔)_第4頁
單片機實習報告(WORD檔)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精品單片機實習報告 項目一一要求二原理圖三程序ORG 0000H :程序初值LJMP START;轉到開始ORG 001BH;斷程序初值LJMP INT;轉到中斷程序START:MOV A,#0FEH;主程序初值 MOV R1,#02H ;地址偏移量 MOV R0,#20;延遲系數 MOV TMOD,#10H,定時器方式一 MOV TL1,#0B0H;低八位 MOV TH1,#03CH;高八位 ORL IE,#88H;允許T1中斷 SETB TR1;啟動定時器LOOP: CJNE R0,#00,DISP;比較是否到時間 MOV R0,#20;重置R0 INC R1;累加器加1 CJNE R1,

2、#20,LOOP2;比較是否到表尾 MOV R1,#02HR1等于02HLOOP2:MOV A,R1R1等于A MOVC A,A+PC基址加變址寄存器 JMP DISP;跳轉到DISP DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,00H,0FFH置首顯示碼量設地址偏移R1設延時系數R0DISP:MOV P2,A;用P2顯示A JMP LOOP;跳轉LOOPINT: DEC R0;R0減1 MOV TL1,#0B0H;低八位定時器初始化中斷設置(IE) MOV TH1,#03CH;高八位

3、四,算法 主程序2時間到?是重置R0RI加1判斷R1是否到表尾?是否到2否到1重置R11取顯示碼2顯示中斷子程序:中斷入口R0-1重裝計數初值中斷返回五問題為什么燈按順序亮,滅,全亮后,不能正常滅? 因為給的初值不對,應該為OFEH項目二一要求用硬件譯碼電路,在LED顯示器上循環(huán)顯示09十個數字二,電路圖三程序 ORG 0000HSTART:MOV SP,#60H MOV R3,#0 設定要顯示的第一個數字NEXT: MOV A,R3 ANL A,#0FH 屏蔽高半字節(jié) MOV P1,A 送顯示器 LCALL DEL_1S 停留1S INC R3 修改要顯示的數字 CJNE R3,#0AH,N

4、EXT 若09還未顯示一遍,則繼續(xù)顯示下一個數字 SJMP START 若顯示一遍,則再從0開始顯示 ORG 1000H 1S延遲子程序DEL_1S:MOV TMOD,#10H 定時器1, 方式1, 定時狀態(tài) MOV TL1,#0B0H MOV TH1,#3CH 送50ms定時處值 MOV R2,#20 設置軟件計數器,使20*50ms=1s SETB TR1 啟動定時器1LOOP: JNB TF1,$ 判斷基本定時是否到(50ms) MOV TL1,#0B0H MOV TH1,#3CH 再送初值,保證每次的基本定時時間都是50ms CLR TF1 清除溢出標志 DJNZ R2,LOOP 判斷

5、1s定時是否到 CLR TR1 關閉定時器1RET 1s定時結束END四,算法置首數字:0(R1)設延時系數:20(R0)中斷初始化,設置IE,TMOD顯示否判斷R1=10?顯示判斷R0=0?是否R1加1是是把0送給R1五,問題為什么接好了電路圖,寫好了程序,燈還是不亮? 因為程序里面接到了P1,而實際接到了P2,最后換了圖,才對了項目三一要求用軟件譯碼電路,在LED顯示器上顯示十六進制09二電路圖三,程序 ORG 0000H STARY: MOV SP,#60H MOV R3,#0 ;設首顯示碼 MOV DPTR,#TAB NEXT: MOV A,R3 ANL A,#0FH ;屏蔽高字節(jié) M

6、OVC A,A+DPTR MOV P2,A ;送顯示 LCALL DELAY INC R3 ;R3加1 CJNE R3,#0AH,NEXT ;判斷R3與10 SJMP STARY ;顯示完了再從0開始 ORG 1000H DELAY: MOV TMOD,#10H MOV TL1,#0B0H ;設初值 MOV TH1,#3CH MOV R2,#20 SETB TR1 ;開定時器 LOOP: JNB TF1,$ ;判斷基本定時是否到 MOV TL1,#0B0H ;再設初值 MOV TH1,#3CH CLR TF1 ;清除溢出標志 DJNZ R2,LOOP ;判斷1s定時是否到 CLR TR1 ;關

7、閉定時器1 RET TAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH END 四,算法,同二的算法一樣。項目四一要求用按鍵方式在數碼管上顯示099二電路圖三程序COUNT EQU 30HORG 0000HSTART: MOV COUNT,#00HNEXT: MOV A,COUNT MOV B,#10 DIV AB MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A MOV A,B MOVC A,A+DPTR MOV P2,AWT: JNB SP1,WTWAIT: JB SP1,WAIT LCALL DELY10MS

8、JB SP1,WAIT INC COUNT MOV A,COUNT CJNE A,#100,NEXT LJMP START DELY10MS:MOV R6,#20 D1:MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END四,算法開始COUNT=0數碼管顯示“00”判斷按鍵測試是否成功是COUNT=COUNT+1COUNT=100?1否2233數碼管顯示1否問題1個位正常工作,十位不變,什么? 沒有把數據傳給P0項目五一,要求:讓彩燈先從里往外亮,再從外往里亮,2,電路圖

9、三,程序,ORG 0000HLJMP START:注釋同項目一ORG 001BHLJMP INTSTART: MOV A,#00H MOV R1,#02H MOV R0,#20 MOV TMOD,#10H MOV TL1,#0B0H MOV TH1,#03CH ORL IE,#88H SETB TR1LOOP: CJNE R0,#00,DISP MOV R0,#20 INC R1 CJNE R1,#12,LOOP2 MOV R1,#02HLOOP2: MOV A,R1 MOVC A,A+PC JMP DISP DB 00H DB 7EH,0BDH,0DBH,0E7H DB 0E7H,0DBH,

10、0BDH,7EH DB 0FFHDISP: MOV P0,A JMP LOOPINT: DEC R0 MOV TL1,#0B0H MOV TH1,#03CH RETIEND四,算法,同一算法一樣。項目六一要求,把做好的單片機下載到單片機里面,看看能不能發(fā)出滴答的響聲,二原理圖三程序TA EQU 30HTB EQU 31HFLAG BIT 00H ORG 00HLJMP STARTORG 0BHLJMP INT_T0START:MOV TA,#00HMOV TB,#00HCLR FLAGMOV TMOD,#01HMOV TH0,#(65536-50000)/256MOV TL0,#(65536-

11、50000) MOD 256SETB TR0SETB ET0SETB EASJMP $INT_T0:MOV TH0,#(65536-50000)/256MOV TL0,#(65536-50000) MOD 256INC TAMOV A,TACJNE A,#100,NEXTINC TBCJNE A,#04H,NEXTMOV TA,#00HMOV TB,#00HCPL FLAGNEXT:JB FLAG,DONEDONE:RETIEND四,算法開 始T02S=0,T05MS=0,FLAG=0TO初始化 TO啟動定時并開啟中斷等待中斷T0中斷入口T02S+1TO2S=400?是FLAG取反FLAG=O

12、?是中斷返回1否12否2 五問題為什么把程序下載到單片機內,沒有聲音? 因為沒有接到P3口項目七一要求用按鍵的方式,讓燈亮。二,原理圖三,程序,SECOND EQU 30HORG 0000HSTART:MOV SECOND,#00HNEXT:MOV A,SECOND MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,AWT:JNB SP1,WTWAIT:JB SP1,WAIT LCALL DELAY10MS JB SP1,WAIT INC SECOND MOV A,SECOND CJNE A,#9,NEXT MOV SECOND,#00H LJMP STARTDELAY

13、10MS:MOV R6,#20D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1RETTABLE:DB 0FH,0EH,0DH,0CH,0BH,0AH,09H,08H,07HEND四,算法開始 P3.4=0?是延時10msP3.4=0?是進行按鍵處理等待按鍵釋放R1=R1+1顯 示11否否222項目八一要求用按鍵控制矩陣鍵盤二,原理圖三,程序KEYBUF EQU 30HORG 00HSTART:MOV P3,#00HWAIT:MOV P2,#0FFHMOV A,P2ANL A,#0FHXRL A,#0FHJ00Z NOKEY1LCALL DELY10MSMOV A,P2ANL

14、A,#0FHXRL A,#0FHJZ NOKEY1LCALL DELY10MSMOV A,P2ANL A,#0FHCJNE A,#0EH,NK1MOV KEYBUF,#0LJMP DK1NK1:CJNE A,#0DH,NK2MOV KEYBUF ,#4LJMP DK1NK2:CJNE A,#0BH,NK3MOV KEYBUF,#8LJMP DK1NK3:CJNE A,#07H,NK4MOV KEYBUF,#12LJMP DK1NK4:NOPDK1:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,A+DPTRMOV P3,ADK1A:MOV A,P2ANL A,#0FHXRL

15、 A,#0FHJNZ DK1ANOKEY1:MOV P2,#0FFH MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY2 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY2 MOV A,P2 ANL A,#0FH CJNE A,#0EH,NK5 MOV KEYBUF,#1 LJMP DK2NK5:CJNE A,#0DH,NK6 MOV KEYBUF,#5 LJMP DK2NK6:CJNE A,#0BH,NK7 MOV KEYBUF ,#9 LJMP DK2NK7:CJNE A,#07H,NK8 MOV K

16、EYBUF,#13 LJMP DK2NK8:NOPDK2:MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P3,ADK2A:MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK2ANOKEY2:MOV P2,#0FFHMOV A,P2ANL A,#0FHXRL A,#0FHJZ NOKEY3LCALL DELY10MSMOV A,P2ANL A,#0FHCJNE A,#0EH,NK9MOV KEYBUF,#2LJMP DK3NK9:CJNE A,#0DH,NK10MOV KEYBUF,#6LJMP DK3NK10:CJNE A

17、,#0BH,NK11 MOV KEYBUF,#10 LJMP DK3NK11:CJNE A,#07H,NK12 MOV KEYBUF,#14 LJMP DK3NK12:NOPDK3:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,A+DPTRMOV P3,ADK3A:MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK3ANOKEY3: MOV P2,#0FFH MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY4 LCALL DELY10MS MOV A,P2 ANL A,#0FH XRL A,#0FH JZ NOKEY4

18、 MOV A,P2 ANL A,#0FH CJNE A,#0EH,NK13 MOV KEYBUF,#3 LJMP DK4NK13:CJNE A,#0DH,NK14 MOV KEYBUF,#7 LJMP DK4NK14:CJNE A,#0BH,NK15 MOV KEYBUF,#11 LJMP DK4NK15:CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4NK16:NOPDK4:MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P3,A DK4A:MOV A,P2 ANL A,#0FH XRL A,#0FH JNZ DK

19、4ANOKEY4:LJMP WAITDELY10MS:MOV R6,#10D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1RETTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HEND四,算法項目九一要求用數字鐘,把你要顯示的東西顯示出來二,原理圖三,程序LED1 EQU 30H ;初始化定義LED2 EQU 31HLED3 EQU 32H ;存放三個數碼管的段碼ADC EQU 35H ;存放轉換后的數據EOC BIT P3.2 ;定義ADC0809的功能控制引腳ORG 00

20、00HLJMP MAIN ;跳轉到主程序執(zhí)行ORG 0030HMAIN: MOV LED1,#00H MOV LED2,#00H MOV LED3,#00H ;寄存器初始化WAIT: CLR ST SETB ST CLR ST ;在脈沖下降沿啟動轉換 JNB EOC,$ ;等待轉換結束 SETB OE ;允許輸出信號 MOV ADC,P0 ;暫存A/D轉換結果 CLR OE ;關閉輸出 MOV A,ADC ;將轉換結果放入A中,準備個位數據轉換 MOV B,#85 DIV AB MOV LED1,A ;將變換后的個位值送顯示緩沖區(qū)LED1 MOV A,B ;將變換結果的余數放入A中,準備十分位變換 MOV B,#33 ;變換十分位調整值3送B DIV AB MOV LED2,A ;將變換后的十分位值送LED2

溫馨提示

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

評論

0/150

提交評論