单片机的定时器中断0

发布者:Tiger8最新更新时间:2015-05-21 来源: 51hei关键字:单片机  定时器  中断0 手机看文章 扫描二维码
随时随地手机看文章
定时器工作的流程可以按照这个顺序(以51为例用定时器0方式一产生50毫秒的定时)
1、确定使用哪个定时器,使用哪种方式,这一步通过TMOD设置,TMOD的低四位是设置定时器0的,高四位是用来设置定时器1的,其中的M0,M1是用来设置定时器工作在哪种方式,GATE一般用不要设置,C/T是选择计数模式还是定时模式的,如:TMOD = 0X01,就说明定时器0工作在方式1。
2、接下来就要设置定时的时间,用定时器定时50毫秒,可以用这种方式TH0 = (65535 - 50000) / 256,TL0 = (65535 - 50000) % 256;可以这样理解:因为这是定时器的初值,也就是说计数脉冲就是在这个数的基础上向上递增,到达65535后就溢出产生中断
3、第三步就要打开中断了,使用IE寄存器,我一般是对各个位进行单独设置,这样看起来感觉更好,首先打开总中断EA = 1,这一步是所有中断所必须的,然后打开定时器0中断,ET0 =1;
4、这时准备工作都准备好了就要开始启动定时器了,使用TCON寄存器,TR0 = 1,到现在为止就实现了一个50毫秒的定时了;
总结一下:TMOD = 0X01; TH0 = (65535 - 5000) / 256; TL0 = (65535 - 50000) % 256; EA = 1; ET0 = 1; TR0 = 1,至于那个中断函数我就不写了,要注意的是方式0 ,1, 3是不能自动重装的,所以得在中断函数中重新对TH0 ,TL0赋初值

TMOD


TMOD:定时器/计数器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER)
        定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。
其格式为:

 

工作原理

其中低四位(即D0 ~ D3)定义定时器/计数器T0,高四位(即D4 ~ D7)定义定时器/计数器T1。

 

Ⅰ,GATE——门控制。

●GATE=1时,“与门”的输出信号K由INTx输入电平和TRx位的状态一起决定(即此时K=TRx·INTx),当且仅当TRx=1,INTx=1(高电平)时,计数启动;否则,计数停止。
当INT0引脚为高电平时且TR0置位,TR0=1;启动定时器T0;
当INT1引脚为高电平时且TR1置位,TR1=1;启动定时器T1。
●GATE=0时,“或门”输出恒为1,“与门”的输出信号K由TRx决定(即此时K=TRx),定时器不受INTx输入电平的影响,由TRx直接控制定时器的启动和停止。
当TR0=1,启动定时器T0。
当TR1=1,启动定时器T1。

Ⅱ,C/T——功能选择位

C/T=0时为定时功能: 加1计数器对脉冲f进行计数,每来一个脉冲,计数器加1,直到计时器TFx满溢出;
C/T=1时为计数功能: 加1计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外信号脉冲进行计数,每来一个脉冲,计数器加1,直到计时器TFx满溢出;

Ⅲ,M0、M1——方式选择功能

MCS-51的定时器T0有4种工作方式:方式0,方式1,方式2,方式3。
MCS-51的定时器T1有3种工作方式:方式0,方式1,方式2。
M1
M0
工作方式
功能说明
0
0
方式0
13位定时器/计数器
0
1
方式1
16位定时器/计数器
1
0
方式2
自动重载8位定时器/计数器
1
1
方式3
T0分为2个8位独立计数器,T1停止计数

#include
#include
#define uint unsigned int 
#define uchar unsigned char
sbit D1=P2^0;
uchar num,time;
uchar wnum=0x00;
uchar code dbit[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段选,选择要显示的数字
//uchar code wnum[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};//八位数码管    
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=0;y<113;y++)
{
}
}
}
void main()
{
P1=wnum;
time=0;
num=0;
TMOD=0x01;//设置定时器0为工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//打开中断总开关
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
while(1)
{
if(time==20)
{
D1=~D1;
time=0;
num++;
num=num%10;
if(num==10)
{
num=0;
}
P0=dbit[num];
}
}
}
void duan() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
}
关键字:单片机  定时器  中断0 引用地址:单片机的定时器中断0

上一篇:一位程序猿的经历与现实:我只想要一个仓库!
下一篇:单片机做的8位计算器

推荐阅读最新更新时间:2024-03-16 14:03

单片机的TCP/IP的实现与UNIX的不同
TCP/IP最先是在UNIX系统里实现的,后来的LINUX、DOS、WINDOWS也实现了TCP/IP,随后TCP/IP协议也被移植到其它嵌入式的处理器上,例如8位的MCS51单片机、AVR单片机,16位的ARM、C166以及32位的MIPS、ARM等芯片上。 TCP/IP协议的最底层IP层,很多定义都是16位或32位的,例如源IP地址(32位)目的IP地址(32位),校验值(16位),特别是较验值,是以16位为单位进行计算的,这样使得能够处理16位、32位运算的CPU,比如80286、80386 ,ARM、MIPS、DSP,就有很大的速度上的优势。而8位机MCS51处理则会慢很多。   由于指令的原因,以及资源上的原因,在UNIX
[单片机]
ADl871型模/数转换器在数据采集系统中的应用
1 引言   科学技术的发展对数据采集系统的采样速率、分辨率、精度、接口及抗干扰能力等提出越来越高的要求。ADl871是目前市场上动态范围、采样速率和采样精度等指标都很突出数据的一款24位ADC,它的推出为设计高速、高精度数据采集系统提供了一种较好的解决方案。由于其输出为串行输出,当其和MCU直接相连时,会使采样系统的采样速率大大降低。   如果MCU的I/O端口的实际最高速率是1MHz(单片机的速率通常是这个数量级),那么I/O端13传输1Bit的最短时间间隔为1μs,当ADl871输出2路各24Bit时,需要实际串行输出64Bit,故采样速率下降为1MHz/64=15.625kHz,这个速率远远低于ADl871的96kHz,另
[半导体设计/制造]
51单片机在晶闸管触发电路中的应用
本文介绍一种由8031单片机组成的触发控制系统,可实现高分辨率的数字触发。在常规控制中,主要是用电子控制装置对可控硅实现触发,这种方法由于受到电子元器件的限制,其分辨率不高,有时还会出现误触发。 在电力拖动系统、电炉控制系统中现已大量采用可控硅(晶闸管)元件作为可调电源向电动机或电炉供电,这种由晶闸管组成的控制系统,主要是利用改变可控硅的控制角θ来调节供电电压。 1 硬件组成及原理    系统硬件组成如图1,只须在8031最小系统上加一块16位的定时/计数器8253和晶振电路,另加一块带一个14位定时/计数器的可编程RAM/IO扩展器8155,即可组成单片机的系统线路。 1.1 θ角定时    控制角θ是滞
[单片机]
51<font color='red'>单片机</font>在晶闸管触发电路中的应用
Cortex内核拿下大半江山 MCU之争渐入高潮
      随着NXP发布LPC1700系列Cortex-M3内核的MCU,围绕着ARM新宠Cortex内核的竞争已经进入白热化。   目前Cortex-M3处理器内核的授权客户数已达到28家,包括东芝、ST、Ember、Accent、Actel、ENERGY、ADI、NXP、TI、Atmel、Broadcom、Samsung、Zilog和Renesas,其中ST、TI、NXP、Atmel和东芝已经推出基于Cortex-M3的MCU产品。 在这5家中,通过收购Luminary入局的TI和ST属于最先吃螃蟹的人,到现在已经成果初现;NXP则凭借最新的V2版内核100MHz主频的LPC1700系列大有后来居上之势;至于ATMEL和TO
[嵌入式]
51单片机的串行口通信方式
介绍:串行口是单片机与外界进行信息交换的工具。 8051单片机的通信方式有两种: 并行通信:数据的各位同时发送或接收。 串行通信:数据一位一位次序发送或接收。参看下图: 单片机串行通信 并行通信 串行通信的方式: 异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下: 在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。用这种格式表示字符,则字符能一个接一个地传送。 在异步通信中,CPU与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式能由
[单片机]
51<font color='red'>单片机</font>的串行口通信方式
基于51单片机的太阳能草坪灯设计
随着地球资源的日益贫乏,基础能源的投资成本日益攀高,太阳能作为一种取之不尽、用之不竭的安全环保新能源越来越受到重视。随之各类太阳能景观装饰产品也应运而生。太阳能草坪灯也将随着人们生活水平的提高和社会的不断发展,而被广泛地应用。本文就太阳能草坪灯的主要部件设计、选型等技术问题做一个探讨,并介绍一种基于51单片机的新型太阳能草坪灯的设计方案,见图1所示。 图1 太阳能草坪灯 1 太阳能电池的选择 1.1 类型 太能能电池是将太阳能转化为电能,较实用的有单晶硅、多晶硅、非晶硅三种太阳能电池。 ①单晶硅太阳能电池性能参数比较稳定,适合在阴雨天比较多、阳光不是很充足的南方地区使用。 ②多晶硅太阳能电池生产工艺相对简单,价格比单晶硅低,
[单片机]
基于51<font color='red'>单片机</font>的太阳能草坪灯设计
BF51x DSP处理器超越MCU方案
Blackfin和SHARC处理器是ADI两大DSP产品线,目前一些在工控、测试测量的客户正转向超越MCU的DSP解决方案。例如,以太网(IEEE1588和802.3)/无线连接实现易用性,针对高品质测量的简单连接,系统的可编程灵活性,已从8/16向32位解决方案转移(成为一种必需)。ADI提供多种定点和浮点处理器,在功耗、连接、性能与集成度的关键点上都极具优势。由于具备同时作为DSP和MCU进行无缝连接工作的能力,西门子自动抄表信息系统(AMIS)在其“智能电表”中采用了ADI的Blackfin BF51x处理器,实现极具成本效益的计算性能。 图,BF51χ集成512KB闪存、PWM发生器、IEEE1588    据AD
[嵌入式]
BF51x DSP处理器超越<font color='red'>MCU</font>方案
51单片机lcd1602的驱动程序
/* ******************************************** **头文件名:LCD液晶驱动 ** Target : AT89s52 ** Crystal: 11.0952 ********************************************* */ #ifndef _LCD_51_H_ #define _LCD_51_H_ #include DELAY_51.H #include at89x52.h /* ------80s52与LCD连接信息----------------------------------------- ** P1_2 - RS ** P1_3
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved