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

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

9 398 3
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 240,67 KB

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

Nội dung

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.. • Bài 6: Nếu trường hợp LED của ta là loại Cathode chung

Trang 1

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

;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

MOV A,60H

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

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

MOV A,61H

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

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:

MOV P0,@R0 ;XUAT MA HIEN THI

LCALL DELAYLED

MOV P0,#0FFH ;CHONG LAM

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

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 DISP7SEGMUL2EXT ;GOI CTC QUET HIEN THI

JNB TF0,SCAN

Trang 2

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)

CLR TR0

CLR TF0

DJNZ R0,LOOP2

POP 00H

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

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ố BCD từ 23 xuống 00 trên hai LED

• 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 3

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

;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,#04H ;HIEN THI SO 4

LCALL DELAYLED

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

MOV P0,#03H ;HIEN THI SO 3

LCALL DELAYLED

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

MOV P0,#02H ;HIEN THI SO 2

LCALL DELAYLED

MOV P1,#03H ;CHO PHEP LED 4 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

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)

Trang 4

hợp bên ngoài))

Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 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 0000 -> 9999 TREN LED 7 DOAN

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

;KET NOI: 4 LED -> PORT0

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

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

ORG 00H

MAIN:

MOV 63H,#00H ;HANG NGAN

MOV 62H,#00H ;HANG TRAM

MOV 61H,#00H ;HANG CHUC

MOV 60H,#00H ;HANG DON VI

MP1:

LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI

MOV A,60H

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

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

MOV A,61H

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

MOV 61H,#00H ;XOA HANG CHUC (CHUC = 0)

MOV A,62H

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

MOV 62H,#00H ;XOA HANG TRAM (TRAM = 0)

MOV A,63H

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

SJMP MAIN

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

;CTC QUET HIEN THI LED 7 DOAN (4 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: 63H,62H = MA 7 DOAN (NGAN - TRAM)

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

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

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

DISP7SEGMUL4EXT:

PUSH 00H

MOV A,#03H ;MA QUET

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

DISP:

MOV P0,@R0 ;XUAT MA HIEN THI

LCALL DELAYLED

MOV P0,#0FFH ;CHONG LAM

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

RET

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

Trang 5

hợp bên ngoài))

Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 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)

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 DISP7SEGMUL4EXT ;GOI CTC QUET HIEN THI

JNB TF0,SCAN

CLR TR0

CLR TF0

DJNZ R0,LOOP2

POP 00H

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

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ố 5678 trên bốn LED

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

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

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

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

• 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 6

hợp bên ngồi))

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

• 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 bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7 đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thơng qua khối

mở rộng)

• 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 dây bus 3 nối J64 (PORT1) ở khối vi điều khiển với J22 (DEC 3-8) ở khối giải mã (chú ý là ta chỉ nối 3 bit thấp của J64 và J22 với nhau)

• Dùng dây bus 8 nối J23 (DEC OUT) ở khối giải mã với J2 (SEL LED IN) ở 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

LED 7 ĐOẠN

7SEG7 IN

SEL IN2

7SEG6 IN 7SEG5 IN 7SEG4 IN7SEG7 INMUL

A0 A7

SELECT CHIP CLOCK OUT

POWER SW

NGUỒN

+5V

8

GIẢI MÃ

T B

8

8

3

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

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

;KET NOI: 8 LED -> PORT0

;CHE DO: MULTI, BCD IN, MULTI EXT 3 TO 8, CA, ACTIVE = 0

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

ORG 00H

MAIN:

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

MOV P0,#08H ;HIEN THI SO 8

LCALL DELAYLED

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

MOV P0,#07H ;HIEN THI SO 7

LCALL DELAYLED

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

MOV P0,#06H ;HIEN THI SO 6

LCALL DELAYLED

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

MOV P0,#05H ;HIEN THI SO 5

LCALL DELAYLED

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

MOV P0,#04H ;HIEN THI SO 4

LCALL DELAYLED

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

MOV P0,#03H ;HIEN THI SO 3

Trang 7

hợp bên ngoài))

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

LCALL DELAYLED

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

MOV P0,#02H ;HIEN THI SO 2

LCALL DELAYLED

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

MOV P0,#01H ;HIEN THI SO 1

LCALL DELAYLED

SJMP MAIN

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

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

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 8)

Trang 8

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

;CHE DO: MULTI, BCD IN, MULTI EXT 3 TO 8, CA, ACTIVE = 0

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

ORG 00H

MAIN:

MOV 67H,#00H ;HANG CH TRIEU

MOV 66H,#00H ;HANG TRIEU

MOV 65H,#00H ;HANG TR NGAN

MOV 64H,#00H ;HANG CH NGAN

MOV 63H,#00H ;HANG NGAN

MOV 62H,#00H ;HANG TRAM

MOV 61H,#00H ;HANG CHUC

MOV 60H,#00H ;HANG DON VI

MP1:

LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI

MOV A,60H

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

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

MOV A,61H

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

MOV 61H,#00H ;XOA HANG CHUC (CHUC = 0)

MOV A,62H

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

MOV 62H,#00H ;XOA HANG TRAM (TRAM = 0)

MOV A,63H

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

MOV 63H,#00H ;XOA HANG NGAN (NGAN = 0)

MOV A,64H

CJNE A,#10,MP1 ;KIEM TRA HANG CH NGAN > 9

MOV 64H,#00H ;XOA HANG CH NGAN (CH NGAN = 0)

MOV A,65H

CJNE A,#10,MP1 ;KIEM TRA HANG TR NGAN > 9

MOV 65H,#00H ;XOA HANG TR NGAN (TR NGAN = 0)

MOV A,66H

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

MOV 66H,#00H ;XOA HANG TRIEU (TRIEU = 0)

MOV A,67H

CJNE A,#10,MP1 ;KIEM TRA HANG CH TRIEU > 9

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)

Trang 9

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

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

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

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

DISP7SEGMUL8EXT:

PUSH 00H

MOV A,#07H ;MA QUET

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

DISP:

MOV P0,@R0 ;XUAT MA HIEN THI

LCALL DELAYLED

MOV P0,#0FFH ;CHONG LEM

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

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 DISP7SEGMUL8EXT ;GOI CTC QUET HIEN THI

JNB TF0,SCAN

CLR TR0

CLR TF0

DJNZ R0,LOOP2

POP 00H

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

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

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

TỪ KHÓA LIÊN QUAN