Professional Documents
Culture Documents
THÍ NGHIỆM 1
Yêu cầu
Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nối đến P1.0 và hiển
thị ra led được nối tại chân P3.0 (bit thứ 0 của led thanh BL202).
Chương trình:
ORG 2000H
MOV P3.0, C
SJMP LAP
END
Kiểm tra
Biên dịch và thực thi chương trình để kiểm tra kết quả thực hiện.
- Kết quả thực hiện: Khi nhấn Switch nối với P1.0, đèn của Port 1.0 và 3.0 đều sáng.
Thử giải thích tại sao có đến 2 led cùng bị tác động khi nhấn hoặc thả nút.
- Giải thích: LED nối với P3.0 sáng là do code được nạp từ chương trình , còn LED tại
P1.0 sáng là do 2 đầu đều được nối : đầu (-) nối đất , đầu (+) nối với VCC.
Tổng kết xem các bit nào của 2 port có thể được dùng trong thí nghiệm trên và giải thích tại
sao.
- Các bit từ 0 đến 7 của 2 port có thể được dùng vì đây là các cổng nhập xuất nhập 8 bit
tính từ bit 0 đến 7.
BÀI TN 1
LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN
THÍ NGHIỆM 2
ORG 2000H
MAIN:
CPL P3.0
JMP MAIN
END
Kiểm tra
Biên dịch, thực thi và kiểm tra hoạt động của chương trình bằng cách đo dạng sóng trên
oscilloscope.
Câu hỏi
Theo lý thuyết, dạng sóng tạo ra trên chân P3.0 sẽ như thế nào?
Vẽ dạng sóng đo được trên oscilloscope và so sánh với kết qua lý thuyết.
Tần số tối đa một xung tuần hoàn có chu kỳ nhiệm vụ 50% có thể đạt được là bao nhiêu?
- Lệnh JMP tốn 2Mcs, CPL tốn 1Mc => 1 chu kỳ mất 6Mcs => f max=153,846 Khz( Với tần
số thạch anh là 11.059Mhz)
BÀI TN 1
LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN
THÍ NGHIỆM 3
Yêu cầu
Viết chương trình tạo xung vuông 1 Khz, chu kỳ nhiệm vụ 50% trên P3.0
Chương trình:
ORG 2000H
DJNZ R7, $
SJMP LAP
END
Kiểm tra
Biên dịch, thực thi và kiểm tra chương trình bằng cách sử dụng oscilloscope để kiểm tra.
Câu hỏi
Để tạo xung 1Khz, các vòng trễ tạo ra như thế nào. Tính toán chính xác dựa trên chương
trình đã viết
- Các vòng trễ được tạo ra bằng cách sử dụng câu lệnh lặp.
- Tính toán: xung 1Khz có chu kỳ là 1000 µs; nhiệm vụ 50% nên thời gian xung ở mức 1=
thời gian ở mức 0= 500 µs. Sử dụng một lệnh DJNZ mất 2 MCs= 2 × 12/11.0592= 2.17
µs => Lặp lại 500/2.17 = 230 lần.
BÀI TN 1
LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN
Sai số nhỏ nhất có thể đạt được so với yêu cầu là bao nhiêu?
HD: Tính sai số dựa vào tần số thạch anh là 11.0592 Mhz.
THÍ NGHIỆM 4
Yêu cầu
Viết chương trình con Delay1sIns và dùng chương trình con này để chớp/tắt LED đơn gắn
vào P1.0 sau mỗi khoảng thời gian 1s.
Chương trình:
ORG 2000H
LCALL Delay1sIns
SJMP LAP
Delay1sIns:
MOV R5,#8
DJNZ R7, $
DJNZ R6, L2
DJNZ R5,L1
RET
END
Kiểm tra
Biên dịch, thực thi và kiểm tra chương trình bằng cách quan sát LED đơn.
BÀI TN 1
LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN
Câu hỏi
- Thời gian 1s được tạo ra bởi vòng lặp: Sử dụng 3 vòng lặp lòng vào nhau mất xấp xỉ
2×m×n×k chu kỳ máy( MCs) = 2×m×n×k µs. Tìm được m=8, n=250, k=250.
THÍ NGHIỆM 5
Yêu cầu
Viết chương trình tạo hiệu ứng quay LED: các LED đơn trên BARLED1 sáng lần lượt từ trái
sang phải sau thời gian 1s và lặp lại. Sử dụng chương trình con 1s đã viết ở trên.
Chương trình:
ORG 2000H
MOV A, #01111111b
LAP: MOV P1, A
LCALL Delay1sIns
RR A
SJMP LAP
Delay1sIns:
MOV R5,#8
L1: MOV R6,#250
L2: MOV R7,#250
DJNZ R7, $
DJNZ R6, L2
DJNZ R5,L1
RET
END
BÀI TN 1
LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN
Kiểm tra
Biên dịch, thực thi và kiểm tra chương trình bằng cách quan sát hiệu ứng trên bar led.
Câu hỏi
Led ngoài cùng bên trái kết nối đến MSB (most significant bit) hay LSB (less significant bit)
của port 1?
- Led ngoài cùng bên trái kết nối đến MSB (most significant bit) của port 1.