1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tong hop cac bai tap VXL trong cac truong dai hoc

64 112 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 64
Dung lượng 207 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

103 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm.. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.. 1.2 Vẽ lưu đồ giải thuật và

Trang 1

Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED (LED7, LED6, LED5 và LED4 được nối với

Port0; tín hiệu SEL7, SEL6, SEL5 và SEL4 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3) Giáo trình thực hành vi xử lý 103 Biên soạn: Phạm Quang Trí

1 Trình tự tiến hành thí nghiệm:

1.1 Kết nối thiết bị thí nghiệm

• Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1

1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển

;***************************************************

;CHUONG TRINH DIEU KHIEN HIEN THI SO 1234 TREN LED 7 DOAN

;***************************************************

;KET NOI: 4 LED -> PORT0

; SEL LED -> PORT1

;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0

;***************************************************

ORG 00H

MAIN:

MOV P1,#0FEH ;CHO PHEP LED 7 SANG

MOV P0,#99H ;HIEN THI SO 4

LCALL DELAYLED

MOV P1,#0FDH ;CHO PHEP LED 6 SANG

MOV P0,#0B0H ;HIEN THI SO 3

LCALL DELAYLED

MOV P1,#0FBH ;CHO PHEP LED 5 SANG

MOV P0,#0A4H ;HIEN THI SO 2

LCALL DELAYLED

MOV P1,#0F7H ;CHO PHEP LED 4 SANG

MOV P0,#0F9H ;HIEN THI SO 1

Trang 2

Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED7, LED6 được nối với

Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1)

1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển

;***************************************************

;CHUONG TRINH DIEU KHIEN HIEN THI 00 -> 99 TREN LED 7 DOAN

;***************************************************

;KET NOI: 2 LED -> PORT0

; SEL ABC -> PORT1

;CHE DO: MULTI, BCD IN, MULTI EXT 2 TO 4, CA, ACTIVE = 0

;***************************************************

ORG 00H

MAIN:

MOV 61H,#00H ;HANG CHUC

MOV 60H,#00H ;HANG DON VI

MP1:

LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI

INC 60H ;TANG HANG DON VI

MOV A,60H

CJNE A,#10,MP1 ;KIEM TRA HANG DON VI > 9

MOV 60H,#00H ;XOA HANG DON VI (DON VI = 0)

INC 61H ;TANG HANG CHUC

;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)

;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM

;***************************************************

;NAME: DISP7SEGMUL2EXT

;INPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI)

;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB)

; P1 = EXT MULTIPLEXER - LEFT (MSD) -> RIGHT (LSD)

;***************************************************

DISP7SEGMUL2EXT:

PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI

PUSH 00H

MOV A,#01H ;MA QUET

MOV R0,#61H ;DIA CHI VUNG MA HIEN THI

DISP:

MOV P0,@R0 ;XUAT MA HIEN THI

MOV P1,A ;XUAT MA QUET

LCALL DELAYLED

MOV P0,#0FFH ;CHONG LAM

Trang 3

DEC R0 ;LAY MA HIEN THI KE TIEP

DEC A ;CHUYEN SANG LED KE TIEP

CJNE R0,#05FH,DISP ;KIEM TRA DA QUET XONG CHUA

POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI

SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY

LCALL DISP7SEGMUL2EXT ;GOI CTC QUET HIEN THI

Trang 4

;CHUONG TRINH DIEU KHIEN HIEN THI SO 12345678 TREN LED 7 DOAN

;***************************************************

;KET NOI: 8 LED -> PORT0

; SEL ABC -> PORT1

;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0

;***************************************************

ORG 00H

MAIN:

MOV P1,#00H ;CHO PHEP LED 7 SANG

MOV P0,#80H ;HIEN THI SO 8

LCALL DELAYLED

MOV P1,#01H ;CHO PHEP LED 6 SANG

MOV P0,#0F8H ;HIEN THI SO 7

LCALL DELAYLED

MOV P1,#02H ;CHO PHEP LED 5 SANG

MOV P0,#82H ;HIEN THI SO 6

LCALL DELAYLED

MOV P1,#03H ;CHO PHEP LED 4 SANG

MOV P0,#92H ;HIEN THI SO 5

LCALL DELAYLED

MOV P1,#04H ;CHO PHEP LED 3 SANG

MOV P0,#99H ;HIEN THI SO 4

LCALL DELAYLED

MOV P1,#05H ;CHO PHEP LED 2 SANG

MOV P0,#0B0H ;HIEN THI SO 3

LCALL DELAYLED

MOV P1,#06H ;CHO PHEP LED 1 SANG

MOV P0,#0A4H ;HIEN THI SO 2

LCALL DELAYLED

MOV P1,#07H ;CHO PHEP LED 0 SANG

MOV P0,#0F9H ;HIEN THI SO 1

Trang 5

Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến LED7 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.2)

1 Trình tự tiến hành thí nghiệm:

1.1 Kết nối thiết bị thí nghiệm

• Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 7

1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển

;***************************************************

;CHUONG TRINH DIEU KHIEN HIEN THI 00000000 -> 99999999 TREN LED 7 DOAN

;***************************************************

;KET NOI: 8 LED -> PORT0

; SEL ABC -> PORT1

;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 3 TO 8, CA, ACTIVE = 0

LCALL BCD8TO7SEG ;GIAI MA BCD SANG MA 7 DOAN

LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI

MOV A,R4 ;TANG GIA TRI (CHUC - DON VI)

ADD A,#1

DA A

MOV R4,A

CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (CHUC - DON VI)

MOV A,R5 ;TANG GIA TRI (NGAN - TRAM)

ADD A,#1

DA A

MOV R5,A

CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (NGAN - TRAM)

MOV A,R6 ;TANG GIA TRI (TR NGAN - CH NGAN)

ADD A,#1

DA A

MOV R6,A

CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (TR NGAN - CH NGAN)

MOV A,R7 ;TANG GIA TRI (CH TRIEU - TRIEU)

Trang 6

;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN)

;***************************************************

;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)

;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM

;***************************************************

;NAME: DISP7SEGMUL8EXT

;INPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU)

; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN)

; 63H,62H = MA 7 DOAN (NGAN - TRAM)

; 61H,60H = MA 7 DOAN (CHUC - DON VI)

;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB)

; P1 = EXT MULTIPLEXER - LEFT (MSD) -> RIGHT (LSD)

;***************************************************

DISP7SEGMUL8EXT:

PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI

PUSH 00H

MOV A,#07H ;MA QUET

MOV R0,#67H ;DIA CHI VUNG MA HIEN THI

DISP:

MOV P0,@R0 ;XUAT MA HIEN THI

MOV P1,A ;XUAT MA QUET

LCALL DELAYLED

MOV P0,#0FFH ;CHONG LEM

DEC R0 ;LAY MA HIEN THI KE TIEP

DEC A ;CHUYEN SANG LED KE TIEP

CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA

POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI

Trang 7

;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB)

;GIA TRI GIAI MA: 0 -> 9

;***************************************************

;NAME: BCD6TO7SEG

;INPUT: R7 = SO BCD NEN (CH TRIEU - TRIEU)

; R6 = SO BCD NEN (TR NGAN - CH NGAN)

; R5 = SO BCD NEN (NGAN - TRAM)

; R4 = SO BCD NEN (CHUC - DON VI)

;OUTPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU)

; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN)

; 63H,62H = MA 7 DOAN (NGAN - TRAM)

; 61H,60H = MA 7 DOAN (CHUC - DON VI)

MOV A,R4 ;LAY SO BCD CAN GIAI MA

ANL A,#0FH ;XOA 4 BIT CAO

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG

MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO

MOV A,R4 ;LAY SO BCD CAN GIAI MA

ANL A,#0F0H ;XOA 4 BIT THAP

SWAP A ;HOAN CHUYEN CAO - THAP

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG

MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO

MOV A,R5 ;LAY SO BCD CAN GIAI MA

Trang 8

ANL A,#0FH ;XOA 4 BIT CAO

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO

MOV A,R5 ;LAY SO BCD CAN GIAI MA

ANL A,#0F0H ;XOA 4 BIT THAP

SWAP A ;HOAN CHUYEN CAO - THAP

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO

MOV A,R6 ;LAY SO BCD CAN GIAI MA

ANL A,#0FH ;XOA 4 BIT CAO

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 64H,A ;CAT BCD HANG CHUC NGAN VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA

ANL A,#0F0H ;XOA 4 BIT THAP

SWAP A ;HOAN CHUYEN CAO - THAP

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 65H,A ;CAT BCD HANG TRAM NGAN VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA

ANL A,#0FH ;XOA 4 BIT CAO

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 66H,A ;CAT BCD HANG TRIEU VAO O NHO

MOV A,R7 ;LAY SO BCD CAN GIAI MA

ANL A,#0F0H ;XOA 4 BIT THAP

SWAP A ;HOAN CHUYEN CAO - THAP

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 67H,A ;CAT BCD HANG CHUC TRIEU VAO O NHO

POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL

POP DPH

RET

;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9)

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END

Trang 9

Bài 1: Chương trình điều khiển hiển thị đếm GIỜ – PHÚT – GIÂY trên sáu LED (LED6,7: đếm GIÂY;

LED4,5: đếm PHÚT; LED2,3: đếm GIỜ

LCALL BCD6TO7SEG ;GIAI MA BCD SANG MA 7 DOAN

LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI

MOV A,R5 ;TANG GIAY

ADD A,#1

DA A

MOV R5,A

CJNE A,#60H,MP1 ;KIEM TRA GIAY > 59

MOV R5,#0 ;XOA GIAY

MOV A,R6 ;TANG PHUT

ADD A,#1

DA A

MOV R6,A

CJNE A,#60H,MP1 ;KIEM TRA PHUT > 59

MOV R6,#0 ;XOA PHUT

MOV A,R7 ;TANG GIO

;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB)

;GIA TRI GIAI MA: 0 -> 9

;***************************************************

;NAME: BCD6TO7SEG

;INPUT: R7 = SO BCD NEN (TR NGAN - CH NGAN)

; R6 = SO BCD NEN (NGAN - TRAM)

; R5 = SO BCD NEN (CHUC - DON VI)

;OUTPUT: 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN)

; 63H,62H = MA 7 DOAN (NGAN - TRAM)

; 61H,60H = MA 7 DOAN (CHUC - DON VI)

;***************************************************

BCD6TO7SEG:

PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI

PUSH DPL

Trang 10

PUSH ACC

MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN

MOV A,R5 ;LAY SO BCD CAN GIAI MA

ANL A,#0FH ;XOA 4 BIT CAO

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO

MOV A,R5 ;LAY SO BCD CAN GIAI MA

ANL A,#0F0H ;XOA 4 BIT THAP

SWAP A ;HOAN CHUYEN CAO - THAP

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO

MOV A,R6 ;LAY SO BCD CAN GIAI MA

ANL A,#0FH ;XOA 4 BIT CAO

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO

MOV A,R6 ;LAY SO BCD CAN GIAI MA

ANL A,#0F0H ;XOA 4 BIT THAP

SWAP A ;HOAN CHUYEN CAO - THAP

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO

MOV A,R7 ;LAY SO BCD CAN GIAI MA

ANL A,#0FH ;XOA 4 BIT CAO

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 64H,A ;CAT BCD HANG CHUC NGAN VAO O NHO

MOV A,R7 ;LAY SO BCD CAN GIAI MA

ANL A,#0F0H ;XOA 4 BIT THAP

SWAP A ;HOAN CHUYEN CAO - THAP

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 65H,A ;CAT BCD HANG TRAM NGAN VAO O NHO

POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL

Trang 11

;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)

;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM

;***************************************************

;NAME: DISP7SEGMUL6

;INPUT: 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN)

; 63H,62H = MA 7 DOAN (NGAN - TRAM)

; 61H,60H = MA 7 DOAN (CHUC - DON VI)

;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB)

; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD)

;***************************************************

DISP7SEGMUL6:

PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI

PUSH 00H

MOV A,#0DFH ;MA QUET

MOV R0,#65H ;DIA CHI VUNG MA HIEN THI

DISP:

MOV P0,@R0 ;XUAT MA HIEN THI

MOV P1,A ;XUAT MA QUET

LCALL DELAYLED

MOV P1,#0FFH ;CHONG LAM

DEC R0 ;LAY MA HIEN THI KE TIEP

RR A ;CHUYEN SANG LED KE TIEP

CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA

POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI

Trang 12

;KET NOI: 8 LED -> PORT0

; SEL LED -> PORT1

;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0

;***************************************************

ORG 00H

MAIN:

MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI

LCALL DISP7SEGMUL ;HIEN THI CHUOI KY TU

SJMP MAIN

;***************************************************

;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN)

;***************************************************

;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)

;DU LIEU HIEN THI CHUA TRONG ROM (TRONG CHUONG TRINH)

;***************************************************

;NAME: DISP7SEGMUL

;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI

;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB)

; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD)

MOV R0,#7FH ;MA QUET

MOV R1,#00H ;VI TRI CUA DU LIEU TRONG VUNG NHO DPTR

SETB C

DISP:

MOV A,R1

Trang 13

MOVC A,@A+DPTR ;LAY MA HIEN THI

MOV P0,A ;XUAT MA HIEN THI

MOV P1,R0 ;XUAT MA QUET

LCALL DELAYLED

MOV P1,#0FFH ;CHONG LEM

INC R1 ;LAY MA HIEN THI KE TIEP

MOV A,R0 ;LAY MA QUET KE TIEP

Trang 14

Bài 4: Chương trình điều khiển hiển thị lần lượt các chuỗi ký tự HA-NOI“, DA-LAT-“, SAIGON-“ trên

“-tám LED Mỗi chuỗi hiển thị cách nhau 1 giây

;***************************************************

;CHUONG TRINH DIEU KHIEN HIEN THI CHUOI "-HA-NOI-","-DA-LAT-","-SAIGON-" TREN LED 7 DOAN

;***************************************************

;KET NOI: 8 LED -> PORT0

; SEL LED -> PORT1

;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0

LCALL DISP7SEGMUL ;HIEN THI CHUOI KY TU

DJNZ R0,STATICDISP ;GIAM BIEN LAP

MOV A,DPL ;DICH DEN DIA CHI CUA CHUOI KE TIEP

ADD A,#8 ;ADDNEXT = ADDPREV + 8 (DO DAI CHUOI = 8)

;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)

;DU LIEU HIEN THI CHUA TRONG ROM (TRONG CHUONG TRINH)

;***************************************************

;NAME: DISP7SEGMUL

;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI

;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB)

; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD)

MOV R0,#7FH ;MA QUET

MOV R1,#00H ;VI TRI CUA DU LIEU TRONG VUNG NHO DPTR

SETB C

DISP:

MOV A,R1

MOVC A,@A+DPTR ;LAY MA HIEN THI

MOV P0,A ;XUAT MA HIEN THI

Trang 15

MOV P1,R0 ;XUAT MA QUET

LCALL DELAYLED

MOV P1,#0FFH ;CHONG LEM

INC R1 ;LAY MA HIEN THI KE TIEP

MOV A,R0 ;LAY MA QUET KE TIEP

CODEDISP: ;VUNG CHUA MA CHU HIEN THI

DB 0BFH,89H,88H,0BFH,0C8H,0C0H,0F9H,0BFH ;MA CHUOI "-HA-NOI-"

DB 0BFH,0A1H,88H,0BFH,0C7H,88H,0F8H,0BFH ;MA CHUOI "-DA-LAT-"

DB 0BFH,92H,88H,0F9H,90H,0C0H,0C8H,0BFH ;MA CHUOI "-SAIGON-" END

Trang 16

Bài 5: Chương trình điều khiển hiển thị và dịch chuyển chuỗi ký tự “-HA-NOI-SAI GON-“ trên tám LED từ phải sang trái.

;***************************************************

;CHUONG TRINH DIEU KHIEN HIEN THI CHUOI "-HA-NOI-SAIGON-" DICH CHUYEN TREN LED 7 DOAN

;***************************************************

;KET NOI: 8 LED -> PORT0

; SEL LED -> PORT1

;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0

LCALL DISP7SEGMUL ;HIEN THI CHUOI KY TU

DJNZ R0,STATICDISP ;GIAM BIEN LAP

INC DPTR ;DICH CHUOI DI MOT MA KY TU

MOV A,DPL

CJNE A,#LOW(CODEDISP+16),MP1 ;KIEM TRA HIEN THI XONG CHUOI

SJMP MAIN ;SO KY TU CUA CHUOI = 24 MA KY TU

;***************************************************

;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN)

;***************************************************

;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)

;DU LIEU HIEN THI CHUA TRONG ROM (TRONG CHUONG TRINH)

;***************************************************

;NAME: DISP7SEGMUL

;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI

;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB)

; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD)

MOV R0,#7FH ;MA QUET

MOV R1,#00H ;VI TRI CUA DU LIEU TRONG VUNG NHO DPTR

SETB C

DISP:

MOV A,R1

MOVC A,@A+DPTR ;LAY MA HIEN THI

MOV P0,A ;XUAT MA HIEN THI

MOV P1,R0 ;XUAT MA QUET

Trang 17

LCALL DELAYLED

MOV P1,#0FFH ;CHONG LEM

INC R1 ;LAY MA HIEN THI KE TIEP

MOV A,R0 ;LAY MA QUET KE TIEP

CODEDISP: ;VUNG CHUA MA CHU HIEN THI

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;MA CHUOI XOA MAN HINH

DB 0BFH,89H,88H,0BFH,0C8H,0C0H,0F9H,0BFH ;MA CHUOI "-HA-NOI-"

DB 92H,88H,0F9H,0BFH,90H,0C0H,0C8H,0BFH ;MA CHUOI "SAI-GON-"

END

Trang 18

Bài 1: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận (COL-RED được nối với Port1 có sử

dụng bộ đệm đảo, ROW được nối với Port2)

Cách 1:

;***************************************************

;CHUONG TRINH HIEN THI KY TU A TREN MA TRAN LED

;***************************************************

;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO)

;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0)

;***************************************************

ORG 00H

MAIN:

MOV P2,#07H ;XUAT MA HIEN THI RA HANG

MOV P1,#01H ;XUAT MA QUET RA COT 1

LCALL DELAYLED

MOV P1,#00H ;CHONG LEM

MOV P2,#0DBH ;XUAT MA HIEN THI RA HANG

MOV P1,#02H ;XUAT MA QUET RA COT 2

LCALL DELAYLED

MOV P1,#00H ;CHONG LEM

MOV P2,#0DDH ;XUAT MA HIEN THI RA HANG

MOV P1,#04H ;XUAT MA QUET RA COT 3

LCALL DELAYLED

MOV P1,#00H ;CHONG LEM

MOV P2,#0DBH ;XUAT MA HIEN THI RA HANG

MOV P1,#08H ;XUAT MA QUET RA COT 4

LCALL DELAYLED

MOV P1,#00H ;CHONG LEM

MOV P2,#07H ;XUAT MA HIEN THI RA HANG

MOV P1,#10H ;XUAT MA QUET RA COT 5

LCALL DELAYLED

MOV P1,#00H ;CHONG LEM

MOV P2,#0FFH ;XUAT MA HIEN THI RA HANG

MOV P1,#20H ;XUAT MA QUET RA COT 6

LCALL DELAYLED

MOV P1,#00H ;CHONG LEM

MOV P2,#0FFH ;XUAT MA HIEN THI RA HANG

MOV P1,#40H ;XUAT MA QUET RA COT 7

LCALL DELAYLED

MOV P1,#00H ;CHONG LEM

Trang 19

MOV P2,#0FFH ;XUAT MA HIEN THI RA HANG

MOV P1,#80H ;XUAT MA QUET RA COT 8

;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO)

;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0)

;***************************************************

$MOD51

ORG 00H

MAIN:

MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI

LCALL SCANMATRIXSTA ;HIEN THI DU LIEU

;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI

;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0)

Trang 20

MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA

MOV R1,#01H ;MA QUET COT DAU TIEN

SCAN:

MOV A,R0

MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI

MOV P2,A ;XUAT MA HIEN THI RA HANG

MOV P1,R1 ;XUAT MA QUET RA COT

LCALL DELAYLED

MOV P1,#00H ;CHONG LEM

INC R0 ;LAY DU LIEU KE TIEP

MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP

RL A

MOV R1,A

CJNE R0,#8H,SCAN ;KIEM TRA QUET CAC COT (MA TRAN GOM 8 COT)

POP 01H ;PHUC HOI GIA TRI CHO CAC THANH GHI

(COL-Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2)

;CHUONG TRINH HIEN THI KY TU A CHOP TAT TREN MA TRAN LED

;***************************************************

;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO)

;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0)

Trang 21

MOV R0,#50 ;BIEN LAP - THOI GIAN CUA 1 TRANG THAI MAN HINH LED MP1:

LCALL SCANMATRIXSTA ;HIEN THI DU LIEU

;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI

;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0)

MOV P1,#00H ;CHONG LEM

INC R0 ;LAY DU LIEU KE TIEP

MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP

Trang 22

được nối với Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).

;CHUONG TRINH HIEN THI CHUOI KY TU A,B,C,a,b,c LAN LUOT TREN MA TRAN LED

;***************************************************

;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO)

;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0)

MOV A,DPL ;DICH DEN DIA CHI CUA KY TU KE TIEP

ADD A,#8 ;ADDNEXT = ADDPREV + 8 (DO DAI KY TU = 8)

MOV DPL,A

CJNE A,#LOW(CODEDISP+48),MP1 ;KIEM TRA HIEN THI XONG TAT CA CAC CHUOI LJMP MAIN

;***************************************************

Trang 23

;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI

;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0)

MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA

MOV R1,#01H ;MA QUET COT DAU TIEN

SCAN:

MOV A,R0

MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI

MOV P2,A ;XUAT MA HIEN THI RA HANG

MOV P1,R1 ;XUAT MA QUET RA COT

LCALL DELAYLED

MOV P1,#00H ;CHONG LEM

INC R0 ;LAY DU LIEU KE TIEP

MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP

Trang 24

phải sang trái (COL-RED được nối với Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).

;CHUONG TRINH HIEN THI CHUOI KY TU WELLCOME LAN LUOT TREN MA TRAN LED

;***************************************************

;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO)

;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0)

CJNE A,#LOW(CODEDISP+48),MP1 ;KIEM TRA HIEN THI XONG CHUOI

SJMP MAIN ;SO KY TU CUA CHUOI = 24 MA KY TU

;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI

;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0)

MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA

MOV R1,#01H ;MA QUET COT DAU TIEN

SCAN:

MOV A,R0

Trang 25

MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI

MOV P2,A ;XUAT MA HIEN THI RA HANG

MOV P1,R1 ;XUAT MA QUET RA COT

LCALL DELAYLED

MOV P1,#00H ;CHONG LEM

INC R0 ;LAY DU LIEU KE TIEP

MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP

Trang 26

D HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM

Bài 1: Chương trình điều khiển bàn phím và hiển thị mã của phím nhấn trên 8 LED dưới dạng số BIN (LED sáng = mức 1, LED tắt = mức 0), không phím nào được nhấn thì mã phím là FFH (KEYPAD được nối với Port0, LED được nối với Port1)

;CHUONG TRINH DIEU KHIEN BAN PHIM MA TRAN 4 X 4

LCALL SCANKEYPAD ;QUET KEYPAD

JC MP1 ;KIEM TRA CO NHAN PHIM (C = 1)

MOV A,#0FFH ;KHONG NHAN PHIM A = FFH

MP1: ;CO NHAN PHIM A = MA PHIM

MOV P1,A ;XUAT MA PHIM RA LED HIEN THI DANG SO BIN

LJMP MAIN ;QUAY LAI KIEM TRA KEYPAD TIEP

ACALL GETKEY ;GOI CTC QUET PHIM

JNC NOPRESSED ;C = 0 -> THOAT KHI KHONG CO PHIM NHAN

DJNZ R3,BACK ;C = 1 -> CO PHIM NHAN, GIAM SO LAN LAP DE CHONG DOI NOPRESSED:

MOV A,#0EFH ;BAT DAU TAI COT 0

MOV R6,#4 ;R6 LAM BO DEM COT

TEST:

MOV P0,A ;TICH CUC COT

MOV R7,A ;LUU ACC

MOV A,P0 ;DOC LAI TU PORT 1

ANL A,#0FH ;CACH LY CAC HANG

CJNE A,#0FH,KEYPRESSED ;HANG TICH CUC ?

MOV A,R7 ;N -> DI CHUYEN TOI

Trang 27

MOV R7,A ;LUU TRONG R7

MOV A,#4 ;CHUAN BI TINH

CLR C ;TRONG SO CUA COT

SUBB A,R6 ;4 - R6 = TRONG SO

MOV R6,A ;LUU TRONG R6

MOV A,R7 ;PHUC HOI MA QUET

MOV R5,#4 ;DUNG R5 LAM BO DEM

AGAIN:

RRC A ;QUAY CHO DEN KHI = 0

JNC DONE ;THUC THI XONG KHI C = 0

INC R6 ;CONG 4 CHO DEN KHI TIM THAY HANG TICH CUC

SETB C ;CO PHIM NHAN -> C = 1

MOV A,R6 ;MA TRONG A

;CHUONG TRINH DIEU KHIEN LED HIEN THI CAC KIEU KHAC NHAU KHI

;TA NHAN CAC PHIM TREN BAN PHIM MA TRAN 4 X 4

MOV P1,#00H ;LED TAT

LCALL SCANKEYPAD ;QUET KEYPAD

CJNE A,#0CH,NEXT1 ;KHONG PHAI PHIM F1 -> KIEM TIEP

LCALL CHOPTAT ;PHIM F1 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG

Trang 28

NEXT1:

CJNE A,#08H,NEXT2 ;KHONG PHAI PHIM F2 -> KIEM TIEP

LCALL SANGDAN ;PHIM F2 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG

NEXT2:

CJNE A,#04H,NEXT3 ;KHONG PHAI PHIM F3 -> KIEM TIEP

LCALL DEMLEN ;PHIM F3 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG

NEXT3:

CJNE A,#00H,NEXT4 ;KHONG PHAI PHIM F4 -> KIEM TIEP

LCALL SANGDON ;PHIM F4 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG

ACALL GETKEY ;GOI CTC QUET PHIM

JNC NOPRESSED ;C = 0 -> THOAT KHI KHONG CO PHIM NHAN

DJNZ R3,BACK ;C = 1 -> CO PHIM NHAN, GIAM SO LAN LAP DE CHONG DOI NOPRESSED:

MOV A,#0EFH ;BAT DAU TAI COT 0

MOV R6,#4 ;R6 LAM BO DEM COT

TEST:

MOV P0,A ;TICH CUC COT

MOV R7,A ;LUU ACC

MOV A,P0 ;DOC LAI TU PORT 1

ANL A,#0FH ;CACH LY CAC HANG

CJNE A,#0FH,KEYPRESSED ;HANG TICH CUC ?

MOV A,R7 ;N -> DI CHUYEN TOI

Trang 29

MOV A,#4 ;CHUAN BI TINH

CLR C ;TRONG SO CUA COT

SUBB A,R6 ;4 - R6 = TRONG SO

MOV R6,A ;LUU TRONG R6

MOV A,R7 ;PHUC HOI MA QUET

MOV R5,#4 ;DUNG R5 LAM BO DEM

AGAIN:

RRC A ;QUAY CHO DEN KHI = 0

JNC DONE ;THUC THI XONG KHI C = 0

INC R6 ;CONG 4 CHO DEN KHI TIM THAY HANG TICH CUC INC R6

INC R6

INC R6

DJNZ R5,AGAIN

DONE:

SETB C ;CO PHIM NHAN -> C = 1

MOV A,R6 ;MA TRONG A

MOV P1,#0FFH ;LED SANG

Trang 30

CJNE A,#00H,DL ;KIEM TRA DEM LEN HOAN TAT

RLC A ;DICH BIT 1 SANG TRAI KEM C, SANG DAN

JNC SD1 ;CHUA SANG HET THI LAM TIEP

SD2:

CLR C ;C=1

MOV P1,A ;HIEN THI

LCALL DELAY500MS

RLC A ;DICH BIT 1 SANG TRAI KEM C, TAT DAN

JC SD2 ;CHUA TAT HET THI LAM TIEP

POP ACC

RET

SANGDON:

PUSH ACC

MOV R0,#08H ;LUU SO LAN DICH BIT

MOV R1,#00H ;TRANG THAI LED KHI DON LAN DAU TIEN

DJNZ R2,LAP1 ;CHUA DON XONG? QUAY LAI

DEC R0 ;GIAM SO LAN DON LED

SETB C ;THAY DOI TRANG THAI LED CHO LAN DON TIEP THEO MOV A,R1

Trang 31

DELAY500MS: ;CTC TAO THOI GIAN TRE 500MS

;INPUT: PORT 0 (ROW1 ROW4 -> P0.0 P0.3 & COL1 COL4 -> P0.4 P0.7)

;OUTPUT: C = 1: CO PHIM NHAN - ACC = CHUA MA PHIM (00H -> FFH)

; C = 0: KHONG CO PHIM NHAN

ACALL GETKEY ;GOI CTC QUET PHIM

JNC NOPRESSED ;C = 0 -> THOAT KHI KHONG CO PHIM NHAN

DJNZ R3,BACK ;C = 1 -> CO PHIM NHAN, GIAM SO LAN LAP DE CHONG DOI NOPRESSED:

Trang 32

MOV R6,#4 ;R6 LAM BO DEM COT

TEST:

MOV P0,A ;TICH CUC COT

MOV R7,A ;LUU ACC

MOV A,P0 ;DOC LAI TU PORT 1

ANL A,#0FH ;CACH LY CAC HANG

CJNE A,#0FH,KEYPRESSED ;HANG TICH CUC ?

MOV A,R7 ;N -> DI CHUYEN TOI

MOV R7,A ;LUU TRONG R7

MOV A,#4 ;CHUAN BI TINH

CLR C ;TRONG SO CUA COT

SUBB A,R6 ;4 - R6 = TRONG SO

MOV R6,A ;LUU TRONG R6

MOV A,R7 ;PHUC HOI MA QUET

MOV R5,#4 ;DUNG R5 LAM BO DEM

AGAIN:

RRC A ;QUAY CHO DEN KHI = 0

JNC DONE ;THUC THI XONG KHI C = 0

INC R6 ;CONG 4 CHO DEN KHI TIM THAY HANG TICH CUC

SETB C ;CO PHIM NHAN -> C = 1

MOV A,R6 ;MA TRONG A

Ngày đăng: 30/09/2018, 22:01

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w