前言:
本文详细介绍了51单片机学习过程中定时器的初值计算问题以及相关概念,力求把每一个学习过程中的可能会遇到的难点说清楚,并举相关的例子加以说明。学习完毕,又顺手利用刚学到定时器的相关知识写了一个“定时器初值计算”控制台程序,能够实现:51定时器三种不同工作方式下的初值计算输出,既实用,又能加深对所学知识的理解。
软件使用VS2012编写,实现效果如下,仅仅是控制台程序,没有界面,有兴趣的话可以自己用C#或者QT写个界面,或者做一些功能上拓展,跟我们平常学习51资料中附带的定时器初值计算小工具一样哦!
附51系列单片机控制台程序定时器初值核心计算函数源码(完整VS2012工程源码下载)
/*
* 函数名:Timer_Initial_calculation
* 描述 :定时器初值计算函数
* 输入 :无
* 输出 :无
*/
void Timer_Initial_calculation()
{
int N;//计数值
int n; //定时器位数
int TimeDigit;//计数总值
N = (t*fosc*1000) / 12; //计算计数值N
//定时器位数选择
switch(y)
{
case 0:
n=13;
TimeDigit = pow(2.0,n); //定时器位数选择
Timing