码迷,mamicode.com
首页 > 其他好文 > 详细

单片机第10课:定时器中断

时间:2014-10-18 15:36:32      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:单片机   定时器   定时器使用步骤   定时器使用方法   

JP3接P0口。

bubuko.com,布布扣

#include<reg51.h>
#define uchar unsigned char
uchar flag,num;
uchar code smg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//声明子函数
void init();
void initTimer0();

void main()
{
	init();
	initTimer0();
	while(1)
	{
		//一句代码都没有
	}
}

void timer0() interrupt 1
{
	//重新装初值,因为要循环定时,定时50毫秒
	TH0 = (65536-50000)/256;
	TL0 = (65536-50000)%256;
	flag++;
	if(flag == 20)
	{
		//每隔一秒数值加1
		flag = 0;
		P0 = smg[num];
		num++;
		if(num == 10)
		{
		   	num = 0;
		}

	}

}

void initTimer0()
{
	//装初值,定时50毫秒
	TH0 = (65536-50000)/256;
	TL0 = (65536-50000)%256;
	//选择定时器T0方式1
	TMOD = 0x01;
	//开中断允许位
	ET0 = 1;
	//开CPU总中断
	EA = 1;
	//启动定时器
	TR0 = 1;
}

void init()
{
	flag = 0;
	num = 0;

}
两个定时器的使用方式相同,现在就总结一下定时器的使用步骤:

1、装初值

2、确定工作方式,相关的寄存器是TMOD

3、开中断允许ET0或者ET1,,和EA

4、启动定时器

5、写中断服务程序

void 函数名() interrupt 1(如果选择定时器1,代号就是3)

{

//重新装初值

}

单片机第10课:定时器中断

标签:单片机   定时器   定时器使用步骤   定时器使用方法   

原文地址:http://blog.csdn.net/kotei_88_luluc_66/article/details/40210947

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!