Trước hết chip giới thiệu về led đơn:
Đây là hình ảnh led đơn ngoài thực tế, còn về cấu tạo chân để lập trình thì cơ bản nó như là 1 con diode có phân cực Anode (A) và Cathode (K). Khi cấp điện áp + vào chân A và điện áp - vào chân K led sẽ sáng. Nếu dùng điện áp 5V ( điện áp cơ bản VDDK 8051) đưa vào led thì cần có 1 điện trở hạn dòng không led sẽ cháy. Mỗi loại led có điện áp và dòng điện chịu đựng khác nhau ( tìm hiểu thêm bên ngoài)
Ngôn ngữ Asembly là ngôn ngữ gần với ic hơn, không như ngôn ngữ C nên bạn nào muốn hiểu hơn về code có thể tìm thêm tài liệu Vi Điều Khiển - Nguyễn Tăng Cường
Có 2 cách mắc led đơn vào VĐK để lập trình:
- Cách mắc Anode chung: Có nghĩa là các chân Anode led được mắc lên dương nguồn 5V còn các chân Cathode led được nối với VĐK ( còn gọi là cách mắc tích cực âm ) Lập trình mức 0 Led sáng mức 1 led tắt.
- Cách mắc Cathode chung: Thì ngược lại với cách mắc Anode chung Mức 1 sáng 0 tắt.
+ Phương pháp Lệnh Mov:
ORG 0000H
MAIN:; Bat dau chuong trinh chinh
CALL CTA;Goi chuong trinh con sang dan tu tren xuong duoi
CALL CTB;Goi chuong trinh con sang dan tu duoi len tren
JMP MAIN
;-----------chuong trinh con sang dan tu tren xuong duoi--------------------------
CTA:
MOV P2,#00000000B;tat ca cac bit led deu tat
CALL DELAY
MOV P2,#00000001B;bit led P2.0 sang
CALL DELAY
MOV P2,#00000011B;bit led P2.0-P2.1 sang
CALL DELAY
MOV P2,#00000111B;bit led P2.0-P2.1-P2.2sang
CALL DELAY
MOV P2,#00001111B;bit led P2.0-P2.1-P2.2-P2.3 sang
DELAY
MOV P2,#00011111B;bit led P2.0-P2.1-P2.2-P2.3-P2.4 sang
CALL DELAY
MOV P2,#00111111B;bit led P2.0-P2.1-P2.2-P2.3-P2.4-P2.5 sang
CALL DELAY
MOV P2,#01111111B;bit led P2.0-P2.1-P2.2-P2.3-P2.4-P2.5-P2.6 sang
CALL DELAY
MOV P2,#11111111B;tat ca cac bit led deu sang
CALL DELAY
RET
;-------------chuong trinh con sang dan tu duoi len tren-------------------------
CTB:
MOV P2,#00000000B; tat ca cac bit led deu tat
CALL DELAY; chuong trinh tao thoi gian tre
MOV P2,#10000000B;bit P2.7 sang
CALL DELAY
MOV P2,#11000000B;bit P2.7 – P2.6 sang
CALL DELAY
MOV P2,#11100000B; bit P2.7 - P2.6 – P2.5 sang
CALL DELAY
MOV P2,#11110000B
CALL DELAY
MOV P2,#11111000B
CALL DELAY
MOV P2,#11111100B
CALL DELAY
MOV P2,#11111110B
CALL DELAY
MOV P2,#11111111B
CALL DELAY
RET
;-----------------------Chuong trinh tao thoi gian tre---------------
DELAY:
MOV R0,#200; gia tri vong lap thu 2
LOOP:; nhan lap vong lap 2
MOV R1,#210; 210 gia tri vong lap thu nhat
LOOP1:; nhan lap vong lap 1
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP
RET
END
+ Phương pháp Lệnh Quay:
ORG 0000H
MAIN:; Bat dau chuong trinh chinh
CALL CTA;Goi chuong trinh con sang dan tu tren xuong duoi
CALL CTB;Goi chuong trinh con sang dan tu duoi len tren
JMP MAIN
;-----------chuong trinh con sang dan tu tren xuong duoi--------------------------
CTA:
MOV A,#00H;Thanh ghi A la 00000000
LAP:;Nhan cua vong lap
SETB C;Thit lap co nho C len 1
RLC A;Quay trai co C co nho
MOV P2,A;Dua gia tri vao P2
CALL DELAY;Tao thoi gian tre de thay hieu ung
CJNE A,#0FFH,LAP;Kiem tra neu chua bang 11111111 thi nhay den nhan LAP
RET
;-------------chuong trinh con sang dan tu duoi len tren-------------------------
CTB:
MOV A,#00H; dua gia tri 00000000 vao thanh ghi tich luy A
LAP1: ; nhan vong lap
SETB C ; Thiet lap co nho C len 1
RRC A ; quay phai thanh ghi A co co nho
MOV P2,A ; chuyen gia tri thanh ghi A vua quay xuat ra Port 2
CALL DELAY;goi chuong trinh tre de thay hieu ung led
CJNE A,#0FFH,LAP1;Kiem tra thanh ghi A da bang 11111111 chua, neu chua bang thin hay den LAP1
RET
;----Chuong trinh tao thoi gian tre-----
DELAY:
MOV R0,#200
LOOP:
MOV R1,#210
LOOP1:
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP
RET
END
+ Phương pháp lấy bảng mã:
ORG 00H
MAIN:
CALL CTA; sang dan qua trai
CALL CTB; sang dan qua phai
JMP MAIN
;*****************************************
CTA:
MOV R0,#00H ;Bien dem so trang thai hien thi
MOV DPTR,#MALED ;Nap di chi vung du lieu
LABEL:
MOV A,R0 ; Chuyen gia tri thanh ghi R0 vao thanh ghi A
MOVC A,@A+DPTR ; Lay du lieu tu vung nho
MOV P2,A ;Hien thi
CALL DELAY
INC R0 ; Lay du lieu ke tiep
CJNE R0,#9,LABEL ; Kiem tra so du trang thai hien thi
RET
;*****************************************
CTB:
MOV R0,#00H
MOV DPTR,#MALED1
LABEL1:
MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
INC R0
CJNE R0,#9,LABEL1
RET
;******************************************
MALED: DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH; co 9 ma led CTA
;00000000b,00000001b,00000011b,………
MALED1: DB 00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH; 9 ma led CTB
;----Chuong trinh tao thoi gian tre-----
DELAY:
MOV R3,#200
LOOP:
MOV R2,#250
LOOP1:
NOP
DJNZ R2,LOOP1
DJNZ R3,LOOP
RET
END
Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút hiện ra ở góc phải phía trên, nhấn vào để đến trang download
II. Lập Trình mở rộng led đơn với IC 74HC595
ORG 0000H
MAIN:
CALL CTG
JMP MAIN
CTA:;SANG DAN - TAT DAN
MOV R4,#8
LAP:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP
MOV R4,#8
LAP1:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP1
RET
CTB:;SANG DAN
MOV R4,#8
LAP2:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP2
MOV R4,#8
LAP3:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
DJNZ R4,LAP3
CLR P2.2
NOP
SETB P2.2
RET
CTC:; SANG DUOI
; DAY BIT 1 VÀO ROI XUAT RA
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
; XUAT 7 LAN BIT 0 RA
MOV R4,#7
LAP4:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP4
RET
CTD:; NHAP NHAY
MOV R5,#5
QUAY:
MOV R4,#8
LAP5:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
DJNZ R4,LAP5
CLR P2.2
NOP
SETB P2.2
CALL DELAY
MOV R4,#8
LAP6:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
DJNZ R4,LAP6
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R5,QUAY
RET
CTE:; SANG CHAN LE
MOV R4,#4
LAP7:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP7
MOV R4,#4
LAP8:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP8
RET
CTF:; SANG DON
MOV DPTR,#MALED
MOV R5,#0
NHAY:
MOV A,R5
MOVC A,@A+DPTR
MOV R6,#8
LAPXC:
RLC A
JC NAP1
JNC NAP0
NAP1:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CALL DELAY
JMP EXIT
NAP0:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
CALL DELAY
EXIT:
DJNZ R6,LAPXC
CLR P2.2
NOP
SETB P2.2
INC DPTR
CJNE R5,#8,NHAY
RET
MALED: DB 10000000B,11000000B,11100000B,11110000B,11111000B,11111100B,11111110B,11111111B
CTG:
MOV A,#10000000B
CALL CTGG
MOV A,#11000000B
CALL CTGG
MOV A,#11100000B
CALL CTGG
MOV A,#11110000B
CALL CTGG
MOV A,#11111000B
CALL CTGG
MOV A,#11111100B
CALL CTGG
MOV A,#11111110B
CALL CTGG
MOV A,#11111111B
CALL CTGG
RET
CTGG:
MOV R5,#8
LOOPXC:
RLC A
JC NAP11
CLR P2.1
CLR P2.0
NOP
SETB P2.0
JMP TT
NAP11:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CALL DELAY
TT:
DJNZ R5,LOOPXC
CLR P2.2
NOP
SETB P2.2
RET
DELAY:
MOV R0,#100
LOOP:
MOV R1,100
LOOP1:
NOP
DJNZ R1,LOOP1
END
II. Lập Trình mở rộng led đơn với IC 74HC595
ORG 0000H
MAIN:
CALL CTG
JMP MAIN
CTA:;SANG DAN - TAT DAN
MOV R4,#8
LAP:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP
MOV R4,#8
LAP1:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP1
RET
CTB:;SANG DAN
MOV R4,#8
LAP2:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP2
MOV R4,#8
LAP3:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
DJNZ R4,LAP3
CLR P2.2
NOP
SETB P2.2
RET
CTC:; SANG DUOI
; DAY BIT 1 VÀO ROI XUAT RA
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
; XUAT 7 LAN BIT 0 RA
MOV R4,#7
LAP4:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP4
RET
CTD:; NHAP NHAY
MOV R5,#5
QUAY:
MOV R4,#8
LAP5:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
DJNZ R4,LAP5
CLR P2.2
NOP
SETB P2.2
CALL DELAY
MOV R4,#8
LAP6:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
DJNZ R4,LAP6
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R5,QUAY
RET
CTE:; SANG CHAN LE
MOV R4,#4
LAP7:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP7
MOV R4,#4
LAP8:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CLR P2.2
NOP
SETB P2.2
CALL DELAY
DJNZ R4,LAP8
RET
CTF:; SANG DON
MOV DPTR,#MALED
MOV R5,#0
NHAY:
MOV A,R5
MOVC A,@A+DPTR
MOV R6,#8
LAPXC:
RLC A
JC NAP1
JNC NAP0
NAP1:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CALL DELAY
JMP EXIT
NAP0:
CLR P2.1
CLR P2.0
NOP
SETB P2.0
CALL DELAY
EXIT:
DJNZ R6,LAPXC
CLR P2.2
NOP
SETB P2.2
INC DPTR
CJNE R5,#8,NHAY
RET
MALED: DB 10000000B,11000000B,11100000B,11110000B,11111000B,11111100B,11111110B,11111111B
CTG:
MOV A,#10000000B
CALL CTGG
MOV A,#11000000B
CALL CTGG
MOV A,#11100000B
CALL CTGG
MOV A,#11110000B
CALL CTGG
MOV A,#11111000B
CALL CTGG
MOV A,#11111100B
CALL CTGG
MOV A,#11111110B
CALL CTGG
MOV A,#11111111B
CALL CTGG
RET
CTGG:
MOV R5,#8
LOOPXC:
RLC A
JC NAP11
CLR P2.1
CLR P2.0
NOP
SETB P2.0
JMP TT
NAP11:
SETB P2.1
CLR P2.0
NOP
SETB P2.0
CALL DELAY
TT:
DJNZ R5,LOOPXC
CLR P2.2
NOP
SETB P2.2
RET
DELAY:
MOV R0,#100
LOOP:
MOV R1,100
LOOP1:
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP
RETEND
Không có nhận xét nào:
Đăng nhận xét