不要自己傻乎乎的查数据手册,自己琢磨,有例程看例程

1.引入概念PWM方波波形,高电平在波形中占的比例大小就是占空比。

2.PWM控制LED灯亮度,肉眼无法识别PWM波形带来的LED灯明灭交替,看到效果就是LED的亮度变暗。通过PWM波形占空比的大小调整,就可以控制LED灯的明暗程度了。

3.PWM的使用,通过控制占空比从0变到100再变到0,来控制LED从暗变为明,又由明变暗,达到呼吸灯的显示效果。

4.STC8单片机上的每个引脚都可以输出PWM波形

5.1部分寄存器需要允许访问XFR寄存器才能配置,P_SW2最高位EAXFR置1 允许访问XFR寄存器

5.2配置时钟,选择系统时钟不分频。

5.3使能PWM0模块,PWM模块有0到5,一共6组,每组数个

5.4 PWM05CR ,配置PWM05引脚,使能引脚并配置初始电平为低电平

5.5 配置时钟周期和T1 ,T2。 时钟周期是一个波形占用的周期,要按照计数器来理解PWM。 周期         数 就是系统时钟最小间隔执行的次数,执行T1次,电平发生转换,执行T2次,再次翻转。

PWMCFG01中要设置计数器中断归零使能位,同时使能计数器开始计数,确保所有配置项已     配 置完,使能计数器计数后,它就会立刻开始计数。

PWMCFG01的第四位,是计满清零标志位,在中断函数中会用到,相当于多一次判断,确保是计满清零,这个标志位需要手动清零。

6.周期数和T1 T2数通过手动重定义来将其高低位和并,减少代码量。

7.例程里面有一句P_SW2 = 0x00; 我查询说这句是关闭EAXFR,防止XFR寄存器被访问到。但是写入设备后,设备不能正常运行,注释掉后就没问题了。

8.中断函数写的不错

/* 寄存器定义 */
#define     PWM0C      (*(unsigned int volatile xdata *)0xFF00)  //记得改数据类型
#define     PWM05T1    (*(unsigned int volatile xdata *)0xFF38)
#define     PWM05T2    (*(unsigned int volatile xdata *)0xFF3A)

/* PWM周期 */
#define CYCLE 0x1000

/* PWM中断处理函数 */
void PWM_Isr() interrupt 22
{
    static bit dir = 1;
    static int val = 0;

if(PWMCFG01 & 0x08) 
    {
        PWMCFG01 &= ~0x08;     //清中断标志
        if(dir)
        {
            val++;
            if(val >= CYCLE) dir = 0;
        }
        else
        {
            val--;
            if(val <= 1) dir = 1;
        }
        PWM05T2 = val;
    }
}

/* 主函数 */
void main()
{
    P0M0 = 0x00;   //设置P0.0~P0.7为双向口模式
    P0M1 = 0x00;
    
    /* PWM初始化设置 */
    P_SW2 |= 0x80; // 最高位EAXFR置1 允许访问XFR寄存器
    PWM0CKS = 0X00; // 选择PWM0的时钟为系统时钟
    PWMSET |= 0X01; // 使能PWM0模块
    PWM05CR = 0X80; // ENO=1把P0.5引脚设置为PWM引脚   INI=0初始电平是低电平
    PWM0C = CYCLE; // 写入周期值
    PWM05T1 = 0X0000; // 遇到这个值输出低电平
    PWM05T2 = 0X0001; // 遇到这个值输出高电平
    PWMCFG01 = 0X05; // PWM0CEN=1开启PWM定时器开始计数 

    
    EA = 1; // 打开总中断
    
    while(1)
    {

}

STC8学习4 ——PWM波形应用相关推荐

  1. STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)

    本篇文章包含的内容 一.输入捕获 1.1 输入捕获简介 1.2 输入捕获通道的工作原理 1.3 输入捕获的主从触发模式 1.4 输入捕获和PWMI结构 二.频率的测量方法 2.1 测频法 2.2 测周 ...

  2. 嵌入式学习——使用定时器输出PWM波形,实现 LED呼吸灯的效果

    嵌入式学习--使用定时器输出PWM波形,实现 LED呼吸灯的效果 目录 嵌入式学习--使用定时器输出PWM波形,实现 LED呼吸灯的效果 1. 任务要求 2 PWM波介绍, 2.1 什么是PWM(Pu ...

  3. 嵌入式学习--使用定时器输出PWM波形,实现LED呼吸灯的效果

    目录 1.任务要求 2.PWM介绍 关于PWM的定义 分频-计数时钟 计数器 定时器输出PWM的原理 定时器的初始化 3.配置STM32CubeMX 4.keil5的代码 5.运行结果 6.心得与体会 ...

  4. STM32输出PWM波形并实现呼吸灯

    文章目录 一.环境配置 二.PWM简介 三.使用STM32CubeMX配置工程 四.使用Keil配置代码 五.运行效果 六.用Keil自带的逻辑仿真器观察占空比 七.总结 八.参考资料 一.环境配置 ...

  5. STM32F103C8T6核心开发板下,通过TIM3和TIM4输出PWM波形实现2个 LED呼吸灯的效果

    使用TIM3和TIM4,分别输出一个PWM波形,驱动一个外接的LED灯以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果 文章目录 使用TIM3和TIM4 ...

  6. 基于STM32的MDK软件仿真输出PWM波形

    文章目录 一.PWM相关 1.PWM是什么 2.PWM原理 3.PWM应用 4.PWM信号输出 二.实验相关 1.实验要求 2.实验过程 (1)实验代码 (2)Keil仿真设置 (3)实验结果 三.总 ...

  7. 蓝桥杯单片机学习7——PWM脉宽调制控制LED的亮度

    上期我们学习了定时器的相关内容,这次我们来学习PWM脉宽调制 什么是PWM PWM(Pulse Width Modulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有 ...

  8. 蓝桥杯STM32G431RBT6学习——定时器PWM输出

    蓝桥杯STM32G431RBT6学习--定时器PWM输出 前言 PWM波输出作为定时器的一个常用功能,也属于高频的考点.从数据手册的定时器解析可以了解到(上篇描述):除了基本定时器(TIM6.7)外, ...

  9. 使用STM32输出PWM波形LED呼吸灯的效果

    文章目录 前言 一.PWM简介 1.1 关于PWM 1.2 使用步骤 二.使用STM32CUBEMX实现2个 LED呼吸灯的效果 2.1.配置环境 2.2 代码配置 2.3.输出PWM波形 2.4 呼 ...

最新文章

  1. 一场“正宗”的开发者大会,为什么说微软更像是“AII in AI”了?
  2. WIN2008 R2 Active Directory 之一 部署企业中第一台Windows Ser
  3. 电缆的选择及载流量的计算,超实用~
  4. jpages中文api
  5. php get验证,PHP+Ajax简单get验证操作示例
  6. C#隐式类型和显示类型
  7. php实现观看记录,PHP实现浏览历史记录
  8. java高级工程师简历模板,MySQL+Tomcat+JVM,看完还怕面试官
  9. win7(SP1 64位)升级IE浏览器升级到IE11
  10. mysql数据库增量_mysql数据库增量同步
  11. V.PhyloMaker:维管束植物系统发育树构建实践
  12. Layui 表单设计器
  13. 红外光电测速传感器电路设计
  14. 两种方法实现文字阴影效果
  15. 服务器测速文件,云服务器测速代码
  16. 艾滋hiv最新研究进展(2022年4月)
  17. vue如何把值放入数组里面去_vue的数组如何存储数据
  18. 中移动TD-LTE及对终端的要求
  19. Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder
  20. DAO,除了协议、社交、媒体、服务之外还能发展哪个领域?

热门文章

  1. P110 03-掌握vue-router懒加载的使用
  2. STM8L低功耗设置,深坑。。。
  3. 从小米上市了解CDR和“同股不同权”
  4. chrome 一进入调试页面就会自动打断点
  5. 计算机不支持超过2tb的硬盘,适用于超过 2.2TB 容量硬盘的英特尔快速存储技术 (RST) 驱动程序和支持...
  6. java poi生成的word表格在wps中的显示问题
  7. NC15128 老子的全排列呢 dfs 全排列 (何以解忧,唯有暴搜)
  8. swift TextView
  9. 供应链管理的理论和方法大揭秘
  10. 量化风控系列--风险定价(一)