铁血匠心的笔记 https://bbs.21ic.com/?550600 [收藏] [复制] [RSS]

日志

c8051f340简单串口收发程序

已有 2137 次阅读2010-3-17 08:05 |个人分类:c8051f340程序|系统分类:单片机| c8051f340, 串口

/*****************************************************************
*本程序是通过F340的uart0与PC进行串口通讯的例程,具体实现为当F340收
*从PC传来的数据后将数据原样回发给PC机 ,端口为RX=P0.5,TX=P0.4
******************************************************************/
#include <c8051f340.h>
#define uchar unsigned char
#define uint unsigned int
/*****************************************************************
*端口初始化函数
*****************************************************************/
void PORT_Init (void)
{
 XBR0      = 0x01;//端口I/O交叉开关寄存器0,UART TX0, RX0 连到端口引脚 P0.4 和 P0.5                                         
 XBR1      = 0x40;//端口I/O交叉开关寄存器1,交叉开关使能                  
 P0MDOUT   = 0x10;//P0.4为推挽输出,其他的为漏极开路输出
}
/****************************************************************
*UART0初始化函数
*****************************************************************/
void UART0_Init (void)
{
 SCON0    |= 0x10;                                                           
 CKCON     = 0x01;
 TH1       = 0x64;   //波特率为9600
 TL1       = TH1;                        
 TMOD      = 0x20;                    
 TR1       = 1;//P235,定时器1运行控制,定时器1允许                          
 TI0       = 1;//P235,中断1类型选择,INT1为边沿触发                          
}
/*****************************************************************
*主函数
*****************************************************************/
void main()
{
 char g;
 PCA0MD    &= ~0x40;//关闭看门狗                 
 OSCICN    |= 0x03;//P126                    
 PORT_Init();//端口初始化                     
 UART0_Init();//UART0初始化
 while(1)
 {
  while(RI0==0);   //接收
  g=SBUF0;
  RI0=0;
        
  if(g!='\0') 
  { SBUF0=g;


     
   while(TI0==0);  //发送
   TI0=0;
   g='\0';
  }
 }
}


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)