51单片机的定时器程序,c语言编写,使用内部定时器设计一个三位秒表 (秒,十秒,分),显示秒位的变动,

51单片机的定时器程序,c语言编写,使用内部定时器设计一个三位秒表 (秒,十秒,分),显示秒位的变动,,第1张

方法:首先:要学会数码管的显示程序

然后:按键的 *** 作,注意软件的消抖(具体的是延时,10ms左右)。

假设有k1~停表,k2~复位,k3~继续运行

先说停表和继续运行的

停表:如果k1按下,TR0=0;

继续运行:如果k3按下,TR0=1;

复位:直接用硬件复位单片机或者k2按下,数据清零。

要实现数据的循环:只要定时器计数到最大值时,再把最小值赋给它!

我看楼上写的程序不怎么好,而且不容易懂,不是单片机c语言吧,于是自作主张的自己又写了一个,是51单片机的,12MHz晶振。我猜你现在用的是51吧?

#include

#define

uchar

unsigned

char

sbit

Led=P1^0;

uchar

counter;

void

timer1()

interrupt

3

using

1

{

TH1=-50000/256;

TL1=-50000%256;

counter=counter+1;

}

void

main()

{

counter=0;

TMOD=0x50;

TH1=-50000/256;

TL1=-50000%256;

//定时50ms,16位定时器

EA=1;

TR1=1;

while(1)

{

if(counter==20)

{

counter=0;

Led=~Led;

//led灯闪烁

}

}

}

楼主觉得可以的话,一定要给满意噢,若有什么不满意的地方,请继续追问。对啊,中断里面的程序一定要短,中断嘛,本来就是要告诉单片机该做什么的了。

如果是51单片机的话其实很简单的,这里假设晶振频率是12M(一般都是的),你可以选用定时器0,工作在工作状态2,因为这个状态下装入初始值几乎不需要时间,所以定时精确,也就是8位预置数状态,将初始值设为6,这样每次定时就是250微秒,在中断程序中定义一个静态变量,每次中断加一,这样当这个变量值为4000时就刚好是1S钟。

关键程序是:

void main()

{

TMOD=OX02;

EA=1;

ET0=1;

TH0=0X06;

TL0=0X06;

while(1);

}

void timer0() interrupt 1

{

static unsigned int times=0;

times++;

if(times==4000)

{

times=0;

//自己的程序

}}

#include <stdioh>

#include <windowsh>

void main()

{

int _t=60;

while (_t>0)

{

Sleep(1000);

_t--;

}

/

      60秒后要执行的语句

/

}

#include<reg51h>

#define uchar unsigned char

uchar pwm=50,cnt;

sbit pluse=P1^0;

sbit keyu=P1^4;

sbit keyd=P1^5;

void t0isr() interrupt 1

{

TH0=(65536-100)/256;

TL0=(65536-100)%256;

cnt++;

if(pwm>0)

{

if(cnt>100)cnt=0;

if(cnt<=pwm)pluse=1;

else pluse=0;

}

else pluse=0;

}

main()

{

TMOD=0x01;

TH0=(65536-100)/256;

TL0=(65536-100)%256;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(keyu==0)

{

while(keyu==0);

pwm++;

if(pwm>100)pwm=100;

}

if(keyd==0)

{

while(keyd==0);

if(pwm>0)pwm--;

}

}

}

以上就是关于51单片机的定时器程序,c语言编写,使用内部定时器设计一个三位秒表 (秒,十秒,分),显示秒位的变动,全部的内容,包括:51单片机的定时器程序,c语言编写,使用内部定时器设计一个三位秒表 (秒,十秒,分),显示秒位的变动,、请大家给我写一个用单片机c语言变的程序,要求:用定时器实现灯的闪烁、单片机c语言编写产生1秒定时的程序,怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存