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

 找回密码
 立即注册
楼主: liuviking

51单片机版WIFI小车下位机程序(通信协议版)

  [复制链接]
 楼主| 发表于 2013-1-8 21:38:26 | 显示全部楼层
weiyashuma 发表于 2013-1-8 15:24
刚学习单片机和C程序。如果要接入L298N控制两马达,定义控制口为 INT1  = P1^0;   INT2  = P1^1;  INT3  =  ...

INT1,INT2控制1号电机,比如INT1=0,INT2=1前进,INT1=1,INT2=0就后退,另外两个引脚控制2号电机,原理也是一样的,给引脚赋高低电平即可。
回复 支持 反对

使用道具 举报

发表于 2013-1-9 01:00:08 | 显示全部楼层
liuviking 发表于 2013-1-8 21:38
INT1,INT2控制1号电机,比如INT1=0,INT2=1前进,INT1=1,INT2=0就后退,另外两个引脚控制2号电机,原理也 ...

这样的话在程序开头给定义好了引脚的功能之后,在马达各个动作模块是不是要加入相对应的引脚电平等程序调用改动作函数啊!例如前进的电平是       
INT1=0;                       
INT2=1;                       
INT3=0;                       
INT4=1;               
就要在马达的前进模块里加入
/********************************************************************
* 名称 :Moto_Forward()
* 功能 : 电机1、2启动,都是前进,整车表现为前进。
***********************************************************************/
void Moto_Forward()
{  
   P1= 0x0a;
INT1=0;                       
INT2=1;                       
INT3=0;                       
INT4=1;       
   Delay_1ms(100);
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-9 01:57:27 | 显示全部楼层
weiyashuma 发表于 2013-1-9 01:00
这样的话在程序开头给定义好了引脚的功能之后,在马达各个动作模块是不是要加入相对应的引脚电平等程序调 ...

对!
回复 支持 反对

使用道具 举报

发表于 2013-1-9 17:15:41 | 显示全部楼层
liuviking 发表于 2013-1-9 01:57
对!

很感谢你的回复,可以再给我解释一下P1= 0x0a;这句语句的作用吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-9 18:00:11 | 显示全部楼层
weiyashuma 发表于 2013-1-9 17:15
很感谢你的回复,可以再给我解释一下P1= 0x0a;这句语句的作用吗?

把16进制的0x0a换算成二进制,再对应一下单片机引脚就明白了,是整体赋值的形式。
回复 支持 反对

使用道具 举报

发表于 2013-1-10 12:21:10 | 显示全部楼层
liuviking 发表于 2013-1-9 18:00
把16进制的0x0a换算成二进制,再对应一下单片机引脚就明白了,是整体赋值的形式。

刚入门菜鸟,还是没能看懂!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-10 19:37:56 | 显示全部楼层
weiyashuma 发表于 2013-1-10 12:21
刚入门菜鸟,还是没能看懂!


比如换算过来是11110000,那么就是P10=0,P11=0,P12=0,P13=0,P14=0,P15=1,P16=1,P17、P18都是1,了解?
回复 支持 反对

使用道具 举报

发表于 2013-1-10 19:44:30 | 显示全部楼层
liuviking 发表于 2013-1-10 19:37
比如换算过来是11110000,那么就是P10=0,P11=0,P12=0,P13=0,P14=0,P15=1,P16=1,P17、P18都是1,了 ...

原来还能这样用啊,大大这样一说也就明白了!很感谢你的回答,感觉又学到很多东西了
回复 支持 反对

使用道具 举报

发表于 2013-1-10 19:54:46 | 显示全部楼层
P1=0X0a;换了之后就是P10=0,P11=1,P12=0,P13=1, 也就是输出0101就是2个马达前进的电平了。那按照你的程序L298N就直接接在单片机的P1.0 P1.1 P1.2 P1.3就行了对吧!还是要从根本上了解才是学习到了啊。很感谢你的回答!
回复 支持 反对

使用道具 举报

发表于 2013-2-3 18:35:03 来自手机 | 显示全部楼层
串口中断接收部分,程序不严谨,包括五位数据的程序,接收部分,接收数组是五个二进制数,如果,中间因误信号多插入个数据,就会造成临时接收数组溢出,而且会造成后面数据都出错。我觉得可能有这个问题。。。不知道是不是问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2022-7-7 05:38 , Processed in 1.159828 second(s), 16 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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