JULY 3, 2013
Bài 5 - Ma trận Phím
1. Ma trận phím + 7 Thanh
;chương trình code asm
;Design By Chipkool_online
;SV ĐH Kinh tế - Kỹ Thuật công Nghiệp
ORG 00H
;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
;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
3. Ma trận phím + Ma trận led
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
link:
0 nhận xét:
Đăng nhận xét