1 #include //用的是PICC编译器
2 __CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS);
3 //PIC单片机都需要配置该位,HS是外部晶振模式
4 // 使能PROTECT保护程序存储器
5 //BOREN使能掉电保护
6
7 //WDTDIS关闭看门狗
8 void display(int pulse_amount);
9 void main(void)
10 {
11 int pulse_amount //定义变量,存储外部脉冲数
12 SCS=0; //时钟源的选择。
13 TMR0=0; //清零计数器
14 OPTION_REG=0x20; //定义计数模式,对单片机的TOCK1引脚的脉冲
15 //计数,每来一个脉冲,TMR0就会加1,设置好之后计数器就开始工作了
16 while(1) //这个循环就是不断读取计数值
17 {
18 pulse_amount=TMR0;
19 display(pulse_amount); //这个程序是我假设的,就是用来显示计数值
20 }
21 }
22 程序的局限性在于,因为定时器0是8位的,也就是对外部引脚脉冲计数的最大值是256 当计数值达到这个值后,计数器的值会自动清零,这时候你可以设置一个中断
23 程序来计数。我这里不多讲了。外部脉冲频率是由晶振决定的,定时器在计数模式下,计数初值和计数值跟那两个没有任何关系.
关键字:pic单片机 计数
引用地址:
pic单片机计数
推荐阅读最新更新时间:2024-03-16 15:27
基于51单片机定时器0计时计数器1计数的霍尔传感器精确测速
#include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit RW=P2^6;//定义LCD1602液晶显示器读写端 sbit RS=P2^5;//定义LCD1602液晶显示器数据命令端 sbit EN=P2^7;//定义LCD1602液晶显示器使能端 sbit qiting=P3^0;//定义启停按键 uchar qitingnum;//定义启停次数变量 uint count;//定时器0定时中断次数变量 unsigned long speed=0;//定义速度变量 uchar co
[单片机]
PIC单片机读写I2C实例源程序一
; this route is used I2C EESROM write and ; read; addressing mode is indirect START BSF RB_C,SDA NOP MOVFW RB_C TRIS RB BSF RB,SCL NOP BTFSS RB,SDA GOTO ^-1 BCF RB_C,SDA NOP MOVFW RB_C TRIS RB NOP BCF RB,SDA NOP NOP NOP NOP BCF RB,SCL RETLW 0H STOP BCF RB_C,SDA NOP MOVFW RB_C TRIS RB BCF RB,SDA NOP NOP NOP BSF RB,SCL
[单片机]
用PICC编译器开发PIC单片机的代码
引言 目前,在市场上应用最广泛的应该属于8位单片机,Microchip Technoloogy公司推出的8位PIC系列单片机,目前在国内市场上深受用户欢迎,已经逐渐成为单片机应用的新潮流;但遗憾的是,目前国内介绍它的C语言开发工具的书籍和文章却比较少,而且用的人也不多,广大的程序员在用其开发的过程中都在慢慢摸索,可能会走一些弯路。笔者最近在用PIC的C语言时就遇到了好些问题,在这里想和最近一段时间用PIC的C语言的一些经验和广大的底层软件程序员做一下交流和介绍希望本文对用PICC开发PIC系列单片机的人有所帮助。 目前,在国内用得比较多的是Hi-Tech的Hi-Tech PICC编译器,而且目前市场上一些国内的PIC单片机仿真
[单片机]
PIC单片机之SPI总线篇
大家好,通过前一期的学习,我们已经对ICD2 仿真烧写器和增强型PIC 实验板的使用方法及学习方式有所了解与熟悉,现在我们就趁热打铁,再向上跨一步,一起来学习一下SPI 总线器的工作原理及使用方法,这样我们可以将一些需要保存的数据保存到存储器芯片中,掉电不会失丢,如汽车的里程表,它在不断地计数,其公里数就是放在一个SPI 总线的存储器芯片里面。 一、SPI总线基本概念 SPI ( Serial Peripheral Interface ———串行外设接口) 总线是Motorola 公司推出的一种同步串行接口技术。SPI 总线系统是一种同步串行外设接口, 允许MCU 与各种外围设备( 如闪存、数摸转换、网络控制器、从MCU)
[单片机]
PIC单片机矩阵键盘+行扫描法
/*采用行扫描法RAM占用空间较少(呵呵起码我写的程序是这样的,因为我刚开始学,还不是很懂各方面的程序优化)*/ #include pic.h __CONFIG(0x3F32); //芯片配置字 #define uchar unsigned char #define uint unsigned int void delay10ms(uchar x); void beep(); void init(); uchar key; uchar LED_CODE ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0xbf}; void keyscan() { uc
[单片机]
PIC单片机定时器1的使用方法
#include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); void init(); uint intnum; void main() { init(); while(1) { /* if(intnum==20) { intnum=0; RD0=!RD0; }*/ } } void init() { TRISD=0; PORTD=0; INTCON=0xc0; PIE1=0x01; TMR1L=(65536-50000)%256; TMR1H=(65536-50000)/256;
[单片机]
PIC单片机之I2C(从模式)
网上有许多讲解单片机 实现I2C主模式,但是从模式的很少。我现在就来讲讲PIC单片机使用MSSP模块实现I2C从模式。 有关I2C协议的具体介绍可以看 《PIC单片机之I2C(主模式)》,我们这里直接讲解实例 实例讲解:我们模仿 AT24C02 EEPROM 的协议。让一个主模式的单片机,来读取从模式单片机的数据。 下面为AT24C02的随机地址读取的协议。 第一个字节 :输入7位地址和一位的写状态位, 第二个字节:然后写入EEPROM数据地址, 第三个字节:输入7位地址和一位的读状态位, 第四~N个字节:读出的EEPROM的数据。 我们来讲解下程序的基本思路:我们使能了MSSP中断,即是I2C接收中断,当PI
[单片机]
PIC单片机复位系统的条件及原因
P IC 16F87X系列 单片机 的复位功能设计得比较完善,引起单片机内部复位的条件和原因可以大致归纳成以下5种. 1.上电复位 每次单片机加电时,上电复位 电路 都要对 电源 电压 VDD的上升过程进行检测,当VDD值上升到规定值1.6~1.8V时,就产生一个有效的复位信号,需经过72ms加1024个时钟 周期 的延时,才会使单片机复位。 2.人工复位(单片机在执行程序期间) 无论是单片机在按预先设定的正常顺序运行程序,还是出现单片机进入不可预知的某一个死循环,都必须认为单片机在执行程序。单片机在执行程序期间,只要在人工复位端MCLR加入一个低 电平 信号,就会令其复位。 3.人工复位(单片机在睡眠期间
[单片机]