MÌNH MỚI TẬP TÀNH LẬP TRÌNH VI ĐIỀU KHIỂN, NHỜ CÁC BẠN TEST HỌ CHƯƠNG TRÌNH NÀY XEM CÓ VẤN ĐỀ J KO NHÉ.CẢM ƠN CÁC BẠN NHIỀU NHIỀU!THANKS
#include <Sfr51.inc>
;Chuong trinh hien thi dong ho so tren LCD 16x2 su dung DS12c887
rs bit p2.7
rw bit p2.6
e bit p2.5
t2 equ 2
d equ 0ah
settime bit p3.0
up bit p3.1
org 00h
ljmp main
;chuong trinh con tao tre
delay:
mov tmod,#01h
mov th0,#high(-1800)
mov tl0,#low(-1800)
setb tr0
jnb tf0,$
clr tf0
clr tr0
ret
;chuong trinh con tao tre 5ms
delay5ms:
mov r0,#5
loop:
acall delay
djnz r0,loop
ret
;chuong trinh con tao tre 50ms
delay100ms:
mov r0,#100
loopp:
acall delay
djnz r0,loopp
ret
;chuong trinh con LCD o che do nhan lenh
nhanlenh:
push acc
clr rs ;dat LCD o che do nhan lenh
clr rw
setb e ;cho phep hien thi
mov p1,a ;dua du lieu ra P1
nop
clr e
pop acc
acall delay5ms
ret
;chuong trinh con LCD o che do nhan so
nhanso:
push acc
setb rs ;dat LCD o che do nhan lenh
clr rw
setb e ;cho phep hien thi
mov p1,a ;dua du lieu ra P1
nop
clr e
clr a
pop acc
acall delay5ms
ret
;chuong trinh con nhan du lieu va hien thi cac chu cai
nhanchu:
push 1
push acc
loop9:
setb rs
clr rw
setb e
clr a
movc a,@a+dptr
mov p1,a
nop
nop
nop
clr e
acall delay5ms
inc dptr
djnz r1,loop9
pop acc
pop 1
ret
;chuong trinh con thiet lap cho LCd
kdlcd:
acall delay100ms ;cho Vcc dat dc gia tri dinh muc
mov a,#38h ;hien thi 2 dong - co chu 5x7
acall nhanlenh
acall delay5ms
mov a,#0fh ;
acall nhanlenh
acall delay5ms
mov a,#0fh ;
acall nhanlenh
acall delay5ms
mov a,#06h ;con tro tu dong tang
acall nhanlenh
ret
;chuong trinh con khoi dong RTC
kdrtc:
push 0
push acc
mov a,#0a0h
mov r0,#0ah
movx @r0,a
mov a,#02h
mov r0,#0bh
movx @r0,a
pop acc
pop 0
ret
;chuong trinh con dat gia tri dau cho RTC la 23:59:59 01(Sunday) 01/01/08
ghirtc:
push 0
push acc
mov a,52h ;dat giay
mov r0,#0h
movx @r0,a
mov a,59h ;dat giayalarm
mov r0,#1h
movx @r0,a
mov a,51h ;dat phut
mov r0,#2h
movx @r0,a
mov a,58h ;dat phutalarm
mov r0,#3h
movx @r0,a
mov a,#50h ;dat gio
mov r0,#4h
movx @r0,a
mov a,57h ;dat gioalarm
mov r0,#5h
movx @r0,a
mov a,#53h ;thu
mov r0,#6h
movx @r0,a
mov r0,#54h ;ngay
movx @r0,a
mov r0,#55h ;thang
movx @r0,a
mov a,#56h ;nam
mov r0,#09h
movx @r0,a
pop acc
pop 0
ret
;chuong trinh con doc gia tri tu rtc vao ram onchip
;23:59:59 vao 50h:51h:52h
;thu may vao 53
;01/01/08 vao 54:55:56h
;alarm vao 57:58:59h
docrtc:
push 0
push acc
mov r0,#0h
movx a,@r0
da a
mov 52h,a
mov r0,#2h
movx a,@r0
da a
mov 51h,a
mov r0,#4h
movx a,@r0
da a
mov 50h,a
mov r0,#6h
movx a,@r0
da a
mov 53h,a
mov r0,#7h
movx a,@r0
da a
mov 54h,a
mov r0,#8h
movx a,@r0
da a
mov 55h,a
mov r0,#9h
movx a,@r0
da a
mov 56h,a
pop acc
pop 0
ret
;chuong trinh con xuat thoi gian, thu ngay thang nam ra lcd
htthu:
push 0
push acc
push dpl
push dph
osat:
mov a,53h
cjne a,#00,osun
mov r0,#3
mov dptr,#sun
acall nhanchu
ret
osun:
cjne a,#01,omon
mov r0,#3
mov dptr,#mon
acall nhanchu
ret
omon:
cjne a,#02,otue
mov r0,#3
mov dptr,#tue
acall nhanchu
ret
otue:
cjne a,#03,owen
mov r0,#3
mov dptr,#wen
acall nhanchu
ret
owen:
cjne a,#04,othu
mov r0,#3
mov dptr,#thu
acall nhanchu
ret
othu:
cjne a,#05,ofri
mov r0,#3
mov dptr,#fri
acall nhanchu
ret
ofri:
cjne a,#06,osat
mov r0,#3
mov dptr,#sat
acall nhanchu
pop dph
pop dpl
pop acc
pop 0
ret
;hien thi ngay
htngay:
mov a,#0c5h
acall nhanlenh
mov a,54h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#0c6h
acall nhanlenh
mov a,54h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;hien thi thang
htthang:
mov a,#0c8h
acall nhanlenh
mov a,55h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#0c9h
acall nhanlenh
mov a,55h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;hien thi nam
htnam:
mov a,#0cbh
acall nhanlenh
mov a,56h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#0cch
acall nhanlenh
mov a,56h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;hien thi gio
htgio:
mov a,#85h
acall nhanlenh
mov a,50h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#86h
acall nhanlenh
mov a,50h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;hien thi phut
htphut:
mov a,#88h
acall nhanlenh
mov a,51h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#89h
acall nhanlenh
mov a,51h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;hien thi giay
htgiay:
mov a,#8bh
acall nhanlenh
mov a,52h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#8ch
acall nhanlenh
mov a,52h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;chuong trinh con hien thi thoi gian thuc
hienthi:
acall htcon
acall htthu
acall htngay
acall htthang
acall htnam
acall htgiay
acall htphut
acall htgio
ret
;chuong trinh con test phim 1
test:
jnb settime,setthu
ret
setthu:
acall htthu
jb up,$
inc 53h
acall htthu
jb settime,setthu
setngay:
acall htngay
jb up,$
inc 54h
acall htngay
jb settime,setngay
setthang:
acall htthang
jb up,$
inc 55h
acall htthang
jb settime,setthang
setnam:
acall htnam
jb up,$
inc 56h
acall htnam
jb settime,setnam
setgio:
acall htgio
jb up,$
inc 50h
acall htgio
jb settime,setgio
setphut:
acall htphut
jb up,$
inc 51h
acall htphut
jb settime,setphut
ljmp main1
ret
;chuong trinh con hien thi constan
htcon:
mov a,#87h
acall nhanlenh
mov a,#3ah
acall nhanso
mov a,#8ah
acall nhanlenh
mov a,#3ah
acall nhanso
ret
;chuoi ky tu can hien thi
org 200h
sun: db "sun"
mon: db "mon"
tue: db "tue"
wen: db "wen"
thu: db "thu"
fri: db "fri"
sat: db "sat"
;chuong trinh chinh
org 700h
main:
mov r0,#9
mov r1,#40 ;bo dem cho ctc tao tre 40ms
mov r2,#250 ;bo dem cho ctc tao tre 1s
mov r3,#100
mov sp,#60h
acall kdlcd
acall kdrtc
acall htcon
main1:
acall ghirtc
acall docrtc
acall hienthi
acall test
sjmp main1
end
#include <Sfr51.inc>
;Chuong trinh hien thi dong ho so tren LCD 16x2 su dung DS12c887
rs bit p2.7
rw bit p2.6
e bit p2.5
t2 equ 2
d equ 0ah
settime bit p3.0
up bit p3.1
org 00h
ljmp main
;chuong trinh con tao tre
delay:
mov tmod,#01h
mov th0,#high(-1800)
mov tl0,#low(-1800)
setb tr0
jnb tf0,$
clr tf0
clr tr0
ret
;chuong trinh con tao tre 5ms
delay5ms:
mov r0,#5
loop:
acall delay
djnz r0,loop
ret
;chuong trinh con tao tre 50ms
delay100ms:
mov r0,#100
loopp:
acall delay
djnz r0,loopp
ret
;chuong trinh con LCD o che do nhan lenh
nhanlenh:
push acc
clr rs ;dat LCD o che do nhan lenh
clr rw
setb e ;cho phep hien thi
mov p1,a ;dua du lieu ra P1
nop
clr e
pop acc
acall delay5ms
ret
;chuong trinh con LCD o che do nhan so
nhanso:
push acc
setb rs ;dat LCD o che do nhan lenh
clr rw
setb e ;cho phep hien thi
mov p1,a ;dua du lieu ra P1
nop
clr e
clr a
pop acc
acall delay5ms
ret
;chuong trinh con nhan du lieu va hien thi cac chu cai
nhanchu:
push 1
push acc
loop9:
setb rs
clr rw
setb e
clr a
movc a,@a+dptr
mov p1,a
nop
nop
nop
clr e
acall delay5ms
inc dptr
djnz r1,loop9
pop acc
pop 1
ret
;chuong trinh con thiet lap cho LCd
kdlcd:
acall delay100ms ;cho Vcc dat dc gia tri dinh muc
mov a,#38h ;hien thi 2 dong - co chu 5x7
acall nhanlenh
acall delay5ms
mov a,#0fh ;
acall nhanlenh
acall delay5ms
mov a,#0fh ;
acall nhanlenh
acall delay5ms
mov a,#06h ;con tro tu dong tang
acall nhanlenh
ret
;chuong trinh con khoi dong RTC
kdrtc:
push 0
push acc
mov a,#0a0h
mov r0,#0ah
movx @r0,a
mov a,#02h
mov r0,#0bh
movx @r0,a
pop acc
pop 0
ret
;chuong trinh con dat gia tri dau cho RTC la 23:59:59 01(Sunday) 01/01/08
ghirtc:
push 0
push acc
mov a,52h ;dat giay
mov r0,#0h
movx @r0,a
mov a,59h ;dat giayalarm
mov r0,#1h
movx @r0,a
mov a,51h ;dat phut
mov r0,#2h
movx @r0,a
mov a,58h ;dat phutalarm
mov r0,#3h
movx @r0,a
mov a,#50h ;dat gio
mov r0,#4h
movx @r0,a
mov a,57h ;dat gioalarm
mov r0,#5h
movx @r0,a
mov a,#53h ;thu
mov r0,#6h
movx @r0,a
mov r0,#54h ;ngay
movx @r0,a
mov r0,#55h ;thang
movx @r0,a
mov a,#56h ;nam
mov r0,#09h
movx @r0,a
pop acc
pop 0
ret
;chuong trinh con doc gia tri tu rtc vao ram onchip
;23:59:59 vao 50h:51h:52h
;thu may vao 53
;01/01/08 vao 54:55:56h
;alarm vao 57:58:59h
docrtc:
push 0
push acc
mov r0,#0h
movx a,@r0
da a
mov 52h,a
mov r0,#2h
movx a,@r0
da a
mov 51h,a
mov r0,#4h
movx a,@r0
da a
mov 50h,a
mov r0,#6h
movx a,@r0
da a
mov 53h,a
mov r0,#7h
movx a,@r0
da a
mov 54h,a
mov r0,#8h
movx a,@r0
da a
mov 55h,a
mov r0,#9h
movx a,@r0
da a
mov 56h,a
pop acc
pop 0
ret
;chuong trinh con xuat thoi gian, thu ngay thang nam ra lcd
htthu:
push 0
push acc
push dpl
push dph
osat:
mov a,53h
cjne a,#00,osun
mov r0,#3
mov dptr,#sun
acall nhanchu
ret
osun:
cjne a,#01,omon
mov r0,#3
mov dptr,#mon
acall nhanchu
ret
omon:
cjne a,#02,otue
mov r0,#3
mov dptr,#tue
acall nhanchu
ret
otue:
cjne a,#03,owen
mov r0,#3
mov dptr,#wen
acall nhanchu
ret
owen:
cjne a,#04,othu
mov r0,#3
mov dptr,#thu
acall nhanchu
ret
othu:
cjne a,#05,ofri
mov r0,#3
mov dptr,#fri
acall nhanchu
ret
ofri:
cjne a,#06,osat
mov r0,#3
mov dptr,#sat
acall nhanchu
pop dph
pop dpl
pop acc
pop 0
ret
;hien thi ngay
htngay:
mov a,#0c5h
acall nhanlenh
mov a,54h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#0c6h
acall nhanlenh
mov a,54h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;hien thi thang
htthang:
mov a,#0c8h
acall nhanlenh
mov a,55h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#0c9h
acall nhanlenh
mov a,55h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;hien thi nam
htnam:
mov a,#0cbh
acall nhanlenh
mov a,56h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#0cch
acall nhanlenh
mov a,56h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;hien thi gio
htgio:
mov a,#85h
acall nhanlenh
mov a,50h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#86h
acall nhanlenh
mov a,50h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;hien thi phut
htphut:
mov a,#88h
acall nhanlenh
mov a,51h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#89h
acall nhanlenh
mov a,51h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;hien thi giay
htgiay:
mov a,#8bh
acall nhanlenh
mov a,52h
anl a,#0fh
add a,#30h
acall nhanso
mov a,#8ch
acall nhanlenh
mov a,52h
anl a,#0f0h
add a,#30h
acall nhanso
ret
;chuong trinh con hien thi thoi gian thuc
hienthi:
acall htcon
acall htthu
acall htngay
acall htthang
acall htnam
acall htgiay
acall htphut
acall htgio
ret
;chuong trinh con test phim 1
test:
jnb settime,setthu
ret
setthu:
acall htthu
jb up,$
inc 53h
acall htthu
jb settime,setthu
setngay:
acall htngay
jb up,$
inc 54h
acall htngay
jb settime,setngay
setthang:
acall htthang
jb up,$
inc 55h
acall htthang
jb settime,setthang
setnam:
acall htnam
jb up,$
inc 56h
acall htnam
jb settime,setnam
setgio:
acall htgio
jb up,$
inc 50h
acall htgio
jb settime,setgio
setphut:
acall htphut
jb up,$
inc 51h
acall htphut
jb settime,setphut
ljmp main1
ret
;chuong trinh con hien thi constan
htcon:
mov a,#87h
acall nhanlenh
mov a,#3ah
acall nhanso
mov a,#8ah
acall nhanlenh
mov a,#3ah
acall nhanso
ret
;chuoi ky tu can hien thi
org 200h
sun: db "sun"
mon: db "mon"
tue: db "tue"
wen: db "wen"
thu: db "thu"
fri: db "fri"
sat: db "sat"
;chuong trinh chinh
org 700h
main:
mov r0,#9
mov r1,#40 ;bo dem cho ctc tao tre 40ms
mov r2,#250 ;bo dem cho ctc tao tre 1s
mov r3,#100
mov sp,#60h
acall kdlcd
acall kdrtc
acall htcon
main1:
acall ghirtc
acall docrtc
acall hienthi
acall test
sjmp main1
end
