单片机定时器程序c语言,单片机定时器程序

单片机定时器程序c语言,单片机定时器程序51单片机定时器中断程序(C语言)程序:延时1s方法:1.汇编实现影响程序运行速度2.中断比较快用C语言实现的,先要定义好定时器的初值不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期机器周期=12/n(n指晶振频率),假设你要定时的时间为M那么定时的初值为:M/机器周期=初值;TH0=(65536-初值)%256;TL0=(65536-初值)/256;将(…

51单片机定时器中断程序(C语言)

程序:延时1s

方法:1.汇编实现 影响程序运行速度 2.中断 比较快

用C语言实现的,先要定义好定时器的初值

不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期

机器周期=12/n(n指晶振频率),假设你要定时的时间为M

那么定时的初值为:

M/机器周期=初值;

TH0=(65536-初值)%256;

TL0=(65536-初值)/256;

将(65536-初值)所得的值化成16进制,其高位就是TH0的值,低位为TL0的值

例如用12M晶振做1ms定时计算如下:

机器周期=12/12*10^6=1us(微秒)

定时初值=(1*10^-3)/(1*10^-6)=1000;

所以:TH0=(65536-1000)%256;

TL0=(65536-1000)/256;

将65536-1000=64536化为16进制为:0xFC18

TH0=0xFC;

TL0=0X18;

定好初值后要延迟一秒就定一个延时参数,这里使用1000就行了(定时为1ms)中断程序为:

timer0() interrupt 1 // 1ms延时(12.0MHz)

{

TR0=0;

ET0=0;

TH0=0xfc;

TL0=0x18;

if(delayTimes1!=0) delayTimes1–;

TR0=1;

ET0=1;

}

调用程序大致为:

if(delay_flag==0)

{

delay_flag=1;

delayTimes1=1000;

}

if(delayTimes1==0)

{

delay_flag=0;

这里写定时到的操作就行了;

}

(在主程序中使用delay_ms()这样的程序会影响程序运行速度的,使用中断就不会)

定时器初值计算小工具下载http://doc.xuehai.net/soft/cun/2009/2009032018855.html

定时器计数00-59(P0接8为数码管位选端ds1-ds8,P2接8位数码管的段码A-H)

*******************************************************************************************

#include

sbit P0_0=P0^0; //个位数字

sbit P0_1=P0^1; //十位数字

void delay(int k); //Tab为数码管显示值,存入一个数组内

unsigned char ge,shi,num,count;

unsigned char code Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

void main()

{

TMOD=0x1; //T0,工作方式1

TH0=0xb1; //20ms定时

TL0=0xe0;

TR0=1; //开启T0定时器

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

EA=1; //开启总中断允许

P2=Tab[0];P0_0=0;P0_1=0;//显示00

num=0; //被显示的数置0

while(1) //一直调用显示,等待T0中断修改显示数据

{

shi=num/10; //取出十位数

ge=num%10; //取出个位数

P0_0=1;P0_1=1; //关闭显示

P2=Tab[shi]; //P2口送出十位数据显示代码

P0_0=0; //打开十位显示

delay(1000); //延时

P0_0=1; //关闭显示

P2=Tab[ge]; //P2口送出个位数据显示代码

P0_1=0;

今天的文章单片机定时器程序c语言,单片机定时器程序分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12468.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注