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

📄 usbuart0.c

📁 性价比突出的C8051F350单片机各种例子程序
💻 C
字号:
//使用F350,串口为P0.4,P0.5;

//-----------------------------------------------------------------------------
// 所包含的头文件
//------------------------------------------------------------------------

#include <c8051f350.h>                 
#include <stdio.h>

//-----------------------------------------------------------------------------
// 常量定义
//-----------------------------------------------------------------------------

#define SYSCLK          24500000             // 系统工作频率
#define BAUDRATE        9600               // 串口工作波特率

 
//-----------------------------------------------------------------------------
// F35x’定时器2的16位SFR
//-----------------------------------------------------------------------------

sfr16 TMR2RL   = 0xca;                 
sfr16 TMR2     = 0xcc;                 

//-----------------------------------------------------------------------------

// 功能函数
//-----------------------------------------------------------------------------

void SYSCLK_Init (void);
void PORT_Init (void);
void UART0_Init (void);
void UART0_ISR (void);

bit ReceiveBit;
unsigned char temp;
/*延时程序*/
void delay(unsigned int m)
{
unsigned int n;
n=0;
while(n<m)
{n++;}
return;
}
//-----------------------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------------------

 void main (void) {

   unsigned char i;

   PCA0MD &= ~0x40;                    // 禁止看门狗
   ReceiveBit=0;                                    
   PORT_Init();                        // 初始化端口I/O
   
   SYSCLK_Init ();                     //  初始化系统时钟
   
  
   
   UART0_Init();                      //  串口初始化
   EA=1; 
   ES0=1;
   while(1)
   {
   while(ReceiveBit==1)
   {
   ES0=0;
   EA=0;
   ReceiveBit=0;
  delay(60000);
   delay(60000);
   delay(60000);
   SBUF0=temp;
   while(TI0==0);
   TI0=0;
   delay(60000);
   delay(60000);
   delay(60000);
   ES0=1;
   EA=1;
   }
   }                   
 
}

  

//-----------------------------------------------------------------------------
// 端口初始化
//-----------------------------------------------------------------------------
//
// Configure the Crossbar and GPIO ports.
//
// P0.4 - UART TX
// P0.5 - UART RX


void PORT_Init (void)
{
   P0SKIP  |= 0x01;                    
   P0MDIN  |= 0x01;                    // 配置P0.0为模拟出入
   P0MDOUT |= 0x10;                    // 使能 UTX 为推挽输出
   P1MDOUT |= 0x08;                    // 使能 LED 为推挽输出
   XBR0    = 0x01;                     // 使能 UART on P0.4(TX) and P0.5
   XBR1    = 0x40;                  
}
//-----------------------------------------------------------------------------
// 系统时钟初始化
//-----------------------------------------------------------------------------


void SYSCLK_Init (void)
{
   OSCICN |= 0x03;                     // 配置内部振荡器的的最大频率
                                        
   RSTSRC  = 0x04;                     // 使能始终丢失检测寄存器

}

//-----------------------------------------------------------------------------
// 串口初始化
//-----------------------------------------------------------------------------


void UART0_Init (void)
{
   SCON0 = 0x10;                       
   CKCON = 0x80;                      
   TMOD =  0x20;  
   TH1=0X96; 
   TR1 = 1;                            
                               
}
//-----------------------------------------------------------------------------
// 时钟2中断
//-----------------------------------------------------------------------------


void UART0_ISR (void) interrupt 4
{if(!TI0)
    {
	RI0=0;
	temp=SBUF0;
	ReceiveBit=1;
	}
	TI0=0;

}

⌨️ 快捷键说明

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