跪求大牛解答一道题,采用C8051F020单片机,T0定时,时钟频率选择为2MHz,编程使P1.0输出周期为2ms的方波。

如题所述

第1个回答  2012-01-04
#include "C8051F020.h"
void Reset_Sources_Init()
{
WDTCN = 0xDE;
WDTCN = 0xAD;
}

void Timer_Init()
{
CKCON = 0x08;
TCON = 0x10;
TMOD = 0x01;
TL0 = 0x30;
TH0 = 0xF8;
}

void Port_IO_Init()
{
P1MDOUT = 0x01;
XBR2 = 0x40;
}

void Interrupts_Init()
{
IE = 0x82;
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
Reset_Sources_Init();
Timer_Init();
Port_IO_Init();
Interrupts_Init();
}

sbit square = P1^0;

void main(void)
{
Init_Device();

while(1);
}

void timer0_isr(void) interrupt 1
{
TL0 = 0x30;
TH0 = 0xF8;
square = ~square;
}

已经验证。
第2个回答  2011-12-31
ORG 0000H
MOV TMOD,#01H
SETB TR0
LOOP:
MOV TH0,#0F9H
MOV TL0,#7CH
LOOP1:
JNB TF0,LOOP1
CLR TF0
CPL P1.0
SJMP LOOP
END本回答被网友采纳