PIC16F87X单片机的定时器/计数器的应用

控制/MCU

1799人已加入

描述

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模块。

(4)设置于键盘有关的I/O端口的输入输出方式及键盘扫描的初始条件。

(5)SPI传输数据子程序,在监测到发送成功后的清除发送标志。

(6)通过SPI发送显示数据,在LED上对数据进行显示,显示的数据在程序开始定义的显示段码表中进行调用。为使显示美观,连续发送了4个DARK,最后给锁存信号,代表显示任务完成。

(7)软件延时自程序,空跑3553个系统周期。

(8)通过行列扫描来判断到底是哪个按键按下。

(9)该子程序主要功能是键盘的去抖动。

(10)该子程序对系统一些变量进行初始化。

(11)定时器中断服务程序。每次进入该子程序,令中断计数器加1,当中断次说达到40后,对S0、S1、S2、S3进行操作。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分