导航:首页 > 操作系统 > 51单片机ad转换教程

51单片机ad转换教程

发布时间:2025-07-12 23:35:34

❶ 怎样把51单片机读回来的AD值转换成电压值

通常是0-5V,对应于0-11111......1111(24位二进制)
那么1V就是:3355443(十进制)。
用读回来的值AD_data除以3355443,得到的整数部分就是0~5,即为电压的整数部分。
把AD_data除以3355443的余数,再除以0.1V所对应的数值(请自己算一下),取整数将得到0~9,即为电压的第一位小数。
……
取多少位小数,就计算多少次。

❷ 请教stc自带ad的51单片机的使用方法

#include<reg52.h>#include<intrins.h>
#define uchar unsigned char#define uint unsigned int
sfr ADC_CONTR = 0xbc; //ADC控制寄存器
sfr ADC_RES = 0xbd; //ADC转换结果高八位寄存器
sfr ADC_LOW2 = 0xbe; //ADC转换结果低两位寄存器
sfr P1ASF = 0x9d; //P1口模拟功能控制寄存器

#define ADC_POWER 0x80 //ADC电源控制位
#define ADC_FLAG 0x10 //ADC结束标志位
#define ADC_START 0x08 //ADC启动标志位
#define ADC_SPEEDLL 0x00 //540个时钟周期
#define ADC_SPEEDL 0x20 //360个时钟周期
#define ADC_SPEEDH 0x40 //180个时钟周期
#define ADC_SPEEDHH 0x60 //90 个时钟周期

void InitUart();
void SendData(uchar);
void Delay(uint n);
void InitADC();

uchar ch=0; //ADC通道选择
void main()
{
InitUart(); //初始化串口
InitADC(); //初始化ADC
IE = 0xa0; //打开总中断

while(1);}
/*ADC中断函数*/
void ads_isr() interrupt 5 using 1
{
ADC_CONTR&=!ADC_FLAG; //将ADC结束标志位清零

SendData(ch); //将对应ADC通道号发送给电脑 SendData(ADC_RES); //将转换结果发送给电脑
if(++ch > 7)ch = 0; //下一个ADC通道 ADC_CONTR = ADC_POWER|ADC_SPEEDLL|ADC_START|ch; //打开ADC电源、转换时间540个时钟周期、开始转换、选择通道号
}
/*初始化ADC寄存器*/
void InitADC()
{
P1ASF = 0xff; //定义p1口为ADC转换口
ADC_RES = 0;
ADC_CONTR = ADC_POWER|ADC_SPEEDLL|ADC_START|ch; //打开ADC电源、转换时间540个时钟周期、开始转换、选择通道号
Delay(2); //等待ADC上电稳定然后开始ADC转换?应该是先开电源,等待后再START,可能STC官方程序有问题
}

/*初始化串口*/
void InitUart()
{
SCON = 0x5a;
TMOD = 0x20;
TH1 = 0xfd; //在11.0592MHZ晶振下,波特率为9600
TL1 = 0xfd;
TR1 = 1;
}

/*串口发送数据*/
void SendData(uchar dat)
{
while(!TI);
TI = 0;
SBUF = dat;
}

/*延时函数*/
void Delay(uint n)
{
uint x;

while(n--)
{
x=5000;
while(x--);
}
}

注释原创

❸ 请问51单片机ad采集电压0-300v降压转变成0-5v范围内,降压部分原理图和程序应该怎么写

把300V电压,接到两个的电阻分电路上,电阻串联有分压作用。一端接地的电阻上分压为0~5V,假如电阻取10K,那么大电阻就没辩应该是590K。电压分压比为300/5=60倍,所以,用AD采集0~5V电压,得到数字量,换算成电压为Ⅴd,再计算出被测电压正信Vx=60Vd。所以,写程序很简单,主要是A/D转换程序并举察轮转换为电压Vd。

❹ 51单片机有外部数据存储器的时候怎么开始AD转换

movx @dptr,A,开启AD转换会与外部数据存储器发生冲突做兄,那是因为DPTR中的地址没有指向AD转换器的端口地址,或扰行者AD端口地址与外部数据存储器的地址重复了。没有具体电路,真正原因不好确缓胡哗定。
单片机可采用端口模式与AD转换器连接比较好,见下图。

阅读全文

与51单片机ad转换教程相关的资料

热点内容
noargumentjava 浏览:220
火车票app如何买下铺 浏览:300
鸟哥的linux私房菜基础学习篇pdf 浏览:708
pdf如何添加文字 浏览:563
福建文件加密系统怎么选 浏览:691
App指纹付款在哪里关闭 浏览:56
androidtextview水平居中 浏览:380
折纸解压小玩具自制 浏览:864
如何把项目复制到阿里云服务器上 浏览:213
神笔特效作品怎样保存到文件夹 浏览:941
如何将代理服务器换回来 浏览:738
电视上一直显示加密节目 浏览:120
如何终止命令执行 浏览:754
大瓜程序员 浏览:704
单片机流水灯左移两位程序 浏览:660
单片机系统的组成 浏览:227
php执行定时任务 浏览:888
linux阻塞方式 浏览:841
aes符合安全要求的加密模式 浏览:14
devc警告未编译 浏览:402