51单片机向PC电脑发送汉字的方法

2019-04-15 18:58发布


操作条件:

  1.XP操作系统.

  2.XP的超级终端显示.

  3.WJ-V4.0开发板.

  4.单片机STC89C52.

  5.晶振11.0592M

  操作步骤:

  1.设置TMOD设置波特率和定时器1的工作方式.

  2.设置定时器的初始值.

  3.设置串行口工作方式.

  4.设置波特率不加倍.

  5.打开TR1允许发送.

  6.启动定时器.
生活信息分类目录Hzomd4t
  7.串行中断打开.

  8.打开EA中断.

  现在发上源代码:

  #include

  #define uchar unsigned char

  #define uint unsigned int

  bit FS_Bit = 0; //发送标志位

  code uchar TEXT0[] = "********************************
n";

  code uchar TEXT1[] = "电子爱好者社区欢迎您!
n";

n";

  code uchar TEXT3[] = "51免费开发板PCB赠送!
n";

n";

  code uchar TEXT5[] = "********************************



n";

  void Delay_Ms(uint i); //延时函数

  void Uart_Char(uchar Value); //发送一个数据

  void Prints(uchar *Value); //发送一组数据

  void main(void)

  {

  TMOD = 0x20; //设置波特率为9600和定时器1工作方式

  TL1 = 0xFD; //设置初始值

  TH1 = 0xFD;

  SCON = 0x50; //设置串行口工作方式

  PCON = 0x00;

  TR1 = 1; //允许发送

  ET0 = 1; //启动定时器

  ES = 1; //串行中断允许

  EA = 1;

  while(1)

  {

  Prints(TEXT0); //发送数据

  Prints(TEXT1);

  Prints(TEXT2);

  Prints(TEXT3);

  Prints(TEXT4);

  Prints(TEXT5);

  Delay_Ms(60000); //延时

  }

  }

  void INIT_Uart(void) interrupt 4

  {

  if(RI) //如果收到数据

  {

  RI = 0;

  }

  else

  {

  TI = 0; //发送完一个数据

  FS_Bit = 0; //清标志位

  }

  }

  void Uart_Char(uchar Value)

  {

  SBUF = Value; //发送数据

  FS_Bit = 1; //设置发送标志位

  while(FS_Bit);

  }

  void Prints(uchar *Value)

  {

  while((*Value) != '') //如果没有发送完毕

  {

  Uart_Char(*Value); //发送一位数据

  Value++; //指针指向下一位数据

  }

  }

  void Delay_Ms(uint i)

  {

  while(--i );

  }