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

📄 serial.h.txt

📁 用单片机实现出租车计价器的源码
💻 TXT
字号:
#include <reg52.h>


//参数配置
#define MCLK        11059200L    //定义CPU主频(Hz)
#define BAUD_RATE    9600L        //设置波特率


//定义发送中断辅助标志(仅用于发送)
static volatile bit _TI_;


//串行口初始化
extern void UartInit()
{
    char t;
    EA = 0;
    RXD = 1;
    TXD = 1;
    _TI_ = 1;
    SCON = 0x50;    //串口方式1
    PCON |= 0x80;    //波特率加倍
    t = TMOD;
    t &= 0x0F;
    t |= 0x20;
    TMOD = t;
    TH1 = 256 - ( MCLK / 12 ) / ( 16 * BAUD_RATE );
    TL1 = TH1;
    TR1 = 1;
    ES = 1;            //允许串行口中断
    EA = 1;            //允许中断
}


//串行口中断服务程序
static void UartINTSVC() interrupt 4
{
    char c;
    if ( RI )    //接收中断
    {
        c = SBUF;
        RI = 0;
        //在这里添加其它代码
    }
    if ( TI )    //发送中断
    {
        TI = 0;
        _TI_ = 1;
    }
}


/*
功能:
    通过串行口发送单个字节
参数:
    c:被发送的字节数据,取值0x00~0xFF
*/
extern void UartSendChar(char c)
{
    while ( !_TI_ );
    _TI_ = 0;
    SBUF = c;
}


/*
功能:
    通过串行口发送字符串
参数:
    *s:被发送的字符串
说明:
    字符串应当以'\0'结尾,而'\0'本身不会被发送出去
*/
extern void UartSendString(char *s)
{
    char c;
    for (;;)
    {
        c = *s;
        if ( c == '\0' ) break;
        s++;
        UartSendChar(c);
    }
}

⌨️ 快捷键说明

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