串口2

来源:互联网 发布:重庆网络整合营销价格 编辑:程序博客网 时间:2024/05/23 12:06
/*-----------------------------------------------    名称:串口通信    网站:www.doflye.net    编写:shifang    日期:2009.5    修改:无    内容:连接好串口或者usb转串口至电脑,下载该程序,打开电源          打开串口调试程序,将波特率设置为9600,无奇偶校验          晶振11.0592MHz,发送和接收使用的格式相同,如都使用          字符型格式,设置正确后接受框可以看到UART test,技术论坛:www.doflye.net thank you!  ------------------------------------------------*/    #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义                          #include"delay.h"  /*------------------------------------------------                     函数声明  ------------------------------------------------*/  void SendStr(unsigned char *s);  /*------------------------------------------------                      串口初始化  ------------------------------------------------*/  void InitUART  (void)  {        SCON  = 0x50;               // SCON: 模式 1, 8-bit UART, 使能接收        TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重装      TH1   = 0xFD;               // TH1:  重装值 9600 波特率 晶振 11.0592MHz        TR1   = 1;                  // TR1:  timer 1 打开                               EA    = 1;                  //打开总中断      //ES    = 1;                  //打开串口中断  }                              /*------------------------------------------------                      主函数  ------------------------------------------------*/  void main (void)  {    InitUART();        while (1)                             {      SendStr("UART test,技术论坛:www.doflye.net thank you!");      DelayMs(240);//延时循环发送      DelayMs(240);      }  }    /*------------------------------------------------                      发送一个字节  ------------------------------------------------*/  void SendByte(unsigned char dat)  {   SBUF = dat;   while(!TI);        TI = 0;  }  /*------------------------------------------------                      发送一个字符串  ------------------------------------------------*/  void SendStr(unsigned char *s)  {   while(*s!='\0')// \0 表示字符串结束标志,                  //通过检测是否字符串末尾    {    SendByte(*s);    s++;    }  }  

0 0