标题: STC8F2K08S2单片机定时器3能用吗?下载以下程序,LED不闪。 [打印本页]

作者: molo    时间: 2020-12-20 22:43
标题: STC8F2K08S2单片机定时器3能用吗?下载以下程序,LED不闪。
#include "reg51.h"
#include "intrins.h"

//测试工作频率为11.0592MHz

sfr     T3L         =   0xd5;
sfr     T3H         =   0xd4;
sfr     T4T3M       =   0xd1;
sfr     IE2         =   0xaf;
#define ET3             0x20
sfr     AUXINTIF    =   0xef;
#define T3IF            0x02

sbit    P10         =   P1^0;

void TM3_Isr() interrupt 19
{
    P10 = !P10;                                 //测试端口
    AUXINTIF &= ~T3IF;                          //清中断标志
}

void main()
{
    T3L = 0x66;                                 //65536-11.0592M/12/1000
    T3H = 0xfc;
    T4T3M = 0x08;                               //启动定时器
    IE2 = ET3;                                  //使能定时器中断
    EA = 1;

    while (1);
}



作者: wulin    时间: 2020-12-21 06:27
不是不闪,2ms闪烁周期太快,肉眼观察不出来。改为1秒闪烁周期试试。
void TM3_Isr() interrupt 19
{
        static int i;
        i++;
        if(i>=500)
        {
                i=0;
                P10 = !P10;     //测试端口
        }
        AUXINTIF &= ~T3IF;  //清中断标志
}
作者: molo    时间: 2020-12-21 08:24
wulin 发表于 2020-12-21 06:27
不是不闪,2ms闪烁周期太快,肉眼观察不出来。改为1秒闪烁周期试试。
void TM3_Isr() interrupt 19
{

确实是这样,STC的范例程序,以为应该可以,没仔细看,谢谢!
作者: ccw123    时间: 2020-12-21 10:13
不是不闪,2ms闪烁周期太快,肉眼观察不出来。改为1秒闪烁周期试试。 void TM3_Isr() interrupt 19 {         static int i;         i++;         if(i>=500)         {                 i=0;                 P10 = !P10;     //测试端口         }         AUXINTIF &= ~T3IF;  //清中断标志 }
作者: Y_G_G    时间: 2020-12-21 10:54
个人感觉,STC单片机只有T0定时器是必备的,其它的都是要看数据手册的,不然就会掉坑
作者: MOVEORDIE    时间: 2020-12-22 00:03
Y_G_G 发表于 2020-12-21 10:54
个人感觉,STC单片机只有T0定时器是必备的,其它的都是要看数据手册的,不然就会掉坑

确实,有的有两个定时器,但却是T0和T2。。。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1