Chia sẻ Code lập trình Vi Điều Khiển 8051 cơ bản ASM

ChipKool

Thạc sỹ
#1
Chip chia sẻ những code lập trình asembly đơn giản này các bạn xem sẽ dễ hiểu..có điều gì thắc mắc các bạn cứ hỏi nhé. Simple is the best

nguyen lt.png
I.PHẦN LED ĐƠN LỆNH MOV

1.Chương trình led sáng nhấp nháy port 1.
Mã:
ORG 00H
MAIN:
MOV P1,#00H;led tắt hết
CALL DELAY
MOV P1,#0FFH;led sáng hết
CALL DELAY
JMP MAIN
DELAY:;CT tạo trễ
MOV R0,#50
LAP:
NOP
NOP
DJNZ R0,LAP
RET
END
2.Chương trình Led sáng dần port 1

Mã:
ORG 00H
MAIN:
MOV P1,#00000000B;Trạng thái led tắt hết
CALL DELAY
MOV P1,#00000001B;Led p1.0 sáng
CALL DELAY
MOV P1,#00000011B;led p1.0,p1.1 sáng
CALL DELAY
MOV P1,#00000111B;led p1.0,p1.1,p1.2 sáng
CALL DELAY
MOV P1,#00001111B
CALL DELAY
MOV P1,#00011111B
CALL DELAY
MOV P1,#00111111B
CALL DELAY
MOV P1,#01111111B
CALL DELAY
MOV P1,#11111111B
CALL DELAY
JMP MAIN
DELAY:
MOV R0,#200
LAP:
MOV R1,#200
LAP2:
NOP
NOP
NOP
DJNZ R1,LAP2
DJNZ R0,LAP
RET
END
3.Chương trình led tắt dần port 1

Mã:
ORG 00H
MAIN:
MOV P1,#11111111B;Trạng thái led sáng hết
CALL DELAY
MOV P1,#11111110B;Led p1.0 tắt
CALL DELAY
MOV P1,#11111100B;led p1.0 tắt,p1.1 tắt
CALL DELAY
MOV P1,#11111000B
CALL DELAY
MOV P1,#11110000B
CALL DELAY
MOV P1,#11100000B
CALL DELAY
MOV P1,#11000000B
CALL DELAY
MOV P1,#10000000B
CALL DELAY
MOV P1,#00000000B
CALL DELAY
JMP MAIN
DELAY:
MOV R0,#200
LAP:
MOV R1,#200
LAP2:
NOP
NOP
NOP
DJNZ R1,LAP2
DJNZ R0,LAP
RET
END
4.Sáng dần tắt dần theo chiều ngược lại:

Mã:
ORG 00H
 
MAIN:
CALL CON1
CALL CON2
JMP MAIN
CON1:;SANG DAN
MOV P1,#00000000B
CALL DELAY
MOV P1,#10000000B
CALL DELAY
MOV P1,#11000000B
CALL DELAY
MOV P1,#11100000B
CALL DELAY
MOV P1,#11110000B
CALL DELAY
MOV P1,#11111000B
CALL DELAY
MOV P1,#11111100B
CALL DELAY
MOV P1,#11111110B
CALL DELAY
MOV P1,#11111111B
CALL DELAY
RET
 
CON2:;TAT DAN
MOV P1,#11111111B
CALL DELAY
MOV P1,#01111111B
CALL DELAY
MOV P1,#00111111B
CALL DELAY
MOV P1,#00011111B
CALL DELAY
MOV P1,#00001111B
CALL DELAY
MOV P1,#00000111B
CALL DELAY
MOV P1,#00000011B
CALL DELAY
MOV P1,#00000001B
CALL DELAY
MOV P1,#00000000B
CALL DELAY
RET
 
DELAY:
MOV R0,#200
LAP:
MOV R1,#200
LAP2:
NOP
NOP
NOP
DJNZ R1,LAP2
DJNZ R0,LAP
RET
END
II. PHẦN LED ĐƠN LỆNH QUAY.
lenh quay.png
Mã:
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
III. LED ĐƠN LẪY BẢNG MÃ

lenh quay.png
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
IV. DÙNG IC 74HC595
Mo phong 595.png
Mã:
ORG 00H
MAIN:
CALL CTA;goi chuong trinh con
CALL CTB
CALL CTC
JMP MAIN
 
CTA:
;sang dan led
MOV R1,#8;quet 8 led
LAP:
SETB P2.0;thiet lap bit chan data len 1 cho led sang
CALL DELAY
SETB P2.1;tao xung mo cho bit vao chan SH
CALL DELAY
CLR  P2.1;tao xung dong khong cho bit vao chan SH
CALL DELAY
SETB P2.2;tao xung mo ST cho bit xuat ra cac chan led
CALL DELAY
CLR  P2.2;tao xung dong ST khong cho bit xuat ra cac chan led
CALL DELAY
DJNZ R1,LAP
 
;tat dan led
MOV R1,#8
LAP1:
CLR P2.0;thiet lap bit chan data len 1 cho led sang
CALL DELAY
SETB P2.1
CALL DELAY
CLR  P2.1
CALL DELAY
SETB P2.2
CALL DELAY
CLR  P2.2
CALL DELAY
DJNZ R1,LAP1
RET
 
CTB:;sang 1 led chay
MOV R4,#3
NHAY:
SETB P2.0
CALL DELAY
SETB P2.1
CALL DELAY
CLR P2.1
SETB P2.2
CALL DELAY
CLR P2.2
CALL DELAY
MOV R1,#7
LAP2:
CLR P2.0
SETB P2.1
CLR P2.1
SETB P2.2
CLR P2.2
CALL DELAY
CALL DELAY
DJNZ R1,LAP2
DJNZ R4,NHAY
RET
 
CTC:;sang nhap nhay led
MOV R4,#3
NHAY1:
MOV R1,#8
LAP3:
SETB P2.0
SETB P2.1
CLR P2.1
DJNZ R1,LAP3
SETB P2.2
CLR P2.2
CALL DELAY
 
MOV R1,#8
LAP4:
CLR P2.0
SETB P2.1
CLR P2.1
DJNZ R1,LAP4
SETB P2.2
CLR P2.2
CALL DELAY
DJNZ R4,NHAY1
RET
 
 
 
DELAY:;chuong trinh tao tre
MOV R0,#200
LOOP:
MOV R2,#200
LOOP1:
DJNZ R2,LOOP1
DJNZ R0,LOOP
RET
END
Chúc các bạn thành công?

 

ChipKool

Thạc sỹ
#2
LED 7 THANH

1. phương pháp thủ công và lấy mã:


7 thanh chipkool.png

Mã:
ORG 0000H
 
MAIN:
 
MOV R0,#00; khoi tao bien dem
 
LAP:
 
CALL CTHT; goi chuong trinh hien thi
 
INC R0; tang bien dem
 
CJNE R0,#10,LAP; kiem tra đã đếm đến 9
 
JMP MAIN
 
 
 
CTHT:; Chuong trinh hien thi led 7 đoan
 
MOV R7,#1; vong lap quet
 
QUAY:
 
MOV A,R0
 
MOV B,#10
 
DIV AB
 
MOV DPTR,#MALED
 
MOVC A,@A+DPTR
 
MOV P2,A
 
CALL DELAY
 
MOV A,B
 
MOVC A,@A+DPTR
 
MOV P3,A
 
CALL DELAY
 
DJNZ R7,QUAY
 
RET
 
 
 
MALED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
 
 
 
DELAY:
 
MOV R4,#150
 
LOOP:
 
MOV R5,#200
 
LOOP1:
 
DJNZ R5,LOOP1
 
DJNZ R4,LOOP
 
RET
 
END

2. Phương pháp quét led:

7 thanh quet led chipkool.png

Mã:
ORG 00H
 
MAIN:
 
MOV R0,#0        ; GIA TRI BAN DAU   
 
LAP:
 
INC R0        ; TANG BIEN DEM
 
CALL HT
 
CJNE R0,#100,LAP ; GIOI HAN CUA GIA TRI
 
JMP MAIN                               
 
 
 
HT:            ; CHUONG TRINH HIEN THI LED 7 DOAN
 
MOV DPTR,#MALED ; GAN MA CHO THANH GHI CONTROL
 
MOV R7,#50        ; SO LAN QUET
 
QUET:
 
MOV A,R0
 
MOV B,#10
 
DIV AB        ; CHIA LAY RA PHAN CHUC
 
MOVC A,@A+DPTR ; LAY MA LED HANG CHUC
 
MOV P2,A        ; XUAT DU LIEU RA PORT
 
SETB P3.0        ; CHO PHEP HIEN THI
 
CALL DELAY
 
CLR P3.0
 
 
 
MOV A,B        ; LAY GIA TRI HANG DON VI
 
MOVC A,@A+DPTR    ;LAY MA LED HANG DON VI
 
MOV P2,A        ; XUAT DU LIEU   
 
SETB P3.1        ; CHO PHEP HIEN THI RA LED
 
CALL DELAY
 
CLR P3.1
 
 
 
DJNZ R7,QUET
 
RET
 
 
 
DELAY:        ;THOI GIAN TRE
 
MOV R1,#150
 
LAPA:
 
MOV R2,#20
 
LAPB:
 
DJNZ R2,LAPB
 
DJNZ R1,LAPA
 
RET
 
 
 
ORG 500 ; MA LED 7 DOAN
 
MALED:
 
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
 
END
 
---------------------------------------------------------------------------------------------------

3. Phương pháp dùng ic chốt 74hc373

7 thanh ic 74hc573 chipkool.png

Mã:
ORG 00H
 
MAIN:
 
CALL CTA
 
JMP MAIN
 
 
 
CTA:
 
MOV P2,#00H        ; TAT CAC PORT DU LIEU
 
MOV P3,#00H
 
MOV R1,#0        ; GIA TRI BAN DAU CUA BIEN DEM
 
MOV DPTR,#MALED ; DUA MA LED 7 DOAN VAO THANH GHI CONTROL
 
NEXT:
 
CALL HT ; CHUONG TRINH HIEN THI RA LED 7 DOAN
 
INC R1    ; TANG GIA TRI BIEN DEM
 
CJNE R1,#100,NEXT ; KIEM TRA GIA TRI BIEN DEM =100 THI KET THUC
 
RET
 
 
 
HT:  ; CHUONG TRINH HIEN THI RA LED 7 DOAN
 
MOV A,R1
 
MOV B,#10
 
DIV AB    ; LAY GIA TRI HANG CHUC
 
MOVC A,@A+DPTR; LAY MA LED
 
MOV P2,A    ;XUAT DU LIEU RA PORT VA HIEN THI TREN LED 7 DOAN
 
SETB P3.0
 
CLR P3.0
 
 
 
MOV A,B        ; LAY GIA TRI HANG DON VI
 
MOVC A,@A+DPTR    ; LAY MA LED HANG DON VI
 
MOV P2,A        ; XUAT VA HIEN THI TREN LED 7 DOAN
 
SETB P3.1
 
CLR P3.1
 
CALL DELAY
 
RET
 
 
 
DELAY:    ; THOI GIAN TRE
 
MOV R2,#250
 
STOP:
 
MOV R3,#250
 
STOP2:
 
DJNZ R3,STOP2
 
DJNZ R2,STOP
 
RET
 
 
 
MALED:    ; MA LED
 
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
 
END
Chúc các bạn ngon miệng...^^



 

ChipKool

Thạc sỹ
#3
PHIM ĐƠN

1. Phím đơn + led Đơn : 4 phím 4 led


phim don + led don chipkool.png


Mã:
ORG 00H
 
MAIN:
 
MOV P2,#00000000B
 
KEY1:
 
    JNB P1.4,KEY1OK
 
    CLR P2.0
 
    CALL DELAY
 
    JMP KEY2
 
KEY1OK:
 
SETB P2.0
 
CALL DELAY
 
   
 
KEY2:
 
    JNB P1.5,KEY2OK
 
    CLR P2.1
 
    CALL DELAY
 
    JMP KEY3
 
KEY2OK:
 
SETB P2.1
 
CALL DELAY
 
 
 
KEY3:
 
    JNB P1.6,KEY3OK
 
    CLR P2.2
 
    CALL DELAY
 
    JMP KEY4
 
KEY3OK:
 
SETB P2.2
 
CALL DELAY
 
 
 
KEY4:
 
    JNB P1.7,KEY4OK
 
    CLR P2.3
 
    CALL DELAY
 
    JMP KEY1
 
KEY4OK:
 
SETB P2.3
 
CALL DELAY
 
JMP KEY1
 
JMP MAIN
 
 
 
DELAY:
 
MOV R0,#200
 
LOOP:
 
MOV R1,#150
 
LOOP1:
 
DJNZ R1,LOOP1
 
DJNZ R2,LOOP
 
RET
 
END
2. Phím đơn + led 7 thanh

phim don + led 7 thanh.png
Mã:
ORG 00H
MAIN:
KEY0:
    JNB P1.7,KEY0OK
    JMP KEY1
KEY0OK:
    CALL CTHT
    INC R0
KEY1:
    JNB P1.6,KEY1OK
    JMP KEY0
KEY1OK:
    CALL CTHT
    DEC R0
JMP KEY0
 
JMP MAIN
 
CTHT:
MOV R7,#5
QUET:
MOV A,R0
MOV B,#10
DIV AB
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P3,A
CALL DELAY
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
DJNZ R7,QUET
RET
 
MALED:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
 
DELAY:
MOV R2,#150
LOOP:
MOV R1,#200
LOOP1:
DJNZ R1,LOOP1
DJNZ R2,LOOP
RET
END
3. Phím điều khiển Role + động cơ đơn giản
phim + dong co + role.png

Mã:
ORG 0000H
MAIN:
JNB P1.0,THUAN_R
JNB P1.1,NGHICH_R
JNB P1.2,THUAN_H
JNB P1.3,NGHICH_H
JNB P1.4,STOP
 
JMP MAIN
 
THUAN_R:
SETB P3.0
CLR P3.1
JMP MAIN
 
NGHICH_R:
CLR P3.0
SETB P3.1
JMP MAIN
 
THUAN_H:
SETB P3.2
CLR P3.3
JMP MAIN
 
NGHICH_H:
CLR P3.2
SETB P3.3
JMP MAIN
 
STOP:
CLR P3.0
CLR P3.1
CLR P3.2
CLR P3.3
JMP MAIN
 
CALL DELAY
 
DELAY:
MOV R0,#200
LOOP:
MOV R1,#250
LOOP1:
NOP
DJNZ R1,LOOP1
DJNZ R0,LOOP
RET
 
END
Chúc các bạn ngon miệng xỉa răng^^
 

ChipKool

Thạc sỹ
#4
1 MATRIX CHẠY CHỮ:
1 matrix chay chu.png
Mã:
ORG 00H
 
MAIN:
 
MOV DPTR,#MASO1
 
CALL CTHT
 
LJMP MAIN
 
 
 
CTHT:;CHUONG TRINH HIEN THI
 
MOV R7,#64;Moi chu la 1 ma tran 8x8, co 8 chu nhu vay se la 8x8 = 64
 
CHAYCHU:
 
MOV R5,#100;toc do chay chu
 
QUET:
 
MOV R0,#00
 
MOV R1,#01111111B
 
LAPS:
 
MOV P3,R1
 
MOV A,R1
 
RL A
 
MOV R1,A
 
MOV P3,R1
 
MOV A,R0
 
MOVC A,@A+DPTR
 
MOV P2,A
 
CALL DELAY
 
INC R0
 
CJNE R0,#8,LAPS;
 
DJNZ R5,QUET
 
INC DPTR
 
DJNZ R7,CHAYCHU
 
RET
 
 
 
;-------Hien thi Chu LAP TRINH---------------
 
MASO1:
 
DB    0FFH,0FFH,0H,7FH,7FH,7FH,7FH,0FFH    ;L
 
DB    0FFH,3H,0F5H,0F6H,0F6H,0F5H,3H,0FFH  ;A
 
DB    0FFH,0FFH,0H,0F6H,0F6H,0F6H,0F9H,0FFH ;P
 
DB    0FFH,0FFH,0FEH,0FEH,0H,0FEH,0FEH,0FFH ;T
 
DB    0FFH,0FFH,0H,0EEH,0D6H,0B6H,79H,0FFH  ;R
 
DB    0FFH,0FFH,7EH,0H,7EH,0FFH,0FFH,0FFH  ;I
 
DB    0FFH,0FFH,0H,0FDH,0FBH,0F7H,0H,0FFH  ;N
 
DB    0FFH,0FFH,0H,0F7H,0F7H,0F7H,0H,0FFH  ;H
 
 
 
;----------Chuong trinh tao thoi gian tre----------
 
DELAY:
 
MOV R4,#50
 
LAPF:
 
NOP
 
NOP
 
NOP
 
DJNZ R4,LAPF
 
RET
 
END
2.MATRIX PHIM + MATRIX LED
matrix phim + matrix led.png
Mã:
ORG 00H
MAIN:
;QUET HANG 1
    MOV P0,#11111110B
    JNB P0.4,PHIM1    ;SO 7
    JNB P0.5,PHIM2    ;SO 8
    JNB P0.6,PHIM3    ;SO 9
    JNB P0.7,PHIM4    ;KT CHIA
 
;QUET HANG 2
    MOV P0,#11111101B
    JNB P0.4,PHIM5    ;SO 4
    JNB P0.5,PHIM6    ;SO 5
    JNB P0.6,PHIM7    ;SO 6
    JNB P0.7,PHIM8    ;KT NHAN
 
;QUET HANG 3
    MOV P0,#11111011B
    JNB P0.4,PHIM9    ;SO 1
    JNB P0.5,PHIM10    ;SO 2
    JNB P0.6,PHIM11    ;SO 3
    JNB P0.7,PHIM12    ;KT -
 
;QUET HANG 4
    MOV P0,#11110111B
    JNB P0.4,PHIM13    ; ON
    JNB P0.5,PHIM14    ;SO 0
    JNB P0.6,PHIM15    ;KT =
    JNB P0.7,PHIM16    ;KT +
LJMP MAIN
 
PHIM1:
    CALL MS1
    LJMP MAIN
PHIM2:
    CALL MS2
    LJMP MAIN
PHIM3:
    CALL MS3
    LJMP MAIN
PHIM4:
    CALL MS4
    LJMP MAIN
PHIM5:
    CALL MS5
    LJMP MAIN
PHIM6:
    CALL MS6
    LJMP MAIN
PHIM7:
    CALL MS7
    LJMP MAIN
PHIM8:
    CALL MS8
    LJMP MAIN
PHIM9:
    CALL MS9
    LJMP MAIN
PHIM10:
    CALL MS10
    LJMP MAIN
PHIM11:
    CALL MS11
    LJMP MAIN
PHIM12:
    CALL MS12
    LJMP MAIN
PHIM13:
    CALL MS13
    LJMP MAIN
PHIM14:
    CALL MS14
    LJMP MAIN
PHIM15:
    CALL MS15
    LJMP MAIN
PHIM16:
    CALL MS16
    LJMP MAIN
MS1:
    MOV DPTR,#MASO1
    CALL CTHT
    RET
MS2:
    MOV DPTR,#MASO2
    CALL CTHT
    RET
MS3:
    MOV DPTR,#MASO3
    CALL CTHT
    RET
MS4:
    MOV DPTR,#MASO4
    CALL CTHT
    RET
MS5:
    MOV DPTR,#MASO5
    CALL CTHT
    RET
MS6:
    MOV DPTR,#MASO6
    CALL CTHT
    RET
MS7:
    MOV DPTR,#MASO7
    CALL CTHT
    RET
MS8:
    MOV DPTR,#MASO8
    CALL CTHT
    RET
MS9:
    MOV DPTR,#MASO9
    CALL CTHT
    RET
MS10:
    MOV DPTR,#MASO10
    CALL CTHT
    RET
MS11:
    MOV DPTR,#MASO11
    CALL CTHT
    RET
MS12:
    MOV DPTR,#MASO12
    CALL CTHT
    RET
MS13:
    MOV DPTR,#MASO13
    CALL CTHT
    RET
MS14:
    MOV DPTR,#MASO14
    CALL CTHT
    RET
MS15:
    MOV DPTR,#MASO15
    CALL CTHT
    RET
MS16:
    MOV DPTR,#MASO16
    CALL CTHT
    RET
CTHT:;CHUONG TRINH HIEN THI
    MOV R2,#20
QUET:
    MOV R0,#0
    MOV R1,#01H
    BACK_1:
    MOV A,R0
    MOVC A,@A+DPTR
    MOV P2,A
    MOV P3,R1
    CALL DELAY
    MOV P3,#00H
    MOV A,R1
    RL A
    MOV R1,A
    INC R0
    CJNE R0,#8,BACK_1
    DJNZ R2,QUET
    RET
 
DELAY:
    PUSH 01
    MOV R1,#50
    DJNZ R1,$
    POP 01
RET
 
MASO1:
    DB    0FFH,0FFH,0BDH,0DDH,0EDH,0F5H,0F9H,0FFH    ;S7
MASO2:
    DB    0FFH,89H,76H,76H,76H,89H,0FFH,0FFH  ;S8
MASO3:
    DB    0FFH,71H,6EH,6EH,0AEH,0C1H,0FFH,0FFH  ;S9
MASO4:
    DB    0FFH,0F7H,0F7H,0D5H,0F7H,0F7H,0FFH,0FFH    ;KT CHIA
MASO5:
    DB    0FFH,0E7H,0EBH,0EDH,80H,0EFH,0FFH,0FFH ;S4
MASO6:
    DB    0FFH,0FFH,0B8H,0BAH,0BAH,0BAH,0C7H,0FFH ;S5
MASO7:
    DB    0FFH,0C7H,0B3H,0B5H,0B6H,0CFH,0FFH,0FFH  ;S6
MASO8:
    DB    0FFH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH,0FFH  ;KT NHAN
MASO9:
    DB    0FFH,0F7H,0BBH,81H,0BFH,0FFH,0FFH,0FFH  ;S1
MASO10:
    DB    0FFH,0BDH,9EH,0AEH,0B6H,0B9H,0FFH,0FFH  ;S2
MASO11:
    DB    0FFH,7EH,76H,72H,74H,8EH,0FFH,0FFH  ;S3
MASO12:
    DB    0FFH,0F7H,0F7H,0F7H,0F7H,0F7H,0FFH,0FFH ;KT -
MASO13:
    DB    0C3H,0BDH,0C3H,83H,0F7H,0EFH,0DFH,83H  ;ON
MASO14:
    DB    0FFH,83H,7DH,7DH,7DH,83H,0FFH,0FFH  ; S0
MASO15:
    DB    0FFH,0FFH,0EBH,0EBH,0EBH,0EBH,0FFH,0FFH ;KT =
MASO16:
    DB    0FFH,0F7H,0F7H,0C1H,0F7H,0F7H,0FFH,0FFH ;KT +
 
END
3. Matrix phím + Led 7 thanh

matrix phim + 7 seg.png
Mã:
;chương trình code asm
;Design By Chipkool_online
;SV ĐH Kinh tế - Kỹ Thuật công Nghiệp
ORG 00H
MAIN:
;QUET HANG 1
MOV P3,#11111110B
JNB P3.4,PHIM7
JNB P3.5,PHIM8
JNB P3.6,PHIM9
JNB P3.7,PHIM10
 
;QUET HANG 2
MOV P3,#11111101B
JNB P3.4,PHIM4
JNB P3.5,PHIM5
JNB P3.6,PHIM6
JNB P3.7,PHIM11
 
;QUET HANG 3
MOV P3,#11111011B
JNB P3.4,PHIM1
JNB P3.5,PHIM2
JNB P3.6,PHIM3
JNB P3.7,PHIM12
 
;QUET HANG 4
MOV P3,#11110111B
JNB P3.4,PHIM13
JNB P3.5,PHIM14
JNB P3.6,PHIM15
JNB P3.7,PHIM16
 
JMP MAIN
 
PHIM1:
MOV R0,#1
CALL CTHT
LJMP MAIN
 
 
 
PHIM2:
MOV R0,#2
CALL CTHT
LJMP MAIN
 
 
PHIM3:
MOV R0,#3
CALL CTHT
LJMP MAIN
 
 
PHIM4:
MOV R0,#4
CALL CTHT
LJMP MAIN
 
 
PHIM5:
MOV R0,#5
CALL CTHT
LJMP MAIN
 
 
 
PHIM6:
MOV R0,#6
CALL CTHT
LJMP MAIN
 
 
PHIM7:
MOV R0,#7
CALL CTHT
LJMP MAIN
 
 
PHIM8:
MOV R0,#8
CALL CTHT
LJMP MAIN
 
 
PHIM9:
MOV R0,#9
CALL CTHT
LJMP MAIN
 
 
PHIM10:
MOV R0,#10
CALL CTHT
LJMP MAIN
 
 
PHIM11:
MOV R0,#11
CALL CTHT
LJMP MAIN
 
 
PHIM12:
MOV R0,#12
CALL CTHT
LJMP MAIN
 
PHIM13:
MOV R0,#13
CALL CTHT
LJMP MAIN
 
 
PHIM14:
MOV R0,#14
CALL CTHT
LJMP MAIN
 
 
PHIM15:
MOV R0,#15
CALL CTHT
LJMP MAIN
 
 
PHIM16:
MOV R0,#16
CALL CTHT
LJMP MAIN
 
 
CTHT:
MOV R7,#20
QUAY:
MOV A,R0
MOV B,#10
DIV AB
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P2.0
CALL DELAY
CLR P2.0
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
SETB P2.1
CALL DELAY
CLR P2.1
DJNZ R7,QUAY
RET
 
 
MALED:DB 11000000B,11111001B,10100100B,10110000B,10011001B,10010010B,10000010B,11111000B,10000000B,10010000B
 
DELAY:
 
MOV R1,#100
LAP:
NOP
NOP
DJNZ R1,LAP
RET
END
4. MATRIX PHÍM + LCD
matrix phim + lcd.png


Mã:
;P2=data pin
;P3.0 -> RS pin
;P3.1 -> R/W pin
;P3.2 -> E pin
   
;RS      EQU    P3.0
;RW      EQU    P3.1
;E      EQU    P3.2
 
ORG 00H
MAIN:
;*** chuong trinh khoi tao LCD
          MOV    A,#38H        ;init. LCD 2 dong ma tran 5x7
        ACALL  CSTROBE
        MOV    A,#0EH        ;LCD on, cursor on
        ACALL  CSTROBE
        MOV    A,#01H        ;clear LCD
        ACALL  CSTROBE
 
 
;QUET HANG 1
MOV P1,#11111110B
JNB P1.4,PHIM1
JNB P1.5,PHIM2
JNB P1.6,PHIM3
JNB P1.7,PHIM4
 
;QUET HANG 2
MOV P1,#11111101B
JNB P1.4,PHIM5
JNB P1.5,PHIM6
JNB P1.6,PHIM7
JNB P1.7,PHIM8
 
;QUET HANG 3
MOV P1,#11111011B
JNB P1.4,PHIM9
JNB P1.5,PHIM10
JNB P1.6,PHIM11
JNB P1.7,PHIM12
 
;QUET HANG 4
MOV P1,#11110111B
JNB P1.4,PHIM13
JNB P1.5,PHIM14
JNB P1.6,PHIM15
JNB P1.7,PHIM16
 
LJMP MAIN
 
PHIM1:; hien thi chay chu sang trai
LCALL CTSO1
LJMP MAIN
 
PHIM2:
LCALL CTSO2
LJMP MAIN
 
PHIM3:
LCALL CTSO3
LJMP MAIN
 
PHIM4:
LCALL CTSO4
LJMP MAIN
 
PHIM5:
LCALL CTSO5
LJMP MAIN
 
PHIM6:
LCALL CTSO6
LJMP MAIN
 
PHIM7:
LCALL CTSO7
LJMP MAIN
 
PHIM8:
LCALL CTSO8
LJMP MAIN
 
PHIM9:
LCALL CTSO9
LJMP MAIN
 
PHIM10:
LCALL CTSO10
LJMP MAIN
 
PHIM11:
LCALL CTSO11
LJMP MAIN
 
PHIM12:
LCALL CTSO12
LJMP MAIN
 
PHIM13:
LCALL CTB
LJMP MAIN
 
PHIM14:
LCALL CTA
LJMP MAIN
 
PHIM15:
 
LJMP MAIN
 
PHIM16:
 
LJMP MAIN
 
;***************CHUONG TRINH CON CAC SO 1 - 12
CTSO1:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'1'
LCALL DSTROBE
LCALL DELAY100MS
 
RET
 
CTSO2:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'2'
LCALL DSTROBE
LCALL DELAY100MS
RET
 
CTSO3:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'3'
LCALL DSTROBE
LCALL DELAY100MS
RET
 
CTSO4:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'4'
LCALL DSTROBE
LCALL DELAY100MS
RET
 
CTSO5:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'5'
LCALL DSTROBE
LCALL DELAY100MS
RET
 
CTSO6:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'6'
LCALL DSTROBE
LCALL DELAY100MS
RET
 
 
CTSO7:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'7'
LCALL DSTROBE
LCALL DELAY100MS
RET
 
CTSO8:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'8'
LCALL DSTROBE
LCALL DELAY100MS
RET
 
CTSO9:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'9'
LCALL DSTROBE
LCALL DELAY100MS
RET
 
CTSO10:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'10'
LCALL DSTROBE
LCALL DELAY100MS
 
RET
 
CTSO11:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'11'
LCALL DSTROBE
LCALL DELAY100MS
RET
 
CTSO12:
;Hien dong 1
MOV A,#80H
LCALL CSTROBE
LCALL DELAY100MS
;
MOV A,#'12'
LCALL DSTROBE
LCALL DELAY100MS
RET
 
 
 
 
 
 
;*******************HIEN THI CHAY CHU DHKTKTCN
CTA:
        MOV A,#06H        ; con tro dich phai
        ACALL  CSTROBE
        MOV    A,#80H        ;chuyen Con tro den dong 1 vi tri 0
        ACALL  CSTROBE
        MOV    DPTR,#MYDATA    ;Dua con tro du lieu toi bang
   
DONG1:  CLR    A
        MOVC    A,@A+DPTR
        JZ      THOAT      ;Neu A=0 thi thi thoat
        LCALL  DSTROBE
        INC    DPTR
        SJMP    DONG1
 
THOAT:
        MOV A,#18H
        LCALL  CSTROBE
        LCALL  DELAY100MS
        SJMP    THOAT
 
RET
 
; ********************HIEN THI CHU CHIPKOOL - UNETI
CTB:
MOV A,#0C1H; Lenh dong 2
LCALL CSTROBE
LCALL DELAY100MS
 
MOV R0,#1; LAP 1 LAN HIEN THI 1 LAN
LAP1:
 
MOV A,#'C'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'H'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'I'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'P'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'K'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'O'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'O'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'L'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'-'
LCALL DSTROBE
LCALL DELAY100MS
; ******************UNETI
 
MOV A,#'U'
LCALL DSTROBE
LCALL DELAY100MS
 
;
MOV A,#'N'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'E'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'T'
LCALL DSTROBE
LCALL DELAY100MS
;
MOV A,#'I'
LCALL DSTROBE
LCALL DELAY100MS
 
;
DJNZ R0,LAP1
CALL DELAY100MS
CALL DELAY100MS
CALL DELAY100MS
RET
 
 
 
 
; ***********************************BAT DAU CHUONG TRINH CON  LCD*******************
 
 
CSTROBE:                      ;command strobe
        ACALL  READY        ;is LCD ready?
        MOV    P2,A          ;xuat ma lenh
        CLR    P3.0            ;RS=0: lenh
        CLR    P3.1            ;R/W=0 -> ghi ra LCD
        SETB    P3.2            ;E=1 -> tao canh xuong
        CLR    P3.2            ;E=0 chot
        RET
DSTROBE:                      ;data strobe
        ACALL  READY        ;is LCD ready?
        MOV    P2,A          ;xuat du lieu
        SETB    P3.0            ;RS=1 for data
        CLR    P3.1            ;R/W=0 to write to LCD
        SETB    P3.2            ;E=1 -> tao canh xuong
        CLR    P3.2            ;E=0 chot
        RET
; kiem tra co BF
READY:  SETB    P2.7          ;P2.7: input
        CLR    P3.0            ;RS=0: thanh ghi lenh
        SETB    P3.1            ;R/W=1: doc
BACK:  CLR    P3.2            ;E=0 -> tao canh lenh
        SETB    P3.2            ;E=1
        JB      P2.7,BACK    ;cho co flag bang 0
        RET
 
DELAY100MS:
            MOV R2,#100
DL5:        MOV R1,#250       
DL4:        NOP
            NOP
            DJNZ R1,DL4
            DJNZ R2,DL5
            RET
 
        ORG 250H
MYDATA:
        DB  "DAI HOC KINH TE KY THUAT CONG NGHIEP"
 
        END
Còn tiếp...Hồi sau sẽ rõ..^^
 
#6
( được voi đòi thủy Tiên :)) ) anh ơi anh làm thêm tút về avr và pic đi anh , em đảm bảo nhiều anh em trong diễn đàn sẽ vỗ tay hết mình vì sự tận tình của anh =D>=D>
thực sự thì em đang muốn học pic nhưng chưa gặp được bài viết nào cụ thể như vầy ,mong anh lắm ;)
 

dainv

http://vntech24h.com/
#7
( được voi đòi thủy Tiên :)) ) anh ơi anh làm thêm tút về avr và pic đi anh , em đảm bảo nhiều anh em trong diễn đàn sẽ vỗ tay hết mình vì sự tận tình của anh =D>=D>
thực sự thì em đang muốn học pic nhưng chưa gặp được bài viết nào cụ thể như vầy ,mong anh lắm ;)
Tất cả các bài viết cho PIC đều có bên luồng PIC, mình không hiểu bạn còn mong đợi gì hay cần những gì. Với PIC và AVR thì sử dụng ngôn ngữ C là học nhanh nhất.
 

mr_khoa

Học sinh phổ thông
#9
chào các pro vdk ! tình hình là em học vdk 8051 bít lập trình nhưng ko biết kết nối phần cứng và ráp mạch. các anh chỉ bảo em với ạ? thanks!!!!!!!!!!!!
 

Mr-Quân

Học sinh phổ thông
#10
Em gặp phải đề này không biết làm thế nào mong mọi người giúp với: ''Thiết kế hệ thống điều khiển kèn báo thức, điểm quân số, tắt đèn đi ngủ của Học viện KTQS. Hệ thống có thể dùng các phím để hiệu chỉnh thời gian''.
Dùng VĐK 89C51 thì làm thế nào hả mọi người, dùng ngôn ngữ assembly, mô phỏng trên protues, viết code trên kile C
 

Quảng cáo Google