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

📄 单片机数据接收2.asm

📁 proteus实例集锦
💻 ASM
字号:
;本程序收发数据采用查询方式
ORG 0000H
AJMP START
ORG 0030H
START:MOV TMOD,#20H  ;定时器1置为方式2
      MOV TH1,#0F4H  ;装载定时器初值,波特率2400
      MOV TL1,#0F4H  
      CLR EA         
      SETB TR1       ;启动定时器
      MOV PCON,#00H  
      MOV SCON,#50H  ;设定串口方式1,且准备接收
LOOP1:JNB RI,$       ;等待1号机的联络信号
      CLR RI
      MOV A,SBUF     ;收到1号机信号
      XRL A,#0E1H    ;判是否为1号机联络信号
      JNZ LOOP1      ;不是一号机联络信号,再等待
      MOV SBUF,#0E2H ;是1号机联络信号,发应答信号
      JNB TI,$
      CLR TI
      MOV R0,#30H    ;设定数据快地址指针初值
      MOV R7,#10H    ;设定数据块长度初值
      MOV R6,#00H    ;清校验和单元
LOOP2:JNB RI,$
      CLR RI
      MOV A,SBUF
      MOV @R0,A      ;接收数据转储
      INC R0
      ADD A,R6       ;求校验和
      MOV R6,A
      DJNZ R7,LOOP2  ;判断数据块是否接收完毕

      JNB RI,$       ;完毕,接收1号机发来的校验和
      CLR RI
      MOV A,SBUF
      XRL A,R6       ;比较校验和
      JZ END1        ;校验和相等,跳至发正确标志
      MOV SBUF,#0FFH ;校验和不相等,发错误标志
      JNB TI,$       ;转重新接收
      CLR TI
      SJMP LOOP2
END1: MOV SBUF,#00H
JS1:  MOV R0,#30H     ;显示接到的数据
JS3:  MOV A,@R0
      MOV P0,A
      ACALL DELAY
      INC R0
      MOV A,R0
      CJNE A,#40H,JS2
      AJMP JS1
JS2:  AJMP JS3

DELAY: MOV  R4,#04H
   D1: MOV  R7,#0FFH
   D2: MOV  R6,#0FFH
       DJNZ R6,$
       DJNZ R7,D2
       DJNZ R4,D1
       RET
       END            

⌨️ 快捷键说明

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