#include<c8051f120.h>
#define systemclock 11059200
#define baudrate 9600
sbit P0_6=P0^6;
sbit P2_3=P2^3;
void OSCILLATOR_init()
{
int i;
char SFRPAGE_SAVE=SFRPAGE;
SFRPAGE=CONFIG_PAGE;
OSCICN=0x83;
OSCXCN=0x67;
for (i = 0; i < 256; i++);
while (!(OSCXCN & 0x80));
SFRPAGE=LEGACY_PAGE;
FLSCL|=0x30;
if(systemclock<=25000000)
{
FLSCL&=~0x30;
}
else if(systemclock<=50000000)
{
FLSCL&=~0x20;
}
else if(systemclock<=75000000)
{
FLSCL&=~0x10;
}
else
{
FLSCL&=~0x00;
}
SFRPAGE = CONFIG_PAGE;
CLKSEL=0x01;
SFRPAGE = SFRPAGE_SAVE;
}
void port_init()
{
char SFRPAGE_SAVE=SFRPAGE;
SFRPAGE=CONFIG_PAGE;
XBR0=0x04;
XBR1=0x00;
XBR2=0x44;
P0MDOUT=0xf5;
P1MDOUT=0xff;
P2MDOUT=0xff;
P3MDOUT=0xff;
SFRPAGE = SFRPAGE_SAVE;
}
void uart1_init()
{
char SFRPAGE_SAVE=SFRPAGE;
SFRPAGE=
tiMER01_PAGE;
TCON=0x40;
TMOD=0x20;
CKCON=0x10;
TR1=1;
SFRPAGE=SFRPAGE_SAVE;
SFRPAGE=UART1_PAGE;
SCON1=0x00;
TI1=0;
TH1=256-(systemclock/(2*baudrate));
TL1=TH1;
SFRPAGE = SFRPAGE_SAVE;
}
void senddata(unsigned char i)
{
//P0_6=0;
SBUF1=i;
while(TI1==0);
TI1=0;
}
void main()
{
char SFRPAGE_SAVE = SFRPAGE;
SFRPAGE = CONFIG_PAGE;
WDTCN=0xde;
WDTCN=0xad;
OSCILLATOR_init();
port_init();
uart1_init();
EA=1;
SFRPAGE = SFRPAGE_SAVE;
while(1)
{
int t,x;
SFRPAGE = UART1_PAGE;
senddata(0x55);
for(t=0;t<300;t++)
for(x=0;x<400;x++);
SFRPAGE = SFRPAGE_SAVE;
}
}
一周热门 更多>