PIC16F87X单片机内部装备了3个守时器/计数器,别离记为TMR0、TMR1、TMR2。这3个守时器/计数器模块不仅在电路结构上不相同,并且其在规划的初衷和使用上也各有不同。
· 守时器/计数器TMR0。
守时器/计数器TMR0是3个同类模块中最常用的器材,与守时器/计数器TMR0相关的寄存器共有4个,别离为累加计数寄存器TMR0、选项寄存器OPTION REG、中止操控寄存器INTCON和端口RA方向寄存器TRISA。
· 守时器/计数器TMR1。
守时器/计数器TMR1是一个由两个8位可读写的寄存器(TMR01H和TMRIL)组成的16位守时器/计数器,它带有一个3位的可编程预分频器和一个内置的低功耗低频时基振荡器。
· 守时器/计数器TMR2。
守时器/计数器TMR2是一个8位守时器,其间还包含了一个可编程预分频器和一个后分频器。
1. 规划思路
使用TIMER0守时米完结秒表的功用.为使该功用显得直观,该模块还扩大了键盘扫描和显现功用,
2. 程序规划
该程序包含TMR0初始化子程序、spi显现初始化了程序、体系其他部分初始化子程序、SPI传输数据子程序、显现子程序、键扫描子程序及主函数。
(1)首要包含必要电动偷文件及程序中用到的全局变量。
(2)TMR0初始化子程序,使TMR0作业于守时器方法且不分频。
(3)SPI初始化程序,初始化SPI模块。
(5)SPI传输数据子程序,在监测到发送成功后的铲除发送标志。
(6)经过SPI发送显现数据,在LED上对数据进行显现,显现的数据在程序开端界说的显现段码表中进行调用。为使显现漂亮,接连发送了4个DARK,最终给锁存信号,代表显现使命完结。
(7)软件延时自程序,空跑3553个体系周期。
(8)经过队伍扫描来判别到底是哪个按键按下。
(9)该子程序主要功用是键盘的去颤动。
(10)该子程序对体系一些变量进行初始化。
(11)守时器中止服务程序。每次进入该子程序,令中止计数器加1,当中止次说到达40后,对S0、S1、S2、S3进行操作。