实验:对DAC0832进行编程;
对AD0804芯片进行编程操作,是发光二极管点亮.
好像是本人的数电,模电没学过,感觉初次接触DA/AD,还是有点模糊的,后来努力的学习了两遍,终于能把程序自己给写下来,调试出来.
DA 跟 AD的操作,都是查看时序图,根据时序图然后对照着开发板原理图,对IO口进行一些操作.
DA在单片机的原理图如下:
DA的时序图如下:
从时序图中,我们可以看到,当CS为低电平的时候,WR置为低电平,然后数据就变成了有效数据,过一会,就趋于稳定了,所以,编程的时候,我们可以让CS默认为低电平,只需要让WR置为低电平,然后发送数据即可,数据口对应的是P0口.
DA代码如下:
#include <reg52.h> sbit csda = P3 ^ 2; sbit wr = P3 ^ 6; void main() { csda = 0; wr = 0; P0 = 0; while (1); }
AD的原理图如下:
AD的时序图如下:
第一个是启动AD转换的时序图:
第二个是AD发送数据的时序图:
AD的代码:
#include <reg52.h> #define uint unsigned int #define uchar unsigned char sbit wr = P3 ^ 6; sbit rd = P3 ^ 7; void init(); void start(); void delay(uint time) { uint x, y; for (x = time; x > 0; x--) for(y = 110; y > 0; y--); } void main() { init(); while (1) { start(); delay(10); rd = 0; delay(30); rd = 1; delay(30); } } void init() { P0 = 0x7f; } void start() { wr = 1; wr = 0; wr = 1; }
文章的脚注信息由WordPress的wp-posturl插件自动生成