⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m1_2051.1.asm

📁 一卡通源码程序是我公司的一卡通源码程序,绝对难得
💻 ASM
📖 第 1 页 / 共 2 页
字号:
             mov     a,recievebuf0
             orl     a,b
             mov     idbuf4,a
             mov     a,recievebuf1
             swap    a
             mov     b,a
             mov     a,recievebuf2
             orl     a,b
             mov     idbuf5,a
             mov     a,recievebuf3
             swap    a
             mov     b,a
             mov     a,recievebuf4
             orl     a,b
             mov     idbuf6,a
             mov     a,recievebuf5
             swap    a
             mov     b,a
             mov     a,recievebuf6
             orl     a,b
             mov     idbuf7,a
             mov     a,recievebuf7
             swap    a
             mov     b,a
             mov     a,recievebuf8
             orl     a,b
             mov     idbuf8,a
             mov     a,recievebuf9
             swap    a
             mov     b,a
             mov     a,recievebuf10
             orl     a,b
             mov     idbuf9,a
             mov     a,recievebuf11
             swap    a
             mov     b,a
             mov     a,recievebuf12
             orl     a,b
             mov     idbuf10,a


             ret

;=======================================
;turn  assic   to  hex
;=======================================
change:      mov     rrx,#6
             mov     r0,#recievebuf
chang2:      mov     a,@r0
             clr     c
             cjne    a,#40h,chang0

chang0:      jc      chang1
             clr     c
             subb    a,#37h
             mov     @r0,a
             inc     r0
             djnz    rrx,chang2
             ljmp    chang3
chang1:      clr     c
             subb    a,#30h
             mov     @r0,a
             inc     r0
             djnz    rrx,chang2
chang3:      mov     a,recievebuf
             swap    a
             mov     b,a
             mov     a,recievebuf0
             orl     a,b
             mov     idbuf1,a
             mov     a,recievebuf1
             swap    a
             mov     b,a
             mov     a,recievebuf2
             orl     a,b
             mov     idbuf2,a
             clr     c 
             subb    a,idbuf1
             mov     idbuf2,a
             mov     a,idbuf1
             xrl     a,#42h
             mov     idbuf1,a
             mov     a,idbuf2
             xrl     a,#84h
             mov     idbuf2,a
             ret


;=========================================
;hex  to  assic
;=========================================

hextoassic:   mov   rrx,#3
              mov   r0,#idbuf1
              mov   r1,#recievebuf
hextoassic0:  mov   a,@r0
              inc   r0
              mov   @r1,a
              inc   r1
              inc   r1
              djnz  rrx,hextoassic0
              inc   r0
              inc   r0
              inc   r0

              mov   rrx,#4
hextoassic1:  mov   a,@r0
              inc   r0
              mov   @r1,a
              inc   r1
              inc   r1
              djnz  rrx,hextoassic1
              mov   recievebuf30,idbuf4

              mov   rrx,#16
              mov   r0,#recievebuf
one_two:      mov   a,@r0
              mov   b,a
              swap  a
              anl   a,#0fh
              mov   @r0,a
              mov   a,b
              anl   a,#0fh
              inc   r0
              mov   @r0,a
              inc   r0
              djnz  rrx,one_two
hex_assic:    mov   rrx,#32
              mov   r0,#recievebuf
hex_assic2:   mov   a,@r0
              clr   c
              cjne  a,#0ah,hex_assic0
hex_assic0:   jnc    hex_assic1
              add   a,#30h
              mov   @r0,a
              inc   r0
              djnz  rrx,hex_assic2
              ljmp  hex_assic3
hex_assic1:   clr   c
              add   a,#37h
              mov   @r0,a
              inc   r0
              djnz  rrx,hex_assic2
hex_assic3:   nop



              ret


;===================================;
;===================================;
delay:      mov   r5,#0fah
dl0:        mov   r6,#0fah
dl1:        nop
            djnz  r6,dl1
            djnz  r5,dl0
            ret



;===================================;
;初始化波特率为9600                 ;
;允许定时器0,1中断                 ;
;外部中断0为跳变触发方式            ;
;===================================;

iniall:      mov     rimod,#0
             mov     scon,#01010000B  ;SM0 SM1 SM2 REN TB8 RB8 TI RI
             mov     tmod,#21h

             mov     th0,#15h
             mov     tl0,#9fh

             mov     th1,#0fdh
             mov     tl1,#0fdh

             mov     ie,  #00010011b   ;EA  -   ET2 ES  ET1 EX1 ET0 EX0
             mov     tcon,#01010001b   ;TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
             setb    ea

             ret



;=====================================
;接受assic码中断
;=====================================

r_recieve:    push   psw
              push   acc
              push   00h


              jbc     ri,r_receve
              jbc     ti,r_send
              sjmp    d_reti
r_send:       mov     a,sendnum
              jz      d_ireti
              mov     r0,sicon
              mov     a,@r0
              mov     sbuf,a
              dec     sendnum
              inc     sicon
              ljmp    d_reti







r_receve:     mov  rega,sbuf
              mov  a,rimod
              rl   a

              add  a,rimod
              mov  dptr,#ritab
              jmp  @a+dptr

ritab:        ljmp  r_mod0
              ljmp  r_mod1
              ljmp  r_mod2
;===================
r_mod0:       mov  a,rega
              cjne a ,#02h,r_mod00
              inc  rimod
              mov  ricon,#recievebuf
              mov  checksum,#0
              mov  recievnum,#0
              ljmp r_mod00
r_mod00:      ljmp d_reti

;===================

r_mod1:       mov  a,rega
              cjne a,#03h,r_mod10
              inc  rimod
              ljmp d_reti

r_mod10:      mov  r0,ricon
              mov  @r0,a
              xrl  checksum,a
              inc  ricon
              inc  recievnum
              ljmp d_reti

r_mod2:       mov  a,rega
              cjne a,checksum,d_reti
              mov  rimod,#0
              setb f_recieve



d_ireti:      nop
              nop
d_reti:       pop    00h
              pop    acc
              pop    psw
              reti

;==========================================
;定时器0中断
;==========================================
_time_0:     push  psw
             push  acc
             clr   tr0
             mov   th0,#15h
             mov   tl0,#9fh
             inc   timeout
             ;inc   ledtime
             ;mov   a,ledtime
             cjne  a,#10,_time_01
             cpl   led
             ;mov   ledtime,#0





_time_01:    setb   tr0
             pop   acc
             pop   psw
             reti



;========================================
;外部中断0
;========================================
_int_0:      push  psw
             push  acc
             push  00h
             jnb    f_send,_int_recieve
             mov   r0,sicon
             mov   a,@r0
             mov   p1,a
             setb  requ
             nop
             nop
             nop
             nop
             clr   requ
             nop
             nop
             nop
             nop
             nop
             setb  requ

             inc   sicon
             djnz  rrx,_int_01
             clr   f_send
             ljmp  _int_01


_int_recieve:mov   a,ex0_rimod
             rl    a
             add   a,ex0_rimod
             mov   dptr,#ex0_ritab
             jmp   @a+dptr
ex0_ritab:   ljmp  ex_r_mod0
             ljmp  ex_r_mod1
             ljmp  ex_r_mod2

ex_r_mod0:   setb  requ
             nop
             nop
             nop
             nop
             clr   requ
             nop
             nop
             nop
             nop
             setb  requ
             mov   p1,#0ffh
             inc   ex0_rimod
             mov   rrx0,#12
             mov   rricon,#idbuf0
             ljmp  _int_01
ex_r_mod1:   mov   r0,rricon
             mov   a,p1
             mov   @r0,a
             inc   rricon
             djnz  rrx0,_int_00
             mov   ex0_rimod,#0
ex_r_mod2:   mov   a,idbuf0
             cjne  a,#02h,_int_01
             mov   a,idbuf11
             cjne  a,#0dh,_int_01
             setb  f_money
             ljmp  _int_01


_int_00:     setb   requ
             nop
             nop
             nop
             nop
             clr    requ
             nop
             nop
             nop
             nop
             nop
             setb   requ
_int_01:     pop   00h
             pop   acc
             pop   psw
             reti

numkey:      db         0dh,0deh,6fh,37h,83h,83h,
             db         14h,8ah,0c5h,0e2h,28h,28h,
             db         7dh,3eh,9fh,4fh,95h,95h,
             db         0adh,0d6h,06bh,35h,0c8h,0c8h,
             db         0dfh,0efh,77h,0bbh,0e4h,0e4h,
	     db         09h,84h,42h,21h,0bch,0bch,
	     db         5fh,0afh,0d7h,0ebh,0a5h,0a5h,
	     db         29h,14h,8ah,0c5h,9fh,9fh,
	     db         0fah,0fdh,0feh,7fh,0ffh,0ffh,
	     db         73h,39h,9ch,0ceh,0beh,0beh,
	     db         0fch,7eh,0bfh,0dfh,0bfh,0bfh,
	     db         0cfh,0e7h,73h,39h,51h,51h,
	     db         0f7h,0fbh,7dh,3eh,5ah,5ah,
	     db         0f2h,79h,3ch,1eh,8dh,8dh,
	     db         0cfh,0e7h,73h,39h,45h,45h,
	     db         0b7h,0dbh,06dh,0b6h,7dh,7dh

             end











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -