打印
[其他产品]

pic计数

[复制链接]
457|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
buffered|  楼主 | 2019-4-24 14:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原帖链接:https://www.cnblogs.com/wangh0802PositiveANDupward/p/3235556.html


程序的局限性在于,因为定时器0是8位的,也就是对外部引脚脉冲计数的最大值是256 当计数值达到这个值后,计数器的值会自动清零,这时候你可以设置一个中断程序来计数。我这里不多讲了。外部脉冲频率是由晶振决定的,定时器在计数模式下,计数初值和计数值跟那两个没有任何关系。


#include <pic.h>    //用的是PICC编译器
__CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS);
                                                    //PIC单片机都需要配置该位,HS是外部晶振模式
                                                   // 使能PROTECT保护程序存储器
                                                   //BOREN使能掉电保护

                                                   //WDTDIS关闭看门狗
void display(int pulse_amount);
void main(void)   
{
    int pulse_amount         //定义变量,存储外部脉冲数
    SCS=0;                   //时钟源的选择。
    TMR0=0;                    //清零计数器
    OPTION_REG=0x20;         //定义计数模式,对单片机的TOCK1引脚的脉冲
                             //计数,每来一个脉冲,TMR0就会加1,设置好之后计数器就开始工作了
    while(1)                 //这个循环就是不断读取计数值   
   {
      pulse_amount=TMR0;
      display(pulse_amount);  //这个程序是我假设的,就是用来显示计数值
   }
}


使用特权

评论回复
沙发
幸福小强| | 2019-4-24 22:32 | 只看该作者
例子可以

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

202

帖子

0

粉丝