单片机实验11:ADC实现电位器

这篇博客介绍了使用STC89C52单片机和XPT2046模数转换芯片进行ADC转换的实验。通过实验代码详细阐述了数据的读写过程,包括WRITE_AD函数用于写入数据,READ_AD函数读取转换结果,以及LOAD_AD函数进行数据载入和转换。在Main.c文件中,利用静态变量n控制转换频率,并通过数码管显示电位器的读数。实验代码展示了如何实现模拟信号到数字信号的转换并实时显示结果。

ADC模拟信号转换为数字信号,该实验使用的芯片信号为STC89C52,A/D芯片为XPT2046。

点击了解XPT2046

单片机晶振为11.0592

实验源代码:

  • XPT2046.h
#include <reg52.h>
#include <intrins.h>

#define uint unsigned int
#define uchar unsigned char

sbit DIN = P3^4;		
sbit ADCS = P3^5;
sbit DCLK = P3^6;
sbit DOUT = P3^7;

sbit led2 = P2^2;
sbit led3 = P2^3;
sbit led4 = P2^4;
  • XPT2046.c
 #include "XPT2046.h"

void WRITE_AD(uchar dat)	 //写入数据函数
{
   
   
	uchar i;
	DCLK = 0;				 
	for(i=0;i<8;i++)
	{
   
   
		DIN = dat >> 7;		 //将dat右移7位赋值给DIN,值得注意的是dat本身并没有变化
		dat <<= 1;			 //将dat左移1位赋值给dat,此时dat本身发生了变化
		DCLK = 0;
		DCLK = 1;
	}	
}

uint READ_AD()				//读取写入的数据	   
{
   
   
	uchar i;
	uint dat=0;
	DCLK = 0;
	for(i=0;i<12;i
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值