实验器材
ADC128S052
DAC TLV5618
Quartus ii 18.0
AC620硬件开发板
实验要求
通过ISSP向DAC输入16位数据,控制DAC输出的通道以及工作模式,通过ISSP控制ADC的输入通道选择,并观察ADC的12位输出数据是否和DAC的输入的电压大小在误差范围内,并将ADC的输出数据按十进制显示到数码管中。
代码实现
DAC/ADC,数码管的代码实现
DAC/ADC的代码实现以及原理在之前的文章已经讲了,这里就不再赘述。
ADC原理及代码
DAC原理及代码
数码管的原理及代码
12位二进制转4位十进制: btod模块
12位二进制最大为4095,因此,只需要4位十进制数就可以表示。实现代码如下图所示:
data <= conv_integer(data_in); -- 将vector转换为natural
thousand <= data / 1000; -- 得到千位
hundred <= (data mod 1000) / 100; -- 得到百万
ten <= ((data mod 1000) mod 100) / 10; -- 得到十位
unit <= data mod 10; --得到个位
data_out(15 downto 12)</