#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;
}
}
}
求大神帮忙看看,这个程序的问题,想实现频率可变的方波
回复 沙发 xu__changhua 的帖子
去掉了while(1)这一行,可是还没有实现我需要的功能,麻烦您帮忙看一下,看看怎么修改比较好!!谢谢
回复 板凳 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);
}
回复 4楼 xu__changhua 的帖子
谢谢您的帮助,非常感谢