首页 > 代码库 > 单片机第10课:定时器中断
单片机第10课:定时器中断
JP3接P0口。
#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课:定时器中断
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。