|
1、STC15W4K32S4系列MCU定时器/计数器0初始化程序配置和中断服务函数设计。
- uint16 cnt = 0;
- /***********************************************************
- 功能描述:定时器0初始化
- 入口参数:无
- 返回值:无
- ************************************************************/
- void Timer0Init(void)
- {
- AUXR |= 0x80; //定时器0为1T模式
- TMOD &= 0xF8; //定时器0设置为定时方式,工作模式为16位自动重装模式
- TMOD &= 0xF7; //定时器0门控位GATE设置为0
- TL0 = 0x00; //1T模式下初始装载值
- TH0 = 0x28; //1T模式下初始装载值
- TF0 = 0; //清除T0中断溢出标志位
- ET0 = 1; //使能定时器0的溢出中断允许位
- TR0 = 1; //定时器0开始计时
- }
- /***********************************************************
- 功能描述:定时器0中断服务程序
- 入口参数:无
- 返回值:无
- ************************************************************/
- void timer0_int (void) interrupt TIMER0_VECTOR
- {
- cnt++; //5ms进入1次中断
- if(cnt == 400) //200次中断被响应后,正好1000ms
- {
- led_toggle(LED_1); //翻转蓝色指示灯DS1
- cnt = 0;
- }
- //进入中断时会将定时器中断溢出标志位硬件清零,因此下面一句可以不加的
- TF0 = 0; //清除T0中断溢出标志位
- }
2、STC15W4K32S4系列MCU定时器/计数器1初始化程序配置和中断服务函数设计。
- uint16 cnt = 0;
- /***********************************************************
- 功能描述:定时器1初始化
- 入口参数:无
- 返回值:无
- ************************************************************/
- void Timer1Init(void)
- {
- AUXR |= 0x40; //定时器1为1T模式
- TMOD &= 0x8F; //定时器1设置为定时方式,工作模式为16位自动重装模式
- TMOD &= 0x7F; //定时器1门控位GATE设置为0
- TL1 = 0x00; //1T模式下初始装载值
- TH1 = 0x28; //1T模式下初始装载值
- TF1 = 0; //清除T1中断溢出标志位
- ET1 = 1; //使能定时器1的溢出中断允许位
- TR1 = 1; //定时器1开始计时
- }
- /***********************************************************
- 功能描述:定时器1中断服务程序
- 入口参数:无
- 返回值:无
- ************************************************************/
- void timer1_int (void) interrupt TIMER1_VECTOR
- {
- cnt++; //5ms进入1次中断
- if(cnt == 100) //200次中断被响应后,正好1000ms
- {
- led_toggle(LED_1); //翻转蓝色指示灯DS1
- cnt = 0;
- }
- //进入中断时会将定时器中断溢出标志位硬件清零,因此下面一句可以不加的
- TF1 = 0; //清除T1中断溢出标志位
- }
3、STC15W4K32S4系列MCU定时器/计数器2、定时器/计数器3和定时器/计数器4的初始化程序配置和中断服务函数设计在下一贴介绍。
|
|