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

相关推荐
掘根20 小时前
【消息队列项目】虚拟机管理实现
网络
老王熬夜敲代码21 小时前
网络中数据传输的具体过程
linux·网络·笔记
汤愈韬1 天前
TK_网络基础和常见攻击(笔记)
网络·笔记
北邮刘老师1 天前
【智能体互联协议解析】需要“智能体名字系统”(ANS)吗?
网络·人工智能·大模型·智能体·智能体互联网
照海19Gin1 天前
【企业网架构实验解析】三层组网与 AC+AP 无线部署的协议逻辑(eNSP 仿真实践)
网络
就是蠢啊1 天前
51单片机——DAC数模转换实验(一)
单片机·嵌入式硬件·51单片机
Lilixxs1 天前
wireshark LLDP 协议抓包获取 M580 PLC 网口地址
网络·测试工具·wireshark·plc·施耐德·lldp·m580
vortex51 天前
Linux下局域网IPv6地址发现与扫描
网络
北邮刘老师1 天前
【智能体互联协议解析】身份码-智能体的身份证号
网络·人工智能·大模型·智能体·智能体互联网
就是蠢啊1 天前
51单片机——ADC数模转换实验(二)
单片机·嵌入式硬件·51单片机