cygnalcon.c
来自「c8051f020单片机的例程」· C语言 代码 · 共 87 行
C
87 行
#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 + =
减小字号Ctrl + -
显示快捷键?