本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
我的数据采集系统基于AT89S52,AD是12位的max1240,数据经串口传送到电脑,有LABVIEW编程显示。现在PCB电路已经焊接好,串口测试可以正常,可接输入信号对系统进行测试的时候输出数据出错,我把部分数据贴出来,大家帮我分析一下是什么原因?是硬件还是软件错误?
正弦波测试结果:(红色为错误测试数据)
6036 2600 04CD 0477 0532 06EC 06AA 0752 08ED 0871 09E6
0944 0A91 0ACD 0AE9 0AF6 0AD6 0AD8 0AAA 0A7A 0A1A 0AB7 0943 09BB 0825 088E
87E6 069F 30B1 7076 3022 7B83 E182 6182 EE81 9381 4881 1281 EC80 DE80 E680
8260 5300 BE60 75E0 5200 3039 70A8 B0BD 7018 B02A E100 05A2 065F 0711 08B0
0841 09B9 0923 0A73 0AB2 0ADC 0AF3 0AF6 0AE5
波形图:(我认为其中小于5的数据为正确数据)
直流信号输入测试结果:(红色为错误测试数据)
05F3 05F3 05ED 05F4 05F3 05F1 05F3 05F3 05E1 05F2 05F3 05F4 05F3 05F4 05F4
05F4 05F3 05F2 05F3 05F3 05F3 05F4 05F4 05F3 05F3 05F3 05F4 05F2 05F3 05F4 05F2 05F3 05F4 05F2 85F3 05F3 85F5 05F3 85F3 85F5 61BE 705E B057 F3C1 5E70 5DB0 5E70 AFF3 C1F3 05F4 C1F3 05F2 05F3 05F3 05F3 05F3 05F3 05F3 05F3 05F4 05F3 05F4 05F3 05F3 05F4 05F3 05F3 05F3 05F3 05F0 05F3 05F3 05EB 05F3 05F3 05FE C1F3 05F2 05F3 05F3 05F4 05F3 05F3 05F3 05F3 05F3 05F3 85F2 05F4 85F3 05F3 85F4 85F4 61BE 7005 F485 F3C1 5F70 5EB0 5E70 9030 AFF4 05F3 C1F3 05F4 05F3 05F3 05F4 05F3 05F4 05F3 05F3 05F3 05F4 05F4 05F3 05F4 05F3 05F3 05F4 05F3 05F4 05F4 05F3 05F3 05F3 05F4 05FB C15F 70BE 3057 F405 F305 F505 F305 F305 F405 F305 F305
程序:
ORG 0000H
LJMP MAIN ;转到初始化程序
ORG 0030H
MAIN: clR C
MOV SP,#40H
MOV SCON,#50H ;串口 方式 1
MOV TMOD,#20H ;T1 模式2
MOV TL1,#0FDH ;波特率 9600 的常数
MOV TH1,#0FDH
SETB TR1
MAX1240: MOV A, #00H
MOV R7, #08H
CLR P1.0
CLR P1.1
NOP
JNB P1.2, $
SETB P1.0
MSB: CLR P1.0
NOP
SETB P1.0
MOV C, P1.2
MOV P1.3,C
RLC A
DJNZ R7, MSB
MOV R3, A
MOV R7, #08H
MOV A, #00H
LSB: CLR P1.0
NOP
SETB P1.0
MOV C, P1.2
MOV P1.3,C
RLC A
DJNZ R7, LSB
MOV R2, A
NOP
SETB P1.1
zhuan: MOV A,R2
SWAP A
MOV R2,A
MOV A,R3
SWAP A
MOV R3,A
ANL A,#0F0H
ADD A,R2
MOV R2,A
MOV A,R3
ANL A,#0FH
MOV R3,A
MOV 40H,R2
MOV 41H,R3
RS232: MOV R0, #40H
MOV R5,#2
LOOP:
MOV A,@R0
MOV SBUF,A
WAIT:
JBC TI,CONT
SJMP WAIT
CONT:
INC R0
DJNZ R5,LOOP
AJMP MAX1240
;********************************************************
;AD转换子程序,转换值存放在AD_TMP中
;转换值范围为0-255之间
;********************************************************
END
[ 此贴被hxx123456在2009-02-15 18:34重新编辑 ] |
|