Chinaunix首页 | 论坛 | 博客
  • 博客访问: 71318
  • 博文数量: 27
  • 博客积分: 2015
  • 博客等级: 大尉
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 19:36
文章分类

全部博文(27)

文章存档

2011年(1)

2010年(5)

2009年(16)

2008年(5)

我的朋友

分类: C/C++

2009-04-16 15:37:48

51单片机串口程序,采用查询方式发送接收,刚学习51的时候写的,很简单哦.

#include
#include

#define unit unsigned int
#define uchar unsigned char

uchar date;
uchar recFlag;//接收数据标识,0 未接收数据 1 接收数据

void init_serial();
void send();
void receive();

main()
{
init_serial();
IE=0; //屏蔽中断
    while(1)
{
    receive();
    send();
}
}
void init_serial()    //初始化串口
{
   TMOD=0x20;    //定时器T1使用工作方式2
   TH1=250;     //设置初值
   TH0=250;
   TR1=1;      //开始计时
   PCON=0x80;     //SMOD=1;
   SCON=0x50;     //工作方式1,波特率9600bit/s,允许接收
   TI=1;
}
void send()
{
   if(TI==1)     //检测输出是否READY
   {
      if(recFlag==1)     //是否接收过数据
      {
       SBUF=date;          //发送数据
       recFlag=0;
      TI=0;
      }
   }
}

void receive()
{
      if(RI==1)    //检测是否有数据接收
      {
      date=SBUF;      //接收数据
      recFlag=1;             //设置接收标识符
   RI=0;
      }
}

阅读(1795) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~