登录|立即注册|使用QQ帐号登录
论坛 > 51单片机
发帖|
看13439|回23|收藏
楼主 ID:217820 只看他
2017-7-13 14:13
STC15w4k58s4 芯片的4串口同时收发例程

0.png


单片机源程序如下:

代码:

  1. #include "intrins.H"
  2. #include "uart.H"
  3. #define uchar unsigned  char
  4. #define uint  unsigned   int

  5. uchar uart1buf[6]={0xa5,0x5a,0x4a,0xf8,0xff,0xff};
  6. uchar uart2buf[6]={0xa5,0x5a,0x4a,0xf8,0xff,0xff};
  7. uchar uart3buf[6]={0xa5,0x5a,0x4a,0xf8,0xff,0xff};
  8. uchar uart4buf[6]={0xa5,0x5a,0x4a,0xf8,0xff,0xff};
  9. uchar uart2_i,uart3_i,uart4_i;
  10. bit flag2=0,flag3=0,flag4=0;         //flag of reveived new packs  收到新数据包标志
  11. void delay(uint k)       
  12. {                                               
  13. uint i,j;                               
  14. for(i=0;i<k;i++)
  15. {                       
  16. for(j=0;j<121;j++)                       
  17. {;}}                                               
  18. }
  19. void main()
  20. {
  21. uchar i;
  22. uint l1,l2,l3;
  23. Uart1Init();
  24. Uart2Init();
  25. Uart3Init();
  26. Uart4Init();
  27. while(1)
  28. {
  29.   if(flag3==1||flag2==1||flag4==1)
  30.   {
  31.    flag4=0;
  32.    flag3=0;
  33.    flag2=0;
  34.    for(i=0;i<6;i++)
  35.    uart1buf[i]=uart3buf[i];
  36.    l1=256*uart2buf[2]+uart2buf[3];
  37.    l1=l1/10*7;
  38.    l2=256*uart3buf[2]+uart3buf[3];
  39.    l2=l2/10*7;
  40.    l3=256*uart4buf[2]+uart4buf[3];
  41.    if(l1<=l2&&l1<=l3)
  42.    {
  43.    uart1buf[2]=l1/256;
  44.    uart1buf[3]=l1%256;
  45.    }
  46.    if(l2<=l1&&l2<=l3)
  47.    {
  48.    uart1buf[2]=l2/256;
  49.    uart1buf[3]=l2%256;
  50.    }
  51.    if(l3<=l1&&l3<=l2)
  52.    {
  53.    uart1buf[2]=uart4buf[2];
  54.    uart1buf[3]=uart4buf[3];   
  55.    }
  56.    if(uart1buf[2]>=0xea)
  57.    {
  58.    uart1buf[2]=0xea;
  59.    uart1buf[3]=0x00;
  60.    }
  61.    for(i=0;i<6;i++)
  62.    UART1_SendData(uart1buf[i]);
  63.   }
  64. //   delay(500);
  65. }
  66. }

  67. void Uart2() interrupt 8 using 1
  68. {
  69.     if (S2CON & S2RI)
  70.     {
  71.         S2CON &= ~S2RI;         //清除S2RI位
  72.                 uart2buf[uart2_i]=S2BUF;
  73.                 uart2_i++;
  74.                 if(uart2_i==6)
  75.                 {
  76.                 uart2_i=0;
  77.                 flag2=1;
  78.                 if(uart2buf[2]==0&&uart2buf[3]==0)
  79.                 {
  80.                  uart2buf[2]==0x2a;
  81.                  uart2buf[3]==0xf8;
  82.                 }
  83.                 }
  84.     }
  85.     if (S2CON & S2TI)
  86.     {
  87.         S2CON &= ~S2TI;         //清除S2TI位
  88.     }
  89. }
  90. void Uart3() interrupt 17 using 1
  91. {
  92.     if (S3CON & S3RI)
  93.     {
  94.         S3CON &= ~S3RI;         //清除S2RI位
  95.                 uart3buf[uart3_i]=S3BUF;
  96.                 uart3_i++;
  97.                 if(uart3_i==6)
  98.                 {
  99.                 uart3_i=0;
  100.                 flag3=1;
  101.                 if(uart3buf[2]==0&&uart3buf[3]==0)
  102.                 {
  103.                  uart3buf[2]==0x2a;
  104.                  uart3buf[3]==0xf8;
  105.                 }
  106.                 }
  107.     }
  108.     if (S3CON & S3TI)
  109.     {
  110.         S3CON &= ~S3TI;         //清除S3TI位
  111.     }
  112. }
  113. void Uart4() interrupt 18 using 1
  114. {
  115.     if (S4CON & S4RI)
  116.     {
  117.         S4CON &= ~S4RI;         //清除S2RI位
  118.                 uart4buf[uart4_i]=S4BUF;
  119. ……………………

  120. …………限于本文篇幅 余下代码请从51黑下载附件…………

所有资料51hei提供下载:
2017.06.23 四串口.rar (77.06 KB)
(下载次数: 298, 2017-7-13 14:13 上传)

下载积分: 黑币 -5




沙发 ID:219418 只看他
2017-7-13 22:02
谢谢分享,好资料,51黑有你更精彩!!!
板凳 ID:140302 只看他
2017-8-15 10:33
谢谢分享资料!
地板 ID:232129 只看他
2017-9-9 19:34
好东西 谢谢
5# ID:247609 只看他
2017-11-9 10:46
多谢分享!
6# ID:259264 只看他
2018-2-8 10:14
多谢分享!
7# ID:243748 只看他
2018-2-8 21:55
谢谢分享
8# ID:283970 只看他
2018-2-13 16:18
谢谢分享,好好好
9# ID:266116 只看他
2018-2-13 20:32
谢谢分享!
10# ID:290464 只看他
2018-4-8 22:15
好资料,51黑有你更精彩!!!
11# ID:165053 只看他
2018-4-27 16:46
学习一下!
12# ID:399086 只看他
2018-9-17 16:10
好东西  
13# ID:389901 只看他
2018-11-17 10:46
谢谢分享,
14# ID:436827 只看他
2018-11-30 21:34
学习了
15# ID:471464 只看他
2019-1-21 22:37
正好在看这个 ,谢谢分享
16# ID:471464 只看他
2019-1-21 22:40
很高兴看到这个,谢谢分享
17# ID:492594 只看他
2019-3-17 15:41
刚好可以用到,谢谢楼主
18# ID:485871 只看他
2019-3-18 20:25
希望有用,看不太全
19# ID:292815 只看他
2019-4-14 21:21
谢谢分享!
20# ID:292815 只看他
2019-4-16 00:58
谢谢分享
21# ID:234782 只看他
2019-7-8 11:56
代码注释太少了
22# ID:490521 只看他
2019-11-10 19:55
有用吗?
23# ID:358091 只看他
2019-11-12 00:44
这个程序有人测试过吗?
24# ID:640078 只看他
2019-11-12 08:37
感谢分享!

51黑电子论坛

Powered by Discuz! X3.1

首页|标准版|触屏版|电脑版