1 / 24
文档名称:

c定时器中断实用PPT学习教案.pptx

格式:pptx   大小:144KB   页数:24页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c定时器中断实用PPT学习教案.pptx

上传人:wz_198613 2021/7/5 文件大小:144 KB

下载得到文件列表

c定时器中断实用PPT学习教案.pptx

相关文档

文档介绍

文档介绍:会计学
1
c定时器中断实用
一、程序设计
#include<>
code unsigned char seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char cp,i; //声明全局变量
void timer0_isr(void) interrupt 1 // timer0中断服务函数
{TR0 = 0; //停止计数
TL0 = 0x11; // TL0重新预置
TH0 = 0xee; // TH0重新预置
TR0 = 0; //开始计数
cp++; // timer0中断1次,变量cp加1
if(cp == 200) //中断200次,时间刚好为1秒
{cp = 0;i ++;}
if(i == 10) i = 0;
P0 = seven_seg[i] // P0输出显示数据
}
第1页/共24页
void timer0_initialize(void) // timer0中断初始化函数
{EA = 0; //设置中断允许寄存器IE中的 EA位,
//关闭中断总开关
TMOD = 0x01; //设置计时器模式控制寄存器,
//Time0工作在定时方式1
TR0 = 0; //设置计时器控制寄存器TCON寄存器
//的TR0位为0,Timer0
//停止计数
TL0 = 0x11;
TH0 = 0xee; // Timer0的16位计数器初始值为
//0xee11,12MHz晶体振
//频率,单片机的机器周期为1微妙,
//Timer0每1微秒加1计数,
//加满溢出变产生中断,
//从计数到中断刚好为5毫秒
PT0 = 1; //设置中断优先次序寄存器IP中的
//PT0位,Timer0中断优先
ET0 = 1; //设置中断允许寄存器IE中ET0的
//位,开启中断小开关
EA = 1; //打开中断总开关
TR0 = 1; //开始计数}
第2页/共24页
void main (void)
{
timer0_initialize()
// timer0初始化,为中断做好准备
while (1); //等待中断
}
第3页/共24页
二、程序说明
,interruput为关键字,1为timer0中断号。,。在使用中断服务函数时,直接在名后加interruput和中断号即可。
第4页/共24页

第5页/共24页
,也可以用来定时,由由TMOD寄存器中 为决定,作为计数器使用时,;作为定时器使用时,接受单片机内部的机器周期脉冲。如果单片机的振荡频率为 ,振荡周期为 ,则机器周期为 。本案例中 MHz,则 微秒,timer0工作在模式1为16为加计数器,当计数器初始值为0xee11时,则从开始计数到产生中断需要的时间为0xffff —0xee11个微秒,刚好为50