51单片机定时器实验报告

单片机定时器怎么用(单片机定时器编程怎么使用)

1.单片机定时器编程怎么使用

#include <reg52.h>

#define uchar unsigned char //类型重定义

#define uint unsigned int

#define ulong unsigned long //类型重定义

sbit led=P0^0;

sbit K_1= P2^0; //按键

ulong num;

void delay(uint xms) //ms级延时子程序

{ uint x,y;

for(x=xms;x>0;x--)

for(y=130;y>0;y--);}

//=================================================

void main()

{

led=1; //上电初始化,led灯不亮

delay(100);

TMOD=0x01; //设定定时器0为工作方式1

TH0=(65536-50000)/256; //装载初始值,12MHZ晶振50ms数为50000

TL0=(65536-50000)%256; //

(开启总中断允许);

(开启定时器中断允许);

while(1)

{

if(K_1==0)

{

while(K_1==0);

TR0=1; //启动定时器0 */

led=0; //按键1按下时灯亮

}

if(num==200)

{num=0;

(关闭定时器0);

led=1; //200*50ms后灯灭

}

}

void interrupt_timer0(void) interrupt 1

{

(关闭T0中断);

TH0=(65536-50000)/256; //装载初始值,12MHZ晶振50ms数为50000

TL0=(65536-50000)%256; //

num++;

(开启T0中断);

}

PS:自己把小括号里面的东西加上吧。我忘记是什么了,

2.单片机定时器计数器如何使用

使用12MHz晶振,其机器周期为1us

欲产生5000us周期方波,只需在p1.0以2500us时间交替输出高低电平

1.T0为方式0,则M1M0=00H。使用定时功能,C/T=0,GATE=0。T1不用,其有关位设为0。因此,TMOD=00H

2.方式0为13长度计数(TL0高3位不使用),设计数初值为X,则(8192-X)*1us=2500us,得X=5692D。X=1011000111100B。因为TL0高3位不用,所以10110001-00011100B得TH0=B1H,TL0=1CH

3.由控制寄存器TCON的TR0位来控制定时的启动和停止,TR0=1启动,TR0=0停止

C语言程序如下(编译器Keil C)

#include<REG51.H>

sbit FB=p1^0;

void initial(void)

{

TMOD=0x00;

TH0=0xb1;

TL0=0x1c;

IE=0x00;

TR0=1;

}

void main(void)

{

initial();

for(;;)

{

while(!TF0);

TF0=0;

FB=!FB;

}

}

汇编程序如下

ORG 0000H

AJMP START

ORG 30H

START: MOV P1.0,#0FFH

MOV TMOD,#00H

MOV TH0,#0B1H

MOV TL0,#1CH

SETB TR0

LOOP: JBC TF0,NEXT

LJMP LOOP

NEXT: CPL P1.0

MOV TH0,#0B1H

MOV TL0,#1CH

LJMP LOOP

END

3.51单片机的3个定时器怎样使用

51单片机只有T0,T1。52才有T2的。

定时器设置方法:

做定时用一般采用16位模式,也就是TMOD=0x11(10或01单独一个定时器的话),初值的计算是这样的:

1. 假设时间是X毫秒,晶振为YMhz,那么:

THn=(65536-1000*X*Y/12)/256

TLn=(65536-1000*X*Y/12)%256

2. 之后就是TRn=1(开启定时器)

ETn=1(开启定时器中断)

EA=1

4.单片机

楼主的程序并无大错,稍加修改即可正常运行。

下列程序已经实现了“(响4次/秒和响1次/秒),用定时器1控制发声时间(3秒)”。

//==========================

#include

sbit FM = P1^3; //FM是蜂鸣器.

unsigned char i, j, count;

int k;

//------------------------------------------

void main()

{

TMOD = 0x11; //把定时器0和1都设置为16位.

TH0 = (65536 - 50000) / 256;

TL0 = (65536 - 50000) % 256; //50000代表50毫秒.

TH1 = (65536 - 50000) / 256;

TL1 = (65536 - 50000) % 256; //50000代表50毫秒.

TR0 = 1; //启动定时器0

TR1 = 1; //启动定时器1

ET0 = 1; //打开中断T0

ET1 = 1; //打开中断T1

EA = 1; //打开总中断.

i = 0;

j = 0;

k = 1;

count = 5;

while(1);

}

//------------------------------------------

void timer0() interrupt 1 //中断1函数,使用定时器0

{

TH0 = (65536 - 50000) / 256;

TL0 = (65536 - 50000) % 256; //50000代表50毫秒.

j++;

if(j >= (count / 2)) FM = 0;//打开蜂鸣器.

else FM = 1;//关闭蜂鸣器.

//count由定时器1控制;

//count=5表示蜂鸣器每秒响4次,count=20表示每秒响1次.

if(j >= count) j = 0;

}

//------------------------------------------

void timer1() interrupt 3 //中断3函数,使用定时器1

{

TH1 = (65536 - 50000) / 256;

TL1 = (65536 - 50000) % 256; //50000代表50毫秒.

i++;

if(i == 60) { //60表示60x50毫秒=3秒.

i = 0;

k--;

if(k == 0) k = 2;

switch(k) {

case 1: count = 5; break; //把count=5赋给中断函数1中,让蜂鸣器每秒响4次.

case 2: count = 20; //把count=20赋给中断函数1中,让蜂鸣器每秒响1次.

}

}

}

//------------------------------------------

看网友的热心回答,水平参差不齐,嘲讽帅哥学童的回答确实别开生面,如此多的错误观点也敢亮出来,呵呵,叫人驳不胜驳!

请教一下:

----

2.千万不要

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

这样定义,因为做(65536-50000)/256;这个运算,很占用机械周期,要知道,减法用1个机器周期,。。工作周期至少多了20个,。

----

说说看,究竟是多少个?

你要是调试过程序,就会知道,“至少多了20个”究竟是多少个。

你要是调试过程序,就会知道,这个运算是否是由单片机进行的。

看来,这位学童还没有接触过单片机。

5.单片机 定时器程序中怎么用

#include <reg52.h>

unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};

unsigned char num,cont;

void Init_Timer0(void)

{

TMOD = 0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA = 1;

ET0 = 1;

TR0 = 1;

}

void main(void)

{

unsigned char i;

P1=tab[i];

Init_Timer0();

num=0;

cont=0;

while(1);

}

void Timer0_isr(void) interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

cont++;

if(cont>20)

{

cont=0;

P1=tab[num];

num++;

num%=10;

}

}

6.如何用单片机定时

用单片机本身的定时来做电子表,现在有很多时钟芯片,与单片机接口也很简单,它有专门的外部晶振,而且在时间精确是,是绝对准确的。只要能够按照时序与它产生通讯,就可以达到时间的精确。

毕竟,单片机本身不是专让用来做时钟的,而专门的时钟芯片才会有此条件。

定时器其实就是单片机的一个内部自身时钟的计数器,每一个周期计数器加1,所以使用定时器功能时候先要给定时器付初值,就是先写TH0TL0的值,写完初值后就等着定时器功能的那个计数器记满了数后也就是到了65536后就溢出了。

所以一次定时的过程就是65536-初值 之间的数 所代表的时钟周期,计数满了溢出要产生中断就要写一个中断服务子程序;

参考如下:

void main()

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;//定时器0初值,定时50ms 定时多少MS就多少*1000

EA=1;//开启总中断

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

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

while(1)

{

}

}

void timer0() interrrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

}

7.51单片机的定时器是怎么设置的

单片机定时器的设置步骤为:

1、设置定时器的工作模式,共4种工作方式,两种模式(计数器/定时器)。比如:

MOV TMOD,#01;设置定时器0位定时器模式,工作方式1

2、根据定时时间赋初值。比如定时10毫秒,那么如果12M晶振的话是10000个机器周期。定时器是溢出申请中断,所以用溢出值减去定时周期为初值。

MOV TH0,#HIGH(65536-10000)

MOV TL0,#LOW(65536-10000)

3、开启中断、定时器。

SETB ET0

SETB EA

SETB TR0

8.怎么利用单片机定时器实现定时的编程过程

定时器其实就是单片机的一个内部自身时钟的计数器,每一个周期计数器加1,所以使用定时器功能时候先要给定时器付初值,就是先写TH0TL0的值(如下),写完初值后就等着定时器功能的那个计数器记满了数后也就是到了65536后就溢出了,所以一次定时的过程就是65536-初值 之间的数 所代表的时钟周期,计数满了溢出要产生中断就要写一个中断服务子程序,子程序如下void timer0() interrrupt X 中断服务子程序中还要给定时器计数器的TH TL付初值 进行下一次的计数,明白了吧。。楼上的那个没写interrupt 选择定时器工作方式。哎呀,妈呀 累死我了

void main()

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;//定时器0初值,定时50ms 定时多少MS就多少*1000

EA=1;//开启总中断

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

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

while(1)

{

}

}

void timer0() interrrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

}

单片机定时器怎么用

转载请注明出处育才学习网 » 51单片机定时器实验报告

知识

罗梅芬用日文怎么写(罗钰潇日语怎么写)

阅读(21418)

本文主要为您介绍罗梅芬用日文怎么写,内容包括伊蕾娜日语怎么写,王雪菲用日文怎么说,张佳怡在日语中怎么写啊怎么读啊。罗 ら ラ ra钰 ぎょく ギョク gyoku潇 しょう シヨウ shou第一列:日语汉字,写法同汉字,都要用繁体,这三个都挺难写的,看

知识

邓先生的英文怎么写(1~40的英文怎么说)

阅读(10433)

本文主要为您介绍邓先生的英文怎么写,内容包括“邓先生”用英语怎么写,1~40的英文怎么说,漂亮英文beautiful缩写怎么写。1 one 2 two 3 three 4 four 5 five 6 six 7 seven 8 eight 8 nine 10 te

知识

一个人布满皱纹怎么写(描写人物皱纹的句子)

阅读(9503)

本文主要为您介绍一个人布满皱纹怎么写,内容包括描写人物皱纹的句子,描写人物皱纹的句子,皱纹怎么描写。、老人脸上布满了皱纹,那一条条曲折不均的像是墙上斑驳的印迹,爬满了面容,留下了岁月的痕迹。2、外祖父是一位年过六旬的白发老人。在他

知识

登录接口怎么写(php登录的接口怎么写)

阅读(7753)

本文主要为您介绍登录接口怎么写,内容包括php登录的接口怎么写,网页登陆接口怎么做,网站登录接口程序怎么做。PHP 接口 接口 使用接口(interface),你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。我们可以通过int

知识

档案奖惩情况怎么写(奖惩情况怎么写)

阅读(9592)

本文主要为您介绍档案奖惩情况怎么写,内容包括奖惩情况怎么写,个人简历及奖惩情况怎么填写,个人简历里面奖惩情况怎么写。在简历里的“奖励”部分,列出与你所获得的并与你的求职目标相关的荣誉、奖励和奖金。你既可以按时间顺序排列,也可以按

知识

头孢克肟拼音怎么写(头孢克肟的肟念什么)

阅读(7995)

本文主要为您介绍头孢克肟拼音怎么写,内容包括头孢克肟片全名拼音,头孢克肟片全名拼音,头孢克肟的肟念什么。肟[wò] :是含有羰基的醛、酮类化合物与羟胺作用而生成的有机化合物,可以参与许多有机化学反应,例如经典的Beckmann重排就是肟为底

知识

一库搜用日语怎么写(日语一库是什么意思)

阅读(7980)

本文主要为您介绍一库搜用日语怎么写,内容包括日语大神来,看动漫里的主人公说一句:恰,一库搜这是什么意思,一库一库;一搜库这两个日语是什么意思怎么写,看片都有“一库”(日语)是什么意。一库的意思就是“出发,出去”的意思。日语「行く」的音译

知识

外租无人机广告怎么写(植保无人机广告语)

阅读(6990)

本文主要为您介绍外租无人机广告怎么写,内容包括求一个无人机创意广告词谢谢巨友们了,求一关于无人机的广告标语,求一关于无人机的广告标语我们公司是做无人机的,新成立的公司,求。DJI大疆创新研发的的MG-1农业植保机专为农村作业环境设计,

知识

河南话que怎么写(河南话的nenna怎么写)

阅读(6524)

本文主要为您介绍河南话que怎么写,内容包括que怎么写,河南话的nenna怎么写,que怎么写。尿一壶(niào yī hú)关系密切,观点一致。例:“他俩今天尿一壶啦。”●尿(niào)⑴、从尿道排泄的液体。⑵、排泄小便。⑶、不放

知识

国学经文的论文怎么写(国学征文该怎么写)

阅读(7103)

本文主要为您介绍国学经文的论文怎么写,内容包括国学征文该怎么写,弟子规的400论文,关于国学经典的征文怎么写。“子曰:“温故而知新,可以为师”……小时,总是觉得国学就是没用的,古人写的话,我们还需要背,每次老师教给我们时,我总是会让思想开一

知识

化学实验总结怎么写(化学实验报告小结怎么写)

阅读(5386)

本文主要为您介绍化学实验总结怎么写,内容包括化学实验总结怎么写,化学实验报告小结怎么写,化学实验小结怎么写。化学实验报告的书写: 一般情况下化学实验报告是根据实验步骤和顺序从七方面展开来写的: 1.实验目的:即本次实验所要达到的目标或

知识

蝴蝶豌豆拼音怎么写(豌豆的拼音是什么)

阅读(5819)

本文主要为您介绍蝴蝶豌豆拼音怎么写,内容包括蝴蝶怎么拼音的,豌豆的拼音是什么,蝴蝶的拼音是什么。豌豆的拼音是[wān dòu]。豌豆是豆科一年生攀援草本,高0.5-2米。全株绿色,光滑无毛,被粉霜。叶具小叶4-6片,托叶心形,下缘具

知识

海绵宝宝用英文怎么说(海绵宝宝用英文怎么说)

阅读(6504)

本文主要为您介绍海绵宝宝用英文怎么说,内容包括海绵宝宝用英语怎么说,海绵宝宝用英文怎么说,海绵宝宝英文名是什么。1. SPONGEBOB SQUAREPANTS 近期很夯的一步卡通影片《海绵宝宝》(SpongeBob SquarePants)是一系

知识

茶盏怎么用(茶盏在茶道中干嘛用)

阅读(5412)

本文主要为您介绍茶盏怎么用,内容包括茶盏怎么用我要写一篇200字左右的茶盏的使用说明,求指教,茶盏在茶道中干嘛用,问一下斗笠盏如何使用现在是不是很少有人使用它,它的意义。苏东坡的名句"从来佳茗似佳人",典型地代表了唐宋及以后的文人墨客,

知识

thinkpad小红点怎么用(怎么学习使用thinkpad小红点)

阅读(7572)

本文主要为您介绍thinkpad小红点怎么用,内容包括怎么学习使用thinkpad小红点,thinkpad小红点怎么用,求教:THINKPAD的小红点使用方法。Thinkpad 小红点最高效的使用方法为:左手拇指按左键,无操作时在左键待命2、右手拇指按右键,同时兼按空格键及