3478,10
;----DE 3-------------
;viet chuong trinh dieu khien 8051 dem xung ngoai 0-125
;dung bo dem timer 0
;hien thi ra led 7seg
;---------------------------------------
ORG 0
main:
mov dptr,#bang_ma ;chi thanh ghi con tro toi dia chi bang ma
mov tmod,#00000110b ;timer 0 mode 2 che do counter
setb tr0 ;khoi dong timer
lap:
mov tl0,#0
lap1:
call tach
call hien_thi
mov a,tl0
cjne a,#126,lap1
jmp lap
;---------------------------------
;chuong trinh chinh
;-----tach--------
tach:
mov a,tl0
mov b,#100
div ab
movc a,@a+dptr
mov 30h,a
mov a,b
mov b,#10
div ab
movc a,@a+dptr
mov 31h,a
mov a,b
movc a,@a+dptr
mov 32h,a
ret
hien_thi:
mov p0,32h
clr p2.0
call delay
mov p2,#0ffh
mov p0,31h
clr p2.1
call delay
mov p2,#0ffh
mov p0,30h
clr p2.2
call delay
mov p2,#0ffh
ret
delay:
mov r4,#50
djnz r4,$
ret
bang_ma:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
end
_______________________________________
;----------de 4-------------------------
;viet ct cho 8051 dem xung ngoai len tu 15-145
;su dung timer 1
;---------------------------------------
org 0
main:
mov dptr,#bang_ma
mov tmod,#01100000b ;chon timer 1
setb tr1 ;cho phep khoi dong timer
lap:
mov tl1,#15
lap1:
call tach
call hienthi
mov a,tl1
cjne a,#145,lap1
jmp lap
;----------------------------
;chuong trinh con
tach:
mov a,tl1
mov b,#100
div ab
movc a,@a+dptr
mov 30h,a
mov a,b
mov b,#10
div ab
movc a,@a+dptr
mov 31h,a
mov a,b
movc a,@a+dptr
mov 32h,a
ret
hienthi:
mov p0,32h
clr p2.0
call delay
mov p2,#0ffh
mov p0,31h
clr p2.1
call delay
mov p2,#0ffh
mov p0,30h
clr p2.2
call delay
mov p2,#0ffh
ret
delay:
mov r7,#50
djnz r7,$
ret
bang_ma:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
end
--------------------------------------------------------------------------------------------
;-------------de 7-------------
;chuong trinh dem phut giay su dung timer 0
;--------------------
org 0
jmp main
org 0bh
mov th0,#high(15536)
mov tl0,#low(15536)
inc r0 ;bien dem 1s
cjne r0,#20,thoat_ngat
mov r0,#0
inc r1 ;bien dem jay
cjne r1,#60,thoat_ngat
mov r1,#0
inc r2 ;bien dem phut
cjne r2,#60,thoat_ngat
mov r2,#0
thoat_ngat:
reti
main:
mov dptr,#bang_ma
mov ie,#10000010b ;cho phep ngat
mov tmod,#00000001b ;khoi dong timer 0
mov th0,#high(15536)
mov tl0,#low(15536)
setb tr0 ;khoi dong T/C 0
mov r0,#0
mov r1,#0
mov r2,#0
lap:
call tach
call hien_thi
jmp lap
;---------------------------------
;chuong trinh con
;-------------------------
tach:
mov a,r1
mov b,#10
div ab
movc a,@a+dptr
mov 30h,a ;bien dem giay hang chuc
mov a,b
movc a,@a+dptr
mov 31h,a ;bien dem giay hang don vi
;---------------------------------
mov a,r2
mov b,#10
div ab
movc a,@a+dptr
mov 32h,a ;bien dem phut hang chuc
mov a,b
movc a,@a+dptr
mov 33h,a ;bien dem phut hang don vi
ret
;--------------------------------------
;---hien thi--------------------------
hien_thi:
mov p0,31h
clr p2.0 ;hien thi giay hang don vi
call delay
mov p2,#0ffh
mov p0,30h
clr p2.1 ;hien thi giay hang chuc
call delay
mov p2,#0ffh
mov p0,33h
clr p2.2 ;hien thi phut hang don vi
call delay
mov p2,#0ffh
mov p0,32h
clr p2.3 ;hien thi phut hang chuc
call delay
mov p2,#0ffh
ret
delay:
mov r6,#50
djnz r6,$
ret
bang_ma:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
end
_-----------------------------------------------------------
;-------------de 8-------------
;chuong trinh dem phut giay su dung timer 1
;--------------------
org 0
jmp main
org 1bh
mov th1,#high(15536)
mov tl1,#low(15536)
inc r0 ;bien dem 1s
cjne r0,#20,thoat_ngat
mov r0,#0
inc r1 ;bien dem jay
cjne r1,#60,thoat_ngat
mov r1,#0
inc r2 ;bien dem phut
cjne r2,#60,thoat_ngat
mov r2,#0
thoat_ngat:
reti
main:
mov dptr,#bang_ma
mov ie,#10001000b ;cho phep ngat
mov tmod,#00010000b ;khoi dong timer 1
mov th1,#high(15536)
mov tl1,#low(15536)
setb tr1 ;khoi dong T/C 1
mov r0,#0
mov r1,#0
mov r2,#0
lap:
call tach
call hien_thi
jmp lap
;---------------------------------
;chuong trinh con
;-------------------------
tach:
mov a,r1
mov b,#10
div ab
movc a,@a+dptr
mov 30h,a ;bien dem giay hang chuc
mov a,b
movc a,@a+dptr
mov 31h,a ;bien dem giay hang don vi
;---------------------------------
mov a,r2
mov b,#10
div ab
movc a,@a+dptr
mov 32h,a ;bien dem phut hang chuc
mov a,b
movc a,@a+dptr
mov 33h,a ;bien dem phut hang don vi
ret
;--------------------------------------
;---hien thi--------------------------
hien_thi:
mov p0,31h
clr p2.0 ;hien thi giay hang don vi
call delay
mov p2,#0ffh
mov p0,30h
clr p2.1 ;hien thi giay hang chuc
call delay
mov p2,#0ffh
mov p0,33h
clr p2.2 ;hien thi phut hang don vi
call delay
mov p2,#0ffh
mov p0,32h
clr p2.3 ;hien thi phut hang chuc
call delay
mov p2,#0ffh
ret
delay:
mov r6,#50
djnz r6,$
ret
bang_ma:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
end
----------------------------------------------------
;-----------de 10--------------
;chuong trinh giao tiep VDK 8051 voi adc 0808
;ngo vao kenh in5
;Vref=-2.56 Vref- = 0
;-----------------------------------
;dinh dia chi
data_out equ p3
add_a equ p2.0
add_b equ p2.1
add_c equ p2.2
ale equ p2.3
start equ p2.4
eoc equ p2.5
oe equ p2.6
org
main:
mov dptr,#bang_ma
mov data_out,#0ffh ;xac lap dau vao
setb eoc ;bao ket thuc qt chuyen doi
clr ale
clr start
clr oe
;xac lap dau vao adc
setb add_a
clr add_b
setb add_c ;chon in5
setb ale
nop
nop
clr ale ; chot dia chi
lap:
call chuyendoi
call tach
call hien_thi
jmp lap
;-------------------------------------------
;-----chuong trinh con-----------
chuyendoi:
setb start
nop
nop
clr start
setb oe
jnb eoc,$
mov a,data_out
clr oe
ret
;-----------------------------------
tach:
mov b,#100
div ab
movc a,@a+dptr
mov 30h,a
mov a,b
mov b,#10
div ab
movc a,@a+dptr
mov 31h,a
mov a,b
movc a,@a+dptr
mov 32h,a
ret
;---------------------------------------------
hien_thi:
mov p0,32h
clr p1.0
call delay
mov p1,#0ffh
;--------------------------
mov p0,31h
clr p1.1
call delay
mov p1,#0ffh
;---------------------------------
mov p0,30h
clr p1.2
call delay
mov p1,#0ffh
ret
;--------------------------
delay:
mov r7,#50
djnz r7,$
ret
;-------------------------
bang_ma:
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
end
Bạn đang đọc truyện trên: Truyen247.Pro