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波转为模拟信号,及将不同占空比的信号转为不同电压的模拟信号。用处不广泛。但可以实现降压的功能。

相关推荐
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅5 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
2501_946205525 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
linux kernel5 天前
第七部分:高级IO
服务器·网络
Lester_11015 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元5 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
数字护盾(和中)5 天前
BAS+ATT&CK:企业主动防御的黄金组合
服务器·网络·数据库
三佛科技-187366133975 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315205 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
~远在太平洋~5 天前
Debian系统如何删除多余的kernel
linux·网络·debian