最新传感器数据采集系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
传感器数据采集系统
传感器数据采集系统
以下内容需要回复才能看到
[hide]
请高手看看我做的实验台的数据采集系统,看看下面的程序哪里有问
题???????
图一,为硬件电路图,
图二,为计算机方面的软件界面(用VB做的)
;======================
; 设置波特率
;======================
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP ADZD
MAIN:
MOV TMOD,#20H ;令定时器1工作于模式2
MOV TH1,#0FDH
MOV TL1,#0FDH ;设定计数值,令波特率为9600 SETB TR1 ;启动定时器1
SETB IT0 ;为边沿触发方式
SETB EA ;开中断
SETB EX0 ;允许中断
;======================
; 接收数据
;======================
MOV SCON,#70H ;设定串行端口为模式1 LOOP: CLR RI ;清除接收中断标志位(开始接收数据)
JNB RI,$ ;等待数据接收完毕
;======================
; 判断哪个按钮被按下
;======================
MOV A,SBUF ;接收到的数据(即代码)存入A内NEXT1: CJNE A,#'1',NEXT0 ;若代码为1(即“开始”按钮被按下) AJMP ADZH ;则调用AD转换模块NEXT0: CJNE A,#'0',DONT ;若代码为0(即“复位”按钮被按下) AJMP ALLOFF ;则跳去执行ALLOFF DONT: AJMP LOOP ;重复执行程序
;=========================================
===========
; 执行相应的程序
;=========================================
===========
;AD转换模块
ADZH:
MOV R0,#30H ;存数据首地址
SETB 3.7 ;经与非门后使R/C=0
CLR 3.6 ;经与非门后使CE=1 MOV DPTR,#3FFFH ;使AO=0,CS=0,启动12位转换
MOVX @DPTR,A ;启动AD转换
HERE: AJMP HERE ;等待中断
ADZD:
USH SW
USH DPH
USH DPL
USH ACC ;保护现场
CLR 3.7 ;经与非门后使R/C=1
MOV DPTR,#3FFFH ;允许高8位并行输出(CS=0,R/C=1,AO=0) MOVX A,@DPTR ;读高8位
MOV @R0,A ;高8位存入RAM单元
MOV DPTR,#7FFFH ;允许低4位加上4个0输出
(CS=0,R/C=1,AO=1)
MOVX A,@DPTR ;读低4位
ANL A,#0FH ;屏蔽高4位随机数据
INC R0 ;数据地址加1
MOV @R0,A ;存低4位
OP ACC ;恢复现场
OP DPL
POP DPH
POP PSW
RETI
AJMP SENDON
;复位按钮的相应程序
ALLOFF: MOV P0,#00H ;数据清零
AJMP SENDALL ;发送代码1
;=========================================
===========
; 发送数据
;=========================================
===========
;发送代码0
SENDALL:
CLR TI ;清除发送中断标志位(准备发送数据) MOV SBUF,#'0' ;发送代码2
JNB TI,$ ;等待数据发送完毕
AJMP LOOP ;重复执行程序
;发送代码1
SENDON:
CLR TI
MOV SBUF,#'1'
JNB TI,$
AJMP LOOP
END