小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 22614|回复: 17
打印 上一主题 下一主题

蓝牙小车(早期)

[复制链接]
跳转到指定楼层
楼主
发表于 2012-3-14 10:00:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 0611留守 于 2012-10-5 10:12 编辑



蓝牙pc端3.zip (49.41 KB, 下载次数: 186)

  #include<reg52.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp; //从串口接收的数据 ,是一个数据组
uint i,j;
sbit Left1=P1^0;
sbit Left2=P1^1;
sbit Right1=P1^2;
sbit Right2=P0^0;

void Delay_1ms(uint i)//1ms延时
{
uchar x,j;
for(j=0;j<i;j++)
for(x=0;x<=148;x++);
}

void Com_Int(void) interrupt 4
{
EA = 0;
if(RI == 1) //当硬件接收到一个数据时,RI会置位
{
   RI = 0;
    temp = SBUF;
  // SBUF=temp;
}
EA = 1;
}
/********************************************************************
* 名称 : Com_Init()
* 功能 : 串口初始化,晶振11.0592,波特率9600,使串口中断
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Com_Init(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd; //设置波特率 9600
TL1 = 0xFd;
TR1 = 1; //启动定时器1
ES = 1; //开串口中断
EA = 1; //开总中断
}
/********************************************************************
* 名称 :Moto_Forward()
* 功能 : 电机1、2启动,都是前进,整车表现为前进。
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Moto_Forward()
{
Left1=0;
Left2=1;
Right1=0;
Right2=1;

Delay_1ms(100);
}
/********************************************************************
* 名称 :Moto_Backward()
* 功能 : 电机1、2启动,都是后退,整车表现为后退。
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Moto_Backward()
{
Left1=1;
Left2=0;
Right1=1;
Right2=0;

Delay_1ms(100);
}
/********************************************************************
* 名称 :Moto_TurnLeft()
* 功能 : 电机1后退,电机2前进,整车表现为左转。
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Moto_TurnLeft()
{
Left1=1;
Left2=0;
Right1=0;
Right2=1;
Delay_1ms(100);
}
/********************************************************************
* 名称 :Moto_TurnRight()
* 功能 : 电机1前进,电机2后退,整车表现为右转。
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Moto_TurnRight()
{

Left1=0;
Left2=1;
Right1=1;
Right2=0;
Delay_1ms(100);
}
/********************************************************************
* 名称 :Moto_Stop()
* 功能 : 电机1停止,电机2停止,整车表现为停止。
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Moto_Stop()
{

Left1=0;
Left2=0;
Right1=0;
Right2=0;
Delay_1ms(100);
}
void main()
{
Delay_1ms(100);
Com_Init();//串口初始化

while(1)
{
  switch(temp)
  {
  case 0: Moto_Stop(); break;
  case 1: Moto_Forward(); break;
  case 2: Moto_Backward(); break;
  case 3: Moto_TurnLeft(); break;
  case 4: Moto_TurnRight(); break;
  default:
  break;
  }

}
}

VB源码
Private Sub Combo1_Click()
         Select Case form1.Combo1.Text   ’注意主窗体名称’
                Case "COM1"  '如果是com1'
                MSComm1.CommPort = 1   '选择com1'
                MSComm1.PortOpen = True
                Case "COM2"
                MSComm1.CommPort = 2
                MSComm1.PortOpen = True
                Case "COM3"
                MSComm1.CommPort = 3
                MSComm1.PortOpen = True
                Case "COM4"
                MSComm1.CommPort = 4
                MSComm1.PortOpen = True
                 Case "COM5"
                MSComm1.CommPort = 5
                MSComm1.PortOpen = True
                 Case "COM6"
                MSComm1.CommPort = 6
                MSComm1.PortOpen = True
                 Case "COM7"
                MSComm1.CommPort = 7
                MSComm1.PortOpen = True
                 Case "COM8"
                MSComm1.CommPort = 8
                MSComm1.PortOpen = True
                 Case "COM9"
                MSComm1.CommPort = 9
                MSComm1.PortOpen = True
                 Case "COM10"
                MSComm1.CommPort = 10
                MSComm1.PortOpen = True
               
                 Case "COM11"
                MSComm1.CommPort = 11
                MSComm1.PortOpen = True
               
                 Case "COM12"
                MSComm1.CommPort = 12
                MSComm1.PortOpen = True
               
                 Case "COM13"
                MSComm1.CommPort = 13
                MSComm1.PortOpen = True
               
                 Case "COM14"
                MSComm1.CommPort = 14
                MSComm1.PortOpen = True
               
                 Case "COM15"
                MSComm1.CommPort = 15
                MSComm1.PortOpen = True
               
               
            End Select
End Sub
Private Sub Combo2_Click()
MSComm1.PortOpen = False '波特率'
         Select Case form1.Combo2.Text
                Case "2400"
                MSComm1.Settings = "2400,n,8,1"
                MSComm1.PortOpen = True '
                Case "4800"
                MSComm1.Settings = "4800,n,8,1"
                MSComm1.PortOpen = True
                 Case "9600"
                MSComm1.Settings = "9600,n,8,1"
                MSComm1.PortOpen = True
                 Case "14400"
                MSComm1.Settings = "14400,n,8,1"
                MSComm1.PortOpen = True
                 Case "19200"
                MSComm1.Settings = "19200,n,8,1"
                MSComm1.PortOpen = True
                 Case "28800"
                MSComm1.Settings = "28800,n,8,1"
                MSComm1.PortOpen = True
                 Case "38400"
                MSComm1.Settings = "38400,n,8,1"
                MSComm1.PortOpen = True
                 Case "57600"
                MSComm1.Settings = "57600,n,8,1"
                MSComm1.PortOpen = True
                 Case "115200"
                MSComm1.Settings = "115200,n,8,1"
                MSComm1.PortOpen = True
            End Select
End Sub
Private Sub Command1_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
Command1.Caption = "串口开"
ElseIf MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
Command1.Caption = "串口关"
End If
End Sub
Private Sub Command7_KeyPress(KeyAscii As Integer)
If KeyAscii = 119 Then
MSComm1.Output = Chr(1) 'W'
Text1.Text = "你按下了W,键值87"
ElseIf KeyAscii = 115 Then
MSComm1.Output = Chr(2) 's'
Text1.Text = "你按下S了,键值83"
ElseIf KeyAscii = 97 Then
MSComm1.Output = Chr(3) 'a'
Text1.Text = "你按下A了,键值65"
ElseIf KeyAscii = 100 Then
MSComm1.Output = Chr(4) 'd'
Text1.Text = "你按下D了,键值68"
ElseIf KeyAscii = 32 Then
MSComm1.Output = Chr(0) '空格键'
Text1.Text = "你按下空格,值32"
End If
End Sub
Private Sub Command2_Click()
MSComm1.Output = Chr(0) ''
Text1.Text = "你按下空格,键值32"
End Sub
Private Sub Command3_Click()
MSComm1.Output = Chr(1) 'W'
Text1.Text = "你按下了W,键值87"
End Sub
Private Sub Command4_Click()
MSComm1.Output = Chr(3)  'a'
Text1.Text = "你按下A了,键值65"
End Sub
Private Sub Command5_Click()
MSComm1.Output = Chr(2)  's'
Text1.Text = "你按下S了,键值83"
End Sub
Private Sub Command6_Click()
MSComm1.Output = Chr(4)  '68d'
Text1.Text = "你按下D了,键值68"
End Sub
Private Sub Form_Load()
         Combo1.AddItem "COM1"
         Combo1.AddItem "COM2"
         Combo1.AddItem "COM3"
         Combo1.AddItem "COM4"
         Combo1.AddItem "COM5"
         Combo1.AddItem "COM6"
         Combo1.AddItem "COM7"
         Combo1.AddItem "COM8"
         Combo1.AddItem "COM9"
         Combo1.AddItem "COM10"
         Combo1.AddItem "COM11"
         Combo1.AddItem "COM12"
         Combo1.AddItem "COM13"
         Combo1.AddItem "COM14"
         Combo1.AddItem "COM15"
         Combo1.AddItem "COM16"
         
         Combo2.AddItem "2400"
         Combo2.AddItem "4800"
         Combo2.AddItem "9600"
         Combo2.AddItem "14400"
         Combo2.AddItem "19200"
         Combo2.AddItem "28800"
         Combo2.AddItem "38400"
         Combo2.AddItem "57600"
         Combo2.AddItem "115200"
         
          On Error GoTo Err    '出错处理
       With MSComm1
         .InputMode = comInputModeText '设置数据接收按字符串方式
         .InputLen = 0          '读取缓冲区的所有内容
         .RThreshold = 1       '每接收到1个字节就触发一次OnComm事件
       End With
       Exit Sub
Err:        MsgBox "打开端口出错!", vbExclamation
               
         
End Sub
Private Sub MSComm1_OnComm()
Text2.Text = Text2.Text & MSComm1.Input '& 是字符串连接的运算符'
End Sub







点评

接口怎么定义的啊  发表于 2014-9-20 00:29
回复

使用道具 举报

沙发
发表于 2012-3-14 23:01:39 | 只看该作者
看你的硬件,好像做的号夸张
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2012-3-15 19:39:18 | 只看该作者
当时就是一个个模块绑在一起!
回复 支持 反对

使用道具 举报

地板
发表于 2012-3-16 16:30:57 | 只看该作者
帮顶
回复 支持 反对

使用道具 举报

5#
发表于 2012-3-16 23:14:49 | 只看该作者
蓝牙的车子我也做了!
只是不好玩
回复 支持 反对

使用道具 举报

6#
发表于 2012-4-7 20:49:42 | 只看该作者
这小车好像不能调速啊
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2012-4-12 14:19:00 | 只看该作者
scm5187 发表于 2012-4-7 20:49
这小车好像不能调速啊

是的还不能调速
回复 支持 反对

使用道具 举报

8#
发表于 2012-5-8 20:01:50 | 只看该作者
我们也在做这个,大一新生,菜鸟求指点
回复 支持 反对

使用道具 举报

9#
发表于 2012-5-8 20:37:13 | 只看该作者
为啥我下了蓝牙PC不能用呀
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2012-5-9 08:03:09 | 只看该作者
你先关闭杀毒软件,可以运行的
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2025-7-31 05:09 , Processed in 1.151664 second(s), 22 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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