You are on page 1of 6

Nhấp nháy 1 LED

Đâ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 
       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
 
Nhấp nháy 2 đèn LED xen kẽ
Mạch này có thể nhấp nháy hai đèn LED xen kẽ. Chân P1.0 và P1.1 được chỉ định làm
đầu ra. Khi P1.0 lên mức cao, P1.0 xuống mức thấp và ngược lại thì LED tương ứng
với chân đó sẽ sáng và tắt, cả 2 led sẽ tắt sáng xen kẽ nhau. 2 LED được kết nối trực
tiếp với 8051 thông qua các điện trở để giới hạn dòng điện (R1 & R2). Sơ đồ mạch như
dưới đây.

 
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:

MOV R1, #12

DELAY1:

MOV R2, #200

DELAY2:

MOV R3, #200

DJNZ R3, $

DJNZ R2, DELAY2

DJNZ R1, DELAY1


RET

END

Code 2:ORG 00H

MOV A, #11111110B

MAIN:

MOV P1, A

RL A

ACALL DELAY

SJMP MAIN

DELAY:

MOV R1, #6

DELAY1:

MOV R2, #200

DELAY2:

MOV R3, #200

DJNZ R3, $

DJNZ R2, DELAY2

DJNZ R1, DELAY1

RET

END

Code 3: ORG 00H

MOV A, #01111111B

MAIN:
MOV P1, A

RR A

ACALL DELAY

SJMP MAIN

DELAY:

MOV R1, #6

DELAY1:

MOV R2, #200

DELAY2:

MOV R3, #200

DJNZ R3, $

DJNZ R2, DELAY2

DJNZ R1, DELAY1

RET

END

You might also like