Em vừa làm cái mach điều khiển led đơn . dùng 89c51. port 2 nối với 8 led thông qua điện trở 220 Ôm lên nguồn 5 v ,các bác viết cho em cái code mẫu. kiểu sáng dần ,tắt dần. dùng ngôn ngữ asm nha. Em cảm ơn trước .

ORG 0000H
MAIN: MOV P2,#00H ;xóa Port2
L1: SETB C ;Bit C=1
LCALL DELAY ; Trì hoãn 1s
MOV A,P2 ; Di chuyển P2 vào thanh ghi a
RRC A ; Xoay phải thanh ghi a cùng cờ C
MOV P2,A ; Di chuyển nội dung thanh ghi a vào P2
JNC L1 ; Nhảy đến L1 nếu cờ C=0
; Tắt dần
L2: CLR C ; C=0
LCALL DELAY ; Trì hoãn 1s
MOV A,P2 ; Di chuyển P2 vào thanh ghi a
RRC A ; Xoay phai thanh ghi a
MOV P2,A ; Di chuyển dữ liêu thanh ghi a vào P2
JC L2 ; Nhảy đến L2 nếu bít c=1
SJMP MAIN ; làm lại từ
DELAY: MOV R1,#20 ; 20x50us=1s
L3: MOV TMOD,#01H ; Chế độ timer 16bit
MOV TH0,#HIGH(-50000) ; 50us
MOV TL0,#LOW(-50000)
SETB TR0 ; timer bắt đàu đếm
JNB TF0,$ ; nhảy tai chỗ nếu TF0=1
CLR TR0 ; TR0=0 nhừng đếm
CLR TF0 ; TF0=0 cho lần tràn tiếp
DJNZ R1,L3 ; Giam R1 xuống 1 và nhảy tới L3 nêu L3>0
RET
END
Comment