标题: 求助分析 [打印本页]
作者: lq44199289 时间: 2008-7-28 12:35
标题: 求助分析
求各位达人帮忙分析下面的每段功能,a和b为两列方波脉冲,同时发送,波形差异为相差1/4周期,a在前为正向。或帮忙分析aup adow a0 b0 等状态(看的比较迷糊)
fushu equ acc.7 ;位设定
sign equ p3.0 ;符号位
abit equ p3.2
bbit equ p3.4
org 0000h
ljmp main
org 0100h
main:
mov psw , #00h
mov r3, #00h ;置0
mov r4, #00h
mov 70h,#00h
mov 71h,#00h
mov 72h,#00h
mov 71h,#00h
setb p3.0
setb p3.6
setb p3.1
mov p2,#88h
;mov r5,#00h
loop2: mov r7,#0ffh
loop1: mov r6,#0ffh ;延时chushiyianshi
loop: djnz r6,loop
djnz r7,loop1
; djnz r5,loop2
clr p3.0
setb p3.6
setb p3.1
mov p2,#00h
clr p3.0
setb p3.3
setb p3.7
mov p1,#00h
mov sp,#60h
mov r0,#80h
mov r1,#02h
clear: mov @r1,#00h ;设定存储位置,清0
inc r1
djnz r0,clear
mov r1,#00h
clr p3.0
reada: mov c,abit ;读abit
jnc aup ;脉冲沿判定
adow: mov c,abit
jc pd_adow_bbit
mov c,bbit
jnc adowb0
ljmp adowb1
pd_adow_bbit: ;判断adow时的b
mov c,bbit
jc adow_bnextdow
adow_bnextup:
mov c,bbit
jc adow_bup
jmp adow
adow_bup:ljmp bupa1
adow_bdow:ljmp bdowa1
adow_bnextdow:
mov c,bbit
jnc adow_bdow
ljmp adow
adowb1: lcall adddisplay
lcall display
ljmp bdow
adowb0: lcall subbdisplay
lcall display
ljmp bup
aup: mov c,abit
jnc pd_aup_bbit
mov c,bbit
jnc aupb0
ljmp aupb1
pd_aup_bbit: ;判断aup时的b
mov c,bbit
jc aup_bnextdow
aup_bnextup:
mov c,bbit
jc aup_bup
ljmp aup
aup_bup:ljmp bupa0
aup_bdow:ljmp bdowa0
aup_bnextdow:
mov c,bbit
jnc aup_bdow
ljmp aup
aupb1: lcall subbdisplay
lcall display
ljmp bdow
aupb0: lcall adddisplay
lcall display
ljmp bup
bup: mov c,bbit
jnc pd_bup_abit
mov c,abit
jc bupa1
ljmp bupa0
pd_bup_abit: ;判断bup时的a
mov c,abit
jc bup_anextdow
bup_anextup:
mov c,abit
jc bup_aup
ljmp bup
bup_aup:ljmp aupb0
bup_adow:ljmp adowb0
bup_anextdow:
mov c,abit
jnc bup_adow
ljmp bup
bupa0: lcall subbdisplay
lcall display
ljmp aup
bupa1: lcall adddisplay
lcall display
ljmp adow
bdow: mov c,bbit
jc pd_bdow_abit
mov c,abit
jnc bdowa0
ljmp bdowa1
pd_bdow_abit: ;判断bdow时的a
mov c,abit
jc bdow_anextdow
bdow_anextup:
mov c,abit
jc bdow_aup
ljmp bdow
bdow_aup:ljmp aupb1
bdow_adow:ljmp adowb1
bdow_anextdow:
mov c,abit
jnc bdow_adow
ljmp bdow
bdowa1:
lcall subbdisplay
lcall display
ljmp adow
bdowa0: lcall adddisplay
lcall display
ljmp aup
adddisplay: ;加显示
;mov 76h,#88h
;mov 75h,#00h
mov a,r3
jb acc.7,fu1 ;判断r3的7位置是否为1是跳fu1
clr sign
mov a,r4
add a,#01h
mov r4,a
mov a,r3
addc a,#00h
mov r3,a
lcall addbcd
mov a,r4
cjne a,#0e0h,aret ;3000个脉冲上限判断120000
mov a,r3
cjne a,#2eh,aret
mov r3, #00h
mov r4, #00h
mov 72h,#00h
mov 71h,#00h
mov 70h,#00h
mov 73h,#00h
lcall display
sjmp aret
fu1:
setb sign
clr c
mov a,r4
subb a,#01h
mov r4,a
mov a, r3
subb a,#00h
mov r3,a
lcall subbcd
mov a,r3
cjne a, #80h,aret ;符号判定和下限判定;80h
mov a,r4
cjne a, #00h,aret ;00h
mov 40h ,#01h
mov r4, #00h ;00h
mov r3, #00h ;00h
clr 70h
clr 71h
clr 72h
clr 73h
lcall display
clr sign
clr sign
aret: ret
subbdisplay: ;减法
mov a,r3
jb acc.7,sjad ;减0判断
clr sign
mov r3,a
cjne a,#00h,ssub ;00h
mov a,r4
cjne a,#00h,ssub ;00h
setb sign
mov r3,#00h ;00h
mov r4,#00h ;00h
setb sign
sjmp sjad
ssub:
clr c
mov a,r4
subb a, #01h
mov r4,a
mov a,r3
subb a, #00h
mov r3,a
lcall subbcd
mov a,r3
cjne a,#00h,aaaa ;80h
mov a, r4
cjne a,#00h,aaaa ;00h
mov r3,#00h
mov r4,#00h
setb sign
clr 70h
clr 71h
clr 72h
clr 73h
lcall display
aaaa: sjmp sret
sjad:
setb sign
clr c
mov a,r4
add a,#01h
mov r4,a
mov a, r3
addc a,#00h
mov r3,a
lcall display
lcall addbcd
setb sign
mov a,r3
cjne a,#80h,bbb ;#80
mov a,r4
cjne a,#00h,bbb ;00
mov r3,#00h
mov r4,#00h
mov 70h,#00h
mov 71h,#00h
mov 72h,#00h
mov 73h,#00h
lcall display
nop
sjmp sret
bbb: mov a,r3
cjne a, #0aeh,sret ;#0ceh
mov a,r4
cjne a, #0e0h,sret ;#20h
mov r4, #00h ;00h
mov r3, #80h ;80h
lcall display
mov 70h, #00h
mov 71h, #00h
mov 72h, #00h
mov 73h,#00h
clr sign
clr sign
lcall display
nop
nop
sret: ret
addbcd:
mov 30h,#30h ;改动为30,原来为18
mov 31h,#00h
mov 32h,#00h
sjmp bcd
subbcd:
mov 30h,#70h ;82h
mov 31h,#99h ;99h
mov 32h,#99h ;此处原来99h
bcd: mov psw,#00h ;BCD
mov r0,#70h
mov r1,#30h
mov r7,#03h
clr c
del: mov a,@r0
addc a,@r1
da a
mov @r0,a
inc r0
inc r1
djnz r7,del
clr a
addc a,#00h
mov @r0,a
ret
display: ;送计算机
mov a,r4
setb p3.3
clr p3.7
mov p1,a
mov r4,a
mov a,r3
clr p3.3
setb p3.7
mov p1,a
mov r3,a
display2: ;数码管显示,72h,71h,舍去70h低2位不送
mov a,72h
setb p3.1 ;先送高位显示,锁存使能不用,数据输出
clr p3.6
mov p2,a
mov a,71h
clr p3.1
setb p3.6
mov p2,a
ret
end
作者: lq44199289 时间: 2008-7-29 11:38
消灭0回复~~~~~~~~~~~
作者: lq44199289 时间: 2008-7-29 16:45
程序太长了吧,没人爱看!!!!!
郁闷~~~我就是分析不出来aup a0 adow a1 和b的那几个状态,高手没快帮帮忙把
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |