Chủ Nhật, 26 tháng 10, 2014

Bài 1 - Lập trình led đơn

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.




Mạch mô phỏng điều khiển 8 led đơn tích cực dương ( chung âm ) nối port 2:

Code chương trình:


+ 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
DJNZ R0,LOOP
RET

END


Không có nhận xét nào:

Đăng nhận xét