STC15定时器设置

您所在的位置:网站首页 怎样设定定时器 STC15定时器设置

STC15定时器设置

2024-02-27 20:04| 来源: 网络整理| 查看: 265

STC15定时器4设置 1. 采用STC-ISP生成定时器打开定时器4中断允许打开总中断开关 要做一个STC15的定时器,产生定时中断,按照STC-ISP软件中的定时器计算器来生成定时器,工作只完成了一半,无法产生定时中断,又是百度又是手册,最终找出教科书,终于使定时中断开始工作,写下来给遇到同样问题的朋友参考。

1. 采用STC-ISP生成定时器

用STC官网提供的STC-ISP下载软件可以做许多事情。其中之一是有定时器计算器的功能。通过定时器计算器,可以选择:

系统时钟定时长度选择定时器定时模式定时器时钟

在这里选择了15系列的定时器4作为定时器,定时器模式只有16位自动重载模式,定时器时钟1T (FOSC)

生成的程序如下:

void Timer4Init(void) //1毫秒@11.0592MHz { T4T3M |= 0x20; //定时器时钟1T模式 T4L = 0xCD; //设置定时初值 T4H = 0xD4; //设置定时初值 T4T3M |= 0x80; //定时器4开始计时 }

有了这个程序后,设置一个中断程序

// Interrupt Routine of timer4 void timer4_ISR (void) interrupt TIMER4_VECTOR { static uint16 ui; static uint16 ccdInt; ui++; ccdInt++; if ( ui > 20 ) { ui = 0; Time0flag_20ms = 1; } if ( ccdInt > 500 ) { ccdInt = 0; P55 = !P55; } }

再在主程序中简单的设置,程序就应该运行了。

main() { Timer4Init(); while(1); }

但下载运行后啥也没有发生,该闪亮的LED不闪亮!

打开定时器4中断允许

通过查看手册,注意到EI2这个寄存器,各位的定义如下:

位B7B6B5B4B3B2B1B0命名–ET4ET3ES4ES3ET2ESPIES2T4中断允许T3中断允许UART4UART3T2中断允许SPIUART2

在头文件中有 #define ET4 0x40

所以,在初始化程序中增加 EI2 |= ET4; IE2 |= ET4; 设置IE2寄存器的B6位为1,定时器4中断允许。这样就可以自动调用中断程序了。错,这里的坑还没有结束。

打开总中断开关

再查找,总中断还没有使能,中断程序还是不能执行。

在主程序中各项初始化完成后,打开总的中断,程序正常工作。主程序中增加EA = 1;指令,中断程序定时打开和关闭指示LED。

终于让定时器开始工作了,希望能给遇到同样问题的朋友有所帮助。

博友说的对,应该是IE2.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3