廣東海洋大學單片機實驗報告.doc
實驗一 發(fā)光二極管流水燈實驗一、實驗目的:1.通過AT89C51單片機控制8個發(fā)光二極管,八個發(fā)光二極管分別接在單片機的P0.0P0.7接口上,輸出“0”時,發(fā)光二極管亮。開始時P0.0P0.1.P0.7,實現(xiàn)亮點以1HZ頻率循環(huán)移動。2.用PROTEUS 設(shè)計,仿真以AT89C51為核心的發(fā)光二極管流水燈實驗裝置。3.掌握發(fā)光二極管的控制方法。二、PROTEUS電路設(shè)計:三、實驗儀器和設(shè)備PC機、PROTEUS軟件或W-A-51綜合開發(fā)學習板四、源程序設(shè)計:根據(jù)電路圖自行編寫并調(diào)試。ORG 0000HAJMP STARTORG 0030HSTART: MOV P0,#0FFH MOV A,#0FEHAAA: MOV P0,A LCALL DELAY JNB P0.7,BBB RL A AJMP AAABBB: MOV A,#7FHCCC: MOV P0,A LCALL DELAY JNB P0.0,START RR A AJMP CCCDELAY: MOV R2,#123 DL3: MOV R1,#200DL2: MOV R0,#20DL1: DJNZ R0,DL1 DJNZ R1,DL2 DJNZ R2,DL3 RET END實驗二 開關(guān)控制LED數(shù)碼管實驗一、實驗目的:1.通過AT89C51讀入4位開關(guān)K1、K2、K3、K4的輸入狀態(tài),并按照二進制編碼關(guān)系0-F輸出到數(shù)碼管顯示。(如K4K3K2K1全部按下,則顯示F;若只有K2按下,則顯示2。)2.掌握LED數(shù)碼管的靜態(tài)顯示。3.掌握I/O口的控制方法。二、PROTEUS電路設(shè)計:三、實驗儀器和設(shè)備PC機、PROTEUS軟件或W-A-51綜合開發(fā)學習板四、源程序設(shè)計:根據(jù)電路圖自行編寫并調(diào)試。CLR P1.0 MOV DPTR,#TABLESTART:CLR A JNB P2.0,D1 INC A D1:JNB P2.1,D2 ADD A,#2 D2:JNB P2.2,D3 ADD A,#4 D3:JNB P2.3,D4 ADD A,#8 D4:MOVC A,A+DPTR MOV P0,A AJMP STARTTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EHEND實驗三 外中斷優(yōu)先級實驗一、實驗目的:1.理解單片機中斷優(yōu)先級和優(yōu)先權(quán)。2.用PROTEUS 設(shè)計,仿真基于AT89C51單片機的中斷優(yōu)先級實驗。3.掌握中斷編程方法。單片機主程序控制P0口數(shù)碼管循環(huán)顯示08;外中斷0、外中斷1發(fā)生時分別在P2口、P1口依次顯示08。通過實驗可演示高優(yōu)先級可中斷低優(yōu)先級,但低優(yōu)先級的中斷請求不能中斷高優(yōu)先級。二、PROTEUS電路設(shè)計:三、實驗儀器和設(shè)備PC機、PROTEUS軟件或W-A-51綜合開發(fā)學習板四、源程序設(shè)計:根據(jù)電路圖自行編寫并調(diào)試。ORG 0000HLJMP MAINORG 0003HLJMP INTER0ORG 0013HLJMP INTER1ORG 0100HMAIN: MOV SP,#30H SETB EX0 SETB IT0 SETB PX0 SETB EX1 SETB IT1 CLR PX1 SETB EASTART: MOV R0,#00H MOV A,R0 MOV R1,#9AA: PUSH ACC MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A CALL DELAY POP ACC INC A DJNZ R1,AA LJMP STARTINTER0: PUSH PSW PUSH ACC SETB RS0 MOV R0,#00H MOV R1,#9BB: MOV DPTR,#TABLE MOV A,R0 MOVC A,A+DPTR MOV P2,A CALL DELAY INC R0 DJNZ R1,BB POP ACC POP PSW MOV P2,#0FFH RETI LJMP AAINTER1: PUSH PSW PUSH ACC CLR RS0 SETB RS1 MOV R0,#00H MOV R1,#9CC: MOV DPTR,#TABLE MOV A,R0 MOVC A,A+DPTR MOV P1,A CALL DELAY INC R0 DJNZ R1,CC POP ACC POP PSW MOV P1,#0FFH RETI LJMP AA DELAY: MOV R2,#50D0: MOV R3,#50D1: MOV R4,#50D2: DJNZ R4,D2 DJNZ R3,D1 DJNZ R2,D0 RETTABLE:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080HEND實驗四 60S倒計時實驗一、實驗目的:1.通過AT89C51的定時器實現(xiàn)60S倒計時,顯示采用兩位數(shù)碼管動態(tài)顯示。2.用PROTEUS 設(shè)計,仿真基于AT89C51單片機的60S倒計時實驗。二、PROTEUS電路設(shè)計:三、實驗儀器和設(shè)備PC機、PROTEUS軟件或W-A-51綜合開發(fā)學習板四、源程序設(shè)計:根據(jù)電路圖自行編寫并調(diào)試。ORG 0000HAJMP MAINORG 000BH ;T0中斷入口AJMP LOOPORG 0030HMAIN:MOV TMOD,#01H ;設(shè)置T0用于定時,模式1方式MOV TH0,#3CH ;裝入定時初值MOV TL0,#0B0HMOV IP,#02HMOV IE,#82H ;T0中斷允許MOV DPTR,#TABMOV R0,#60MOV R1,#16SETB TR0LOOP1:MOV A,R0MOV B,#10DIV ABMOVC A,A+DPTRMOV P2,#80HMOV P0,AACALL DEL0MOV A,BMOVC A,A+DPTRMOV P2,#40HMOV P0,AACALL DEL0AJMP LOOP1LOOP:MOV TH0,#3CHMOV TL0,#0B0HDJNZ R1,LOOP2MOV R1,#16DEC R0CJNE R0,#0FFH,LOOP2MOV R0,#60LOOP2:RETIDELAY:MOV R2,#20DEL0:MOV R3,#50DJNZ R3,$DJNZ R2,DEL0RETTAB:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FHEND實驗五 矩陣式鍵盤的設(shè)計一、實驗目的:1.掌握鍵盤設(shè)計中按鍵識別的原則。2.用PROTEUS 設(shè)計一個常規(guī)4×4的矩陣鍵盤。3.鍵盤編碼規(guī)則自己定義,分別對應數(shù)字鍵0-9、A-F,按下對應的按鍵顯示在數(shù)碼管上顯示對應的數(shù)據(jù)。二、PROTEUS電路設(shè)計:三、實驗儀器和設(shè)備PC機、PROTEUS軟件或W-A-51綜合開發(fā)學習板四、源程序設(shè)計:根據(jù)電路圖自行編寫并調(diào)試。ORG 0000HAJMP STARTORG 30H START:MOV DPTR,#TABLE MOV P1,#07HHH: MOV P2,#0F0HH1: JB P2.4,H2 MOV A,#00HLJMP LLH2: JB P2.5,H3MOV A,#01HLJMP LLH3: JB P2.6,H4 MOV A,#02HLJMP LLH4: JB P2.7,H1 MOV A,#03HLL: MOV P2,#0FHL1: JB P2.0,L2 MOV R0,#00HLJMP CBL2: JB P2.1,L3 MOV R0,#01HLJMP CBL3: JB P2.2,L4 MOV R0,#02HLJMP CBL4: JB P2.3,L1 MOV R0,#03HCB: MOV B,#04H MUL ABADD A,R0MOVC A,A+DPTRCPL AMOV P0,ALJMP HHTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HEND實驗六 AD轉(zhuǎn)換程序設(shè)計一、實驗目的:1.掌握轉(zhuǎn)換器ADC0809的使用。2.用PROTEUS 設(shè)計,仿真基于AT89C51單片機的A/D轉(zhuǎn)換實驗。3.通過改變電位器的值改變模擬量的輸入,經(jīng)轉(zhuǎn)換為數(shù)字量在LED上顯示,比對模擬量和數(shù)字量的關(guān)系。二、PROTEUS電路設(shè)計:三、實驗儀器和設(shè)備PC機、PROTEUS軟件或W-A-51綜合開發(fā)學習板四、源程序設(shè)計:根據(jù)電路圖自行編寫并調(diào)試。ORG 0000HLJMP STARTORG 0030HTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H START: MOV R1,#00H MOV R2,#08H MOV DPTR,#TABLE CLR EX0 LOOP: CLR P2.0 MOVX R1,A MOV R3,#20HDELY: DJNZ R3,DELY SETB P3.2WAIT: JB P3.2,WAIT MOVX A,R1 MOV R5,A ANL A,#0FH MOVC A,A+DPTR CPL A SETB P3.5 CLR P3.4 MOV P1,A ACALL DLY MOV A,R5 ANL A,#0F0H SWAP A MOVC A,A+DPTR CPL A SETB P3.4 CLR P3.5 MOV P1,A ACALL DLY SJMP LOOPDLY:MOV R4,#175DL:MOV R6,#125DL1:DJNZ R6,DL1 DJNZ R4,DL RETHERE: SJMP HERE END實驗七 雙機通信實驗一、實驗目的:1.掌握單片機串口通信程序的設(shè)計。2.了接RS232接口通信的特點。3.雙機通信:分別把接收到的對方通過邏輯開關(guān)輸入的信息在本地數(shù)碼管上顯示,如下圖甲機的邏輯開關(guān)數(shù)據(jù)為81H,乙機通過串口接收該數(shù)據(jù)并數(shù)碼關(guān)管顯示,而甲機顯示乙機發(fā)送的數(shù)據(jù)88H。二、PROTEUS電路設(shè)計:三、實驗儀器和設(shè)備PC機、PROTEUS軟件或W-A-51綜合開發(fā)學習板四、源程序設(shè)計:根據(jù)電路圖自行編寫并調(diào)試。ORG 0000HLJMP STARTORG 0050HSTART:MOV TMOD,#20HMOV TH1,#0FDHMOV TL1,#0FDHMOV SCON,#50HMOV PCON,#00H SETB TR1AABB:MOV A,P1MOV SBUF,AL1:JBC TI,L2SJMP L1L2:JBC RI,NEXT2JMP L2EXT2: OV A,SBUF MOV P0,ASJMP AABBEND13廣東海洋大學 張瑛