PIC单片机MCC代码配置定时器TIMR0实现LED状态翻转

系统时钟配置

TMR0配置 256分频 时钟来源FOSC / 4

系统频率为8 MHZ

系统时钟周期:Tosc = 1 / 8MHZ = 0.125us

指令周期等于4个时钟周期 :Tcy = 4 * Tosc = 0.5us

  1. TMR0输入时钟周期(经过预分频):

    𝑇𝑇𝑀𝑅0=𝑇𝐶𝑌×256=0.5 𝜇𝑠×256=128 𝜇𝑠TTMR0​=TCY​×256=0.5 μs×256=128 μs

  2. TMR0计数从0到溢出的时间: TMR0是8位计数器,计数范围为0到255,共256个计数状态。 因此,TMR0从0计数到255所需的时间为:

    𝑇overflow=256×𝑇𝑇𝑀𝑅0=256×128 𝜇𝑠=32768 𝜇𝑠=32.768 msToverflow​=256×TTMR0​=256×128 μs=32768 μs=32.768 ms

  3. 1秒所需的溢出次数: 1秒内所需的TMR0溢出次数为:

    𝑁overflow=1 s𝑇overflow=1 s32.768 ms=1000 ms32.768 ms≈30.52Noverflow​=Toverflow​1 s​=32.768 ms1 s​=32.768 ms1000 ms​≈30.52

计数周期为256* 256 * 0.5 = 32768us

计数1s 需要溢出 1000000 / 32768 约等于 31 次

MCC生成的中断代码 在TMR0_ISR()里面添加中断代码

在main.c里面打开中断 定义一个全局变量n记录溢出次数

最终可以实现LED以1s为周期的闪烁

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值