标题: 新手学到51单片机定时器:写一个定时器1计时1秒,让P2口灯以不同频率闪烁 [打印本页]

作者: changhz    时间: 2023-3-25 17:09
标题: 新手学到51单片机定时器:写一个定时器1计时1秒,让P2口灯以不同频率闪烁
新手学到51单片机定时器:写一个定时器1计时1秒,让P2口灯以不同频率闪烁,各位前辈看到多指教下:
#include<reg51.h>
typedef unsigned char u8;
typedef unsigned int  u16;
u8 a,b;
sbit led0 = P2^0;
sbit led1 = P2^1;
sbit led2 = P2^2;
sbit led3 = P2^3;

void time0_init(void)
{
   TMOD = 0x01;   
   TH0  = 0x4b;
   TL0  = 0xfc;
   TR0  = 1;
}

void time(void)
{           
        if(TF0 == 1)
                {               
                     TH0  = 0x4b;
                     TL0  = 0xfc;
                     TF0  = 0;
                      a++;                        
                }
               
       if(a == 20)
            {
                   a = 0;
                   b++;                        
            }           
}

void d0(void)
{      
        led0 = b % 2;
        led1 = ~led0;
        led3 = b % 4;
      //led3 = b % 60;         
}

void main()
{        
        time0_init();
        while(1)
        {   
                 time();
                d0();                                
        }         
}



作者: 飞云居士    时间: 2023-3-28 11:39
main()函数里死循环内d0()一句,改为:if a==0 d0();
作者: 大漠孤烟001    时间: 2023-3-29 19:02
建议用T2是24位定时器的8051,STC8H8K64U, USB直接仿真,定时1S只需要中断1次

作者: changhz    时间: 2023-3-31 10:43
飞云居士 发表于 2023-3-28 11:39
main()函数里死循环内d0()一句,改为:if a==0 d0();

谢谢!
作者: changhz    时间: 2023-3-31 10:46
大漠孤烟001 发表于 2023-3-29 19:02
建议用T2是24位定时器的8051,STC8H8K64U, USB直接仿真,定时1S只需要中断1次

那单片机效率就高了。
作者: changhz    时间: 2023-3-31 11:01
大漠孤烟001 发表于 2023-3-29 19:02
建议用T2是24位定时器的8051,STC8H8K64U, USB直接仿真,定时1S只需要中断1次

谢谢前辈介绍,STC8H8K64U这款单片机确实不错,作为我的下一目标。




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