加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

串口接收程序  发送字符串程序

(2010-10-31 23:37:59)
标签:

串口

c

it

分类: C

//串口接收程序,P0口显示接收数据, 11.0592MHz,波特率9600bps;

//调试通过;

#include <reg51.h>


void serial_port_initial()//

{

    PCON=0x00; //波特率bu加倍

    SCON     0x50;   //0101,0000 8位可变波特率,无奇偶校验位

    TMOD     0x20;   //0011,0001 设置定时器1为8位自动重装计数器

    TH1      0xfd;   //设置定时器1自动重装数   9600bps@11.0592MHz

    TL1      0xfd;

    ES       0;    //串口中断关闭

    ET1      0;    //定时器1中断关闭

    TR1      1;    //打开串口

    EA       0;    //关总中断

}


void main( void )

{

   unsigned char i = 0,a;

    serial_port_initial();//初始化串口

  

    while( 1 )

   {

       a=SBUF;                   //把接收的数据存于a中

         P0=a;                     //用P0显示接收的数据

       if(RI==1)                 //判断是否接收完毕

         { RI=0; }                 //清除接收标志位

    }

}
http://s9/middle/67d069a9493eb7e172cb8&690 发送字符串程序" TITLE="串口接收程序  发送字符串程序" />

//串口发送程序

//11.0592MHz,波特率9600bps,循环发送cc[],调试通过;

#include <reg51.h>
#define uint unsigned int
uint i, j;
unsigned char cc[]="hello world!";

//也可写为:unsigned char cc[]={‘1’,‘2’,‘a’,'w'};

 

void delay( uint a)   //延时a ms

{
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}

 

 

 

void serial_port_initial()//

{

    PCON=0x00; //波特率bu加倍

    SCON     0x50;   //0101,0000 8位可变波特率,无奇偶校验位

    TMOD     0x20;   //0011,0001 设置定时器1为8位自动重装计数器

    TH1      0xfd;   //设置定时器1自动重装数   9600bps ,11.0592MHZ

    TL1      0xfd;

    ES       0;    //串口中断关闭

    ET1      0;    //定时器1中断关闭

    TR1      1;    //打开串口

    EA       0;    //开总中断

}

 

 

 

void send_UART(unsigned char i)

{

   TI = 0;           //软件清零发送中断标志

   SBUF = i       //发送一帧数据

   while( TI == 0 ); //等待发送结束

}

 

 

 

void main( void )

{

   unsigned char i = 0;

    serial_port_initial();//初始化串口

  

    while( 1 )

   {


       for(i=0;i<12;i++)

       {

       delay( 30);

       send_UART(cc[i]);

       delay( 30 );
       }
 SBUF = 13; while (TI == 0); TI = 0; //回车
    SBUF = 10; while (TI == 0); TI = 0;//换行


    }

}

//注意protus的单片机设为一致11.0592MHZ

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有