当前位置:首页 > 液体点滴速度监控装置的设计
个人收集整理 仅做学习参考
图11 图12
3、源程序:
时间基准缓冲区:秒55h 0.01秒56h 键盘设置缓冲区:秒57h 0.01秒58h
传感测量缓冲区:前次—秒51h 0.01秒52h 当前—秒53h 0.01秒54h 差值—秒4fh 0.01秒50h
文档收集自网络,仅用于个人学习 最终显示缓冲区:选择值:54h测定值5ah 5bh 5ch 设置值 5dh 5eh 5fh R4用于步进电机地步进记忆
org 0000h mov 5eh,#00h ajmp main mov 5fh,#00h org 0003h mov r7,#00h ajmp jpint ;int0 setb f0 org 000bh clr p2.1 ajmp times ;t0 mov tmod,#01h ;T0为工作方式0 org 0013h mov tl0,#0f0h ;计数器初值 ajmp cgint ;int1 mov th0,#0d8h org 0040h mov ie,#87h ;中断设置,除T1,ES外main:mov sp,#60h ;设置堆栈 全开中断 mov 41h,#00h mov ip,#02h ;中断优先级 mov 42h,#00h setb it0 mov 43h,#00h setb it1 ;脉冲触发方式 mov 44h,#00h setb tr0 ;启动定时 mov 45h,#00h setb p1.4 mov 46h,#00h disp:acall disp0 ;调用显示子程序 mov 47h,#00h ajmp disp mov 48h,#00h mov 4fh,#00h disp0: mov 50h,#00h push acc mov 51h,#00h mov dptr,#table mov 52h,#00h mov 53h,#00h jnb f0,disp1 mov 54h,#00h ;初值设置 mov a,54h ;选择值显示 mov 55h,#00h cjne a,#01h,zzz1
movc a,@a+dptr mov 56h,#00h ;以上为时间初值
mov 54h,#00h mov sbuf,a
jnb ti,$ mov 57h,#00h ;初值显示为00
mov 58h,#00h clr ti mov 59h,#00h mov a,#0ffh mov 5ah,#00h mov sbuf,a mov 5bh,#00h jnb ti,$ mov 5ch,#00h clr ti mov 5dh,#00h acall dealy
9 / 18
个人收集整理 仅做学习参考
ajmp disp1
zzz1:cjne a,#02h,zzz2 movc a,@a+dptr mov sbuf,a jnb ti,$ clr ti
mov a,#0ffh mov sbuf,a jnb ti,$ clr ti
acall dealy ajmp disp1
zzz2:cjne a,#03h,zzz3 movc a,@a+dptr mov sbuf,a jnb ti,$ clr ti
mov a,#0ffh mov sbuf,a jnb ti,$ clr ti
acall dealy ajmp disp1
zzz3:mov 54h,#00h
disp1:mov a,5ah cjne a,#00h,disp2 ajmp disp3
disp2:cjne a,#01h,disp4disp3:movc a,@a+dptr mov sbuf,a jnb ti,$ clr ti
mov a,#0feh mov sbuf,a jnb ti,$ clr ti
acall dealy
disp4:mov a,5bh movc a,@a+dptr mov sbuf,a jnb ti,$ clr ti
mov a,#0fdh mov sbuf,a jnb ti,$ clr ti
acall dealy
mov a,5ch
movc a,@a+dptr mov sbuf,a jnb ti,$ clr ti
mov a,#0fbh mov sbuf,a jnb ti,$ clr ti acall dealy
mov a,5dh movc a,@a+dptr mov sbuf,a jnb ti,$ clr ti
mov a,#0dfh mov sbuf,a ;测定值显示 jnb ti,$ clr ti acall dealy
mov a,5eh
movc a,@a+dptr mov sbuf,a jnb ti,$ clr ti
mov a,#0bfh mov sbuf,a jnb ti,$ clr ti acall dealy
mov a,5fh
movc a,@a+dptr mov sbuf,a jnb ti,$ 10 / 18
;设置值显示 个人收集整理 仅做学习参考
clr ti
mov a,#7fh mov sbuf,a jnb ti,$ clr ti
acall dealy pop acc ret
dealy:
mov r0,#0fah lll: nop nop
djnz r0,lll ret
table:db 03h db 9fh db 25h db 0dh db 99h db 49h db 41h db 1fh db 01h db 09h
jpint: push acc push 07h mov r2,#0ah zzz:acall dealy djnz r2,zzz
jb p1.0,x2 inc 54h clr ex1 setb f0 mov a,54h cjne a,#04h,x1 mov 54h,#01h x1:ajmp ret0
x2:jb p1.1,x3 mov a,54h cjne a,#00h,lll1;键盘控制子程序 ;选择键子程序 ;加1键子程序ajmp ret0
lll1:cjne a,#01h,lll2 inc 5fh mov a,5fh
cjne a,#0ah,zhongju mov 5fh,#00h ajmp ret0
lll2:cjne a,#02h,lll3 inc 5eh mov a,5eh cjne a,#0ah,ret0 mov 5eh,#00h ajmp ret0 lll3:inc 5dh mov a,5dh cjne a,#0ah,ret0 mov 5dh,#00h ajmp ret0
x3:jb p1.2,x4 ;减1键子程序mov a,54h cjne a,#00h,llll1 ajmp ret0
llll1:cjne a,#01h,llll2 dec 5fh mov a,5fh
cjne a,#0ffh,ret0 mov 5fh,#09h ajmp ret0
zhongju:ajmp ret0 llll2:cjne a,#02h,llll3 dec 5eh mov a,5eh
cjne a,#0ffh,ret0 mov 5eh,#09h ajmp ret0 llll3:dec 5dh mov a,5dh
cjne a,#0ffh,ret0 mov 5dh,#09h ajmp ret0
x4:jb p1.3,x5 ;确定键子程序 clr f0
acall enter ;因指令而修改 ret01: ;对整数进行修正 11 / 18
个人收集整理 仅做学习参考
mov a,r7 cjne a,#14,ccc1
mov 57h,#03h ;为20置3 setb ex1 ajmp ret0
ccc1:cjne a,#1eh,ccc2
mov 57h,#02h ;为30置2 setb ex1 ajmp ret0
ccc2:cjne a,#3ch,ret02
mov 57h,#01h ;为60置1 setb ex1 ajmp ret0
x5:jb p2.0,ret0 ;报警监测 setb p2.1 ;送报警声音 ajmp ret0 ret02:setb ex1 ret0:pop acc pop 07h reti enter:
mov 54h,#00h clr c
mov a,5dh ;求时间段程序 mov b,#64h ;百位数 mul ab mov r7,a mov a,5eh
mov b,#0ah ;十位数 mul ab add a,r7 mov r7,a mov a,5fh add a,r7
mov r7,a ;此时r7中为设定值 clr c
subb a,#14h ;查表前减20
mov dptr,#table1 ;由数值查时间段表movc a,@a+dptr mov 58h,a ret
times: ;时间设置 push acc
mov tl0,#0f0h
mov th0,#0d8h setb tr0 inc 56h mov a,56h
cjne a,#64h,quit0 mov 56h,#00h inc 55h
quit0:pop acc reti
cgint: ;传感测量 mov r2,#0ah zzzz:acall dealy djnz r2,zzzz jnb p3.3,cgint1 reti
cgint1:push acc push 03h push 04h push 05h push 06h inc r7
cjne r7,#0ah,zhongju1 mov r7,#00h
mov a,53h ;数值转移 mov 51h,a mov a,54h mov 52h,a
mov a,55h ;读取当前时间 mov 53h,a mov a,56h mov 54h,a
clr c ;求10个脉冲差值子程序mov 47h,#00h ;10差值寄存区 mov 48h,#00h mov a,53h subb a,51h mov 47h,a clr c
mov a,54h subb a,52h
jnc zero ;如果当前值大就跳转 dec 47h clr c 12 / 18
共分享92篇相关文档