[范例教程]

笙泉【8051 1T】MA82G5D16 UART

[复制链接]
1164|1
手机看帖
扫描二维码
随时随地手机跟帖
KobeLai|  楼主 | 2019-1-22 16:53 | 显示全部楼层 |阅读模式
本帖最后由 KobeLai 于 2019-1-22 17:01 编辑

MA82G5D16 之串口配置:

一:串口模式设置。

二:串口时钟源/波特率设置。

三:TX/RX的端口模式使用准双向。




#define                uCHAR        unsigned char
#define                uINT        unsigned int

#include "REG_MA82G5Dxx.H"
#include "SFR_Macro_MA82G5D16.H"
#include "delay.H"
#include "TYPE.H"


uCHAR flag_Tx0_Busy;



void INT_UART0(void) interrupt 4
{

        if(RI0){
//                RI0 = 0;
                ClrRI0();
               
        }else if(TI0)
        {
//                TI0 = 0;
                ClrTI0();

                if(flag_Tx0_Busy == 1)
                        flag_Tx0_Busy = 0;
        }
}


void Initial_UART0(void)
{
        //SMOD = 1
//        PCON0=PCON0|0x80;
                SetSMOD1();
        
    //串口模式为1: 10位可变波特率,使能接收
    S0CON=0x50;
        
    //串口时钟来源为定时器1
//        T2MOD1=T2MOD1&(~TL2IS);                 // 选择访问TCLK/RCLK
                ClrTL2IS();
        
//        TCLK_TL2IE=0;
                ClrTCLKTL2IE();
        
//        RCLK_TF2L=0;
                ClrRCLKTF2L();
        
        S0CFG=0x08;
    //T0:1: 16位定时器 T1: 2: 8位自动重载定时器
    TMOD = 0x21;
//        AUXR2=AUXR2|T1X12;                 // T1为1T 模式
                SetT1X12();
               
        //串口波特率为9600@11.0592MHz 1T
        TH1=0xB8;                        
        //使能定时器1
//        TR1=1;
                SetTR1();
               
}

void UART0_Send_Byte(uCHAR dta)
{
        S0BUF = dta;
        flag_Tx0_Busy = 1;
        while(flag_Tx0_Busy);
}

void main(void)
{   
        
//        CKCON0 |= AFS;                                                //MCU Run 11.0592MHz,
                SetAFS();

        delay_ms(3);
        Initial_UART0();
//        ES0 = 1;
                SetES0();
        
//        EA = 1;
                SetEA();
        
        UART0_Send_Byte(0xAA);
        while(1);
}



MA82G5D16支持笙泉的OCD ICE,可以在Keil 3,Keil 4,Keil 5环境下自由仿真。
下面网址可以下载仿真安装包:
http://www.megawin.com.tw/zh-cn/support/index/70/113


zcgdddd| | 2019-9-9 14:16 | 显示全部楼层
楼主有串口中断接收一帧数据的程序吗,有的话麻烦发下做参考?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

14

帖子

1

粉丝