Chào các bạn! Hôm nay chip sẽ hướng dẫn các bạn lập trình IC 89xx kết hợp led đơn bằng ngôn ngữ Asembly trình biên dịch Pinnale 52.
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
( FiLe code + Mô phỏng)Pass: chipkool
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
DJNZ R0,LOOP
RETEND
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
Chúc các bạn thành công!!
Nguồn: Blog Điện Tử | Tin Học - Chia sẻ kiến thức - Kết nối đam mê điện tử
Đăng nhận xét