导航:首页 > 操作系统 > 单片机定时器1秒

单片机定时器1秒

发布时间:2022-05-20 01:11:25

❶ 80C51单片机,12mhz.利用中断程序控制8个灯依次亮灭,定时时间为1秒。

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char tab[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xff};

void delay(uint e) //延时函数,延时为0.5s
{
uint i,j;
while(e--)
{
for(i=0;i<500;i++)
for(j=0;j<110;j++);
}
}

void Timer0Init()
{
TMOD|=0x01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。
TH0=0xfe; //给定时器赋初值,定时1ms
TL0=0xfc;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
}

void main()
{
Timer0Init();
while(1);
}

void timer0() interrupt 1
{
uchar i;
for(i=0;i<8;i++)
{
P2=tab[i];
delay(1);
}
for(i=0;i<8;i++)
{
P2=~tab[i];
delay(1);
}

❷ 单片机,一秒的定时器初值怎么算不要结果要过程谢了哈! ...

一。10MS定时器初值的计算:1.晶振12M12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次 机器周期。65536-10000=55536(d8f0)TH0=0xd8,TL0=0xf02.晶振11.0592M11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。65536-9216=56320(dc00)TH0=0xdc,TL0=0x00二。50MS定时器初值的计算:1.晶振12M12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次 机器周期。65536-50000=15536(3cb0)TH0=0x3c,TL0=0xb02.晶振11.0592M11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。65536-46080=19456(4c00)TH0=0x4c,TL0=0x00同理1MS定时器初值的计算:1.晶振12M12MHz除12为1MHz,也就是说一秒=1000000次机器周期。1ms=1000次 机器周期。65536-1000=15536(fc18)TH0=0xfc,TL0=0x182.晶振11.0592M11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=922次机器周期。65536-922=19456(fc66)TH0=0xfc,TL0=0x66 查看原帖>>

❸ 单片机定时器有65535计数值,66535是什么单位,微秒还是毫秒怎么计算定时1秒led闪烁一次

65535是16进制的FFFF,是51单片机定时器最大值,就是最大65535us,=65.535ms
,计数器初值设置50ms,65536-50000=15536=3CB0H,,使用一个计数器计数20(10个=500ms取反,常用1s闪烁使用)个50ms=1s。。

❹ 单片机用定时器1秒方波

使用单片机定时器在P1.0口产生200Hz方波程序
#include <reg52.h>
void main()
{
P1^0 = 0; // 清P0口
/////////
TMOD = 0x00; // T0使用定时模式,工作模式0,无门控位
TH0 = 0x60; // 为T0填入初值,定时时间5ms
TL0 = 0x78;
TR0 = 1; // 启动T0
ET0 = 1; // 允许定时器0中断
EA = 1; // CPU开放中断
while(1); // 循环等待
}

void timer0_int () interrupt 1 using 2 // T0溢出中断,使用工作组2
{
TH0 = 0x60; // 重新填入初值
TL0 = 0x78;
P1^0= ~P1^0; // P1.0取反,产生方波
}
希望对你有用,学习单片机多练习单片机学习板,动手学习效果会更好,目前主流的吴鉴鹰单片机开发板不错

❺ 如何利用定时器T0的工作方式1实现1秒钟延时程序(单片机)

1、#include <reg52.h>

2、#define uchar unsigned char

3、#define uint unsigned int

4、sbit LED = P0^0;uchar T_Count = 0;void main(){TMOD = 0x01;TH0 = (65535-50000)/256;TL0 = (65535-50000)%256;IE = 0x82;TR0 = 1;while(1);}

5、void LED_Flash() interrupt 1{TH0 = (65535-50000)/256;TL0 = (65535-50000)%256;if(++T_Count == 20){LED = !LED;T_Count = 0;}}

6、这个程序是1秒钟LED灯会亮与灭显示。

❻ 单片机定时器设定一秒

对于51
单片机,11.0592M的多用于有用到波特率的,以提高精度。如果需要定时1
秒的
,可用6M或12M的晶振。如果用12M的话,则1
个机器周期的1us
。定时器范围是0~FFFF(即65535us)你可定时50ms一次中断,共20次就是1秒。

❼ C51单片机定时器1以方式1定时1秒如何设置

1、先打开我们熟悉的单片机c51编程软件——keil,先把主方法写好。

❽ 单片机c语言编写产生1秒定时的程序,怎么写

如果是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;
//自己的程序
}}

❾ 单片机如何精确定时1秒钟

采用定时器定时很精确的,如果定时时间为1ms,那循环1000次就是1s。定时初值要看你采用的晶振频率了,下面是12M晶振,定时器0的定时1ms程序。
timer0() interrupt 1 // 1ms延时(12.0MHz)
{
TR0=0;
ET0=0;
TH0=0xfc;
TL0=0x18;
if(delayTimes1!=0) delayTimes1--;
TR0=1;
ET0=1;
}
当要程序中把delayTimes1赋值1000后,等到delayTimes1为0的时候定时1s钟到

❿ 如何让一个单片机的定时器计时1秒

首先你要知道你的晶振是多少频率的,然后知道执行一个延迟命令的时间,然后再估算出需要多少个延时命令才能组成1秒。其实网上有很多这样的延时程序。

阅读全文

与单片机定时器1秒相关的资料

热点内容
我的世界丧尸大逃杀是什么服务器 浏览:404
博客虚拟资源网站源码 浏览:137
王羲之圣教序pdf 浏览:566
程序员要多久才能年薪50万 浏览:256
浪潮服务器怎么开机箱 浏览:92
我的世界服务器ice怎么设置密码 浏览:373
我的世界服务器怎么设置成op 浏览:228
服务器上的图片如何最小 浏览:246
python爬虫高级视频教程 浏览:799
如何把微信的钱转到支付宝的app 浏览:952
javamail如何知道pop服务器地址 浏览:806
程序员买羊肉视频 浏览:608
米米服务器什么版本 浏览:967
程序员改造插座 浏览:742
对象调用静态方法php 浏览:988
音乐类文件夹名称 浏览:922
android写xml 浏览:379
a打孔文件夹 浏览:282
短信php源码 浏览:277
老师程序员轻松 浏览:955