大家帮我看看这个程序哪里有问题[求助]
关于用TLC2543数模转换,采集的。并送往PC上位机显示
我是根据上的设计来搭的电路,程序是根据武汉力源的中文手册进行了一点修改,现在先利用TLC2543的内部测试电压实现八位数据检测电路程序的可靠性,但是为什么A/D采集的结果不对,总是FF,换成12,16位数据位也是全1,这下没招了,各位高手帮帮忙了。
电路图:
程序如下:
ORG 0000H
JMP START
CLK EQU P3.3
DIN EQU P3.4
DOUT EQU P3.5
CS EQU P3.7
ORG 1000H
START: MOV SP,#50H ;初始化堆栈指针
MOV P3,#0FFH ;初始化端口1的I/O管脚
CLR CLK ;设置I/O时钟为低电平
SETB CS ;设置片选信号为高电平
MOV A,#0FFH
ACALL TLC2543;空执行一次转换
ACALL TLC2543
ACALL rs232
TLC2543:
MOV R4,#10110100B ;读模式/通道数据到寄存器R4和A(选择内部测试电平为2.5V,ref+为5v,8位数据模式)
MOV A,R4
CLR CLK
SETB CS
CLR CS ;设置片选信号为低电平
MOV A,R4
AD:#08 ;装载记数器初始值
LOOP1:
MOV C,DOUT ;读数据位到C
RLC A ;A寄存器左移,移入结果数据位,移出方式通道控制位
MOV DIN,C ;输出模式/通道位数据
SETB CLK ;设置I/O时钟为高电平
CLR CLK ;设置I/O时钟为低电平
DJNZ R5,LOOP1 ;循环得到其它位
MOV R2,A ;把转换结果移入R2
RET
rs232:
MOV SCON,#50H ;串口方式1工作,8位数据位,1位停止位,无奇偶校验
MOV TMOD,#20H ;波特率设置,fOSC=6MHz,波特率=2* 1200,N=0F3H
MOV PCON,#80H ;SMOD=1,波特率增倍
MOV TH1,#0F3H
MOV TL1,#0F3H
SETB TR1 ;启动定时器T1
MOV A,r2
MOV SBUF,a
jnb TI,$
CLR TI
RET
END
发表时间:2004年12月6日0:17:46