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

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

9 361 1
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 246,89 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 7.. Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD dùng vi mạch giải đa hợp bên ngoài B

Trang 1

B HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN

(Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch

giải đa hợp bên ngoài))

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 SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7)

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

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

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

ORG 00H

MAIN:

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

MOV R6,#00H

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

MOV R4,#00H

MP1:

LCALL BCD8TO7SEG ;GIAI MA BCD SANG MA 7 DOAN

LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI

ADD A,#1

MOV R4,A

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

ADD A,#1

MOV R5,A

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

ADD A,#1

MOV R6,A

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

ADD A,#1

MOV R7,A

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

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 O NHO CUA RAM

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

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

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

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

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

DISP7SEGMUL8:

PUSH 00H

MOV A,#7FH ;MA QUET

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

DISP:

LCALL DELAYLED

Trang 2

B HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN

(Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch

giải đa hợp bên ngoài))

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 SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7)

MOV P1,#0FFH ;CHONG LEM

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

POP ACC

RET

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

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

PUSH 00H

PUSH 01H

MOV R1,#5

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

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 DISP7SEGMUL8 ;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 (4 SO BCD NEN)

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

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

;GIA TRI GIAI MA: 0 -> 9

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

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

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

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

BCD8TO7SEG:

PUSH DPL

PUSH ACC

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

ANL A,#0FH ;XOA 4 BIT CAO

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

ANL A,#0F0H ;XOA 4 BIT THAP

Trang 3

B HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN

(Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch

giải đa hợp bên ngoài))

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 SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7)

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

ANL A,#0FH ;XOA 4 BIT CAO

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

ANL A,#0F0H ;XOA 4 BIT THAP

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

ANL A,#0FH ;XOA 4 BIT CAO

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

ANL A,#0F0H ;XOA 4 BIT THAP

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

ANL A,#0FH ;XOA 4 BIT CAO

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

ANL A,#0F0H ;XOA 4 BIT THAP

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

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ố 87654321 trên tám LED

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

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

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

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

• Bài 6: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00000000 lên 89ABCDEF trên tám LED

• Bài 7: 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 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình

Trang 4

B HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN

(Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa

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 8 nối J14 (7SEG OUT 1) ở khối giải mã với J4 (7SEG IN MUL) ở khối LED 7 đoạn

• 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 J16 (BCD IN 1-2) ở khối giải mã

• 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

T B

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

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

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

ORG 00H

MAIN:

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

MOV P0,#01H ;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 5

B HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN

(Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa

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

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

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

ORG 00H

MAIN:

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

MOV P0,#00H ;SO 0

LCALL DELAY500MS

MOV P0,#01H ;SO 1

LCALL DELAY500MS

MOV P0,#02H ;SO 2

LCALL DELAY500MS

MOV P0,#03H ;SO 3

LCALL DELAY500MS

MOV P0,#04H ;SO 4

LCALL DELAY500MS

MOV P0,#05H ;SO 5

LCALL DELAY500MS

MOV P0,#06H ;SO 6

LCALL DELAY500MS

MOV P0,#07H ;SO 7

LCALL DELAY500MS

MOV P0,#08H ;SO 8

LCALL DELAY500MS

MOV P0,#09H ;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

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

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

ORG 00H

MAIN:

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

Trang 6

B HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN

(Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa

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 A,#00H ;GIA TRI BAT DAU

LOOP:

LCALL DELAY500MS

CJNE A,#10,LOOP

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

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: 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 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình

Trang 7

B HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN

(Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa

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

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

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

ORG 00H

MAIN:

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

MOV P0,#02H ;HIEN THI SO 2

LCALL DELAYLED

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

MOV P0,#01H ;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

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

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

ORG 00H

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:

MOVC A,@A+DPTR

MOVC A,@A+DPTR

LCALL DELAYLED

MOV P0,#0FFH ;CHONG LEM

DJNZ R0,DISP1

SJMP MAIN

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

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

Trang 8

B HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN

(Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa

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 02H,01H

ORG 110H

DB 00H,01H

END

• Cách 3:

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

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

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

;KET NOI: 2 LED -> PORT0

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

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

ORG 00H

MAIN:

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

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

;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 00H

MOV A,#01H ;MA QUET

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

DISP:

LCALL DELAYLED

MOV P0,#0FFH ;CHONG LAM

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

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 9

B HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN

(Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa

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

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)

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

TỪ KHÓA LIÊN QUAN