这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 芯圣HC18M003单片机定时器1的定时模式

共2条 1/1 1 跳转至

芯圣HC18M003单片机定时器1的定时模式

专家
2023-10-04 11:55:03     打赏

HC18M003单片机定时器1是一个16位的计时器,。系统框图如下:

图片1.png图片2.png

图片3.png

数据寄存器T1LT1H

图片4.png

以下是测试程序,使用定时器1PB1口输出矩形波。

#include "holychip_define.h"
 
static int cnt = 0;
 
/***************************************************************************************
  * @实现效果 将T1设置为定时器模式,定时50us后进入中断,PB1翻转
***************************************************************************************/
void main(void) {
    /************************************系统初始化****************************************/
    OSCCON = 0X04;    //Fosc=32MHz,Fcpu=4MHz(Fosc四分频,2T)
    /************************************IO口初始化***************************************/
    ANSELB = 0XFF;  
    TRISB  = 0XFF;   //PB数字输出模式 
    /**************************************T1配置*****************************************/
    T1CS1   = 0;
    T1CS0   = 0;
    T1OSCEN = 0;     //T1时钟源配置Fcpu
    T1CKPS3 = 1;
    T1CKPS2 = 0; 
    T1CKPS1 = 0;
    T1CKPS0 = 0;       //T1输入时钟1分频
    T1ON = 1;
    T1CS1 = 0;
    T1CS0 = 0;
    T1OSCEN = 0;
    T1SYNC = 0;   //定时器模式,休眠和绿色模式下停止
    T1H = 0XFF;
    T1L = 0x37;      //T1初始值
    //定时时间=(1/时钟源*分频系数)*(0xFFFF-初始值)
    //    = 1/4000000*1*200
    //    = 50uS
    /*************************************中断使能****************************************/        
    GIE  = 1; 
    PEIE = 1;
    T1IE = 1;    //使能T1中断
    while(1) {
    }
}
 
/***************************************************************************************
  * @说明   中断服务函数
  * @参数 无
  * @返回值 无
  * @注  无
***************************************************************************************/
void interrupt T1_Isr(void) {
    if(T1IF) {
        T1H = 0XFF;
        T1L = 0x00;        //重置T1
        T1IF = 0;       //清除中断标志位
        cnt=(cnt+1)%10000;
        // 每500mS翻转一次
        if (cnt == 0) {
            PORTB1 =~PORTB1;     //PORTB翻转
        }
    }
}


实际测试完整低电平和高电平的持续时间为700mS,与计算的误差出入有点大。于是去掉500mS计数处理部分,直接测试50微秒周期,实际结果为将近70微秒左右。

微信图片_20231004115259.jpg

出入确实比较大,所以实际应用时,还是需要仔细调整初始值才行。




关键词: 菜鸟学单片机     芯圣     HC18M003     定时器1    

院士
2023-10-04 19:53:41     打赏
2楼

谢谢分享,学习了。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]