单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3434|回复: 0
收起左侧

51单片机串口收发源程序

[复制链接]
tong001 发表于 2018-4-21 16:48 | 显示全部楼层 |阅读模式
就是个简单的串口收发的51单片机源程序亲测可用。

单片机源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4.         typedef  signed char  int8;
  5. typedef  signed int   int16;
  6. typedef  signed long  int32;

  7. //typedef unsigned char uint8;
  8. //typedef unsigned int  uint16;
  9. typedef unsigned long uint32;
  10. sbit FM=P3^5; //HJ-C52  P1.2 把J5跳线接上
  11. sbit P10=P1^0;
  12. uchar buf;
  13. void delay(uint k)
  14. {
  15.   uint j;
  16.         for(;k>+0;k--)
  17.            for(j=110;j>=0;j--);
  18. }

  19. void UartSendByte(uchar byte)
  20. {
  21.     SBUF = byte;
  22.     while(!TI);
  23.          TI = 0;
  24. }



  25. void UartSendString(uchar *string)
  26. {
  27.     while(*string)
  28.          {
  29.              UartSendByte(*string++);
  30.          }
  31. }




  32. void main(void)
  33. {
  34.         FM=1;
  35.         P10=1;
  36. SCON=0x50;//设定串口工作方式0101 0000
  37. PCON=0x00;
  38. TMOD=0x20;
  39. EA=1;
  40. ES=1;
  41. TL1=0xfd;
  42. TH1=0xfd;
  43. TR1=1;
  44. while(1)
  45. {
  46.         UartSendString("55468548545613843\r\n");
  47.         delay(1);
  48. }
  49. }

  50. //串行中断服务函数
  51. void serial() interrupt 4
  52.         {
  53.         ES=0;
  54.         RI=0;
  55.         buf=SBUF;
  56.         switch(buf)
  57.         {       
  58.         case 0x31:P10=~P10;FM=~FM;break;   //二进制 0011 0001  十进制 49 控制字符 1  16进制 0X31
  59.         }
  60.         ES=1;//串口中断

  61. }
复制代码

所有资料51hei提供下载:

36-1、串口通信实验.zip (34.3 KB, 下载次数: 24)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机. 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

快速回复 返回顶部 返回列表