[参考设计] pic计数

[复制链接]
62|2
 楼主 | 2019-11-8 15:05 | 显示全部楼层 |阅读模式
  1. #include <pic.h>    //用的是PICC编译器
  2. __CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS);
  3.                                                     //PIC单片机都需要配置该位,HS是外部晶振模式
  4.                                                    // 使能PROTECT保护程序存储器
  5.                                                    //BOREN使能掉电保护

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

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

使用特权

评论回复
| 2019-11-8 17:42 | 显示全部楼层
计数模式。

使用特权

评论回复
| 2019-11-8 17:42 | 显示全部楼层
配置字科学。

使用特权

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表