📄 ad转换tlc2543的51源程序.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0047)http://www.2080725.com/jicu/TLC2543/TLC2543.htm -->
<HTML><HEAD><TITLE>TLC2543</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY>
<TABLE border=1 cellSpacing=0 height=283 width="100%">
<TBODY>
<TR>
<TD align=middle vAlign=center>
<TABLE border=1 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD width="24%"> </TD>
<TD align=middle vAlign=center width="43%"><FONT color=#ff0000
size=5><STRONG>AD转换TLC2543的51源程序</STRONG></FONT></TD>
<TD align=right vAlign=center width="33%"><FONT color=#ff0000><A
href="http://www.2080725.com/index.html">返回首页</A></FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD>
<P><FONT
size=2>网上12位串行的AD转换可以说是不少。不过合用的就不多了。不是买不到就是缺资料或是并行的占用IO口。找来找去还是觉得用TLC2543比较好。</FONT></P>
<P><FONT color=#ff0000 size=2>图1</FONT><FONT
size=2>是TLC2543的接口电路。TLC2543的CLOCK,DATA
OUT,DATAINPUT和/CS分别与AT89C2051的P3.0,P3.1,和P3.3连接。其接口软件由主程序和两个子程序组成,主程序主要是对AT89C2051的初始化,子程序是对89C2051和TLC2543的具体操作。如还有什么疑问的还可参考本站转载的另一PDF文件的文章<A
href="http://www.2080725.com/data/TLC2543.pdf">串行A/D转换TLC2543与TMS320C25的接口与编程</A></FONT></P>
<TABLE cellSpacing=0 height=118 width="100%">
<TBODY>
<TR>
<TD align=left vAlign=top width="49%">
<P>程序清单如下:</P>
<P>CLK EQU P3.0</P>
<P>DIN EQU P3.2</P>
<P>DOUT EQU P3.3</P>
<P>ADDR EQU 50H; AD转换结果存储区</P>
<P>AD-DATA:</P>
<P>MOV R0, #ADDR</P>
<P>MOV R1,#0; 选择通道0,单极性,高位在前,;12位输出</P>
<P>ACALL RD-AD; 加电后空转换一次。</P>
<P>MOV R1,#0; 有效转换开始</P>
<P>ACALL RD-AD</P>
<P>MOV @R0, R2;保存转换结果</P>
<P>INC R0</P>
<P>MOV @R0, R3</P>
<P>;XXXXXX</P>
<P>;XXXXXX</P>
<P>;XXXXX</P>
<P>;用户的数据处理程序。</P>
<P> </P>
<P> </P>
<P>RD-AD: ;TLC2543AD转换子程序,R1内容为控;制字,结果的高;;8位保存在R2,低4位保存;在R3。</P>
<P>CLR CLK; 置CLK为低</P>
<P>SETB CS; 置CS为高</P>
<P>NOP</P>
<P>NOP</P>
<P>CLR CS; 置CS为低,转换开始</P>
<P>MOV R4,#08; 8位控制字移入TLC2543,高8位;结果移出TLC2543</P>
<P>MOV A,R1; 控制字装入A中</P>
<P> </P>
<P>ADLOP1:</P>
<P>MOV C,DOUT; 移出一位结果进入C</P>
<P>RLC A; C中结果从A的最低位进入,控制字最;高位移入C</P>
<P>MOV DIN, C; 1位控制字移入TLC2543</P>
<P>SETB CLK</P>
<P>NOP</P>
<P>NOP</P>
<P>NOP</P>
<P>NOP</P>
<P>CLR CLK</P>
<P>DJNZ R4,ADLOP1; 是否移完?</P>
<P>MOV R2, A; 结果的高8位装入R2</P>
<P>MOV A, #0</P>
<P>MOV R4, #04; 读取低4位转换结果</P>
<P>ADLOP2:</P>
<P>MOV C, DOUT</P>
<P>RLC A</P>
<P>SETB CLK</P>
<P>NOP</P>
<P>NOP</P>
<P>NOP</P>
<P>NOP</P>
<P>CLR CLK</P>
<P>DJNZ R4, ADLOP2</P>
<P>MOV R3, A; 低4位转换结果装入R3</P>
<P>SETB CS</P>
<P>RET</P>
<P> </P>
<P> </P></TD>
<TD align=left vAlign=top width="51%">
<TABLE border=1 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD><IMG height=217 src="AD转换TLC2543的51源程序.files/TCL2543.gif"
width=400></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<P><FONT size=2></FONT></P></TD></TR>
<TR>
<TD align=middle><A
href="http://www.2080725.com/index.html">返回首页</A></TD></TR>
<TR>
<TD> </TD></TR></TBODY></TABLE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -