论坛风格切换切换到宽版
  • 3601阅读
  • 5回复

有用过TLC2543的朋友进来 [复制链接]

上一主题 下一主题
离线madswan
 
发帖
453
只看楼主 倒序阅读 0楼 发表于: 2004-11-30
最近自用tlc2543作数模转换,有很多疑惑,有高手愿意施以援手吗??

qq:6670742
离线bd7qw
发帖
2371
只看该作者 1楼 发表于: 2004-12-02
呵呵:俺也正玩着,,,有什么可切磋的吗??qq87737588
离线madswan
发帖
453
只看该作者 2楼 发表于: 2004-12-02
我的程序如下:基本上照抄的网站的原帖

org 0000h
acall main
clk   equ     p3.3   ;定义tlc2543功能引脚与mcu的连接
din   equ     p3.4
dout   equ     p3.5
cs     equ   p3.7
org 0200h
main:
acall data_sam
acall init_com
acall rs232
acall delay2s
jmp main

delay2s:
mov r6,#5
dd:acall delay100
djnz r6,dd
ret

delay100:mov r4,#255
d2:mov r5,#248
djnz r5,$
djnz r4,d2
ret


data_sam: ;串行数据采集模块
mov   r0,#30h ;数据缓冲区首地址30h→r0
mov   r1,#00000100b ;0通道方式/通道数据
acall rd_ad ;第一次读取的转换结果可能不准确,丢弃。
mov   r1,#00000100b ;1通道方式/通道数据
acall rd_ad ;送1通道方式/通道数据并读第0通道转换结果
mov a,r2
mov   @r0,a ;转换结果存放到数据缓冲区
ret


rd_ad:
clr   clk ;清i/o时钟
setb   cs   ;设置片选为高

mov   r4,#08 ;先读高8位
mov   a, r1   ;把方式/通道控制字放到a
clr   cs   ;设置片选为低
lop1:
  mov   c,dout ;读转换结果
rlc   a       ;a寄存器左移,移入结果数据位,移出方式/通道控制位
mov   din,c ;输出方式/通道位
setb   clk ;设置i/o时钟为高
clr   clk ;清i/o时钟
djnz   r4,lop1 ;r4不为0,则返回lop1
mov   r2,a ;转换结果的高8位放到r2中
ret

init_com:
mov   scon,#50h ;串口方式1工作,8位数据位,1位停止位,无奇偶校验
mov   pcon,#80h ;smod=1,波特率增倍
mov   tmod,#20h ;波特率设置,fosc=12mhz,波特率=2* 2400,n=0f3h
mov   th1,#0f3h
mov   tl1,#0f3h
setb tr1 ;启动定时器t1
ret
rs232:       ;串行数据传输模块
mov   r0,#30h ;缓冲区首地址30h→r0
loop:
mov   a,@r0 ;取数据→a
mov   sbuf,a ;数据→sbuf
ret

end
电路图如:
各位高手帮我看看程序哪里出问题了。我用的是8位数据做试验,但pc端显示收到的数据总是ff,郁闷
离线bd7qw
发帖
2371
只看该作者 3楼 发表于: 2004-12-05
实在对不起上面的朋友,qq了,应该是86737588
离线radiolee
发帖
6050
只看该作者 4楼 发表于: 2006-12-13
tlc2543 记号
离线jytz9988
发帖
23
只看该作者 5楼 发表于: 2006-12-14
你是说2543,俺用过,有c程序,汇编的太早了,可以把问题发我信箱里,硬件有问题啥的尽管说。