1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Vi Mạch MCS 51 - Ứng Dụng Thực Tế part 16 pps

9 331 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 248,6 KB

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

Nội dung

• Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5 xuống 0 trên LED4.. • Bài 4: Hãy viết chương trình điều kh

Trang 1

hợp bên ngoài))

Bài 1: Chương trình điều khiển hiển thị số 1 trên LED7 (LED7 được nối với Port0; tín hiệu SEL-ABC được nối

với P1.0 - P1.1)

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

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

• Tắt nguồn cấp cho mô hình thí nghiệm

• Dùng dây bus 2 nối J64 (PORT1) ở khối vi điều khiển với J23 (DEC 2-4) ở khối giải ma (chú ý là ta chỉ nối 2 bit thấp của J64 và J23)õ

• Dùng dây bus 4 nối J29 (DEC OUT) ở khối giải mã với J1 (SEL IN1) ở khối LED 7 đoạn

• Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG7 IN MUL) ở khối LED 7 đoạn

• Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J36 (POWER) ở khối giải mã với nguồn +5V ở khối nguồn

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 1 TREN LED 7 DOAN

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

;KET NOI: 1 LED -> PORT0

; SEL ABC -> PORT1

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

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

MAIN:

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

MOV P0,#0F9H ;XUAT SO HIEN THI

SJMP $

END

1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên

2 Bài tập:

(xem thêm trong phần hướng dẫn và phần bài tập của Bài 2)

Trang 2

hợp bên ngoài))

Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7 (LED7 được nối với Port0; tín hiệu

SEL-ABC được nối với P1.0 - P1.1)

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

• Cách 1:

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

;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN

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

;KET NOI: 1 LED -> PORT0

; SEL ABC -> PORT1

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

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

MAIN:

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

MOV P0,#0C0H ;SO 0

LCALL DELAY500MS

MOV P0,#0F9H ;SO 1

LCALL DELAY500MS

MOV P0,#0A4H ;SO 2

LCALL DELAY500MS

MOV P0,#0B0H ;SO 3

LCALL DELAY500MS

MOV P0,#99H ;SO 4

LCALL DELAY500MS

MOV P0,#92H ;SO 5

LCALL DELAY500MS

MOV P0,#82H ;SO 6

LCALL DELAY500MS

MOV P0,#0F8H ;SO 7

LCALL DELAY500MS

MOV P0,#80H ;SO 8

LCALL DELAY500MS

MOV P0,#90H ;SO 9

LCALL DELAY500MS

SJMP MAIN

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

DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS

PUSH 00H

MOV R0,#100

MOV TMOD,#01H

LOOP2:

MOV TH0,#0ECH

MOV TL0,#78H

SETB TR0

JNB TF0,$

CLR TR0

CLR TF0

DJNZ R0,LOOP2

POP 00H

RET

END

• Cách 2:

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

;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN

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

;KET NOI: 1 LED -> PORT0

; SEL ABC -> PORT1

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

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

MAIN:

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

Trang 3

hợp bên ngoài))

Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7 (LED7 được nối với Port0; tín hiệu

SEL-ABC được nối với P1.0 - P1.1)

MOV R0,#00H ;VI TRI DU LIEU HIEN THI TRONG VUNG MA

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

DISP:

MOV A,R0 ;NAP VI TRI DU LIEU

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

LCALL DELAY500MS

INC R0

CJNE R0,#10,DISP ;KIEM TRA VI TRI DU LIEU > 9 (DEM XONG)

SJMP MAIN

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

DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS

PUSH 00H

MOV R0,#100

MOV TMOD,#01H

LOOP2:

MOV TH0,#0ECH

MOV TL0,#78H

SETB TR0

JNB TF0,$

CLR TR0

CLR TF0

DJNZ R0,LOOP2

POP 00H

RET

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

CODEDISP: ;VUNG DU LIEU HIEN THI

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

END

1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên

2 Bài tập:

• Bài 1: Hãy viết chương trình điều khiển hiển thị số 5 trên LED5

• Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0 lên 5 trên LED4

• Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5 xuống 0 trên LED4

• Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 0 lên F trên LED4

• Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ F xuống 0 trên LED4

• Bài 6: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại sao? Tiến hành mô phỏng thử xem sao?

• Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình

Trang 4

hợp bên ngoài))

Bài 3: Chương trình điều khiển hiển thị số 12 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 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

• Cách 1:

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

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

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

;KET NOI: 2 LED -> PORT0

; SEL ABC -> PORT1

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

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

MAIN:

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

MOV P0,#0A4H ;HIEN THI SO 2

LCALL DELAYLED

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

MOV P0,#0F9H ;HIEN THI SO 1

LCALL DELAYLED

SJMP MAIN

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

DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS

PUSH 00H

PUSH 01H

MOV R1,#10

DEL: MOV R0,#250

DJNZ R0,$

DJNZ R1,DEL

POP 01H

POP 00H

RET

END

• Cách 2:

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

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

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

;KET NOI: 2 LED -> PORT0

; SEL ABC -> PORT1

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

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

MAIN:

MOV DPTR,#100H ;NAP DIA CHI VUNG DU LIEU

DISP:

MOV R0,#02H ;SO LAN QUET (SO LED)

MOV R1,#00H ;NAP DIA CHI (OFFSET) CUA DU LIEU

MOV R2,#10H ;NAP DIA CHI (OFFSET) CUA MA QUET

DISP1:

MOV A,R1 ;LAY DU LIEU

MOVC A,@A+DPTR

MOV P0,A ;XUAT DU LIEU HIEN THI

MOV A,R2 ;LAY MA QUET

MOVC A,@A+DPTR

MOV P1,A ;XUAT MA QUET

LCALL DELAYLED

MOV P2,#0FFH ;CHONG LEM

INC R1 ;DIA CHI (OFFSET) CUA DU LIEU KE TIEP

INC R2 ;DIA CHI (OFFSET) CUA MA QUET KE TIEP

DJNZ R0,DISP1

SJMP MAIN

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

DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS

Trang 5

hợp bên ngoài))

Bài 3: Chương trình điều khiển hiển thị số 12 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)

PUSH 00H

PUSH 01H

MOV R1,#10

DEL: MOV R0,#250

DJNZ R0,$

DJNZ R1,DEL

POP 01H

POP 00H

RET

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

ORG 100H

CODEDISP: ;VUNG DU LIEU HIEN THI

DB 0A4H,0F9H

ORG 110H

CODESCAN: ;VUNG MA QUET

DB 00H,01H

END

• Cách 3:

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

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

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

;KET NOI: 2 LED -> PORT0

; SEL ABC -> PORT1

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

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

MAIN:

MOV R7,#12H ;SO HIEN THI

LCALL BCD2TO7SEG ;GIAI MA BCD SANG MA 7 DOAN

LCALL DISP7SEGMUL2EXT ;QUET HIEN THI

SJMP MAIN

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

;CTC QUET HIEN THI LED 7 DOAN (2 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: 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

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

POP ACC

RET

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

DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS

PUSH 00H

PUSH 01H

MOV R1,#10

DEL: MOV R0,#250

DJNZ R0,$

DJNZ R1,DEL

Trang 6

hợp bên ngoài))

Bài 3: Chương trình điều khiển hiển thị số 12 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)

POP 01H

POP 00H

RET

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

;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (1 SO BCD NEN)

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

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

;GIA TRI GIAI MA: 0 -> 9

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

;NAME: BCD2TO7SEG

;INPUT: R7 = SO BCD NEN (CHUC - DON VI)

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

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

BCD2TO7SEG:

PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI

PUSH DPL

PUSH ACC

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

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 60H,A ;CAT BCD HANG DON VI 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 61H,A ;CAT BCD HANG CHUC 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

1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên

2 Bài tập:

(xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)

Trang 7

hợp bên ngoài))

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 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 00 -> 99 TREN LED 7 DOAN

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

;KET NOI: 2 LED -> PORT0

; SEL ABC -> PORT1

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

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

MAIN:

MOV R7,#00H ;SO HIEN THI BAN DAU

MP1:

LCALL BCD2TO7SEG ;GIAI MA BCD SANG MA 7 DOAN

LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI

MOV A,R7 ;TANG GIA TRI

ADD A,#1

DA A

MOV R7,A

CJNE A,#00,MP1 ;KIEM TRA GIA TRI HIEN THI > 99

SJMP MAIN

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

;CTC QUET HIEN THI LED 7 DOAN (2 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: 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

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

POP ACC

RET

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

DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS

PUSH 00H

PUSH 01H

MOV R1,#10

DEL: MOV R0,#250

DJNZ R0,$

DJNZ R1,DEL

POP 01H

POP 00H

RET

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

DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI

PUSH 00H

Trang 8

hợp bên ngoài))

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)

MOV R0,#50

MOV TMOD,#01H

LOOP2:

MOV TH0,#0ECH

MOV TL0,#78H

SETB TR0

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

LCALL DISP7SEGMUL2EXT ;GOI CTC QUET HIEN THI

JNB TF0,SCAN

CLR TR0

CLR TF0

DJNZ R0,LOOP2

POP 00H

RET

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

;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (1 SO BCD NEN)

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

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

;GIA TRI GIAI MA: 0 -> 9

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

;NAME: BCD2TO7SEG

;INPUT: R7 = SO BCD NEN (CHUC - DON VI)

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

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

BCD2TO7SEG:

PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI

PUSH DPL

PUSH ACC

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

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 60H,A ;CAT BCD HANG DON VI 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 61H,A ;CAT BCD HANG CHUC 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

1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên

2 Bài tập:

• Bài 1: Hãy viết chương trình điều khiển hiển thị số 34 trên hai LED

• Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 59 trên hai LED

• Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 59 xuống 00 trên hai LED

• Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 23 trên hai LED

• Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00 lên FF trên hai LED

• Bài 6: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ FF xuống 00 trên hai LED

• Bài 7: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00 lên CD trên hai LED

• Bài 8: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại sao? Tiến hành mô phỏng thử xem sao?

• Bài 9: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình

Trang 9

hợp bên ngoài))

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 SEL-ABC được nối với P1.0 - P1.1)

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 ABC -> PORT1

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

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

MAIN:

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

MOV P0,#99H ;HIEN THI SO 4

LCALL DELAYLED

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

MOV P0,#0B0H ;HIEN THI SO 3

LCALL DELAYLED

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

MOV P0,#0A4H ;HIEN THI SO 2

LCALL DELAYLED

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

MOV P0,#0F9H ;HIEN THI SO 1

LCALL DELAYLED

SJMP MAIN

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

DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS

PUSH 00H

PUSH 01H

MOV R1,#10

DEL: MOV R0,#250

DJNZ R0,$

DJNZ R1,DEL

POP 01H

POP 00H

RET

END

1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên

2 Bài tập:

(xem thêm trong phần hướng dẫn và phần bài tập của Bài 6)

Ngày đăng: 09/07/2014, 23:20

TỪ KHÓA LIÊN QUAN

w