基于C8051F340单片机UART0串口通讯程序

一、C8051F340串口介绍

UART0 是一个异步、全双工串口,它提供标准 8051 串行口的方式 1 和方式 3。UART0具有增强的波特率发生器电路,有多个时钟源可用于产生标准波特率。接收数据缓冲机制允许 UART0 在软件尚未读取前一个数据字节的情况下开始接收第二个输入数据字节。
UART0 有两个相关的特殊功能寄存器:串行控制寄存器(SCON0)和串行数据缓冲器(SBUF0)。用同一个 SBUF0 地址可以访问发送寄存器和接收寄存器。写 SBUF0 时自动访问发送寄存器;读 SBUF0 时自动访问接收寄存器,不可能从发送数据寄存器中读数据。

二、串口通讯程序

1、程序简介

本程序是通过C8051F340的uart0与PC进行串口通讯。当C8051F340从接收到从PC传来的数据后,将数据原样回发给PC机 ,端口为RX=P0.5,TX=P0.4。

2、头文件部分

#include <c8051f340.h>
void PORT_Init (void)void UART0_Init (void)

3、主程序部分

void main()
{
   char g;
   PCA0MD    &= ~0x40;                    
   OSCICN    |= 0x03;                     
   PORT_Init();                        
   UART0_Init();
   while(1)
   {
   
		   while(RI0==0);
		   g=SBUF0;
	        RI0=0;
    		   
    	    if(g!='\0')  
		    {    
    		SBUF0=g;

			while(TI0==0);
			TI0=0;
			g='\0';
			}

   }
}

4、端口初始化函数

void PORT_Init (void)
{
   XBR0      = 0x01;                                          
   XBR1      = 0x40;                    
   P0MDOUT   = 0x10;                    

}

5、串口UART0初始化函数

void UART0_Init (void)
{
   SCON0    |= 0x10;                                                            
   CKCON     = 0x01;
   TH1       = 0x64;			//波特率为9600
   TL1       = TH1;                         
   TMOD      = 0x20;                     
   TR1       = 1;                           
   TI0       = 1;                           
}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xll_007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值