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

📄 register.asm

📁 我自己写的短距离无线通信系统的收发程序
💻 ASM
字号:
              ORG   0000H
              AJMP  REGISTER
              ORG   0030H
;*****************************************************************
;报到子程序
REGISTER:     MOV   A,50H             ;50H存放地址命令标志
              CJNE  A,#255,REG_2      ;Ra=255?不等则跳转
              CLR   P2.3              ;报到状态灯亮,允许报到
              SETB  EA                ;开中断
REG_1:        MOV   C,P2.3            ;p2.3是报到状态显示位
              JC    REG_3             ;(P2.3=1)报到取消则转移
              MOV   C,P1.0            ;扫描P1.0,P1.0是S1按键
              LCALL DELAY_10ms        ;延时10ms消抖
              ORL   C,P1.0            ;再读P1.0状态,看两次结果是否都为0
              JC    REG_1             ;(P1.0=1)S1键没有按下则转移重新扫描
              CLR   EA                ;关中断
           ;******************************************************
           ;需要修改的地址Ra和命令Ri
              MOV   R2,#00H           ;R2存放本机地址,需要修改
              MOV   R3,#01H           ;R3存放命令(01代表报到).需要修改
           ;******************************************************
             ; LCALL SEND              ;调发送子程序
              CLR   P2.4              ;已报到灯亮
              AJMP  REG_END            ;返回
REG_2:        CJNE  A,#254,REG_ERR    ;Ra=254?不等则跳转
              SETB  P2.3              ;取消报到状态
              SETB  P2.4           
REG_3:        CLR   EA                ;开中断
              AJMP  REG_END           ;返回
REG_ERR:      MOV   P2,#00H           ;出错,灯全亮
REG_END:      RET
;***********************************************************************
;延时子程序
DELAY_10ms:  MOV    R7,#32
DEL1:        MOV    R6,#142         ;因为晶振为11.0592MHZ,所以t=12/(11.0592×1000000)
             NOP
DEL2:        DJNZ   R6,DEL2         ;142×2t+2t=286t
             DJNZ   R7,DEL1         ;(286t+2t)×32+t=10.001ms
             RET
             END

⌨️ 快捷键说明

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