51单片机AD/DA
AD为模拟信号转为数字信号,STC89C52RC使用了一个触摸屏芯片来实现模数转换,通信协议采用的是SPI通信协议。
SPI通信协议采用了四根线CS、DCLK、DIN、DOUT,其中CS是片选位,每个芯片独立,而其它三根线是所有芯片共用的。DCLK为时钟线,上升沿芯片从主机读数据,下降沿芯片向主机写数据。DIN是芯片从主机读数据的线,DOUT是芯片向主机写数据的线。
代码如下:
#include <REGX52.H>sbit CS = P3^5;
sbit DIN= P3^4;
sbit DOUT = P3^7;
sbit DCLK = P3^6;unsigned int AD_SPI(unsigned char address)
{unsigned char i;unsigned int Data;DCLK = 0;CS = 0;for(i=0;i<8;i++){DIN = address & (0x80>>i);DCLK = 1;DCLK = 0;}for(i=0;i<16;i++){DCLK = 1;DCLK = 0;if(DOUT){Data |= (0x8000>>i);}}CS = 1;if(Command&0x08){return Data>>8;}else{return Data>>4;}}下面为关键字的地址:#define AD_XP_8 0X9C
#define AD_YP_8 0XDC
#define AD_AUX_8 0XEC
#define AD_VBAT_8 0XAC#define AD_XP_16 0X94
#define AD_YP_16 0XD4
#define AD_AUX_16 0XE4
#define AD_VBAT_16 0XA4
STC89C52的DAC采用的是PWM波转为模拟信号,及将不同占空比的信号转为不同电压的模拟信号。用处不广泛。但可以实现降压的功能。