AD7543与89C2051实现串行接口的设计
AD7543与89C2051实现串行接口的设计
介绍12位串行输入的数-模转换器AD7543通过89C2051的P1口实现串行接口的方法。
关键词:D/A转换器,单片机,串行接口
1 引言
AD7543是美国AD公司生产的12位CMOS单片串行输入的数模转换器(DAC)。它是一种专为串行接口而设计的精密乘法型DAC。其数字数据由高位到低位逐次一位一位地输入。AD7543的主要特性与技术指标:
分辨率 12位
非线性误差 ±1/2LSB
输入方式 串行
串行加载 正或负选通进行
初始化 非同步清除输入
工作电压 +5V
最大功耗 400mW
AD7543的片内逻辑电路由12位串行输入并行输出移位寄存器(寄存器A)和12位DAC输入寄存器(寄存器B)组成。出现在AD7543的SRI脚上的数据,在选通输入信号STB1、STB2或STB4的上升沿或STB3的下降沿(由用户选择)情况下,定时地把SRI脚上的串行数据装入寄存器A,一旦寄存器A装满,在加载脉冲的控制下,寄存器A的数据便装入寄存器B。
2 接口方式
89C2051是一种高性能单片机,与MCS51系列指令高度兼容,由于无专用的串行数据接口,只能通过可编程的I/O脚和相应的软件,实现与AD7543的接口。从图1可知,P1.0为串行数据输出口,它与AD5743的SRI相连;AD7543内部寄存器A四个控制输入端之一的STB1与P1.1相连作为接收数据的脉冲,STB2、STB4接地,STB3接+5V;AD7543的寄存器B清零输入CLR与P1.3相连;寄存器B的两个控制加载输入端LD1、LD2分别接地和接P1.2。硬件电路连接完成以后,剩下的就是软件工作。
51系列丰富的指令系统,给串行输入的D/A转换带来了极大的方便。假设12位的数据分别放在单片机R2、R3寄存器中,通过对单片机的累积器A、进位标志和P1口的操作,就可实现串行数据的传输。下面为D/A转换子程序清单:
STATR: CLR P1.3
CLR P1.3
SETB P1.2
CLR C
CLR A
MOVA, R2
MOV R7, #4
LOOP1: PLC A
DJNE R7, LOOP1
MOV R7, #4
LOOP2: LCALL PRD
DJNE R7, LOOP2
CLR C
CLR A
MOV A, R3
MOV R7, #8
LOOP3:LCALL PRD
DJNE R7,LOOP3
CPL P1.2装入数据,启动转换
RET
读数据子程序:
PRD: RLC A
MOV P1.0,C
SETB P1.1
CPL P1.1
RET
以上给出的程序,可单独作为调用AD7543转换器与51系列单片机串行接口的子程序。
3 结束语
这种接口方法充分利用了单片机自身的软、硬件资源,简化了电路设计。但因数据是被逐个读入的,而且还与转换器的数据位数有关,故这种接口方式仅适用于对时间要求不高场合。
1 涂时亮等.单片机软件设计技术.科学技术方献出版社重庆分社
2 AT89C系列单片机技术手册.北京威立姆电子技术有限责任公司
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码