基于PIC 16F877A的呼吸灯的实现+Proteus的仿真

前言

在学习的PWM模块的过程中,见到论坛中关于PIC单片机的呼吸灯的帖子很少,然后就自己试着做了一下这实验。因为最近在学PIC 16F877A的CCP模块,就想着PIC单片机有着集成的硬件PWM模块,那么好的功能,不能浪费了。于是写下这篇帖子希望可以帮助到一些跟我一样的萌新。

一、如何实现呼吸灯

(1)呼吸灯的原理,通俗的说就是利用PWM波的占空比的变化,让其输出的电压的有效值变化使得LED灯的亮度发送变化(灯泡的亮度是由有效值来确定的),然后通过延时让消除由PWM波占空比带来的闪烁影响。(关于如何产生一个PWM波可以看下这篇文章:https://blog.csdn.net/cxj7878789/article/details/108165096

(2)j简单的介绍下使用的软件。

编程软件:MPLAC X IDE

仿真软件:PRTEUS 8.9

(3)j简单的介绍下使用的寄存器。

1)T2CON寄存器。

在CCP_PWM模块中要使用到定时器T2,来产生PWM的周期和脉冲宽度.

设置成T2CON=0X04 //初始化定时器T2,预分频设置为1:1

2)CCP1CON寄存器。

这个寄存器是用来设置PWM波10位分辨率的低2位和开启PWM模式用的。

设置成  CCP1CON=0X3C。 //初始化CCP_PWM让10位分辨率的低两位为11,开启PWM模式

3)PR2寄存器

这个寄存器是用来设置PWM波的周期的。

设置成 PR2=99。这样带入公式中得到的PWM波的周期为:100ns。

4)CCPR1L寄存器。

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值