[求助] 怎样写频率可变的方波程序啊,STC89C52

sherry32   2012-9-22 13:44 楼主
#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit OUT=P2^3;    //定义OUT输出端口
sbit KEY=P1^2;
void Init_Timer0(void)
{
TMOD |= 0x01;          //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响                     
EA=1;            //总中断打开
ET0=1;           //定时器中断打开
TR0=1;           //定时器开关打开
}
main()
{
Init_Timer0();
KEY=0;
while(1);
}
void Timer0_isr(void) interrupt 1 using 1
{
        while(1)
        {
            if(KEY=1)
                 {TH0=0x03;                 
                 TL0=0xEB;      
              OUT=~OUT;        
                }
                else
                {
                        TH0=0xFF;
                        TL0=0xF6;
                        OUT=~OUT;
                }
        }
}

求大神帮忙看看,这个程序的问题,想实现频率可变的方波

回复评论 (4)

中断服务程序里while(1)这一行删掉即可。
点赞  2012-9-22 22:30

回复 沙发 xu__changhua 的帖子

去掉了while(1)这一行,可是还没有实现我需要的功能,麻烦您帮忙看一下,看看怎么修改比较好!!谢谢
点赞  2012-9-23 09:36

回复 板凳 sherry32 的帖子

//采用STC89C52RD即标准52的T2产生clk,改变RCAP2的值,就可改变输出频率,数值越大频率越高,从P1.0输出
//在头文件中定义一下sfr T2MOD和bit  C_T2,自己查资料T2MOD和C_T2对应的地址
main()
{
   RCAP2H=0xFF;
   RCAP2L=0XFB;
   T2MOD=0x02;
   C_T2=0;
   TR2=1;
   while(1);
}
点赞  2012-9-23 10:17

回复 4楼 xu__changhua 的帖子

谢谢您的帮助,非常感谢
点赞  2012-9-23 10:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复