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 1hợ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 2hợ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 3hợ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 4hợ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 5hợ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 6hợ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 7hợ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 8hợ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 9hợ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