text1930.#1

来自「得用c8051f930按键点亮相应的LED。」· #1 代码 · 共 60 行

#1
60
字号
#include<C8051F930_defs.h>

void delay(unsigned char i);
void SYSCLK_Init (void);
void PORT_Init (void);
sbit LED = P1^6;

void main(void)
{
//unsigned char a,b;

P1MDOUT |= 0xff;
//P0DRV=0x0f;                          // enable P1.6 (LED) as push-pull output
VDM0CN = 0xde;                       // disable watchdog timer
VDM0CN = 0xad;
SYSCLK_Init ();                     // initialize oscillator
PORT_Init ();                       // initialize crossbar and GPIO
//SFR_PCA0CN =0x00;
//PCA0CPH4=0x00;
//WDTON=0x00;
  while(1){
  P1=0xff;
  delay(1000);
  P1=0x00;
  }
}

void delay(unsigned char i)
{
 unsigned char j;
 while(i--)
 {
  for(j=125;j>0;j--); 
 }
}

void SYSCLK_Init (void)
{
   int i;                              // delay counter

   OSCXCN = 0x67;                      // start external oscillator with
                                       // 18.432MHz crystal

   for (i=0; i < 256; i++) ;           // Wait for crystal osc. to start

   while (!(OSCXCN & 0x80)) ;          // Wait for crystal osc. to settle

   OSCICN = 0x88;                      // select external oscillator as SYSCLK
                                       // source and enable missing clock
                                       // detector
}

void PORT_Init (void)
{
   XBR0    = 0x04;                     // Enable UART0
   XBR1    = 0x40;
   XBR2    = 0x40;                     // Enable crossbar and weak pull-ups
   P0MDOUT |= 0x01;                     // enable TX0 as a push-pull output
   P1MDOUT |= 0x40;                     // enable P1.6 (LED) as push-pull output
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?