思路及目标:使用T1定时计数器,设定1毫秒溢出.
在中断服务函数里,用全局变量delay1ms进行累加计数
初始化及TR1在主函数开启的
现在调用初始化及打开TR1=1;后.全局变量delay1ms没有自加.
大家帮忙看看哪里的问题:::
#include "ISR.h"
unsigned int delay1ms=0;
/*--------------------------------------------------------------------------
函数名: Timer1Init()
功 能: 定时/计数器1的初始化
参 数: 无
返回值: 无
--------------------------------------------------------------------------*/
void Timer1Init(void)
{
TMOD=0x50;
TH1=0xfc;
TL1=0x18;
TF1=0;
ET1=1;
EA=1;
}
/*******************************************************************************
* 函数名 :
* 函数功能 :中断服务函数
* 输入 :接受数据中断
* 输出 :
中断说明: 1,中断服务函数一定是一个没有返回值的函数
2,中断服务函数一定是没有参数的函数
3,中断服务函数函数名后跟关键字 interrupt
4,interrupt n (0-4)共5个中断源
5,中断服务函数不能被主程序或其他程序所调用
6,n 后面跟 using m (0-3)工作寄存器组
*******************************************************************************/
void Timer1_ISR() interrupt 3
{
TF1=0;
delay1ms++;
TH1=0xfc;
TL1=0x18;
}
|