MOD8

  ORG 0000H              ;YK.ASM
 LJMP START
 ORG 0003H
        ajmp xint0
        ORG 100H
a_bit   equ 20h             ;ge bit
b_bit   equ 21h             ;shi bit
count equ 22h             ;count
START:  MOV SP,#60H
        SETB EA
        setb ex0 ;!!!!!YING XIANG MUSIC
        SETB IT0
        mov r4,#00h
        MOV a_bit,#10h           ;off
        mov b_bit,#11h           ;p
loop:   acall disp
        ajmp loop
DISP:   MOV A,a_bit  ;取个位数
 MOV DPTR,#TAB           ;指定查表启始地址
 MOVC A,@A+DPTR          ;查个位数的7段代码
 MOV P0,A                ;送出个位的7段代码
 CLR P2.7                ;开个位显示
 DJNZ R4,$               ;显示0.5ms
 SETB P2.7
 MOV A,b_bit  ;取十位数
 MOV DPTR,#TAB
 MOVC A,@A+DPTR          ;查十位数的7段代码
 MOV P0,A                ;送出十位的7段代码
 CLR P2.6                ;开十位显示
 DJNZ R4,$               ;显示0.5ms
 SETB P2.6
 MOV P0,#00H             ;off
        ret
tab:    db 0cfh,03h,5dh,5bh,93h,0dah,0deh,43h,0dfh,0dbh
 DB 0D7H,9EH,0CCH,1FH,0DCH,0D4H,00h,0f5h
pds:    push acc
        anl a,#0fh
        mov a_bit,a
        pop acc
        swap a
        anl a,#0fh
        mov b_bit,a
        ret
xint0:  SETB RS1
        PUSH ACC
        PUSH PSW
        clr ea
        mov r6,#10
sb:     acall ys1             ;delay 400us        400us*10=4ms   同步码头:9ms的低电平;4ms的高电平
        jb p3.2,exit51;       ;if p3.2==1 return  
       djnz r6,sb
        jnb p3.2,$  ;wait low  
        acall ys2  ;wait 2.35ms
        mov r7,#26
jjjja:  jnb p3.2,$  ;同步码头结束
        lcall ys1
        mov c,p3.2  ;26bit mov c,p3.2
        jnc uuua
        lcall ys3  ;等待0.5ms
uuua:   djnz r7,jjjja  ;26个用户识别码
        mov r1,#1ah  ;1ah=26    26个用户识别码接受结束
        mov r2,#2
pp:     mov r3,#8
jjjj:   jnb p3.2,$
        lcall ys1  ;delay 400us
        mov c,p3.2  ;8bit mov c,p3.2
        jnc uuu
        lcall ys3
uuu:    mov a,@r1
        rrc a
        mov @r1,a
        djnz r3,jjjj  ;jjjj 8bit 操作码mov c,p3.2
        inc r1
        djnz r2,pp  ;跳回接受8比特反操作码
        mov a,1ah
        cpl a
        cjne a,1bh,exit51 ;如果反操作码与操作码不符,返回
        MOV P1,1AH       ;!!!   ;如果反操作码与操作码相符,接收成功
        MOV a,1AH
        acall pds
        clr p2.5  ;接收成功蜂鸣器响
        lcall ys2
        lcall ys2
        lcall ys2
        setb p2.5  ;接收成功蜂鸣器响;响2.35*3=7毫秒
EXIT51: POP PSW
        POP ACC
        CLR RS1
       SETB EA
        RETI
ys1:     mov r4,#20                     ;400us
d51:    mov r5,#20
        djnz r5,$
        djnz r4,d51
        ret
ys2:     mov r4,#10   ;2350us=2.35ms
d52:    mov r5,#235
        djnz r5,$
        djnz r4,d52
        ret
ys3:     mov r4,#2   ;500us=0.5ms
d53:    mov r5,#248
        djnz r5,$
        djnz r4,d53
        ret
        END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值