Lê Hoàng Lâm _ mssv: 41201839 Báo cáo
-
Upload
independent -
Category
Documents
-
view
1 -
download
0
Transcript of Lê Hoàng Lâm _ mssv: 41201839 Báo cáo
Lê Hoàng Lâm _ mssv: 41201839
Báo cáo
Thí Nghiệm Vi Xử Lí
Thí nghiệm với nút ấn và led đơn
Thí nghiệm 1: Vieát chöông trình thöïc hieän ñoïc lieän tuïc traïng thaùi nuùt nhaán ñöôïc noái ñeán P1.0 vaø hieån thò ra Led ñöôïc noái taïi chaân P1.1
ORG 2000H
MAIN:
MOV C,P1.0
MOV P1.1,C
SJMP MAIN
END
Thí nghiệm 2: Vieát chöông trình taïo xung vuoâng 1Hz ñöôïc noái ñeán chaân P1.0 vôùi taàn soá dao ñoäng duøng trong heä thoáng laø 11.059MHz
ORG 2000H
LAP:
CPL P1.0
ACALL DELAY
SJMP LAP
DELAY:
MOV R1,#10
LOOP2:
MOV R2,#100
LOOP1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,LOOP1
DJNZ R1,LOOP2
RET
END
Thí nghiệm 3: Vieát chöông trình taïo xung vuoâng 1Hz duøng timer 0ORG 2000H
MAIN:
CPL P1.0
ACALL DELAY500
SJMP MAIN
DELAY500:
MOV TMOD,#01H
MOV R7,#10
LOOP:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ R7,LOOP
RET
END
Thí nghiệm 4 : Vieát chöông trình taïo xung vuoâng 1Hz duøng ngắt timer 0ORG 2000H
LJMP MAIN
ORG 200BH
LJMP T0ISR
MAIN:
MOV TMOD,#01H
SETB TF0
MOV IE,#82H
MOV R7,#11
SJMP $
T0ISR:
DJNZ R7,LOOP
CPL P1.0
MOV R7,#10
SJMP KETTHUC
LOOP:
CLR TR0
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
KETTHUC: RETI
END
Thí nghiệm hiển thị dùng led 7 đoạn
Thí nghiệm 1: Vieát chöông trính thöïc hieän boä ñeám töø 0->9 vaø hieån thòtreân led 7 ñoaïn, moãi laàn caùch nhau 2s
ORG 2000H
MAIN:
MOV R7,#10
MOV R5,#0
LOOP:
MOV DPTR,#TABLE
MOV A,R5
MOVC A,@A+DPTR
ACALL DELAY2S
MOV DPTR,#0000H
MOVX @DPTR,A
INC R5
DJNZ R7,LOOP
SJMP MAIN
DELAY2S:
MOV R6,#40
MOV TMOD,#01H
LOOP:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ R6,LOOP
RET
TABLE:
DB 70H,71H,72H,73H,74H,75H,76H,77H,78H,79H
END
Thí nghiệm 2: Vieát chöông trình hieån thò giaù trò 1234 leân led 7 ñoaïnORG 2000H
MAIN:
MOV R7,#4
MOV R5,#0
LOOP:
MOV DPTR,#TABLE
MOV A,R5
MOVC A,@A+DPTR
ACALL DELAY2MS
MOV DPTR,#0000H
MOVX @DPTR,A
INC R5
DJNZ R7,LOOP
SJMP MAIN
DELAY2MS:
MOV TMOD,#01H
MOV TH0,#HIGH(-2000)
MOV TL0,#LOW(-2000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
TABLE:
DB 71H,0B2H,0D3H,0E4H
END
Thí nghiệm 3 : Ñeám soá xuaát ra led 7 ñoaïn. Moãi laàn nhấn P1.0 thì tăng lên1.
ORG 2000H
MAIN:
MOV DPTR,#0
MOV R7,#0
MOV R6,#0
JNB P1.0,OVER
SJMP MAIN
OVER:
INC R7
CJNE R7,0AH,OVER2
MOV R7,#0
INC R6
OVER2:
MOV A,R7
ADD A,#0E0H
MOVX @DPTR,A
ACALL DELAY2MS
MOV A,R6
ADD A,#0D0H
MOVX @DPTR,A
JB P1.0,SKIP
SJMP NHAY
DELAY2MS:
MOV TMOD,#01H
MOV TH0,#HIGH(-2000)
MOV TL0,#LOW(-2000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
END
1. Thí nghiệm 4: Vieát chöông trình hieån thò giaù trò nhò phaân trong thanh ghi R7 leân led 7 ñoaïn
ORG 2000H
MAIN:
MOV R7,#254
MOV B,#10
MOV A,R7
DIV AB
MOV R4,B
MOV B,#10
DIV AB
MOV R3,B
MOV R2,A
LOOP:
MOV DPTR,#0
MOV A,R2
ADD A,#0B0H
MOVX @DPTR,A
ACALL DL2MS
MOV A,R3
ADD A,#0D0H
MOVX @DPTR,A
ACALL DELAY2MS
MOV A,R4
ADD A,#0E0H
MOVX @DPTR,A
ACALL DL2MS
SJMP LOOP
DELAY2MS:
MOV TMOD,#01H
MOV TH0,#HIGH(-2000)
MOV TL0,#LOW(-2000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
END
Thí nghiệm hiển thị dùng LCD
Thí nghiệm 1: Hiển thị chuỗi “Hello” leân LCD
ORG 2000HMOV DPTR,#8000HMOV A,#38HACALL CMDMOV A,#0EHACALL CMDMOV A,#06HACALL CMDMOV A,#01HACALL CMDMOV A,#'H'ACALL DATUMMOV A,#'E'ACALL DATUM MOV A,#'L'ACALL DATUMMOV A,#'L'ACALL DATUMMOV A,#'O'ACALL DATUMACALL WAIT300MSSJMP $ CMD: SETB P3.4CLR P3.5
MOVX @DPTR,ACLR P3.4ACALL WAIT50MSRET
DATUM: SETB P3.4SETB P3.5MOVX @DPTR,ACLR P3.4LCALL WAIT100USRET
WAIT300MS: MOV R3,#2LOOP3: MOV R2,#66LOOP2: MOV R1,#125DJNZ R1,$DJNZ R2,LOOP2DJNZ R3,LOOP3RET
WAIT50MS: MOV R1,#40LOOP: MOV R2,#200DJNZ R2,$DJNZ R1,LOOPRET
Thí nghiệm 2: Viết chương trình hiển thị chuỗi: “DHBK TPHCM” chạy treân maøn hình, khi hết maøn hình thì chạy ngược lại, lặp lại quaù trình treân
ORG 2000H
CLR C
MOV DPTR,#8000H
MOV A,#38H
LCALL CMD
MOV A,#0EH
LCALL CMD
MOV A,#06H
LCALL CMD
MOV R5,#80H
LOOP: MOV A,#01H
LCALL CMD
MOV A, R5
LCALL CMD
MOV A,#'D'
LCALL DATUM
MOV A,#'H'
LCALL DATUM
MOV A,#'B'
LCALL DATUM
MOV A,#'K'
LCALL DATUM
MOV A,#'T'
LCALL DATUM
MOV A,#'P'
LCALL DATUM
MOV A,#'H'
LCALL DATUM
MOV A,#'C'
LCALL DATUM
MOV A,#'M'
LCALL DATA
JB C,DECREASE
INCREASE: INC R5
CJNE R5,#85,LOOP
SETB C
DECREASE: MOV A,#04H
LCALL CMD
DEC R5
CJNE R5,#80H,LOOP
CLR C
SJMP INCREASE
CMD: SETB P3.4
CLR P3.5
MOVX @DPTR,A
CLR P3.4
LCALL WAIT_LCD
RET
Thí nghiệm 3: nhập chữ từ nút ấn và cho phép xóa ngượcORG 2000HMAIN:MOV DPTR,#8000HACALL CLEAR
ACALL INIT_LCDLOOP12 : ACALL HIEN_CHUACALL DELAY1SJMP LOOP12
INIT_LCD:MOV A,#38H ;chon font
ACALL WRITECOMMOV A,#0EH ;batLCD VA TAT CON TRO KY TUACALL WRITECOMMOV A,#06H ;DICH PHAIACALL WRITECOM
MOV A,#0C2HACALL WRITECOM
RET
CLEAR:MOV A,#01H ;XOAACALL WRITECOMRET
WRITECOM:SETB P3.4CLR P3.5MOVX @DPTR,ACLR P3.4ACALL DELAY_50MSRET
WRITETEXT:SETB P3.4SETB P3.5
MOVX @DPTR,ACLR P3.4ACALL DELAY2RET
HIEN_CHU:MOV A,P1
JNB ACC.0,DONG0 JNB ACC.1,DONG1 JNB ACC.2,DONG2 JNB ACC.3,DONG3
JNB ACC.4,DONG4
JNB ACC.5,DONG5
JNB ACC.6,DONG6
JNB ACC.7,DONG7 SJMP HIEN_CHUDONG0: MOV A,#04HACALL WRITECOMMOV A,#' 'ACALL WRITETEXTMOV A,#06HACALL WRITECOMRETDONG1: MOV A,#'1'ACALL WRITETEXT
RETDONG2: MOV A,#'2'ACALL WRITETEXT
RETDONG3: MOV A,#'3'ACALL WRITETEXT
RETDONG4: MOV A,#'4'
ACALL WRITETEXT
RETDONG5: MOV A,#'5'ACALL WRITETEXT
RETDONG6: MOV A,#'6'ACALL WRITETEXT
RETDONG7: MOV A,#'7'ACALL WRITETEXTRET
DELAY_50MS:MOV R3,#100
LOOP1:MOV R7,#250
DJNZ R7,$DJNZ R3,LOOP1RET
DELAY1: ; delay 300msMOV R6,#3
LOP1:MOV R5,#200LOP:MOV R4,#250
DJNZ R4,$DJNZ R5,LOPDJNZ R6,LOP1RET
DELAY2:MOV R3,#1
LOOP2:MOV R7,#50
DJNZ R7,$DJNZ R3,LOOP2
RETThí nghiệm giao tiếp qua cổng nối tiếpThí nghiệm 1: Phaùt chuỗi “Hello World” ra port nối tiếpORG 2000HMOV TMOD ,#20HMOV TH1, #-3MOV SCON ,#50HSETB TR1MOV DPTR, #MESSLOOP: CLR A MOVC A,@A+DPTRJZ NEXTACALL SENDINC DPTRSJMP LOOP
SEND: MOV SBUF, AJNB TI, $CLR TIRET
RECEIVE: JNB RI, $MOV A, SBUFCLR RI RET
MESS: DB 'HELLO THE WORLD',0
NEXT: END
Thí nghiệm 2: Nhận kí tự từ port nối tiếp hiển thị ra LCD (tốc ñộ port chọn laø9600pbs)
ORG 2000HMOV TMOD ,#20HMOV TH1, #-3MOV SCON ,#50H
SETB TR1MOV DPTR,#8000HACALL CLEARACALL INIT_LCDPART1: ACALL LCDSJMP PART1
LCD:
ACALL HIEN_CHUACALL DELAY1RET
INIT_LCD:MOV A,#38H
ACALL WRITECOMMOV A,#0EH ;batLCD VA TAT CON TRO KY TUACALL WRITECOMMOV A,#06H ;DICH PHAIACALL WRITECOM
MOV A,#0C2HACALL WRITECOM
RET
CLEAR:MOV A,#01H ;XOAACALL WRITECOMRET
WRITECOM:SETB P3.4CLR P3.5MOVX @DPTR,ACLR P3.4ACALL DELAY_50MSRET
WRITETEXT:SETB P3.4SETB P3.5MOVX @DPTR,A
CLR P3.4ACALL DELAY2RET
HIEN_CHU:
JNB RI, $MOV A, SBUFCLR RI ACALL WRITETEXTRET DELAY_50MS: MOV R3,#100LOOP1: MOV R7,#250
DJNZ R7,$DJNZ R3,LOOP1RET
DELAY1: ; delay 300msMOV R6,#3
LOP1:MOV R5,#200LOP:MOV R4,#250
DJNZ R4,$DJNZ R5,LOPDJNZ R6,LOP1RET
DELAY2:MOV R3,#1
LOOP2:MOV R7,#50
DJNZ R7,$DJNZ R3,LOOP2RET
END
Thí nghiệm 3: Nhận kí tự từ port nối tiếp hiển thị ra LCD (tốc ñộ port chọn laø 9600pbs)và cho phép xóa ngượcORG 2000HCLR R0MOV TMOD ,#20HMOV TH1, #-3MOV SCON ,#50HSETB TR1MOV DPTR,#8000HACALL CLEARACALL INIT_LCDPART1: ACALL LCDSJMP PART1
LCD:
ACALL HIEN_CHUACALL DELAY1RET
INIT_LCD:MOV A,#38H ;chon font
ACALL WRITECOMMOV A,#0EH ;batLCD VA TAT CON TRO KY TUACALL WRITECOMMOV A,#06H ;DICH PHAIACALL WRITECOM
MOV A,#0C2H ACALL WRITECOM
RET
CLEAR:MOV A,#01H ;XOA ACALL WRITECOMRET
WRITECOM:SETB P3.4CLR P3.5MOVX @DPTR,A
CLR P3.4ACALL DELAY_50MSRET
WRITETEXT:SETB P3.4SETB P3.5MOVX @DPTR,ACLR P3.4ACALL DELAY2RET
HIEN_CHU:
JNB RI, $MOV A, SBUF CLR RI MOV R3,AMOV R2, #' 'CJNE A,#' ',OVER1MOV A,#04HACALL WRITECOMMOV A,#' 'ACALL WRITETEXTMOV A,#06HACALL WRITECOMSJMP NEXT1OVER1:MOV A,R3ACALL WRITETEXTNEXT1: MOV A,R3MOV SBUF,AJNB TI, $CLR TI RET DELAY_50MS: MOV R3,#100LOOP1: MOV R7,#250
DJNZ R7,$
DJNZ R3,LOOP1RET
DELAY1: ; delay 300msMOV R6,#3
LOP1:MOV R5,#200LOP:MOV R4,#250
DJNZ R4,$DJNZ R5,LOPDJNZ R6,LOP1RET
DELAY2:MOV R3,#1
LOOP2:MOV R7,#50
DJNZ R7,$DJNZ R3,LOOP2RET
END Thí nghiệm điều khiển ADCThí nghiệm 1: Vieát chöông trình thöïc hieän ñoïc ñieän aùp cuûa bieán trôû treânkeânh 0 vaø hieån thò ra led 7 ñoaïn.ORG 2000HMAIN : MOV DPTR, #4000HMOV R5,#0MOV A,#0MOVX @DPTR,AACALL HOAN100USMOVX A,@DPTR
MOV R2,AMOV R0,#1MOV R6,#51BATDAU: MOVX A,@DPTRCJNE A,#255,CHOQUASJMP MAINCHOQUA: MOV A,R2
CLR CSUBB A,R6PUSH ACCJC DUNGSAI: INC R0MOV A,R6ADD A,#51MOV R6,ASJMP BATDAUDUNG: MOV A,R0
MOV DPTR,#0000HADD A,#70HMOVX @DPTR,AACALL HOAN1MS
POP ACCPOP ACC
MOV R2,AMOV R0,#1MOV R6,#10BATDAU1: MOV A,R2 CJNE A,#95,CHOQUA1SJMP MAINCHOQUA1: MOV A,R2CLR CSUBB A,R6PUSH ACCJC DUNG1SAI1: INC R0MOV A,R6ADD A,#10MOV R6,ASJMP BATDAU1DUNG1: MOV A,R0
MOV DPTR,#0000HADD A,#70H
MOVX @DPTR,AACALL HOAN1MS
SJMP MAIN
HOAN100US: MOV R1,#50DJNZ R1,$RET
HOAN1MS: MOV R1,#2LOOP: MOV R4,#50DJNZ R4,$DJNZ R1,LOOPRET
END
Thí nghiệm với LED ma trậnThí nghiệm 1: Vieát chöông trình hieån thò kí töï A leân LED ma traän.
ORG 2000H MAIN: MOV R5,#8MOV R2,#0LOOP2: MOV DPTR,#COLMOV A,R2MOVC A,@A+DPTRACALL OUTCOLMOV A,R2MOV DPTR,#ROWMOVC A,@A+DPTRACALL OUTROWACALL WAIT3MSINC R2 DJNZ R5,LOOP2SJMP MAIN
OUTCOL: MOV DPTR,#0C000H
MOVX @DPTR,ARET
OUTROW: MOV DPTR,#0A000HMOVX @DPTR,ARET
WAIT3MS: MOV R3,#250LOOP1: MOV R4,#6DJNZ R4,$DJNZ R3,LOOP1RET
COL: DB 1H,2H,4H,8H,10H,20H,40H,80HROW: DB 3H,0EDH,0EEH,0EEH,0EDH,03H,0FFH,0FFHEND
Thí nghiệm 2: Vieát chöông trình hieån thò kí töï A leân LED ma traän từ ô nhớ 30h– 37hORG 2000H MAIN: MOV 30H,#3H MOV 31H,#0EDH MOV 32H,#0EEH MOV 33H,#0EEH MOV 34H,#0EDH MOV 35H,#03H MOV 36H,#0FFH MOV 37H,#0FFHACALL CHCON
CHCON: MOV R2,#0MOV R1,30HACALL CONCONMOV R1,31HACALL CONCONMOV R1,32HACALL CONCONMOV R1,33HACALL CONCON
MOV R1,34HACALL CONCONMOV R1,35HACALL CONCONMOV R1,36HACALL CONCONMOV R1,37HACALL CONCONSJMP CHCON
CONCON: MOV DPTR,#COLMOV A,R2MOVC A,@A+DPTRMOV DPTR,#0C000HMOVX @DPTR,AMOV A,R1MOV DPTR,#0A000HMOVX @DPTR,AWAIT3MS: MOV R3,#250LOOP1: MOV R4,#6DJNZ R4,$DJNZ R3,LOOP1INC R2 RET
COL: DB 1H,2H,4H,8H,10H,20H,40H,80HEND
Thí nghiệm 3: ấn nút hiện chữ trên led ma trận
ORG 2000H
MOV R6,#32
LAMLAI: JB P1.1,OVER1
MOV R6,#0
SJMP MAIN
OVER1: JB P1.2,OVER2
MOV R6,#8
SJMP MAIN
OVER2: JB P1.3,OVER3
MOV R6,#16
SJMP MAIN
OVER3: JB P1.5,MAIN
MOV R6,#24
SJMP MAIN
MAIN: MOV R5,#8
MOV R2,#0
MOV A,R6
MOV R1,A
LOOP2: MOV DPTR,#COL
MOV A,R2
MOVC A,@A+DPTR
ACALL OUTCOL
MOV A,R1
MOV DPTR,#ROW
MOVC A,@A+DPTR
ACALL OUTROW
ACALL WAIT3MS
INC R2
INC R1
DJNZ R5,LOOP2
SJMP LAMLAI
OUTCOL: MOV DPTR,#0C000H
MOVX @DPTR,A
RET
OUTROW: MOV DPTR,#0A000H
MOVX @DPTR,A
RET
WAIT3MS: MOV R3,#250
LOOP1: MOV R4,#6
DJNZ R4,$
DJNZ R3,LOOP1
RET
COL: DB 1H,2H,4H,8H,10H,20H,40H,80H
ROW: DB 3H,0EDH,0EEH,0EEH,0EDH,03H,0FFH,0FFH, 0FEH,0FEH,0H,0FEH,0FEH,0FFH,0FFH,0FFH , 0FFH,0FFH,0H,0F7H,0F7H,0F7H,0H,0FFH , 0FFH,0H,7FH,7FH,7FH,7FH,0FFH,0FFH, 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
END
Thí nghiệm 4 : Vieát chöông trình chaïy chöõ A töø phaûi sang traùi hieån thòleân LED ma traänORG 2000H MOV R6,#0 MOV R7,#5MAIN: MOV R5,#8MOV A,R6MOV R1,AMOV R2,#0LOOP2: MOV DPTR,#COLMOV A,R2MOVC A,@A+DPTRACALL OUTCOLMOV A,R1MOV DPTR,#ROWMOVC A,@A+DPTRACALL OUTROWACALL WAIT3MSINC R2CJNE R1,#8,OVER1MOV R1,#0SJMP OVER2OVER1: INC R1OVER2: DJNZ R5,LOOP2DJNZ R7,MAIN
MOV R7,#5 CJNE R6,#8,OVER3MOV R6,#0SJMP MAINOVER3: INC R6
SJMP MAIN
OUTCOL: MOV DPTR,#0C000HMOVX @DPTR,ARET
OUTROW: MOV DPTR,#0A000HMOVX @DPTR,ARET
WAIT3MS: MOV R3,#250LOOP1: MOV R4,#6DJNZ R4,$DJNZ R3,LOOP1RET
COL: DB 1H,2H,4H,8H,10H,20H,40H,80HROW: DB 3H,0EDH,0EEH,0EEH,0EDH,03H,0FFH,0FFH,0FFHEND
Thí nghiệm 5: làm phim hoạt hình trên led ma trậnORG 2000H MOV R1,#0CHINH: MOV R7,#5ACALL MAINCJNE R6,#32,OVER1MOV R6,#0SJMP CHINHOVER1: MOV A,R1ADD A,#8MOV R6,ASJMP CHINH
MAIN: MOV R5,#8MOV R2,#0MOV A,R6MOV R1,ALOOP2: MOV DPTR,#COLMOV A,R2
MOVC A,@A+DPTRACALL OUTCOLMOV A,R1MOV DPTR,#ROWMOVC A,@A+DPTRACALL OUTROWACALL WAIT3MSINC R2 INC R1DJNZ R5,LOOP2DJNZ R7,MAINRET
OUTCOL: MOV DPTR,#0C000HMOVX @DPTR,ARET
OUTROW: MOV DPTR,#0A000HMOVX @DPTR,ARET
WAIT3MS: MOV R3,#250LOOP1: MOV R4,#6DJNZ R4,$DJNZ R3,LOOP1RET
COL: DB 1H,2H,4H,8H,10H,20H,40H,80HROW: DB 0FFH,77H,0A8H,0C0H,0A8H,77H,0FFH,0FFH,0FFH,6FH,0A8H,0C0H,0A8H,6FH,0FFH,0FFH,0FFH,0EFH,28H,0C0H,28H,0EFH,0FFH,0FFH ,0FFH,0AFH,0A8H,0C0H,0A8H,0AFH,0FFH,0FFH ,0FFH,0B7H,0A8H,0C0H,0A8H,0B7H,0FFH,0FFH END