STC8G1K08A单片机读取ADC引脚值输出到串口

【STC8G1K08A串口使用】 STC8G1K08A串口打印“Hello world” 阅读详情

STC8G1K08A单片机引脚图

在这里插入图片描述
如上图,STC8G1K08A的6个IO口均支持ADC转换。本次例程使用3号引脚(ADC5)。

所需硬件:

电位器模块一个,需要接三根线,电源两根线,输出接到单片机P5^5,如下:
在这里插入图片描述
STC8G1K08A单片机,为了方便调试,画了个板子,引脚接了排针,状态指示灯:(板子上的开关,按下断开单片机电源,省去串口下载程序时插拔电源冷启动的步骤)
在这里插入图片描述
在这里插入图片描述

硬件连接:

在这里插入图片描述

对下载程序,串口通信有疑问可观看我上篇发文【STC8G1K08A串口使用】

本次例程完整代码:

#include<stc8g.h>
#include<stdio.h>
#include<intrins.h>

#define ADC_Power 0x80	//使能ADC模块		打开ADC		将ADC引脚设置到
#define ADC_Start 0x40	//开始ADC转换
#define ADC_Flag 0x20	//转换完成标志位
#define ADC_SYS 0x2f	//将ADC系统时钟设定为SYSclk/2/16


//******************************************
//延时ms函数,参数:ms
//使用条件:晶振/系统频率30.000MHz
//******************************************
void delay(int ms){    
	unsigned char data i, j;
	while(ms){
		i = 30;
		j = 43;
		do
		{
			while (--j);
		} while (--i);
	ms--;
	}
}


//******************************************
//函数说明:串口初始化
//******************************************
void Serial_begin()	//9600bps@30.000MHz
{
	SCON = 0x50;		//8位数据,可变波特率
	AUXR |= 0x40;		//定时器时钟1T模式
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//设置定时器模式
	TL1 = 0xF3;			//设置定时初始值
	TH1 = 0xFC;			//设置定时初始值
	ET1 = 0;			//禁止定时器中断
	TR1 = 1;			//定时器1开始计时
}
void Sendbyte(unsigned char dat){//发送8位数据到串口
  SBUF = dat;
  while(!TI);
  TI=0;
}
char putchar(char c){//重定义printf()函数,用于串口打印信息
  Sendbyte(c);
  return c;
}


//******************************************
//函数说明:读取指定ADC引脚值。参数:ADC引脚编号(编号见上单片机引脚图)
//******************************************
unsigned int analogRead(unsigned char ADC_Pin){
 
  ADC_CONTR = ADC_Power + ADC_Pin;  //使能ADC,向寄存器写入将要读的ADC引脚
  ADCCFG = ADC_SYS;					//将ADC系统时钟设定为SYSclk/2/16
  ADC_CONTR |= ADC_Start;			//开始ADC转换
  _nop_();
  _nop_();
  while(!(ADC_CONTR & ADC_Flag));	//等待完成
  ADC_CONTR &=~ ADC_Flag;			//清除完成标志位
  return (ADC_RES<<8) | ADC_RESL; 	//合并高8位低8位,返回合并后结果
}


//******************************************
//主程序
//******************************************
void main(){
	Serial_begin();//初始化串口
	while(1){
		printf("读取ADC5的值 = %d\n",analogRead(5));//读取ADC5的值并打印到串口输出
		delay(1000);//延时1秒
	}
}


下载上述程序需注意设置运行频率为30MHz

在这里插入图片描述

程序下载后打开串口助手输出效果:

在这里插入图片描述

打开串口调试软件,波特率设置9600,每秒会收到一次ADC5的值,调整电位器旋柄,输出值跟随变化。

本文部分程序源自博主“CM_1095111730”的【STC8G1K08A单片机数模转换】一文,原文讲解ADC模数转换更为详细,点击跳转

基于STC8G1K08A的水压检测系统 由于今年天气持续干旱,给养猪行业带来了很大的用水压力,尤其是对于管理1600头猪的饲养员的我来说,最担心的就是猪没水喝,毕竟这群猪一天就可以喝掉20吨水,这也就是我设计这个项目的初衷。 阅读详情

相关推荐

天问block-STC8G1K08A-WS2812

一、器材 STC8G1K08AA WS2812 天问51:天问Block 二、接线 STC8 WS2812 VCC VCC GND GND P54 IN 三、程序 代码 #define _STC8 #define RGB_PIN P5_4//RGB灯的引脚 #define RGB_NUMLEDS 8 //RGB灯的个数 #define RGB_PIN_MODE {P5M1&=~0x10;P5M0|=0x10;...

moshanghuaw的博客 6731

基于STC8G1K08的实验电路板

下面是两款能够比较容易实现基于面包板实验的8G1K08系列单片机实验板。 实验板1:8G1K08 SOP16封装 工程文件所在目录: AD\STC\TEST\2020\Test8G1KSOP16 1. 原理图 ▲ 8G1K08-SOP16 实验板原理图 2. PCB ▲ 8G1K08-SOP16 实验电路板 3. 引脚定义 PP4管脚定义: 序号 定义 1 VCC/AVCC/ADC_REF+ 2 GND/AGND 3 P3.1/ADC9/TXD 4 P3.0/ADC8/RXD/INT4 PK3管脚定义: 序号 定义 1 P3.7/INT3/TX

极简主义的硬件美学:用8引脚单片机STC8G1K08A驾驭百颗LED

本文探讨了如何利用8引脚单片机STC8G1K08A驱动WS2812B LED灯带,实现极简硬件设计下的百颗LED控制。通过精准的时序控制和代码优化,展示了完整的工程实践方案,包括硬件连接、软件驱动和常见问题解决方案,为资源受限的嵌入式应用提供高效且低成本的实现路径。

rose2的博客 805

STC8G1K08A开发板改造

STC8G1K08A开发板进行硬件改造,然后实现点灯程序,提供USB下载与下载器下载2种方式的讲解

github_38203983的博客 6037

STC8G1K08A单片机ADC读取避坑指南:电位器模块连接与串口打印实战

本文详细介绍了STC8G1K08A单片机ADC读取的避坑指南,包括电位器模块的正确连接、电源质量影响、ADC时钟配置及串口输出优化等关键技巧。通过实战案例和调试方法,帮助开发者避免常见错误,提升ADC读取的稳定性和精度。

weixin_42525328的博客 466

STC8G1K08A单片机ADC数据采集与串口实时监控实战

本文详细介绍了STC8G1K08A单片机ADC数据采集与串口实时监控的实战方法。从硬件连接、软件配置到实战调试,提供了全面的入门指南和常见问题排查技巧,帮助开发者快速掌握单片机ADC数据采集技术,适用于智能家居、环境监测等应用场景。

weixin_30642561的博客 603

51单片机

51单片机

m0_74076551的博客 3879

STC8G1K08A单片机ADC数据采集与串口实时可视化调试实战

本文详细介绍了STC8G1K08A单片机ADC数据采集与串口实时可视化调试的实战经验。从ADC功能快速上手、硬件连接注意事项、寄存器配置详解到串口调试技巧,提供了全面的操作指南和常见问题解决方案。特别适合嵌入式开发者和单片机爱好者学习参考,帮助快速掌握ADC数据采集与串口通信技术。

weixin_30919429的博客 463

单片机读/写端口或引脚区别及具体1个用例(一种基于STC8G1K08A最小8脚嵌入式单片机LED安全夜灯方案)

关于单片机读/写端口或引脚的区别及具体1个用例:一种基于STC8G1K08A最小8脚嵌入式单片机、光控及超级省电等技术的LED安全夜灯方案。

weixin_50007421的博客 3811

STC8G1K08A单片机ADC数据采集与串口实时传输实战

本文详细介绍了如何使用STC8G1K08A单片机进行ADC数据采集,并通过串口实现实时传输的完整实战方案。从硬件连接到软件配置,深入讲解了ADC的精准配置、软件滤波优化、串口波特率计算与数据格式化输出,并提供了多通道采集与电压换算等进阶应用,帮助开发者快速构建稳定的嵌入式数据采集系统。

weixin_29163797的博客 254

用STC8G1K08A做个简易电压表:ADC采样+串口显示完整项目流程

本文详细介绍了如何使用STC8G1K08A单片机打造高精度数字电压表,涵盖硬件设计、ADC采样、串口显示等完整项目流程。重点解析了12位ADC特性、分压电路设计、固件开发及电压校准方法,并提供了数据可视化和进阶功能扩展方案,适合电子制作和嵌入式开发爱好者实践。

weixin_26873711的博客 371

单片机读-写端口或引脚区别及具体1个用例(一种基于STC8G1K08A最小8脚嵌入式单片机LED安全夜灯方案)

基于STC8G1K08A最小8脚嵌入式单片机、光控及超级省电技术,一键操作、早晚自动亮灭、通用USB充电口、低电量告警或自动关机。小巧玲珑(总重约13克)、省电耐用,可当床头夜灯、室内外安全警示灯或小玩具使用。其中:(大)夜灯独立大LED;小彩灯为一颗微型RGB三色LED,单色或组合混色共14种模式:常亮7种(绿、红、蓝、白、青、黄、紫)可当小夜灯用,常闪7种(同前)可当安全警示灯。

Karka_的博客 1520

用STC8G1K08A做个简易电压表:ADC读取数值转换与串口波形显示教程

本文详细介绍了如何使用STC8G1K08A单片机内置的12位ADC模块构建智能电压监测系统,涵盖硬件设计、软件算法、数据校准及串口可视化全流程。通过滑动窗口滤波、动态采样率等高级技术提升精度,并实现与Python的动态数据交互,为电子设计爱好者提供从基础到进阶的实战指导。

weixin_42741930的博客 432

STC8G1K08A 实战应用:从配置到功能实现

本文详细介绍了STC8G1K08A单片机的实战应用,从开发环境搭建、GPIO配置、ADC模块使用到定时器中断处理和PWM输出等核心功能。重点讲解了外设模块的协同工作配置技巧,并分享了实际项目开发中的经验教训,帮助开发者快速掌握STC8G1K08A的高效应用。

n4o5p6q7r的博客 385

用STC8G1K08A的PWM控制无刷电机:10kHz调频调占空比全攻略

本文详细介绍了如何使用STC8G1K08A单片机的PCA模块生成10kHz可调频率与0-100%占空比可调的PWM信号,以控制无刷电机。内容涵盖硬件资源评估、PCA模块的10位PWM模式深度配置、通过ADC读取电位器实现占空比实时映射的算法,并提供了电机启停保护与信号抖动消除的工程实战方案。

fox11的博客 1310

生信实战|EffectorP3.0在植物病原菌效应子预测中的高效应用

本文详细介绍了EffectorP 3.0在植物病原菌效应子预测中的高效应用。通过机器学习模型,该工具能快速从海量分泌蛋白中批量预测胞质与质外体效应子,显著提升研究效率。文章提供了从环境配置、RNA-seq数据处理到批量预测的完整实战流程,并分享了结果解读与避坑指南,是生信研究人员进行病原物效应子鉴定的必备利器。

weixin_29195615的博客 297
上一篇: 【STC8G1K08A串口使用】
卸脑板
博客等级 码龄7年 36粉丝 2原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值