网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
搜索关键字: 所有资讯 行业动态 市场趋势 政策法规 新品发布 技术资讯 价格快报 展会资讯
  • 达普IC芯片交易网 > 新闻中心 > 技术参数 > 正文
  • RSS
  • 单片机与RS232串口通信C51程序
    http://www.ic72.com 发布时间:2008/8/25 8:55:47

    /*************************************************************************/
    #i nclude "iom16v.h"
    #i nclude<macros.h>
    #define baud 9600     //波特率
    #define fosc 8000000  //晶振8MHZ 
    /************************* 初始化函数**********************/
    void USART_Init(void)
    {

      /*设置波特率*/
      //UBRR=51;
      //UBRRH=(unsigned char)(baud>>8);
     // UBRRL=(unsigned char)(baud);
      UBRRL=(fosc/16/baud-1)%256;
      UBRRH=(fosc/16/baud-1)/256;
      /*接收器和发送器使能*/
      UCSRB=(1<<RXEN)|(1<<TXEN);
      /*设置数据帧格式*/
      UCsrc="/blog/(1<";<URSEL)|(1<<USBS)|(3<<UCSZ0);  //8个数据位,2个停止位
    }
    /********************数据发送函数(5~8位)*********************/

    void USART_Transmit(unsigned char data)
    {
      /*等待发送缓冲器为空*/
      while(!(UCSRA&(1<<UDRE)))   //UDRE为时缓冲器为空
      ;
      /*将数据放入缓冲器,发送数据*/
      UDR=data;
    }
    /********************数据接受函数(5~8位)*********************/
    unsigned char USART_Receive(void)
    {
      /*等待接受数据*/
      while(!(UCSRA&(1<<RXC)))  //接受缓冲器中有未读出的数据时RXC置位,否则清零
             ;
      /*从缓冲器中获取并返回数据*/
      return UDR;
    }
    /********************字符串发送函数(不含回车换行)***********************/
    void USART_Transmit_string(unsigned char *s)
    {
    while (*s)
       {
       USART_Transmit(*s);
       s++;
       }
    }
    void main()
    {
    unsigned char i;
    unsigned char *p1,*p2;
    unsigned char a[]={" The  key  is:"};
    unsigned char b[]={" Please press any key "};
    p1=a;
    p2=b;
    USART_Init();
    //USART_Transmit_string(p2);
    //USART_Transmit(0x0d);   //回车换行
    //USART_Transmit(0x0a);
    while(1)
      {
      i=USART_Receive();
      if(i!=0)
      {
      //USART_Transmit_string(p1);
      USART_Transmit(i);
      //USART_Transmit(0x0d);   //回车换行
      //USART_Transmit(0x0a);
      }

      }
    }
     

       /*************************************************************************/
    #i nclude "iom16v.h"
    #i nclude<macros.h>
    #define baud 9600     //波特率
    #define fosc 8000000  //晶振8MHZ 
    /************************* 初始化函数**********************/
    void USART_Init(void)
    {

      /*设置波特率*/
      //UBRR=51;
      //UBRRH=(unsigned char)(baud>>8);
     // UBRRL=(unsigned char)(baud);
      UBRRL=(fosc/16/baud-1)%256;
      UBRRH=(fosc/16/baud-1)/256;
      /*接收器和发送器使能*/
      UCSRB=(1<<RXEN)|(1<<TXEN);
      /*设置数据帧格式*/
      UCsrc="/blog/(1<";<URSEL)|(1<<USBS)|(3<<UCSZ0);  //8个数据位,2个停止位
    }
    /********************数据发送函数(5~8位)*********************/

    void USART_Transmit(unsigned char data)
    {
      /*等待发送缓冲器为空*/
      while(!(UCSRA&(1<<UDRE)))   //UDRE为时缓冲器为空
      ;
      /*将数据放入缓冲器,发送数据*/
      UDR=data;
    }
    /********************数据接受函数(5~8位)*********************/
    unsigned char USART_Receive(void)
    {
      /*等待接受数据*/
      while(!(UCSRA&(1<<RXC)))  //接受缓冲器中有未读出的数据时RXC置位,否则清零
             ;
      /*从缓冲器中获取并返回数据*/
      return UDR;
    }
    /********************字符串发送函数(不含回车换行)***********************/
    void USART_Transmit_string(unsigned char *s)
    {
    while (*s)
       {
       USART_Transmit(*s);
       s++;
       }
    }
    void main()
    {
    unsigned char i;
    unsigned char *p1,*p2;
    unsigned char a[]={" The  key  is:"};
    unsigned char b[]={" Please press any key "};
    p1=a;
    p2=b;
    USART_Init();
    //USART_Transmit_string(p2);
    //USART_Transmit(0x0d);   //回车换行
    //USART_Transmit(0x0a);
    while(1)
      {
      i=USART_Receive();
      if(i!=0)
      {
      //USART_Transmit_string(p1);
      USART_Transmit(i);
      //USART_Transmit(0x0d);   //回车换行
      //USART_Transmit(0x0a);
      }

      }
    }


    www.ic72.com 达普IC芯片交易网
  • 行业动态
  • 市场趋势
  • 政策法规
  • 新品发布
  • Baidu

    IC快速检索:abcdefghijklmnopqrstuvwxyz0123456789
    COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
    客户服务:service@IC72.com 库存上载:IC72@IC72.com
    (北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
    京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质