找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8013|回复: 2
打印 上一主题 下一主题
收起左侧

求助分析

[复制链接]
跳转到指定楼层
楼主
ID:3751 发表于 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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:3751 发表于 2008-7-29 11:38 | 只看该作者

消灭0回复~~~~~~~~~~~

回复

使用道具 举报

板凳
ID:3751 发表于 2008-7-29 16:45 | 只看该作者

程序太长了吧,没人爱看!!!!!
郁闷~~~我就是分析不出来aup a0 adow a1 和b的那几个状态,高手没快帮帮忙把

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表