ale bit p1.7
start bit p1.2
eoc bit p1.3
oe bit p1.1
add_0 bit p1.4
add_1 bit p1.5
add_2 bit p1.6
adc equ p3
en bit p2.2 ; khai bao bit enable
rw bit p2.1 ; khai bao bit read/write
rs bit p2.0 ; khai bao bit register select
; rs = 0 ghi lenh
; rs = 1 ghi du lieu
bien equ 30h
dulieu equ p0
wet equ p2; 3 chan p2.0 den p2.2
org 0000h
setb Add_0
setb Add_1
CLR Add_2
CLR OE
SETB eoc
call ktao_lcd
call hthi_dong1
; call delay1s
call hthi_dong2
call delay1s
call delay1s
call delay1s
call delay1s
main:
call ndo
call hthi_dong3
call hthi_dong4
mov a,#8ch
call ghi_lenh
mov bien,#3
MOV A,31h
ADD A,#'0'
call ghi_dulieu
mov a,32H
add a,#'0'
call ghi_dulieu
mov a,33H
add a,#'0'
call ghi_dulieu
CALL DELAY1S
jmp main
ndo:
SETB ale ; SET ALE
NOP
NOP
SETB start ; SET START
NOP
NOP
CLR ale ; XOA ALE
CLR start ; XOA START
JNB EOC,$
; CLR EOC
NOP
NOP
NOP
SETB EOC
SETB OE
nop
nop
nop
nop
nop
nop
nop
nop
nop
CLR OE
MOV A,adc
MOV B,#100
DIV AB
MOV 31h,A
MOV A,B
MOV B,#10
DIV AB
MOV 32h,A
MOV 33h,B
ret
ktra_co:
setb dulieu.7
clr rs
setb rw
cho:
clr en
setb en
jb dulieu.7,cho
ret
ktao_lcd:
mov a,#39h ; hien 2 dong ky tu 5x7
call ghi_lenh
mov a,#0eh ; bat hien thi nhap nhay con tro
call ghi_lenh
mov a,#01h ; xoa man hinh hien thi
call ghi_lenh
mov a,#06h ; dich con tro sang phai
call ghi_lenh
ret
ghi_lenh:
call ktra_co
mov dulieu,a
clr rs ; chon rs=0 de ghi lenh
clr rw ; chon rw=0 de ghi lenh
setb en ; tao xung enable cho lcd
clr en
ret
ghi_dulieu:
call ktra_co
mov dulieu,a
setb rs
clr rw
setb en
clr en
ret
delay100ms:
mov 51H,#200
doi:
mov 52h,#250
djnz 52h,$
djnz 51h,doi
ret
; chuong trinh con delay 100us
delay1s:
mov r7,#5
nhay:
call delay100ms
djnz r7,nhay
ret
; chuong trinh con hien thi dong 1
hthi_dong1:
mov a,#80h
call ghi_lenh
mov dptr,#dong1
call hienthi
ret
; chuong trinh con hien thi dong 2
hthi_dong2:
mov a,#0c0h
call ghi_lenh
mov dptr,#dong2
call hienthi
ret
hthi_dong3:
mov a,#80h
call ghi_lenh
mov dptr,#dong3
call hienthi
ret
; chuong trinh con hien thi dong 2
hthi_dong4:
mov a,#0c0h
call ghi_lenh
mov dptr,#dong4
call hienthi
ret
hienthi:
mov a,#0
movc a,@a+dptr
cjne a,#99h,h
ret
h:
mov dulieu,a
call ghi_dulieu
inc dptr
jmp hienthi
;**************VUNG NHO CHUA DU LIEU CAN HIEN THI*************
dong1:
db 'DO AN TOT NGHIEP'
db 99h
dong2:
db ' MACH NGUON LCD '
db 99h
dong3:
db 'NGUON DUONG: . V'
db 99h
dong4:
db 'NGUON AM : . V'
db 99h
end
start bit p1.2
eoc bit p1.3
oe bit p1.1
add_0 bit p1.4
add_1 bit p1.5
add_2 bit p1.6
adc equ p3
en bit p2.2 ; khai bao bit enable
rw bit p2.1 ; khai bao bit read/write
rs bit p2.0 ; khai bao bit register select
; rs = 0 ghi lenh
; rs = 1 ghi du lieu
bien equ 30h
dulieu equ p0
wet equ p2; 3 chan p2.0 den p2.2
org 0000h
setb Add_0
setb Add_1
CLR Add_2
CLR OE
SETB eoc
call ktao_lcd
call hthi_dong1
; call delay1s
call hthi_dong2
call delay1s
call delay1s
call delay1s
call delay1s
main:
call ndo
call hthi_dong3
call hthi_dong4
mov a,#8ch
call ghi_lenh
mov bien,#3
MOV A,31h
ADD A,#'0'
call ghi_dulieu
mov a,32H
add a,#'0'
call ghi_dulieu
mov a,33H
add a,#'0'
call ghi_dulieu
CALL DELAY1S
jmp main
ndo:
SETB ale ; SET ALE
NOP
NOP
SETB start ; SET START
NOP
NOP
CLR ale ; XOA ALE
CLR start ; XOA START
JNB EOC,$
; CLR EOC
NOP
NOP
NOP
SETB EOC
SETB OE
nop
nop
nop
nop
nop
nop
nop
nop
nop
CLR OE
MOV A,adc
MOV B,#100
DIV AB
MOV 31h,A
MOV A,B
MOV B,#10
DIV AB
MOV 32h,A
MOV 33h,B
ret
ktra_co:
setb dulieu.7
clr rs
setb rw
cho:
clr en
setb en
jb dulieu.7,cho
ret
ktao_lcd:
mov a,#39h ; hien 2 dong ky tu 5x7
call ghi_lenh
mov a,#0eh ; bat hien thi nhap nhay con tro
call ghi_lenh
mov a,#01h ; xoa man hinh hien thi
call ghi_lenh
mov a,#06h ; dich con tro sang phai
call ghi_lenh
ret
ghi_lenh:
call ktra_co
mov dulieu,a
clr rs ; chon rs=0 de ghi lenh
clr rw ; chon rw=0 de ghi lenh
setb en ; tao xung enable cho lcd
clr en
ret
ghi_dulieu:
call ktra_co
mov dulieu,a
setb rs
clr rw
setb en
clr en
ret
delay100ms:
mov 51H,#200
doi:
mov 52h,#250
djnz 52h,$
djnz 51h,doi
ret
; chuong trinh con delay 100us
delay1s:
mov r7,#5
nhay:
call delay100ms
djnz r7,nhay
ret
; chuong trinh con hien thi dong 1
hthi_dong1:
mov a,#80h
call ghi_lenh
mov dptr,#dong1
call hienthi
ret
; chuong trinh con hien thi dong 2
hthi_dong2:
mov a,#0c0h
call ghi_lenh
mov dptr,#dong2
call hienthi
ret
hthi_dong3:
mov a,#80h
call ghi_lenh
mov dptr,#dong3
call hienthi
ret
; chuong trinh con hien thi dong 2
hthi_dong4:
mov a,#0c0h
call ghi_lenh
mov dptr,#dong4
call hienthi
ret
hienthi:
mov a,#0
movc a,@a+dptr
cjne a,#99h,h
ret
h:
mov dulieu,a
call ghi_dulieu
inc dptr
jmp hienthi
;**************VUNG NHO CHUA DU LIEU CAN HIEN THI*************
dong1:
db 'DO AN TOT NGHIEP'
db 99h
dong2:
db ' MACH NGUON LCD '
db 99h
dong3:
db 'NGUON DUONG: . V'
db 99h
dong4:
db 'NGUON AM : . V'
db 99h
end