⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initial.c

📁 采用430单片机完成的门禁控制器程序
💻 C
字号:
//------------------------------------------------------------------------------
// 系统初始化程序
//------------------------------------------------------------------------------
void Initclock()
{
  uchar i;
  BCSCTL1 |= XTS;                           // ACLK= LFXT1 = HF XTAL
  do
  {
  IFG1 &= ~OFIFG;                           // Clear OSCFault flag
  for (i = 0xFF; i > 0; i--);               // Time for flag to set
  }
  while ((IFG1 & OFIFG));                   // OSCFault flag still set?

  BCSCTL2 |= SELM_3;                        // MCLK= LFXT1 (safe)
}
//------------------------------------------------------------------------------
// 设置IO口
//------------------------------------------------------------------------------ 
void InitIO()
{
   P1OUT |=0xFF;
   P1DIR |=0x00;
   P1SEL |=0x00;
   P1IE  |=0x00;
   P2OUT |=0xFF;
   P2DIR |=0x00;
   P2SEL |=0x00;
   P2IE  |=0x00;
   P3OUT |=0xFF;
   P3SEL |=0xF0;
   P3DIR |=0x5F;
   P4OUT |=0xFF;
   P4DIR |=0xFF;
   P4SEL |=0x00;
   P4OUT |=0xFF;
   P5SEL |=0x00;
   P5DIR |=0xFF;
   P5OUT |=0xFF;
   P6SEL |=0x00;
   P6DIR |=0XFF;
   P6OUT |=0X7D;
   P6OUT &=~BUZ;
   P6OUT &=~CE;
}
//------------------------------------------------------------------------------
//设置TA初始值
//------------------------------------------------------------------------------
void InitTA()
{
  TACCTL0 = CCIE;                         // CCR0 toggle mode
  CCR0 = 8000;
  TACTL = TASSEL_1 + MC_1;                  // ACLK, in upmode
}
//------------------------------------------------------------------------------
// 设置UART
//------------------------------------------------------------------------------ 
void InitUART()
{
//------------------------------------------------------------------------------
// 设置UARTO
//------------------------------------------------------------------------------   
   ME1 |= UTXE0 + URXE0;                     // Enable USART0 TXD/RXD
   UCTL0 |= CHAR;                            // 8-bit character
   UCTL0 &= ~SWRST;
   UTCTL0 |= SSEL0;                    // UCLK = ACLK
   UBR00 = 0x41;                             // 32k/9600 - 3.41
   UBR10 = 0x03;                             //
   UMCTL0 =0x00;                      // Initialize USART state machine  
   IE1 |= URXIE0;                            // Enable USART0 RX interrupt
//------------------------------------------------------------------------------
// 设置UART1
//------------------------------------------------------------------------------  
   ME2 |= UTXE1 + URXE1;                     // Enable USART0 TXD/RXD
   U1CTL |= CHAR;                            // 8-bit character
   U1CTL &= ~SWRST;
   UTCTL1 |= SSEL0;                    // UCLK = ACLK
   U1BR0 = 0x41;                             // 32k/9600 - 3.41
   U1BR1 = 0x03;                             //
   U1MCTL =0x00;                      // Initialize USART state machine  
   IE2 |= URXIE1;                            // Enable USART0 RX interrupt
}
//------------------------------------------------------------------------------
// 初始化RAM值
//------------------------------------------------------------------------------ 
void InitRAM()
{
  buzzer_cnt =0;
  clk_10ms   = 2;
  clk_20ms   = 4;
  clk_50ms   = 6;
  clk_100ms  = 8;
  clk_200ms  = 200;
  clk_1min   = 300;
  FLAG       = 0;
  FLAG1      = 0;
  FLAG1     |= gb_flashr;
  buzzer_cycle =1;
  card_cnt   =0;  
  SAVEP     = 0;
  MAXLEN    = 20000;
  delay_cnt = 50;
}

⌨️ 快捷键说明

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