Professional Documents
Culture Documents
Đây là một trong những mạch đơn giản nhất sử dụng 8051. Bộ vi điều khiển được sử
dụng ở đây là AT89S51. Trong mạch, nút nhấn S1, tụ điện C3 và điện trở R3 tạo thành
mạch (Reset). Khi nhấn S1, điện áp ở chân reset (chân 9) sẽ tăng cao và reset chip.
C1, C2 và thạch anh X1 là bộ tạo dao động trên chip. P1.0 (chân 1) được chọn làm
chân đầu ra. Khi P1.0 lên mức cao, transistor Q1 sẽ dẫn và đèn LED BẬT. Khi P1.0
xuống thấp, transistor Q1 sẽ ngắt và đèn LED tắt. Ở mạch này transistor hoạt động như
1 công tắc có chức năng ngắt dẫn. Bạn cũng có kết nối trực tiếp LED với chân P1.0 với
điện trở giới hạn dòng nối tiếp (~ 1K) nếu không muốn sử dụng transistor. Thời gian mà
P1.0 lên mức cao hoặc thấp (khoảng thời gian chớp, tắt của đèn LED) được xác định
bởi chương trình. Dưới đây là sơ đồ mạch nhấp nháy 1 đèn LED.
Chương trình / Code
START: CPL P1.0
ACALL WAIT
CPL P1.0
CPL P1.1
ACALL WAIT
CPL P1.1
SJMP START
WAIT: MOV R4,#05H
WAIT1: MOV R3,#00H
WAIT2: MOV R2,#00H
WAIT3: DJNZ R2,WAIT3
DJNZ R3,WAIT2
DJNZ R4,WAIT1
RET
1. Nhấp nháy 1 led đơn:
Led sáng 1s, tắt 1s
2. Nhấp nháy led cổng P1/P2/P3/P0 (tùy sv chọn cổng)
Nháy led ở các bit chẵn 1s, nháy led ở các bit lẻ sáng 1s rồi tuần hoàn
Nháy led sáng lần lượt 0.5s từ led ở cổng P1.0 đến led ở cổng P1.7
Nháy led sáng lần lượt 0.5s từ led ở cổng P1.7 đến led ở cổng P1.0
Hướng dẫn viết code: sử dụng thêm thanh ghi A, lưu dữ liệu cần thiết vào t
hanh ghi A cho thanh ghi A dịch trái hoặc dịch phải, sau đó đưa dữ liệu và
o cổng P1.
Code 1: ORG 00H
MOV A, #01010101B
MAIN:
MOV P1, A
RR A
ACALL DELAY
SJMP MAIN
DELAY:
DELAY1:
DELAY2:
DJNZ R3, $
END
MOV A, #11111110B
MAIN:
MOV P1, A
RL A
ACALL DELAY
SJMP MAIN
DELAY:
MOV R1, #6
DELAY1:
DELAY2:
DJNZ R3, $
RET
END
MOV A, #01111111B
MAIN:
MOV P1, A
RR A
ACALL DELAY
SJMP MAIN
DELAY:
MOV R1, #6
DELAY1:
DELAY2:
DJNZ R3, $
RET
END