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

📄 zhuji1.asm

📁 用伟福开发环境编写的51通过rs232通信的源程序
💻 ASM
字号:
;假设ADC0809端口地址存放在DPTR中,A存放需要读取的模拟输入地址
         RESULT EQU 50H       ;RESULT 用于存放模拟输入转化的数字量

         DATASTORE EQU  60H   ;存放每次调用子程序时的模拟量
        ;接到读取数据的命令读取对应的某一路 并传送数据
        ;串口发出的命令为0FFH时说明收到数据后的确认信号
        ;串口发出的命令为80H时说明主机命令其顺序采集8路信号
        ;串口发出的命令为1XH时说明主机命令其采集某路信号,X表示采集的路数
        ;串口发出的命令为00H时说明对方主机确认可以接收数据
        ;串口收到的命令为00H时说明收到对方主机发来的信号有效
        ;串口收到的命令为0C0H时说明收到对方主机发来的信号无效
        ;串口收到的命令为060H时说明采集数据准备好,等待对方主机发来确认可以接收信号

        ;有特殊要求只采一路
         ORG 0000H
         AJMP ADC_DATA
;====================================
         ORG 0100H
ADC_DATA:CLR P3.5
         MOV PS,#16H
         MOV DPTR,#0EFFFH ;ADC初始化
         ;初始化串口通信的方式,波特率为1200
         MOV TMOD,#20H    ;计数器1工作于方式2
         MOV TH1,#0E8H
         MOV TL1,#0E8H    ;设置定时常数
         SETB TR1         ;启动计数器1
         MOV SCON,#50H    ;设置串行通信方式1
         MOV PCON,#00H    ;定义smod=0

;=======================================================
 MAINWAIT:MOV A,#12H
          MOV R0,A
          LCALL  SENDINSTR
          LJMP MAINWAIT
SENDINSTR:
INSTRWAIT:  MOV A,R0
          MOV SBUF,R0      ;发出特殊采集某路的命令
INSTRWAIT1: JBC TI,INSTRWAITRESP    ;数据传送结束转
          LJMP INSTRWAIT1
INSTRWAITRESP:
          JBC RI,INSTRWAITRESP1   ;判断是否有回应信号 00
          LJMP INSTRWAITRESP
INSTRWAITRESP1:
           MOV A,SBUF
          CJNE A,#00H,INSTRWAIT   ;收到确认信号是否为00H,00H表示对方接收成功,否则重发命令

INSTRWAIT3:JBC RI,INSTRWAIT4       ;等待对方数据采集结束,请求传送信号
          LJMP INSTRWAIT3
INSTRWAIT4:MOV A,SBUF
          CJNE A,#60H,INSTRWAIT3   ;检测是否为对方数据采集完的请求信号,60H表示对方采集完
          MOV A,#00H          ;00 表示收到请求信号给与确认
          MOV SBUF,A          ;如果对方采集完,则接收采集的数据
INSTRWAIT5:JBC TI,INSTRWAIT6        ;等待数据传送结束
          LJMP INSTRWAIT5
INSTRWAIT6:JBC RI,INSTRWAIT7        ;等待数据传送结束
          LJMP INSTRWAIT6
INSTRWAIT7:MOV A,SBUF          ;接收采集的数据方入一个指定位置
          MOV DATASTORE,A
          ;给对方发送确认信号0FFH
          MOV A,0FFH
          MOV SBUF,A
INSTRWAIT8:JBC TI,INSTRWAIT9
          LJMP INSTRWAIT8
INSTRWAIT9:RET
    END

⌨️ 快捷键说明

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