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

📄 uart0.c

📁 在NEC78K0513上做的一个232红外互相转换的程序,可以帮助了解NEC芯片的设置和使用
💻 C
字号:
#pragma	interrupt   INTSR0     MD_INTSR0
#pragma	interrupt   INTST0     MD_INTST0



#define UART0_GLOBALS



#include "includes.h"



UART0_EXT void Uart0Init (void)
{
    PM1 &= 0xfe;                                                                /*TX设置为输出*/
    P1  |= 0x01;

    ASIM0 = 0x01;

    ASIM0 = 0x01|(0x03<<3)|(0x01<<2);                                           /*偶校验,8位长度,1停止位*/

    BRGC0 = 16|(0x03<<6);                                                       /*波特率设置为9600*/

    STIF0 = 0;
    STMK0 = 0;
    STPR0 = 0;                                                                  /*允许发送中断,高优先级*/

    SRIF0 = 0;
    SRMK0 = 0;
    SRPR0 = 0;                                                                  /*允许接收中断,高优先级*/

    ASIM0 |= 0x80;
    ASIM0 |= 0x60;                                                              /*开收发*/
}



__interrupt void MD_INTSR0 (void)
{
    INT8U err_type;

    err_type               = ASIS0;
    Buffer[Uart0_RcvCnt++] = RXB0;

    Uart0_RcvFlag          = 1;

    TimeOut                = 2;
    Tm51Open();
}


__interrupt void MD_INTST0 (void)
{
    TXS0 = Buffer[Uart0_SendCnt++];
    if (Uart0_SendCnt == Ir_RcvCnt){                                            /*如果发送完毕*/
        Uart0_SendCnt  = 0;
        Ir_RcvCnt      = 0;
        STMK0 = 1;                                                              /*屏蔽UART0发送中断*/
    }
}

⌨️ 快捷键说明

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