浅夏星空 发表于 2025-3-3 11:55:26

第十七集串口的简单应用
#include "usart.h"
#include "io.h"


u8 Rec_Dat;   
u8 Rec_Num = 0;

void Uart2_Isr(void) interrupt 8
{
      if (S2CON & 0x02)      
      {
                S2CON &= ~0x02;      
      }
      if (S2CON & 0x01)      
      {
                S2CON &= ~0x01;      
                Rec_Dat = S2BUF;
      }
}


void Uart2_Init(void)      //9600bps@24.000MHz
{
      P_SW2 |= 0x01;                                                //UART2/USART2: RxD2(P4.6), TxD2(P4.7)
      
      S2CON = 0x50;               
      AUXR |= 0x04;               
      T2L = 0x8F;                        
      T2H = 0xFD;                        
      AUXR |= 0x10;               
      IE2 |= 0x01;               
      
      Rec_Num = 0;
}

void Usart2_RunTask(void)
{
      if( Rec_Num >=6 )
      {
                if(( Rec_Dat == '\n' )&&( Rec_Dat == '\r' ))
                {
                        if( ( Rec_Dat == 'O' )&&( Rec_Dat == 'P' )&&( Rec_Dat == 'E' )&&( Rec_Dat == 'N' ) )
                        {
                                        passward = 16;
                                        passward = 16;
                                        passward = 16;
                                        passward = 16;
                        }
                        else if( ( Rec_Dat == 'C' )&&( Rec_Dat == 'L' )&&( Rec_Dat == 'O' )&&( Rec_Dat == 'S' )&&( Rec_Dat == 'E' ) )
                        {
                                        passward = 17;
                                        passward = 17;
                                        passward = 17;
                                        passward = 17;
                        }
                        Rec_Num = 0;
                }
      }





页: 1 2 [3]
查看完整版本: 《8051U深度入门到32位51大型实战教学视频》学习心路历程