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

📄 uartmanage.c

📁 串口通讯程序
💻 C
字号:

#include "includes.h"
bit  KeyFlag0;
bit  KeyFlag1;
/*============================================================
*
* 函 数 名:UART_Init
*
* 参  数:
*
* 功能描述:UART端口初始化
*
*
* 返 回 值:
*
* 抛出异常:
*
============================================================*/
void UART_Init (void)
{
   /* SCON0 = 0x10;                       // SCON0: 8-bit variable bit rate
                                       //        level of STOP bit is ignored
                                       //        RX enabled
                                       //        clear RI0 and TI0 bits
    if (SYSCLK/BAUDRATE/2/256 < 1) {
       TH1 = -(SYSCLK/BAUDRATE/2);
       CKCON &= ~0x0B;                  // T1M = 1; SCA1:0 = xx
       CKCON |=  0x08;
    } else if (SYSCLK/BAUDRATE/2/256 < 4) {
       TH1 = -(SYSCLK/BAUDRATE/2/4);
       CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 01                  
       CKCON |=  0x09;
    } else if (SYSCLK/BAUDRATE/2/256 < 12) {
       TH1 = -(SYSCLK/BAUDRATE/2/12);
       CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 00
    } else {
       TH1 = -(SYSCLK/BAUDRATE/2/48);
       CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 10
       CKCON |=  0x02;
    }	   

    TL1 = TH1;                         
    TMOD &= ~0xf0;                      // TMOD: timer 1 in 8-bit autoreload
    TMOD |=  0x20;       
    TI0    = 0;
	RI0    = 0;            
    TR1 = 1;                            // START Timer1
    TI0 = 1;                            // Indicate TX0 ready */
	SCON0 =  0x10;    
    CKCON &= ~0x0B;                  // T1M = 0;定时器 1 使用由分频位(SCA1-SAC0)定义的时钟  //SCA1:0 = 10 系统时钟/48
    CKCON |=  0x02;                                   
    TMOD  |=  0x20;  
	TH1 = -(SYSCLK/BAUDRATE/2/48);
	TL1 = TH1;
    TR1   =  1;    
} 
/*============================================================
*
* 函 数 名

⌨️ 快捷键说明

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