Lê Hoàng Lâm _ mssv: 41201839 Báo cáo

31
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

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