?? c8051fxxx初始化.txt
字號:
#i nclude "C8051F020.h"
#i nclude "stdio.h"
#define SYSCLK 11059000
#define BAUDRATE 9600
/*************************************************************/
#define WDTDISABLE {WDTCN=0xDE;WDTCN=0xAD;}
/************************************************************/
/************************************************************/
void DELAY(void)
{
int i,j;
for(i=255;i>=0;i--)
for(j=255;j>=0;j--);
}
/*************************************************************/
void SYSCLK_Init (void)
{
int i;
OSCXCN=0x67;
for(i=255;i>=0;i--);
while (!(OSCXCN & 0x80)) ; //11.059m hz
OSCICN=0x88;
}
void UART0_Init (void)
{
SCON0 = 0x50; // SCON0: mode 1, 8-bit UART, enable RX
TMOD = 0x20; // TMOD: timer 1, mode 2, 8-bit reload
TH1 = -(SYSCLK/BAUDRATE/16); // set Timer1 reload value for baudrate
TL1 = -(SYSCLK/BAUDRATE/16); // set Timer1 reload value for baudrate
TR1 = 1; // start Timer1
CKCON |= 0x10; // Timer1 uses SYSCLK as time base
PCON |= 0x80; // SMOD00 = 1
TI0 = 1; // Indicate TX0 ready
}
void init_port() //初始化端口
{
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
P3MDOUT=0xff; //pull-push MODE
P2MDOUT=0x00; //open-drain MODE
P1MDOUT=0xff; //pull-push MODE
}
void main(void) //initial micro controller
{
unsigned char i;
WDTDISABLE;
SYSCLK_Init();
XBR0 = 0x04; // XBAR0: Initial Reset Value
XBR1 = 0x04; // XBAR1: Initial Reset Value
XBR2 = 0x40; // XBAR2: Initial Reset Value
init_port();
UART0_Init ();
P2MDOUT=0x00;
P2=0xff; //接受數字輸入
while(1)
{
for(i=0xff;i>0;i--)
{
P2MDOUT=0x00;
P2=0xff;
P1=i;
printf("Now P2=%x\n",P2);
DELAY();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -