ADC模拟信号转换为数字信号,该实验使用的芯片信号为STC89C52,A/D芯片为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

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





