單片機(jī)
利用定時器2產(chǎn)生3MHz脈沖,程序如下,但是用示波器測試頻率是600khz,不知什么問題,請高手指教?。?/p>
#include
#define uchar unsigned char
#define uint unsigned int
sbit pwm=P0^6;
sbit en1=P0^0;
sbit en2=P0^1;
void sysclock_init()
{
OSCICN = 0x87;
}
void gpio_init()
{
P1MDIN = 0xB7;
P0MDOUT = 0xFF;
P1SKIP = 0x48;
XBR1 = 0x40;
}
//-----------------------------------------------------------------------------
// 定時器2產(chǎn)生3mkhz的方波
//-----------------------------------------------------------------------------
void C8051F410_Timer2_Init (void)
{
CKCON = 0x10;
TMR2RLL = 0xC3;
TMR2RLH = 0xFF;
TMR2L = 0xC3;
TMR2H = 0xFF;
}
//-----------------------------------------------------------------------------
// 定時器2中斷程序,每次產(chǎn)生方波翻轉(zhuǎn)
//-----------------------------------------------------------------------------
void C8051F410_Timer2_ISR(void) interrupt 5
{
pwm=~pwm; //翻轉(zhuǎn)輸出方波200khz
}
void main()
{
PCA0MD&=0xBF;//關(guān)看門狗
sysclock_init();
gpio_init();
C8051F410_Timer2_Init ();
EA=1;
TR2=1;// //開定時器2
ET2=1;
while(1);
}