51单片机如何通过程序校准计数器啊

51单片机如何通过程序校准计数器啊,第1张

通过程序进行校准?那首先要有标准的“时间”,然后经过一段时间计算出定时器的误差,然后更改计数初值。标准时间可选用时钟芯片或已知脉冲。

当然也可以手动修改,10分钟慢了15秒,那1S慢了多少ms就知道了,然后修改计数初值。

weimiao++;//微秒++一次>--------这里的定时器定时时间为50毫秒一次,注意命名

如果想再提高点精度,可以使用工作方式2自动重装,(定时中断里的函数尽量精短)

利用 T1 / P35 输入(下降沿计数)

初始化:

TMOD = 0x60; //计数,自装载模式

TH1=256-5;

TL1=256-5;

TR1=1;

ET1 = 1;

EA = 1;

void timer1() interrupt 3 //溢出一回就把端口电平翻转一下

{

P1 = ~P1;

}

main()

{

//初始化

TMOD =0x15//定义计数器0,定时器1 。。计数T0(P3^4)IO口脉冲

TH0 =0;

TL0 =0;

ET0= 1;

EA=1;

TR0 =1;

while(1)

{

;

}

}

void timer0() interrupt 1

{

TH0=0;

TL0=0;

}

数码管 还是液晶屏显示? 晶振频率多少?

用定时器时,先设置工作方式 再装入初值 开启中断 再开启定时器/计数器

void init()//初始化设置

{

TMOD=0x51;//定时器1作为计数器,定时器0作为定时器用

TH1=0;//计数器清0

TL1=0;

EA=1;//开总中断

ET0=1;//允许定时器0中断

TH0=(65535-50000)/256;// 晶振12M时 定时50ms需装入的初值

TL0==(65535-50000)%256;

TR0=1;//启动计数器

TR1=1;//启动定时器

}

定时器中断程序

void timer0()interrupt 1//注意:定时器0的中断序号为1

{

TH0=(65535-50000)/256;

TL0==(65535-50000)%256;

TR1=0;//暂停计数

bb=TH1;//读出计数器数据

cc=TL1;

TL1=0;//计数器清0

TH1=0;

TR1=1;//重新启动

}

频率f=(bb256+cc)20

然后分离出个 十 百 千 万,送液晶屏或数码管去显示

主程序先初始化,然后就是不停地显示

#include <reg51h>

#define uchar unsigend uchar

#define uint unsigned int

unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};//数码管段码

void main()

{

uint k;

TMOD=0X50;//设置模式为1,计数模式

TH1=0X00;

TL1=0X00;//初始值设定

IE=0X00;//关全局中断

TR1=1;//开定时计数器1运行

while(1)

{

if(TL1==16)//进行判断,为16时,计数值归零

TL1=0X00;

k=TL1;

P0=LED7Code[k];//数码管进行显示

}

}

此程序目的见>

TH0 = THC0; // 向TH0寄存器写入THC0常数,也就是0xEE

TL0 = TLC0; // 向TL0寄存器写入TLC0常数,也就是0x00

// 以上完成定时器0在16位模式下的初值加载,也就是0xEE00

TR0 = 1; // 开启定时器0的运行。此语句之后Timer0计数器才开始累加

ET0 = 1; // 开启定时器0的中断。此语句之后,Timer0计数器溢出才会产生中断标志

EA = 1; // 开启总中断开关。此语句之后,中断标志置位才会触发PC跳转到对应的中断向量

好好学习天天向上

以上就是关于51单片机如何通过程序校准计数器啊全部的内容,包括:51单片机如何通过程序校准计数器啊、我想用51单片机做一个外部计数的程序,每当高电平到来计数一次,记满5次由单片机控制另一个引脚输出。、51单片机计数器怎么使用 等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9323933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存