STC15W芯片A/D、D/A转换的简单使用
A/D、D/A转换
在现代电子系统中,数字信号通常以离散的二进制形式存在,而模拟信号则是连续变化的。数模转换的目的是将数字信号转换为相应的连续模拟信号,以便在模拟电路中进行处理、传输或输出。
相反,模数转换是一种将模拟信号转换为数字信号的技术。它在许多领域中都有广泛的应用,例如通信、音频处理和仪器测量。通过将连续的模拟信号离散化,模数转换器能够将其表示为一系列数字样本。这些样本可以被数字系统处理和存储,从而实现更高的精度和可靠性。模数转换的原理和方法各不相同,但其核心目标是将模拟信号转换为数字形式,以满足数字系统的需求。
今天,我们以郭天祥老师的TX-1C开发板上的STC15W芯片为例,来介绍一下模数转换的简单使用。
PART
01、D/A转换(数字/模拟)
这是我们使用的板子上面的PCB电路图,他看上去有很多的针脚,如果我们只是要对他就行简单的操作使用,我们只需要关心四种针脚就行,DAC CS51 WRD0~D7IOUT针脚。
DAC SC片选口,相当于芯片的总开关,只有他开启时,对芯片的其他操作才有作用,低电平有效。
51WR,数字量接受开关,有效时数字量才能输入到芯片中,低电平有效。
D0~D7数字量输入口。
IOUT转换成模拟量之后的输出口。
其使用的一般步骤为:
1、将片CS选口和WR口,先后置为低电平时期有效。
DAturn=0; //开启DACS
WRturn=0; //开启DAp0口写入
代码示例
2、对D0~D7所对应的数字量输入口赋值。
3、等待IOUT的输出。
在TX-1C的板子中IOUT外接的是一个D/A的指示灯,使用成功后应该可以通过数字量来控指示灯的亮度。
PART
02、A/D转换(模拟/数字)
STC15W的模数转换芯片跟数模转换需要注意的针脚大同小异,ADC CS51 RD51 WRDB0~DB7VIN针脚。
ADC SC片选口,相当于芯片的总开关,只有他开启时,对芯片的其他操作才有作用,低电平有效。
51WR,读入模拟量开关,有效时对模拟量采样,低电平有效。
51RD,写出数字量开关,开启后数字量将被写出,低电平有效。
DB0~DB7数字量输出口。
VIN接外设,模拟量读入端口。
其使用的一般步骤为:
1、先将片CS选口置为低电平时期有效(由于实验板上留的IO口不够因此用U2上的一个针脚来控制)。
2、读入模拟量。
ADWR=1;
_nop_();
ADWR=0; //打开信号输入
_nop_();
ADWR=1;
_nop_();
代码示例(读入模拟量)
例中_nop_()是指延时一个机器周期
3、将模拟量转换并输出。
ADRD=1;
_nop_();
ADRD=0; //打开模数转换
_nop_();
ADRD=1;
_nop_();
dis_num=P1; //P1- >dis_num
代码示例(将转出的数字量赋给dis_num)
模拟量转化为数字量后,数字量会发送到DB0~DB7,这里这八个针脚对应的是51单片机上的P1。
自我测验
任务一:使D/A转换的指示灯,从按到亮,再从亮到暗反复变化,周期为四秒。
任务二:使(STC15W)ADC旁接的可变电阻,可以时时将其对应的数字量(0~225)显示在数码管上。
全部0条评论
快来发表一下你的评论吧 !