最近做了一个数据采集系统,用的AT89C2051和TLC1549采用串行通信输出到上位机。但调试中有一个问题:
没有模拟输入时,电脑显示的数据时03 FF 03 FF。。。。拔掉TLC1549,仍不接采集的模拟量,电脑显示的是乱码。
附上程序和电路图,希望大家帮忙看看问题在哪,谢谢了。
程序ORG 0000HRECIVE:
MOV A,SBUF
CLR RI
CJNE A,#0AH,RECIVE ; JIE SHOU R
LJMP REC
REC:
MOV A,#59H ; FA SONG Y
MOV SBUF,A
WAIT:
JBC TI,READ
SJMP WAIT
READ:
CLR P1.2
NOP
SETB P1.0
MOV R0,#08H
MOV A,#00H
LCALL AD
MOV R2,A
MOV A,#00H
MOV R0,#02H
LCALL AD
MOV R3,A
SETB P1.2
SEND1:
MOV A,R3
MOV SBUF,A
WAIT1:
JBC TI,SEND2
SJMP WAIT1
SEND2:
MOV A,R2
MOV SBUF,A
WAIT2:
JBC TI,DELAY;不能跳转
SJMP WAIT2
DELAY:
MOV R4,#200
D50MS:
MOV R5,#250 ;延时100毫秒
DJNZ R5,$
DJNZ R4,D50MS
SJMP READ
RETI
AD:
RL A
CLR P1.0
NOP
MOV C,P1.1
MOV ACC.0,C
SETB P1.0
DJNZ R0,AD
RET
END
电路没问题
不过汇编我看不懂,哈哈
我有C的程序
欢迎光临 烽火社区 (http://bbs.cnecport.com/) | Powered by Discuz! X3.2 |