找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3916|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机和上位机串口通信控制电机和显示温度

[复制链接]
跳转到指定楼层
楼主
51和上位机(C#编写)串口通信


全部资料51hei下载地址:
控制台.zip (464.24 KB, 下载次数: 79)


单片机源程序如下:
  1. #include<reg52.h>
  2. #include"bstv51.h"
  3. #include"delay.h"

  4. sbit LED1=P1^0;
  5. sbit LED2=P1^1;

  6. sbit EN1=P1^4; //使能端
  7. sbit EN2=P1^5;

  8. sbit IN1=P1^2; //电机1
  9. sbit IN2=P1^3;

  10. sbit IN3=P1^6; //电机2       
  11. sbit IN4=P1^7;

  12. void run(void)                          //前进函数
  13. {
  14.         EN1=1;
  15.     IN1=0;
  16.         IN2=1; //左电机的正转
  17.        
  18.         EN2=1;
  19.         IN3=1;
  20.         IN4=0;//右电机的正转
  21. }

  22. void back(void)                          //后退函数
  23. {
  24.         EN1=1;   
  25.         IN1=1;
  26.         IN2=0; //左电机的反转
  27.        
  28.         EN2=1;
  29.         IN3=0;
  30.         IN4=1;//右电机的反转
  31. }

  32. void stop(void)                          //停止函数
  33. {
  34.         EN1=0;
  35.         EN2=0;//电机使能

  36. }


  37. void UartConfiguration(); //串口配置函数申明

  38. void main()
  39. {
  40.         uchar date1,date2;
  41.         uint s;
  42.         bstv51_init();        //开发板初始化
  43.         UartConfiguration();               
  44.         while(1)
  45.         {
  46.                 if(RI==1)
  47.                 {
  48.                         date1=SBUF;
  49.                         RI=0;
  50.                         s=0;
  51.                         while(s<2000&&date1==0xDB)
  52.                         {
  53.                                 s++;
  54.                                 if(RI==1)
  55.                                 {
  56.                                         date2=SBUF;
  57.                                         RI=0;
  58.                                         switch(date2)
  59.                                         {
  60.                                                  case 66:LED1=0;LED2=1;FM=1;       
  61.                                               break;
  62.                                                   case 255:LED1=1;LED2=0;FM=1;
  63.                                               break;
  64.                                                   case 'S':LED1=1;LED2=1;FM=0;                       
  65.                                                break;
  66.                
  67.                                                  case 0xAA:run();                       
  68.                                              break;
  69.                                                  case 0xBB:back();
  70.                                                     break;
  71.                                                  case 'P':stop();
  72.                                               break;
  73.                                         }
  74.                                 }
  75.                         }
  76.                 }
  77.         }
  78. }

  79. ///////////串口配置函数/////////////////////

  80. void UartConfiguration()
  81. {
  82.     TMOD=0x20;      //设置计数器1的工作方式2
  83.         TH1=0xfd;                        //设置计数器1的初值,决定波特率(0xfd表示9600的波特率)
  84.         TL1=0xfd;                        //设置计数器1的初值,决定波特率
  85.         PCON=0x00;      // 波特率倍增0x00不加倍         0x80加倍
  86.         SCON=0x50;                //设置工作方式1 开启接受允许
  87.         EA=1;                    //开启总中断
  88.         ES=1;                        //开启串口接受中断
  89.         TR1=1;                        //计数器1开始运行
  90. }

  91. ///////////////串口中断服务函数///////////////////(不需要申明)
  92. //void itrpt_svice() interrupt 4        //串口中断服务函数
  93. //{
  94. //        date=SBUF;        //取出接受到的数据(手机把数据发给单片机的SBUF寄存器,date从寄存器中取值)
  95. //        RI=0;                          //清除接受中断标志位
  96. //    SBUF=date;                  //单片机把数据date放到总线上(发给电脑或者手机)
  97. //    while(!TI);                  //等待发送数据完成
  98. //    TI=0;                          //清除发送中断标志位
  99. ……………………

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


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:189601 发表于 2019-4-28 16:28 | 只看该作者
打不开
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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