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

📄 单片机数据发送2.asm

📁 proteus实例集锦
💻 ASM
字号:
;本程序收发数据采用查询方式
ORG 0000H
AJMP START
ORG 0030H
START:MOV 30H,#0C0H   ;传送的16个数据(0~F)
      MOV 31H,#0F9H
      MOV 32H,#0A4H
      MOV 33H,#0B0H
      MOV 34H,#99H
      MOV 35H,#92H
      MOV 36H,#82H
      MOV 37H,#0F8H
      MOV 38H,#80H
      MOV 39H,#90H
      MOV 3AH,#88H
      MOV 3BH,#83H
      MOV 3CH,#0C6H
      MOV 3DH,#0A1H
      MOV 3EH,#086H
      MOV 3FH,#08EH
      MOV TMOD,#20H  ;定时器1置为方式2
      MOV TH1,#0F4H  ;装载定时器初值,波特率2400
      MOV TL1,#0F4H  
      CLR EA         
      SETB TR1       ;启动定时器
      MOV PCON,#00H  
      MOV SCON,#50H  ;设定串口方式1,且准备接收应答信号
LOOP1:MOV SBUF,#0E1H ;发联络信号
      JNB TI,$       ;等待一帧发送完毕
      CLR TI         ;允许再发送
      JNB RI,$       ;等待2号机的应答信号
      CLR RI         ;允许再接收
      MOV A,SBUF     ;2号机应答后,渎至A
      XRL A,#0E2H    ;判断2号机是否准备完毕
      JNZ LOOP1      ;2号机未准备好,继续联络
LOOP2:MOV R0,#30H    ;2号机准备好,设数据块指针初值
      MOV R7,#10H    ;设定数据块长度初值
      MOV R6,#00H    ;清校验和单元
LOOP3:MOV SBUF,@R0   ;发送一个数据字节
      MOV A,R6       
      ADD A,@R0      ;求校验和
      MOV R6,A       ;保存校验和
      INC R0
      JNB TI,$
      CLR TI
      DJNZ R7,LOOP3  ;整个数据块是否发送完毕
      MOV SBUF,R6    ;发送校验和
      JNB TI,$
      CLR TI
      JNB RI,$       ;等待2号机的应答信号
      CLR RI
      MOV A,SBUF     ;2号机应答,读至A
      JNZ LOOP2      ;2号机应答”错误“,转重新发送
      RET            ;2号机应答”正确“,返回                 

⌨️ 快捷键说明

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