标题: 51单片机与PC上位机串口通信之LED控制 [打印本页]

作者: superjiangzhen    时间: 2016-1-15 12:28
标题: 51单片机与PC上位机串口通信之LED控制
PC机通过上层软件控制单片机LED的亮灭或者控制LED的闪烁及闪烁时间,上层软件用户名密码均为admin 注意PROTEUS串口仿真需要配合虚拟串口软件才能工作


所有资料打包下载: LED控制.rar (1.6 MB, 下载次数: 486)

上位机(包含源码)软件说明:
发送数据解析
字节1、2:0x55 0xaa 数据是否正确判断标志
字节3:
           0x01 ------单个LED控制手动控制
           0x02 ------单个LED控制自动闪烁

字节4                     
    此字节从低位到高位依次控制LED0-LED7,例如0x01表示手动点亮LED0或者LED0自动闪烁;0x28表示手动点    亮LED3、LED5或者LED3、LED5自动闪烁

字节5、6:表示闪烁时间(6高8位 5低8位)    取值范围0-5000

程序源码预览:
  1. #include<reg52.h>
  2. #define uint8 unsigned char
  3. #define uint16 unsigned int
  4. uint8 receive_buffer[6];                        //存放接收到的数据
  5. uint8 i,k;

  6. void delay1ms(uint16 m)                                //1ms延时程序
  7. {
  8.         uint8 j;
  9.         while(m--)
  10.                 for(j=0;j<112;j++);
  11. }

  12. void main()
  13. {
  14.         uint16 time;
  15.         P0 = 0xff;                        //初始化LED状态,熄灭
  16.         TMOD = 0x20;                //定时器1工作在方式2
  17.         TH1 = 0xfd;
  18.         TL1 = 0xfd;                        //波特率9600
  19.         TR1 = 1;                                //启动定时器1
  20.         EA = 1;                                        //开启总中断
  21.         SM0 = 0;
  22.         SM1 = 1;                                //串行口工作方式1
  23.         REN = 1;        //允许串行接收
  24.         ES = 1;                                        //开启串行口中断
  25.         while(1)
  26.         {
  27.                 if((receive_buffer[0] == 0x55) && (receive_buffer[1] == 0xaa))                                        //如果接收到0x55 0xaa说明接收到的数据是正确的
  28.                 {
  29.                         time = ((uint16)receive_buffer[5] << 8) + (uint16)receive_buffer[4];        //闪烁时间
  30.                         switch(receive_buffer[2])
  31.                         {
  32.                                 case 0x01:                                                                                                                                                                                                                                                //手动控制LED亮灭
  33.                                         P0 = ~receive_buffer[3];
  34.                                         break;
  35.                                 case 0x02:                                                                                                                                                                                                                                                //LED自动闪烁
  36.                                         P0 = ~receive_buffer[3];
  37.                                         delay1ms(time);
  38.                                         P0 = 0xff;
  39.                                         delay1ms(time);
  40.                                         break;
  41.                                 default:
  42.                                         break;
  43.                         }
  44.                 }
  45.         }
  46. }

  47. void uart_int() interrupt 4
  48. {
  49.         if(RI == 1)
  50.         {
  51.                 RI = 0;
  52.                 receive_buffer[i] = SBUF;
  53.                 i++;
  54.                 if(i == 6)
  55.                 {
  56.                         i = 0;
  57.                         k = 0;
  58.                         P0 = 0xff;
  59.                 }
  60.         }
  61. }
复制代码




作者: superjiangzhen    时间: 2016-1-15 12:29
里面有51单片机源代码,供广大单片机爱好者参考
作者: 917106794    时间: 2016-1-15 13:40
51黑有你更精彩!!!

作者: 榆林上校    时间: 2016-4-21 10:44
简单实用的例子
作者: 5314039    时间: 2016-4-26 22:31
楼主上位机登陆不了
作者: 5314039    时间: 2016-4-26 22:32
楼主  上位机登录不了
作者: superjiangzhen    时间: 2016-4-27 10:49
用户名 密码都是admin
作者: superjiangzhen    时间: 2016-4-27 10:51
5314039 发表于 2016-4-26 22:31
楼主上位机登陆不了


用户名 密码都是admin
作者: superjiangzhen    时间: 2016-4-27 11:00
5314039 发表于 2016-4-26 22:32
楼主  上位机登录不了

用户名密码都是admin
作者: 飞行之翼    时间: 2016-6-22 21:27
楼主好样的
作者: lhnuaa    时间: 2016-8-23 08:02
很不错,正在找
作者: laohu7748    时间: 2016-12-15 14:16
可以,贼强!
作者: 你的名字    时间: 2016-12-15 15:49
楼主好样的!学习了
作者: laohu7748    时间: 2016-12-15 18:17
老哥,上位机程序怎么用啊
作者: engcyh    时间: 2016-12-15 18:24
看起来不错,支持一下
作者: 榆林上校    时间: 2017-2-14 11:04
在win7下用户名与密码为admin不可以登录
作者: 89464608    时间: 2017-2-23 17:29
问下楼主,如果有多个P口接LED,又该怎么控制啊,求指导
作者: probotmaster    时间: 2017-5-29 14:13
很不错,一直在找这个帖子终于找到了!!
作者: huaiyixinfei    时间: 2017-6-14 18:51
垃圾,根本用不了。
作者: huaiyixinfei    时间: 2017-6-14 18:52
不行,别吓
作者: 348652560    时间: 2017-6-15 17:10
谢谢分享!收藏了!
作者: yyywww    时间: 2017-8-14 17:01
谢谢!!!
作者: anony    时间: 2017-10-14 16:56
可以的呢,,
作者: kimijiang    时间: 2017-11-2 10:40
有测试吗 可以制定协议通讯么
作者: 且听风吟1314    时间: 2017-11-6 03:08
没有黑笔无法下载啊
作者: bbxyzzj    时间: 2017-11-6 08:20
感谢分享
作者: kimijiang    时间: 2017-11-6 15:08
好不容易攒了黑币来下载
作者: kimijiang    时间: 2017-11-6 15:13
anony 发表于 2017-10-14 16:56
可以的呢,,

你测试过吗?
作者: wazehu    时间: 2017-12-11 12:10
新手上路,感谢分享。
作者: jacky168    时间: 2017-12-18 19:50
里面有51单片机源代码,供广大单片机爱好者参考
作者: jacky168    时间: 2017-12-18 20:06
新手上路,感谢分享。
作者: 那个少年    时间: 2017-12-25 00:42
哇,感觉很棒的样子
作者: hao05020    时间: 2017-12-26 22:39
谢谢分享!收藏了!
作者: 766711831    时间: 2018-1-4 12:12
看看  
作者: bhjyqjs    时间: 2018-2-8 16:06
正在学习易语言,期待中
作者: qjzyx    时间: 2018-2-8 21:56
谢谢分享
作者: bhjyqjs    时间: 2018-2-12 09:51
谢谢楼主分享,上位机界面非常简洁漂亮!
作者: zhangsp    时间: 2018-3-10 10:34
不错,好东西,就是黑币有点多
作者: zhangsp    时间: 2018-3-10 10:35
感谢分享,好用。那些说不好用的,估计没仔细看楼主说明,需要用到虚拟串口
作者: lvlv99    时间: 2018-3-15 21:31
攒币下来学习上位机
作者: pmsjzj    时间: 2018-4-4 23:56
程序很厉害,测试ok、、、、
作者: 188098893    时间: 2018-4-11 00:21
厉害了
作者: 12138cnm    时间: 2018-4-19 18:04
感谢楼主的分享
作者: jkh920184196    时间: 2018-4-23 11:28
;楼主您好,能分享下上位机源码吗?

作者: Mr_Shier    时间: 2018-5-6 16:16
程序里有没有涉及CRC校验呀
作者: jkh920184196    时间: 2018-5-12 22:16
能分享下上位机源文件吗

作者: 673780034    时间: 2018-6-7 19:45
学习了,我也去试试看行不行。。。
作者: Chiang    时间: 2018-8-9 10:12
谢谢大佬分享!我正在学习单片机通讯,
作者: qq35404085    时间: 2018-8-28 23:12
学习上位机
作者: 一条叼咸鱼    时间: 2019-7-16 09:21
楼主有上位机的源代码吗?
作者: 一条叼咸鱼    时间: 2019-7-16 09:25
请问是用VC6.0写的吗?
作者: Angle145    时间: 2019-7-16 11:05
http://www.51hei.com/bbs/forum.php?mod=viewthread&tid=163182&mobile=2单片机代码可以看看
作者: qhb    时间: 2019-7-16 13:36
厉害!
作者: 1123551003    时间: 2019-10-18 23:14

谢谢分享!收藏了!
作者: T礼物X    时间: 2020-3-25 11:58
楼主大哥,没有看到上位机的源码啊,都是些obj的二进制文件
作者: leiwawa    时间: 2021-12-8 16:37

51黑有你更精彩!!!
作者: HAPPY3    时间: 2021-12-13 11:26
正在学习易语言,期待中
作者: nlz175    时间: 2022-10-11 23:03
上位机登录不了啊
作者: ljz587    时间: 2022-12-24 13:22
很好的例子,可以借鉴学习




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1