摘要:否则可能会导致电平颠倒完美的计数糟糕的线条再来一个测试组我们来实现一个呼吸灯的效果呼吸灯波形为了贤淑妻子,咳咳,贤淑才女,小码农必定让控制时间什么是脉宽调制中间动的线是电流线,电流通断,电流小就暗,电流大就亮。
中间动的线是电流线,电流通断,电流小就暗,电流大就亮。实际上准确的说是应该是功率线,因为导通电压不变 电流减少一半 功率自然就是一半
PWM 脉宽调制,实质上就是电路的“导通”和“关断”的时间比改变, 调整电压或者电流的大小。专业术语叫“占空比”。一般来说,导通和关断的速度要求很高。比如我们有些开关电源的工作模式,就是脉宽调制。通过调整变压器的变压时间,来保证输出电流功率足够。实现电压稳定。
PWM影响
开关电路 影响的是电流通断 电压要么是0 要么最大
积分微分 运放电路 输出结果就是影响电压
SPWM 是基于 PWM 规则,使输出波形成正弦波。在 PWM 周期固定的情况下,通过调整不同的脉宽,可以输出不同电压,最后看起来就是一个正弦波波形。
这个自己建
</>复制代码
void Timer0_Init(){//
AUXR &= 0x7f;//
TMOD &= 0xf0;//
TMOD |= 0x01;//
TR0 = 1;//
TH0 = 0xf8;// TL0 = 0x30;//定时1ms
AUXR &= 0x7F;
//定时器时钟12T模式
TMOD &= 0xF0;
//设置定时器模式
TMOD |= 0x02;
//设置定时器模式
TL0 = 0xEC;
//设置定时初值
TH0 = 0xEC;
//设置定时重载值
TF0 = 0;
//清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1;}
</>复制代码
void Timer0_Routine() interrupt 1{//
//重装初值//
TH0 = 0xf8;// TL0 = 0x30;//定时1ms
static u8 count = 0;//count在[0,255]之间
if(count<102)
P21 = 1;
else
P21 = 0;
count++;}
</>复制代码
void PWM_Init()//PWM初始化{
P2M1 = 0;
P2M0 = 0x02; //强推挽
P_SW2 |= 0x80; //允许访问XSFR
PWMCFG = 0; //配置PWM的输出初始电平为低电平
PWMCKS = 0; //选择PWM的时钟为Fosc
PWMCH = 0x03; //设置PWM周期
PWMCL = 0xff; //设置PWM周期
PWM3CR = 0x00; //选择PWM3输出到P2.1,不能使能PWM2中断
PWMCR &= ~0x82; //使能PWM信号输出
PWMCR |= 0x82; //使能PWM信号输出
P_SW2 &= ~0x80; //关闭访问XSFR}
</>复制代码
//PWM修改驱动void PWM_Modify_Drive(u16 data1,u16 data2){
P_SW2 |= 0x80; //修改PWM之前需要使能P_SW2
PWMCR &= 0x7f;
//修改之前必须先关闭PWM使能
PWMCFG = 0; //配置PWM的输出初始电平为低电平
PWM3T1 = data1; //设置PWM3第一次反转的PWM计数
PWM3T2 = data2; //设置PWM3第二次反转的PWM计数
PWMCR |= 0x80; //修改之后重新允许PWM功能
P_SW2 &= ~0x80; //写入之后关闭P_SW2}
PWM呼吸灯波形
))
</>复制代码
//PWM数据分配void PWM_Allot(){
//设置一个PWM变量
static xdata u16 PWM = 0;
static xdata u8 count = 0;
//呼吸灯是从零到最大,从最大到零,所以来个标志变量
static bit PWM_flag = 0;
count++;
if(count > 250)
{
count = 0;
if(!PWM_flag)
{
PWM++;
if (PWM > 1020)
{
PWM_flag = 1;
}
}
if(PWM_flag)
{
PWM--;
if(PWM<2)
{
PWM_flag = 0;
}
}
PWM_Modify_Drive(0,PWM);
}}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/125322.html
摘要:行列总共使用个口,可以扫描个按键的开关状态,这就是矩阵键盘的优势。口之间必须串联电阻。 文章目录 小码农为了总裁,咳咳,为了知识敢说按键不会吗?==**帝都富豪与...
摘要:复位后初值是子函数调用,中断响应过程调用子函数处理中断响应的时候,程序计数器的值以及相关数据会先压入堆栈,然后去处理子函数中断服务。联动文章身家过亿的帝都富豪对小码农说你时空复杂度会了吗 ...
摘要:对于电压或者电流连续变化的信号,就需要通过模数转换电路,变成单片机可以识别的数字电平信号。目前来说,常见的有两种方式,一种是并行比较,一种是逐次比较。具有成本低元件简单等优势,而且容易做出高精度的转换器,所以被广泛使用。 ...
摘要:目前,所有型号串口的输入是输出是。串口全双工通信是没有时钟脉冲的,只能依靠晶振脉冲定时器的溢出脉冲。中断中读取,清标志,然后返回给计算机,等待发送完毕防重叠最少时间次位定时器时间。实现烧录程序的目的。 ...
摘要:前言今天下班突然看到一篇刷屏朋友圈的文章为什么甲骨文被裁员工不值得同情来自一个财经的微信公众号刚看题目我以为文章是会分析甲骨文公司内部的财经类问题所以就戳开看了毕竟本人不喜欢看打鸡血的文章。 为工薪层能合理取得报酬而发声,为大众选择不同生活状态都能获得尊重而发声,为不同职场层次的职场人都能有健康的工作环境而发声。 前言 今天下班突然看到一篇刷屏朋友圈的文章来自一个XX财经的微信公众号,...
阅读 4042·2023-01-11 11:02
阅读 4567·2023-01-11 11:02
阅读 3436·2023-01-11 11:02
阅读 5443·2023-01-11 11:02
阅读 4998·2023-01-11 11:02
阅读 5974·2023-01-11 11:02
阅读 5638·2023-01-11 11:02
阅读 4472·2023-01-11 11:02
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要