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

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转换
#
STC8G1K08A单片机的硬件PWM是通过设置寄存器来实现的。下面是使用STC8G1K08A单片机的硬件PWM的基本步骤: 1. 将需要控制的引脚设置为PWM输出模式,可以通过P_SW2寄存器来设置。 例如,将P2.0设置为PWM输出模式,可以使用以下代码: ``` P_SW2 |= 0x01; ``` 2. 配置PWM的工作参数,包括PWM时钟源、PWM输出模式、PWM输出使能、PWM周期和占空比等参数。 例如,设置PWM输出使能、PWM时钟源为Fsys/16、PWM输出为单端口模式、PWM周期为10、PWM占空比为50%等参数,可以使用以下代码: ``` PWMCKS = 0x04; //PWM时钟源为Fsys/16 PWMCFG = 0x00; //PWM输出为单端口模式 PWMCR = 0x80; //PWM输出使能 PWM2T1 = 0x0A; //PWM周期为10 PWM2H = 0x05; //PWM占空比为50% ``` 具体参数的设置可以参考STC8G1K08A的数据手册。 3. 在需要控制PWM输出的地方,修改PWM占空比即可。 例如,将PWM2的占空比修改为75%,可以使用以下代码: ``` PWM2H = 0x0C; ``` 注意,PWM占空比的取范围为0-255。 4. 如果需要更加精确的控制PWM输出,可以使用定时器中断的方式来控制PWM输出。 具体实现步骤如下: (1)使用定时器中断,每隔一定时间更新PWM占空比。 (2)在定时器中断服务函数中,更新PWM占空比。 (3)在主函数中,开启定时器中断。 例如,每隔10ms更新一次PWM占空比,可以使用以下代码: ``` TMOD |= 0x01; //设置定时器0为模式1 TH0 = 0xFC; //设置定时器0高8位,定时10ms TL0 = 0x67; //设置定时器0低8位,定时10ms ET0 = 1; //开启定时器0中断 TR0 = 1; //启动定时器0 ``` 在定时器0中断服务函数中,更新PWM占空比即可。 希望这些信息能够帮助到你。如果还有其他问题,可以继续向我提问。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值