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

📄 floor.asm

📁 我自己写的短距离无线通信系统的收发程序
💻 ASM
字号:
              ORG   0000H
              AJMP  FLOOR
              ORG   0030H
;*****************************************************************
;报到子程序
FLOOR:        MOV   A,50H             ;50H存放地址命令标志
              CJNE  A,#255,FLOOR_2    ;Ra=255?不等则跳转
              CLR   P2.0              ;报到状态灯亮,允许报到
              SETB  EA                ;开中断
FLOOR_1:      MOV   C,P2.0            ;p2.0是发言状态显示位
              JC    FLOOR_3           ;(P2.0=1)发言取消则转移
              MOV   C,P1.1            ;扫描P1.1,P1.1是S2按键
              LCALL DELAY_10ms        ;延时10ms消抖
              ORL   C,P1.1            ;再读P1.1状态,看两次结果是否都为0
              JC    FLOOR_1            ;(P1.1=1)S2键没有按下则转移重新扫描
              CLR   EA                ;关中断
           ;******************************************************
           ;需要修改的地址Ra和命令Ri
              MOV   R2,#00H           ;R2存放本机地址,需要修改
              MOV   R3,#02H           ;R3存放命令(02代表发言申请).需要修改
           ;******************************************************
              LCALL SEND              ;调发送子程序
              CLR   P2.1              ;已报到灯亮
              AJMP  FLOOR_END         ;返回
FLOOR_2:      CJNE  A,#254,FLOOR_ERR  ;Ra=254?不等则跳转
              SETB  P2.0              ;取消报到状态
              SETB  P2.1
              SETB  P2.2
FLOOR_3:      CLR   EA                ;关中断
              AJMP  FLOOR_END         ;返回
FLOOR_ERR:    MOV   P2,#00H           ;出错,灯全亮
FLOOR_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 + -