Bài 1: Chương trình ñiều khiển hiển thị số 7 trên LED4 LED4 ñược nối với Port0.. Bài 2: Chương trình ñiều khiển hiển thị ñếm số BCD từ 0 lên 9 trên LED4 LED4 ñược nối với Port0.. Bài 2:
Trang 1BỘ MÔN ðIỆN TỬ CÔNG NGHIỆP TÀI LIỆU HƯỚNG DẪN
THÍ NGHIỆM - THỰC HÀNH
Trang 2A MỤC ðÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi ñiều khiển và sử dụng mô hình thí nghiệm ñể kiểm chứng
• ðiều khiển thiết bị ngoại vi bằng các port của vi ñiều khiển
• ðiều khiển việc hiển thị bằng cách sử dụng LED 7 ñoạn theo nhiều phương pháp khác nhau
• ðiều khiển việc hiển thị các thông tin và số liệu bằng cách sử dụng các bộ hiển thị dùng LED 7 ñoạn
B YÊU CẦU:
• Nắm vững tập lệnh của vi ñiều khiển MCS-51
• Biết cách viết các chương trình ñiều khiển LED 7 ñoạn ở chế ñộ:
mềm)
phần mềm)
cứng)
• Nắm ñược sơ ñồ và nguyên lý hoạt ñộng của khối LED 7 ñoạn trên mô hình thí nghiệm
• Nắm ñược sơ ñồ và nguyên lý ñiều khiển LED 7 ñoạn theo phương pháp:
mềm)
phần mềm)
cứng)
• Biết cách viết các chương trình ñiều khiển ñể hiển thị các thông tin và số liệu trên các bộ hiển thị dùng LED 7 ñoạn
Trang 3Bài 1: Chương trình điều khiển hiển thị số 7 trên LED4 (LED4 được nối với Port0)
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 J2 (SEL LED IN) ở khối LED 7 đoạn với J34 (SWITCH) ở khối cơng tắc và gạt tất cả các cơng tắc ở vị trí ON (vị trí GND)
• Dùng dây bus 8 nối J14 (7SEG OUT 1) ở khối giải mã với J8 (7SEG4 IN) ở 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
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0 AD1 AD2 AD3 AD4 AD5 AD6
AD7 AD6 AD5 AD4 AD3 AD2 AD1
AD0 AD1 AD2 AD3
A B C D E F G
A B C D E F G
XTAL2 18
XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
MẠCH ĐIỀ U KHIỂ N LED 7 ĐOẠN
A 7
QA 13B
Trang 4Bài 1: Chương trình ñiều khiển hiển thị số 7 trên LED4 (LED4 ñược nối với Port0)
1.3 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 7 TREN LED 7 DOAN
;***************************************************
1.4 Lưu chương trình và biên dịch chương trình
1.5 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có
1.6 Gắn chip vi ñiều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt ñộng
1.7 Nạp chương trình vào vi ñiều khiển
1.8 Sử dụng vi ñiều khiển vừa nạp gắn vào socket tương ứng trên khối vi ñiều khiển
1.9 Bật nguồn cho mô hình thí nghiệm Quan sát kết quả hoạt ñộng, nếu kết quả hoạt ñộng không ñúng yêu cầu của ñề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 ñến bước 9
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 5Bài 2: Chương trình ñiều khiển hiển thị ñếm số BCD từ 0 lên 9 trên LED4 (LED4 ñược nối với Port0)
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 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 1
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển
• Cách 1:
XUẤT SỐ 0 RA PORT (P0) = 00H BEGIN
GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 1 RA PORT (P0) = 01H GỌI CTC TẠO TRỄ DELAY500MS
B2.1 NB
XUẤT SỐ 2 RA PORT (P0) = 02H GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 3 RA PORT (P0) = 03H GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 4 RA PORT (P0) = 04H GỌI CTC TẠO TRỄ DELAY500MS
XUẤT SỐ 6 RA PORT (P0) = 06H GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 7 RA PORT (P0) = 07H GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 8 RA PORT (P0) = 08H GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 9 RA PORT (P0) = 09H GỌI CTC TẠO TRỄ DELAY500MS MAIN:
XUẤT SỐ 5 RA PORT (P0) = 05H GỌI CTC TẠO TRỄ DELAY500MS
Trang 6Bài 2: Chương trình ñiều khiển hiển thị ñếm số BCD từ 0 lên 9 trên LED4 (LED4 ñược nối với Port0)
CJNE A ,#10,LOOP ;GIA TRI KET THUC + 1
• Bài 1: Hãy viết chương trình ñiều khiển hiển thị số 3 trên LED1
• 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 LED2
Trang 7Bài 2: Chương trình ñiều khiển hiển thị ñếm số BCD từ 0 lên 9 trên LED4 (LED4 ñược nối với Port0)
• 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 LED2
• 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 8Bài 3: Chương trình ñiều khiển hiển thị số 35 trên hai LED (LED5 và LED4 ñược nối với Port0)
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 J2 (SEL LED IN) ở khối LED 7 ñoạn với J34 (SWITCH) ở khối công tắc và gạt tất cả các công tắc ở vị trí ON (vị trí GND)
• Dùng dây bus 8 nối J14 (7SEG OUT 1) ở khối giải mã với J8 (7SEG4 IN) ở khối LED 7 ñoạn
• Dùng dây bus 8 nối J17 (7SEG OUT 2) ở khối giải mã với J7 (7SEG5 IN) ở 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
AD3 AD4 AD5 AD6
AD7 AD6 AD4 AD3 AD2 AD1
AD4 AD5
AD7
A1 B1 C1
E1 F1 G1
A1 B1
D1 E1 F1 G1
AD0 AD1 AD2
A2 B2 C2
E2 F2 G2
A2 B2 C2
E2 F2 G2 XTAL2
18
XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
7 8 9
QB 12C
2
QC 11D
BI/RBO
RBI 5
QF 15LT
QA 13B
C
D 6
QD 10BI/RBO
4
QE 9RBI
Trang 9Bài 3: Chương trình ñiều khiển hiển thị số 35 trên hai LED (LED5 và LED4 ñược nối với Port0)
1.3 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 35 TREN LED 7 DOAN
;***************************************************
Trang 10Bà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 (LED5 và LED4 ñược nối với
Port0)
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 3
1.2 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 3
1.3 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
;***************************************************
• Bài 1: Hãy viết chương trình ñiều khiển hiển thị số 53 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
Trang 11Bà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 (LED5 và LED4 ñược nối với
• ðể giãm giá trị trong thanh ghi A xuống một ñơn vị (theo kiểu BCD) ta có thể dùng tổ hợp lệnh sau:
SETB C ;XU LY LOI (CHO CY = 1) ERROR:
• Khi sử dụng tổ hợp lệnh giãm như trên cần phải lưu ý rằng:
dụ trước: so sánh với 81H)
trước: so sánh với F0H)
Trang 12Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED (LED5 và LED4 được nối với Port1, LED7 và
LED6 được nối với Port0)
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 J2 (SEL LED IN) ở khối LED 7 đoạn với J34 (SWITCH) ở khối cơng tắc và gạt tất cả các cơng tắc ở vị trí ON (vị trí GND)
• Dùng dây bus 8 nối J14 (7SEG OUT 1) ở khối giải mã với J8 (7SEG4 IN) ở khối LED 7 đoạn
• Dùng dây bus 8 nối J17 (7SEG OUT 2) ở khối giải mã với J7 (7SEG5 IN) ở khối LED 7 đoạn
• Dùng dây bus 8 nối J19 (7SEG OUT 3) ở khối giải mã với J6 (7SEG6 IN) ở khối LED 7 đoạn
• Dùng dây bus 8 nối J21 (7SEG OUT 4) ở khối giải mã với J5 (7SEG7 IN) ở 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 dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J20 (BCD IN 3-4) ở 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
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0 AD2 AD4 AD6
AD7 AD5 AD3 AD1 AD0 AD2
A1 C1 E1 G1
AD4 AD6
A2 C2 E2 G2
A2 C2 E2 G2
A3 C3 E3 G3
A4 C4 E4 G4
A3 C3 E3 G3
A4 C4 E4 G4
P1.4 P1.6
G1 F1 D1 B1
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1
AT89C51
C1 33p
C2 33p
X1
12MHz
2 4 6 8
1 RP1
10K
MẠCH ĐIỀ U KHIỂ N LED 7 ĐOẠN
A 7
QA 13B
C
D 6
QD 10BI/RBO
RBI
LT 3
QG 14U2
74LS47
LED4
+5V R11
56 R12
56 R13
56 R14
56 R15
56 R16
56 R17
QC 11D
BI/RBO 4
QE 9RBI
5
QF 15LT
U3
74LS47
R2 56 R3 56 R4 56 R5 56 R6 56 R7 56 R8 56
LED5 +5V
A 7
QA 13B
1
QB 12C
D 6
QD 10BI/RBO
RBI
LT 3
QG 14U4
74LS47
R9 56 R10 56
R18 56
R19 56
R20 56
R21 56
R22 56
QC 11D
BI/RBO
RBI 5
QF 15LT
U5
74LS47
R23 56
R24 56
R25 56
R26 56
R27 56
R28 56
R29 56
LED6 +5V
LED7 +5V
Trang 13Bài 5: Chương trình ñiều khiển hiển thị số 1234 trên bốn LED (LED5 và LED4 ñược nối với Port1, LED7 và
LED6 ñược nối với Port0)
1.3 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
;***************************************************
;***************************************************
ORG 00H
Trang 14Bài 6: Chương trình ñiều khiển hiển thị ñếm số BCD từ 0000 ñến 9999 trên bốn LED (LED5 và LED4 ñược nối
với Port1, LED7 và LED6 ñược nối với Port0)
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 5
1.2 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 5
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển
NẠP GIÁ TRỊ BẮT ðẦU (R0) = 00H - CHỤC/ðƠN VỊ (R1) = 00H - NGÀN/TRĂM BEGIN
GỌI CTC TẠO TRỄ DELAY500MS
B6 NB MAIN:
LOOP:
TĂNG GIÁ TRỊ CỦA DỮ LIỆU (TĂNG THEO KIỂU DEC) ADD / DA - (R0) - CHỤC/ðƠN VỊ
GIÁ TRỊ ≠ 00H (100H) (CHƯA ðẾM XONG; ≤99)
ð
S
XUẤT DỮ LIỆU RA PORT (P0) = (R0) - CHỤC/ðƠN VỊ (P1) = (R1) - NGÀN/TRĂM
TĂNG GIÁ TRỊ CỦA DỮ LIỆU (TĂNG THEO KIỂU DEC) ADD / DA - (R1) - NGÀN/TRĂM
GIÁ TRỊ ≠ 00H (100H) (CHƯA ðẾM XONG; ≤99)
Trang 15Bài 6: Chương trình ñiều khiển hiển thị ñếm số BCD từ 0000 ñến 9999 trên bốn LED (LED5 và LED4 ñược nối
với Port1, LED7 và LED6 ñược nối với Port0)
• 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
3 Hướng dẫn:
• ðể giãm giá trị trong thanh ghi A xuống một ñơn vị (theo kiểu BCD) ta có thể dùng tổ hợp lệnh sau:
SETB C ;XU LY LOI (CHO CY = 1) ERROR:
• Khi sử dụng tổ hợp lệnh giãm như trên cần phải lưu ý rằng:
bỏ qua thao tác này do giá trị sau khi tăng hoặc giãm lại trùng với giá trị ban ñầu
Trang 16Bài 1: Chương trình điều khiển hiển thị số 7 trên LED4 (LED4 được nối với Port0)
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 J2 (SEL LED IN) ở khối LED 7 đoạn với J34 (SWITCH) ở khối cơng tắc và gạt tất cả các cơng tắc ở vị trí ON (vị trí GND)
• Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J8 (7SEG4 IN) ở khối LED 7 đoạn
• Dùng dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn
AD7 AD6 AD5 AD4 AD3 AD2 AD1
A B C D E F G
XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
MẠCH ĐIỀU KHIỂN LED 7 ĐOẠN
Trang 17Bài 1: Chương trình ñiều khiển hiển thị số 7 trên LED4 (LED4 ñược nối với Port0)
1.3 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 7 TREN LED 7 DOAN
;***************************************************
Trang 18Bài 2: Chương trình ñiều khiển hiển thị ñếm số BCD từ 0 lên 9 trên LED4 (LED4 ñược nối với Port0)
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 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 1
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển
• Cách 1:
XUẤT MÃ CỦA SỐ 0 RA PORT (P0) = C0H BEGIN
GỌI CTC TẠO TRỄ DELAY500MS XUẤT MÃ CỦA SỐ 1 RA PORT (P0) = F9H GỌI CTC TẠO TRỄ DELAY500MS
B2.1 N7
XUẤT MÃ CỦA SỐ 2 RA PORT (P0) = A4H GỌI CTC TẠO TRỄ DELAY500MS XUẤT MÃ CỦA SỐ 3 RA PORT (P0) = B0H GỌI CTC TẠO TRỄ DELAY500MS XUẤT MÃ CỦA SỐ 4 RA PORT (P0) = 99H GỌI CTC TẠO TRỄ DELAY500MS
XUẤT MÃ CỦA SỐ 6 RA PORT (P0) = 82H GỌI CTC TẠO TRỄ DELAY500MS XUẤT MÃ CỦA SỐ 7 RA PORT (P0) = F8H GỌI CTC TẠO TRỄ DELAY500MS XUẤT MÃ CỦA SỐ 8 RA PORT (P0) = 80H GỌI CTC TẠO TRỄ DELAY500MS XUẤT MÃ CỦA SỐ 9 RA PORT (P0) = 90H GỌI CTC TẠO TRỄ DELAY500MS MAIN:
XUẤT MÃ CỦA SỐ 5 RA PORT (P0) = 92H GỌI CTC TẠO TRỄ DELAY500MS
Trang 19Bài 2: Chương trình ñiều khiển hiển thị ñếm số BCD từ 0 lên 9 trên LED4 (LED4 ñược nối với Port0)
B2.2 N7
NẠP GIÁ TRỊ BẮT ðẦU (R0) = 00H DISP:
MAIN:
NẠP DỮ LIỆU HIỂN THỊ (A) = (R0) GIẢI MÃ DỮ LIỆU HIỂN THỊ (A) = (@A+DPTR) XUẤT MÃ DỮ LIỆU RA PORT (P0) = (A) GỌI CTC TẠO TRỄ DELAY500MS TĂNG GIÁ TRỊ CỦA DỮ LIỆU (R0) = (R0) + 1
GIÁ TRỊ ≠ 10 (0AH) (CHƯA ðẾM XONG; ≤ 9)
ð
S VÙNG DỮ LIỆU CODEDISP C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H
;***************************************************
ORG 00H
MAIN:
DISP:
MOVC A , @A+DPTR ;LAY MA HIEN THI
Trang 20Bài 2: Chương trình ñiều khiển hiển thị ñếm số BCD từ 0 lên 9 trên LED4 (LED4 ñược nối với Port0)
• Bài 1: Hãy viết chương trình ñiều khiển hiển thị số 3 trên LED2
• 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 LED3
• 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 LED3
• 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 LED0
• 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 LED0
• 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 21Bài 3: Chương trình điều khiển hiển thị số 35 trên hai LED (LED4 được nối với Port0, LED5 được nối với
Port1)
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 J2 (SEL LED IN) ở khối LED 7 đoạn với J34 (SWITCH) ở khối cơng tắc và gạt tất cả các cơng tắc ở vị trí ON (vị trí GND)
• Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J8 (7SEG4 IN) ở khối LED 7 đoạn
• Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J7 (7SEG5 IN) ở khối LED 7 đoạn
• Dùng dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn
AD7 AD6 AD5 AD4 AD3 AD2 AD1
AD0 AD1 AD2 AD3 AD4 AD5 AD6
G2
A2 B2 C2 D2 E2 F2 G2
G1
B1 C1 D1 E1 F1 XTAL2
18
XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
MẠCH ĐIỀ U KHIỂ N LED 7 ĐOẠN
Trang 22Bài 3: Chương trình ñiều khiển hiển thị số 35 trên hai LED (LED4 ñược nối với Port0, LED5 ñược nối với
;***************************************************
ORG 00H
MAIN:
Trang 23Bà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 (LED4 ñược nối với Port0,
LED5 ñược nối với Port1)
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 3
1.2 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 3
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển
BEGIN NẠP ðỊA CHỈ VÙNG MÃ 7 ðOẠN (DPTR) = CODEDISP B4
NẠP GIÁ TRỊ BẮT ðẦU (R0) = 00H - ðƠN VỊ (R1) = 00H - CHỤC DISP:
MAIN:
NẠP DỮ LIỆU HIỂN THỊ (A) = (R0) - ðƠN VỊ GIẢI MÃ DỮ LIỆU HIỂN THỊ (A) = (@A+DPTR) - ðƠN VỊ
XUẤT MÃ DỮ LIỆU RA PORT (P1) = (A) - CHỤC GỌI CTC TẠO TRỄ DELAY500MS TĂNG GIÁ TRỊ CỦA DỮ LIỆU (R0) = (R0) + 1 - ðƠN VỊ
GIÁ TRỊ ≠ 10 (0AH) (CHƯA ðẾM XONG; ≤ 9)
ð
S
NẠP DỮ LIỆU HIỂN THỊ (A) = (R1) - CHỤC GIẢI MÃ DỮ LIỆU HIỂN THỊ (A) = (@A+DPTR) - CHỤC
XUẤT MÃ DỮ LIỆU RA PORT (P0) = (A) - ðƠN VỊ
KHỞI ðỘNG LẠI GIÁ TRỊ (R0) = 00H - ðƠN VỊ TĂNG GIÁ TRỊ CỦA DỮ LIỆU (R1) = (R1) + 1 - CHỤC
GIÁ TRỊ ≠ 10 (0AH) (CHƯA ðẾM XONG; ≤ 9)
ð
S VÙNG DỮ LIỆU CODEDISP C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H
;***************************************************
ORG 00H
MAIN:
DISP:
MOVC A , @A+DPTR ;LAY MA HIEN THI
MOVC A , @A+DPTR ;LAY MA HIEN THI
LCALL DELAY500MS
Trang 24Bà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 (LED4 ñược nối với Port0,
LED5 ñược nối với Port1)
• Bài 1: Hãy viết chương trình ñiều khiển hiển thị số 53 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ừ 00 lên 23 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ừ 23 xuống 00 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ừ AB xuống 00 trên hai 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 25Bài 5: Chương trình ñiều khiển hiển thị số 1234 trên bốn LED (LED4 ñược nối với Port0, LED5 ñược nối với
Port1, LED6 ñược nối với Port2 và LED7 ñược nối với Port3)
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 J2 (SEL LED IN) ở khối LED 7 ñoạn với J34 (SWITCH) ở khối công tắc và gạt tất cả các công tắc ở vị trí ON (vị trí GND)
• Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi ñiều khiển với J5 (7SEG7 IN) ở khối LED 7 ñoạn
• Dùng dây bus 8 nối J64 (PORT1) ở khối vi ñiều khiển với J6 (7SEG6 IN) ở khối LED 7 ñoạn
• Dùng dây bus 8 nối J65 (PORT2 / A8 A15) ở khối vi ñiều khiển với J7 (7SEG5 IN) ở khối LED 7 ñoạn
• Dùng dây bus 8 nối J66 (PORT3 / FUNCTION) ở khối vi ñiều khiển với J8 (7SEG4 IN) ở khối LED 7 ñoạn
• Dùng dây bus 3 nối J110 (POWER) ở khối LED 7 ñoạn với nguồn +5V ở khối nguồn
AD7 AD5 AD3 AD1
A1 C1 E1 G1
AD0 AD2 AD4 AD6
G2
A2 C2 E2 G2
B4 C4 E4 G4
B3 C3 E3 G3
B4 C4 E4 G4 G1 A1
F1 D1 B1 XTAL2
18 XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
Trang 26Bài 5: Chương trình ñiều khiển hiển thị số 1234 trên bốn LED (LED4 ñược nối với Port0, LED5 ñược nối với
Port1, LED6 ñược nối với Port2 và LED7 ñược nối với Port3)
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển
BEGIN XUẤT MÃ CỦA SỐ 4 RA PORT (P0) = 99H - ðƠN VỊ B5
END
XUẤT MÃ CỦA SỐ 3 RA PORT (P1) = B0H - CHỤC XUẤT MÃ CỦA SỐ 2 RA PORT (P2) = A4H - TRĂM XUẤT MÃ CỦA SỐ 1 RA PORT (P3) = F9H - NGÀN
;***************************************************
;CHUONG TRINH DIEU KHIEN HIEN THI SO 1234 TREN LED 7 DOAN
;***************************************************
;***************************************************
ORG 00H
MAIN:
Trang 27Bà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 (LED4 ñược nối với Port0,
LED5 ñược nối với Port1, LED6 ñược nối với Port2 và LED7 ñược nối với Port3)
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 5
1.2 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 5
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển
BEGIN NẠP ðỊA CHỈ VÙNG MÃ 7 ðOẠN (DPTR) = CODEDISP B6
NẠP GIÁ TRỊ BẮT ðẦU (R0) = 00H - ðƠN VỊ (R1) = 00H - CHỤC (R2) = 00H - TRĂM (R3) = 00H - NGÀN DISP:
MAIN:
NẠP DỮ LIỆU HIỂN THỊ (A) = (R0) - ðƠN VỊ GIẢI MÃ DỮ LIỆU HIỂN THỊ (A) = (@A+DPTR) - ðƠN VỊ
XUẤT MÃ DỮ LIỆU RA PORT (P1) = (A) - CHỤC
GỌI CTC TẠO TRỄ DELAY500MS
TĂNG GIÁ TRỊ CỦA DỮ LIỆU (R0) = (R0) + 1 - ðƠN VỊ
GIÁ TRỊ ≠ 10 (0AH) (CHƯA ðẾM XONG; ≤ 9)
ð
S NẠP DỮ LIỆU HIỂN THỊ
(A) = (R1) - CHỤC GIẢI MÃ DỮ LIỆU HIỂN THỊ (A) = (@A+DPTR) - CHỤC
XUẤT MÃ DỮ LIỆU RA PORT (P0) = (A) - ðƠN VỊ
KHỞI ðỘNG LẠI GIÁ TRỊ (R0) = 00H - ðƠN VỊ TĂNG GIÁ TRỊ CỦA DỮ LIỆU (R1) = (R1) + 1 - CHỤC
GIÁ TRỊ ≠ 10 (0AH) (CHƯA ðẾM XONG; ≤ 9)
ð
S
VÙNG DỮ LIỆU CODEDISP C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H
NẠP DỮ LIỆU HIỂN THỊ (A) = (R2) - TRĂM GIẢI MÃ DỮ LIỆU HIỂN THỊ (A) = (@A+DPTR) - TRĂM
XUẤT MÃ DỮ LIỆU RA PORT (P3) = (A) - NGÀN
NẠP DỮ LIỆU HIỂN THỊ (A) = (R3) - NGÀN GIẢI MÃ DỮ LIỆU HIỂN THỊ (A) = (@A+DPTR) - NGÀN
XUẤT MÃ DỮ LIỆU RA PORT (P2) = (A) - TRĂM
KHỞI ðỘNG LẠI GIÁ TRỊ (R1) = 00H - CHỤC TĂNG GIÁ TRỊ CỦA DỮ LIỆU (R2) = (R2) + 1 - TRĂM
GIÁ TRỊ ≠ 10 (0AH) (CHƯA ðẾM XONG; ≤ 9)
ð
S KHỞI ðỘNG LẠI GIÁ TRỊ (R2) = 00H - TRĂM TĂNG GIÁ TRỊ CỦA DỮ LIỆU (R3) = (R3) + 1 - NGÀN
GIÁ TRỊ ≠ 10 (0AH) (CHƯA ðẾM XONG; ≤ 9)
;***************************************************
ORG 00H
MAIN:
DISP:
MOVC A , @A+DPTR ;LAY MA HIEN THI
Trang 28Bà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 (LED4 ñược nối với Port0,
LED5 ñược nối với Port1, LED6 ñược nối với Port2 và LED7 ñược nối với Port3)
MOVC A , @A+DPTR ;LAY MA HIEN THI
MOVC A , @A+DPTR ;LAY MA HIEN THI
MOVC A , @A+DPTR ;LAY MA HIEN THI
LCALL DELAY500MS
• 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: Hãy viết chương trình ñiều khiển hiển thị ñếm số HEX từ 0000 lên FFFF trên bốn LED
• Bài 7: Hãy viết chương trình ñiều khiển hiển thị ñếm số HEX từ FFFF xuống 0000 trên bốn LED
• Bài 8: Hãy viết chương trình ñiều khiển hiển thị ñếm số HEX từ 0000 lên ABCD trên bốn LED
• Bài 9: Hãy viết chương trình ñiều khiển hiển thị ñếm số HEX từ ABCD xuống 0000 trên bốn LED
• Bài 10: 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 11: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình
Trang 29đa hợp bên ngồi)) Bài 1: Chương trình điều khiển hiển thị số 1 trên LED0 (LED0 được nối với Port0, tín hiệu SEL7 được nối với
P1.0)
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 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 4 nối J64 (PORT1) ở khối vi điều khiển với J1 (SEL IN1) ở khối LED 7 đoạn (chú ý là ta chỉ nối 4 bit thấp của J64 và J1 với nhau)
• 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
AD7 AD6 AD5 AD4 AD3 AD2 AD1
AD0 AD1 AD2 AD3
A B C D E F G
A B C D E F G
XTAL2 18
XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
MẠCH ĐIỀU KHIỂN LED 7 ĐOẠN
A
B 1
QB 12C
Trang 30ñ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 LED0 (LED0 ñược nối với Port0, tín hiệu SEL7 ñược nối với
;***************************************************
ORG 00H
MAIN:
Trang 31ñ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 LED0 (LED0 ñược nối với Port0, tín hiệu
SEL7 ñược nối với P1.0)
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 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 1
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển
• Cách 1:
XUẤT SỐ 0 RA PORT (P0) = 00H BEGIN
GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 1 RA PORT (P0) = 01H GỌI CTC TẠO TRỄ DELAY500MS
B2.1 MBI
XUẤT SỐ 2 RA PORT (P0) = 02H GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 3 RA PORT (P0) = 03H GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 4 RA PORT (P0) = 04H GỌI CTC TẠO TRỄ DELAY500MS
XUẤT SỐ 6 RA PORT (P0) = 06H GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 7 RA PORT (P0) = 07H GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 8 RA PORT (P0) = 08H GỌI CTC TẠO TRỄ DELAY500MS XUẤT SỐ 9 RA PORT (P0) = 09H GỌI CTC TẠO TRỄ DELAY500MS MAIN:
XUẤT SỐ 5 RA PORT (P0) = 05H GỌI CTC TẠO TRỄ DELAY500MS
XUẤT MÃ ðIỀU KHIỂN LED (P1) = 11111110B = FEH
Trang 32ñ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 LED0 (LED0 ñược nối với Port0, tín hiệu
SEL7 ñược nối với P1.0)
GỌI CTC TẠO TRỄ DELAY500MS
B2.2 MBI MAIN:
;***************************************************
ORG 00H
MAIN:
LOOP:
LCALL DELAY500MS
Trang 33ñ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 LED0 (LED0 ñược nối với Port0, tín hiệu
SEL7 ñược nối với P1.0)
• 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 34ñ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 (LED1, LED0 ñược nối với Port0; tín hiệu SEL0 và
SEL1 lần lượt ñược nối với P1.0 và 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 Sơ ñồ nguyên lý của hệ thống:
AD7
AD0
AD0
AD2 AD3 AD4 AD5
AD7 AD5 AD4 AD3 AD2
AD0
AD2 AD3
A B C D E F G
A
C D E F G
A B C D E F G
XTAL1 19
ALE 30
EA 31
PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
8 9
QA 13B
1
QB 12C
D
BI/RBO 4
QE 9RBI
5
QF 15LT
Trang 35ñ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 (LED1, LED0 ñược nối với Port0; tín hiệu SEL0 và
SEL1 lần lượt ñược nối với P1.0 và P1.1)
;***************************************************
;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN
;***************************************************
;***************************************************
ORG 00H
MAIN:
LCALL DELAYLED
Trang 36ñ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 (LED1, LED0 ñược nối với Port0; tín hiệu SEL0 và
SEL1 lần lượt ñược nối với P1.0 và P1.1)
• Cách 2:
BEGIN NẠP ðỊA CHỈ VÙNG MÃ (DPTR) = 100H
B3.2 MBI
NẠP SỐ LẦN QUÉT (2 LED) (R0) = 02H DISP:
MAIN:
NẠP OFFSET DỮ LIỆU HIỂN THỊ
(A) = (R1) LẤY MÃ DỮ LIỆU HIỂN THỊ (A) = (@A+DPTR) XUẤT MÃ DỮ LIỆU RA PORT (P0) = (A)
GỌI CTC TẠO TRỄ CHO 1 LED DELAYLED
TĂNG OFFSET CỦA DỮ LIỆU (R1) = (R1) + 1
ð
S VÙNG DỮ LIỆU CODEDISP – 100H
02H,01H VÙNG DỮ LIỆU CODESCAN – 110H
FEH,FDH
NẠP OFFSET CỦA DỮ LIỆU (R1) = 00H – CODEDISP (100H) NẠP OFFSET CỦA MÃ QUÉT (R2) = 10H – CODESCAN (110H) DISP1:
NẠP OFFSET MÃ QUÉT (A) = (R2) LẤY MÃ QUÉT (A) = (@A+DPTR) XUẤT MÃ QUÉT RA PORT (P1) = (A)
TẮT HIỂN THỊ - CHỐNG LEM (P1) = 11111111B = FFH
TĂNG OFFSET CỦA MÃ QUÉT (R2) = (R2) + 1 GIÃM SỐ LẦN QUÉT LED
SỐ LẦN QUÉT ≠ 0 (CHƯA QUÉT XONG)
DISP1:
MOVC A , @A+DPTR
MOVC A , @A+DPTR
LCALL DELAYLED
Trang 37ñ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 (LED1, LED0 ñược nối với Port0; tín hiệu SEL0 và
SEL1 lần lượt ñược nối với P1.0 và P1.1)
NẠP GIÁ TRỊ HÀNG ðƠN VỊ (60H) = 02H GỌI CTC QUÉT-HIỂN THỊ DISP7SEGMUL2
MAIN:
B3.3 MBI
CẤT TẠM GIÁ TRỊ CỦA ACC, R0 VÀO STACK
DISP7SEGMUL2
NAME: DISP7SEGMUL2 - QUÉT HIỂN THỊ 2 LED 7 ðOẠN.
INPUT: 61H, 60H = GIÁ TRỊ HIỂN THỊ (CHỤC/ðƠN VỊ).
OUTPUT: P0 = 7 ðOẠN LED / DP (MSB) - A (LSB).
P1 = QUÉT LED / LEFT (MSD) – RIGHT (LSD).
(R0) = 61H DISP:
XUẤT GIÁ TRỊ RA PORT (P0) = (@R0) XUẤT MÃ QUÉT RA PORT (P1) = (A) GỌI CTC TẠO TRỄ CHO 1 LED DELAYLED
LẤY ðỊA CHỈ NƠI CHỨA GIÁ TRỊ HIỂN THỊ KẾ TIẾP
(R0) = (R0) - 1
TẮT HIỂN THỊ - CHỐNG LEM (P1) = 11111111B = FFH
DỊCH MÃ QUÉT LED
RR A - QUÉT LED KẾ TIẾP
QUÉT LED ? (CHƯA QUÉT XONG)
;***************************************************
ORG 00H
Trang 38ñ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 (LED1, LED0 ñược nối với Port0; tín hiệu SEL0 và
SEL1 lần lượt ñược nối với P1.0 và P1.1)
MAIN:
LCALL DISP7SEGMUL2 ;QUET HIEN THI
;***************************************************
;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
;***************************************************
;***************************************************
DISP7SEGMUL2:
PUSH 00H
DISP:
LCALL DELAYLED
Trang 39ña 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 (LED1, LED0 ñược nối với
Port0; tín hiệu SEL0 và SEL1 lần lượt ñược nối với P1.0 và 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 Sơ ñồ nguyên lý của hệ thống:
• Sơ ñồ nguyên lý của hệ thống tương tự như Bài 3
1.3 Vẽ lưu ñồ giải thuật và viết chương trình ñiều khiển
NẠP GIÁ TRỊ BẮT ðẦU (60H) = 00H - ðƠN VỊ (61H) = 00H - CHỤC BEGIN
GỌI CTC DELAY VÀ QUÉT-HIỂN THỊ
DELAY_SCAN
MAIN:
B4 MBI
TĂNG GIÁ TRỊ HÀNG ðƠN VỊ (60H) = (60H) + 1
ðƠN VỊ ≠ 10 (0AH) (CHƯA TĂNG XONG; ≤ 9)
ð
S NẠP LẠI GIÁ TRỊ HÀNG ðƠN VỊ (60H) = 00H MP1:
TĂNG GIÁ TRỊ HÀNG CHỤC (61H) = (61H) + 1
CHỤC ≠ 10 (0AH) (CHƯA TĂNG XONG; ≤ 9)
ð
S
DELAY_SCAN CẤT TẠM GIÁ TRỊ CỦA R0 VÀO
STACK NẠP GIÁ TRỊ VÒNG LẶP (R0) = 50
LOOP2:
GIÃM SỐ LẦN LẶP
SỐ LẦN LẶP ≠ 0 (CHƯA LẶP XONG)
ð
S LẤY LẠI GIÁ TRỊ CHO R0 TỪ
STACK RET
KHỞI ðỘNG TIMER (TIMER 0, MODE 1) (TMOD) = 01H
NẠP GIÁ TRỊ CHO TIMER (T DELAY = 5000.T MÁY ) (TH0/TL0) = -5000 = EC78H
CHƯA ðỦ THỜI GIAN (TF0) = 0
SCAN:
GỌI CTC QUÉT-HIỂN THỊ DISP7SEGMUL2
;***************************************************
ORG 00H
MAIN:
MP1:
LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI
MOV A ,60H
CJNE A ,#10,MP1 ;KIEM TRA HANG DON VI > 9
Trang 40ña 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 (LED1, LED0 ñược nối với
Port0; tín hiệu SEL0 và SEL1 lần lượt ñược nối với P1.0 và P1.1)
;***************************************************
;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)
;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM
;***************************************************
;***************************************************
DISP7SEGMUL2:
PUSH 00H
DISP:
LCALL DELAYLED
LCALL DISP7SEGMUL2 ;GOI CTC QUET HIEN THI
• 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