930电子网

 找回密码
 立即注册
艾克姆科技推出最新产品STC32G12K128开发板
查看: 8477|回复: 0

STC15W4K32S4系列定时器之程序设计1

[复制链接]

101

主题

333

帖子

7428

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7428
发表于 2019-7-9 08:53:53 | 显示全部楼层 |阅读模式
    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的初始化程序配置和中断服务函数设计在下一贴介绍。














回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|官方淘宝店|930电子网 ( 皖ICP备16000695号-2 )

Copyright © 合肥艾克姆电子科技有限公司
快速回复 返回顶部 返回列表