STC系列AD采集-P14端口模拟量以及转换电压值发送到串口

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STC系列AD采集-P14端口模拟量以及转换电压值发送到串口相关的知识,希望对你有一定的参考价值。

【STC系列】AD采集-P14端口模拟量以及转换电压值发送到串口


相关的知识点

  • Keil C51重定向printf到串口。

将串口打印实现函数进行再封装

//重写putchar函数
char putchar(char c)

	SendByte(c);
	return c;

  • 数据转换

将模拟量转换为电压值,换算公式:Voltage =(res/1023.0)*5;

主程序

/*-----------------------------------------------------------------------   
 * 项目名称:

     STC15F2K60S2 AD采集程序

 * 配置说明:
     MCU:             STC15F2K60S2
     开发板:       	  STC15W408AS开发板
     晶振:      	  外部时钟:11.0592MHz
     扩展模块:  	  -10K可调定位器

 * 备注:
     - 将开发板的串口与电脑串口连接

----------------------------------------------------------------------*/  
/************************包含头文件***************************************************/
#include "stdio.h"
#include<STC15W.h>
#include<USART.h>
#include<ADC.h>

//定义要采集AD通道
#define ch	4		//即P1.4端口

//sfr P1M1 = 0x91;    //PxM1.n,PxM0.n     =00--->Standard,    01--->push-pull
//sfr P1M0 = 0x92;    //                  =10--->pure input,  11--->open drain

/************************主函数******************************************************/
void main()

    unsigned int res=0;
    unsigned char result[4] = 0;
		unsigned char Volbuf[4] = 0;
		float Voltage =0.0;
//将P1.x口设置为高阻输入模式
	P1M1 |= (1<<ch);		// 把ADC口设置为高阻输入
	P1M0 &= ~(1<<ch);
	P1ASF = (1<<ch);		//P1.x做ADC

    InitSerialPort(); 		//初始化串口,波特率9600,8bit数据位,1停止位,无校验
    OpenADC_CHx(ch);

    while(1)
    
        //发送数据采集结果
        SendByte('\\t');
        SendString("AD_Value = ");
        GetADCResult_Char(ch,result);
        SendString(result);
					res = GetADCResult(ch);
			Voltage =(res/1023.0)*5;
		//	sprintf(Volbuf, "%3.2f",Voltage);
			printf("\\t Voltage:%3.2fV \\r\\n",Voltage);
		//	printf("电压: %d.%d%d V\\r\\n",Volbuf[0],Volbuf[1],Volbuf[2],Volbuf[3]);
        //SendByte(GetADCResult_High(ch));
        //SendByte(GetADCResult_Low(ch));
        //换行
        SendByte('\\r');
        //延时
        Delay(30);
    

/*********************************The End****************************************/

程序源码

链接:https://pan.baidu.com/s/17LcWOepmg9lMv0B_F1_kXA 
提取码:3ufo

以上是关于STC系列AD采集-P14端口模拟量以及转换电压值发送到串口的主要内容,如果未能解决你的问题,请参考以下文章

AD转化的基准电压的作用是啥?

STC AD采样 如何准确得到基准电压和VCC

AD模块电压采集电路

STM32 ADC转换的问题。adcout=(((double)adc)/0xfff)*2500*2;adcout为转换所得电压。这个算式啥意思

单片机如何采集4-20mA电流信号,是否要转换成0-5V的电压信号,怎么转换?

arduino ad转换后啥时间读取