?? cygnalcon.c
字號:
#include <C8051F020.h> // Register definition file.
void SYSCLK_Init()
{
unsigned int i;
OSCXCN=0X67; //0X67=0110,0111
for(i=0;i<256;i++); //等待>1ms
while(!(OSCXCN&0X80)); //等待XTLVLD變為1
OSCICN=0X88; //時鐘失效監測器,選擇外部時鐘源作為系統時鐘
}
void PORT_Init()
{
XBR0 = 0x14;
XBR1=0x0E;
XBR2=0X40;
// P0MDOUT=0X03;
P0MDOUT |= 0xeb;
P1MDOUT=0Xff;
}
void UART0_Init()
{
SCON0=0x50; //0101,0000 方式一
TMOD=0X20; //0010,0000
//TH1=0xF4;
// TL1=0xF4;
// ES0=1; //開啟串口中斷0
// TF1=0;
// TR1=1; //定時器啟動
PCON=0X00;
TI0=1;
RCLK0=1;
TCLK0=1;
RCAP2H =0xff;
RCAP2L=0X70;
TH2=0xff;
TL2=0X70;
TR2=1;
// TR0=1;
}
void config(void)
{
//int i; // delay counter
WDTCN = 0x07; // Watchdog Timer Control Register
WDTCN = 0xde; // disable watchdog timer
WDTCN = 0xad;
SYSCLK_Init();
PORT_Init();
UART0_Init();
/* OSCXCN = 0x67; // start external oscillator with
// 22.1184MHz crystal
for (i=0; i < 256; i++) ; // XTLVLD blanking interval (>1ms)
while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
OSCICN = 0x88; */ // select external oscillator as SYSCLK
// source and enable missing clock
// detector
XBR2 = 0x40; // Enable crossbar and weak pull-up
P0MDOUT |= 0xFF; // enable TX0 as a push-pull output
P1MDOUT |= 0xFF; // enable P1.6 (LED) as push-pull output
P2MDOUT |= 0xFF;
P3MDOUT |= 0xFF;
CKCON = 0x00; // Clock Control Register
TH0 = 0x70; // Timer 0 High Byte
TL0 = 0x00; // Timer 0 Low Byte
TMOD = 0x01; // Timer Mode Register
TCON = 0x10; // Timer Control Register
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -