微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于1T单片机中的PWM如何用T0溢出设置频率的问题

关于1T单片机中的PWM如何用T0溢出设置频率的问题

时间:10-02 整理:3721RD 点击:
一直在这里没有搞明白,关于PWM调制STC的手册前前后后看了很多遍,有那位大神可以解释下。1)T0溢出设置频率是不是设置下CMOD=0x04 然后就是打开T0的16位重载后就结束了。还是需要在T0中断函数中设置什么吗?
2)假如打开T0的16位重载后就可以了之后,那么T0中断还可以用吗?两者相互影响吗?是先载入CCPnH的数据还是先执行T0中断函数?


使用定时器分中断法和查询法,如果使用查询法就是查询溢出标志TF0是否为1,如果为1说明定时时间到,即执行相关任务,但一定要软件清0。举例:
//输出周期1ms方波
#include <STC15F2K60S2.H>
sbit OUT = P1^0;
//初始化定时器
void Timer0Init(void)                //500微秒@11.0592MHz
{
        AUXR |= 0x80;                //定时器时钟1T模式
        TMOD &= 0xF0;                //设置定时器16位重载模式
        TL0 = 0x66;                        //设置定时初值
        TH0 = 0xEA;                        //设置定时初值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
}
//主函数
void main(void)
{
        Timer0Init();                //初始化定时器
        while(1)
        {
                if(TF0==1)                //查询定时器0溢出标志为1
                {
                        OUT=~OUT;   //OUT取反       
                        TF0=0;                //定时器0溢出标志清0
                }
        }
}

頂頂頂頂頂頂頂,謝謝分享,你的資料很好,有機會交流

这位仁兄,我是问STC15单片机中PWM设置成T0溢出模式的问题,不是我如何通过T0溢出中断或者查询TF使某个脚输出方波。我是疑问设置成T0溢出模式后是否还需要中断,还是说PCA计时器的速度根据T0的溢出速度来加快或者加慢使整个CL在到达T0溢出时刚好为FF?哪样的话,我就可以不用去管这个T0了,T0中断也和PWM没有任何关系,因为T0中断通过软件执行指令,而CL置0是由硬件直接操作。2者应该可以同时进行。我去,我觉得我理解的很有道理啊。

有大神来指点一下吗

同求

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top