资源简介
功能描述:通过nrf24l01无线控制小车,包括加速,减速,刹车,转向。
优点:模块化好,易于裁剪
代码片段和文件信息
#include “CarControl.h“
unsigned int leftCount = 15;
unsigned int rightCount = 15;
unsigned int times = 0;
unsigned char direct = 0;
unsigned char startOrstop = 0;
//EN1、EN2
sbit leftpwm = P1^0;
sbit rightpwm = P1^1;
//IN1、IN2
sbit leftZ = P1^2;
sbit leftF = P1^3;
//IN1、IN2
sbit rightZ = P1^4;
sbit rightF = P1^5;
//左轮加速
void addleftSpeed()
{
if (leftCount < 20)
leftCount ++;
}
//左轮减速
void cutleftSpeed()
{
if (leftCount > 0)
leftCount --;
else
leftCount = 0;
}
//右轮加速
void addrightSpeed()
{
if (rightCount < 20)
rightCount ++;
}
//右轮减速
void cutrightSpeed()
{
if (rightCount > 0)
rightCount --;
else
rightCount = 0;
}
//小车模式
void carMode(unsigned int mode)
{
switch(mode)
{
case 0: //前进
leftZ = 0;leftF = 1;
rightZ = 0;rightF = 1;break;
case 1: //后退
leftZ = 1;leftF = 0;
rightZ = 1;rightF = 0;break;
case 2: //制动
leftZ = 0;leftF = 0;
rightZ = 0;rightF = 0;break;
default :break;
}
}
//更改小车方向(前进、后退)
void changeDirect()
{
if (startOrstop)
{
direct ++;
direct %= 2;
carMode(direct);
}
}
//设置启动停止(停止、启动)
void changeStartOrstop()
{
startOrstop ++;
startOrstop %=2;
if (startOrstop)
carMode(direct);
else
carMode(2);
}
//PWM,定时器波初始化
void timeirqInit()
{
TMOD |= 0x01;
// TMOD &= 0xF0; //设置定时器模式
TH0= (65536-1000)/256;
TL0= (65536-1000)%256;
TR0= 1;
ET0= 1;
EA= 1;
}
//定时器中断,实现小车速度控制
void timer0() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
times ++;
if (times > leftCount)
leftpwm = 0;
else
leftpwm = 1;
if (times > rightCount)
rightpwm = 0;
else
rightpwm = 1;
if (times >= 20)
times = 0;
}
//小车模式速度初始化
void carInit()
{
timeirqInit();
carMode(2);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 613 2017-05-07 20:41 carc.uvmpw
目录 0 2017-05-22 21:36 小车\
文件 36608 2017-05-22 21:28 小车\car
文件 788 2017-05-22 21:36 小车\car.build_log.htm
文件 8321 2017-05-22 21:28 小车\car.hex
文件 120 2017-05-22 21:28 小车\car.lnp
文件 39373 2017-05-22 21:28 小车\car.M51
文件 71334 2017-05-22 21:36 小车\car.uvgui.wen
文件 71336 2017-05-21 15:52 小车\car.uvgui_wen.bak
文件 7494 2017-05-22 21:36 小车\car.uvopt
文件 14475 2017-05-07 20:41 小车\car.uvproj
文件 1894 2017-05-21 15:52 小车\CarControl.c
文件 272 2017-05-07 17:14 小车\CarControl.h
文件 5334 2017-05-22 21:28 小车\CarControl.LST
文件 6407 2017-05-22 21:28 小车\CarControl.OBJ
文件 40 2017-05-22 21:28 小车\CarControl.__i
文件 1596 2017-05-18 13:13 小车\main.c
文件 4838 2017-05-21 15:51 小车\main.LST
文件 9466 2017-05-21 15:51 小车\main.OBJ
文件 34 2017-05-21 15:51 小车\main.__i
文件 4402 2017-05-07 14:23 小车\nrf.c
文件 3970 2017-05-07 16:43 小车\nrf.h
文件 9478 2017-05-21 15:51 小车\nrf.lst
文件 15305 2017-05-21 15:51 小车\nrf.obj
文件 78 2017-05-21 15:51 小车\nrf.__i
文件 6376 2012-12-10 10:20 小车\STARTUP.A51
文件 14049 2017-05-06 12:53 小车\STARTUP.LST
文件 749 2017-05-06 12:53 小车\STARTUP.OBJ
文件 639 2017-05-22 21:36 小车\stepMotor.c
文件 148 2017-05-06 18:26 小车\stepMotor.h
文件 2451 2017-05-22 21:28 小车\stepMotor.LST
............此处省略36个文件信息
- 上一篇:武汉大学Rost虚拟学习团队提供的语料库
- 下一篇:图片放大镜插件
相关资源
- 基于51单片机的DDS函数信号发生器的设
- 51单片机定时器初值计算器
- 单片机光敏电阻源码
- 基于51单片机的自感应风扇系统prote
- 电子万年历毕业设计基于AT89C51单片机
- 单片机MC9S12XS128串口接收指令控制小车
- 51单片机封装库
- C51单片机密码锁4×4矩阵键盘+LCD1602液
- 基于51单片机的万年历程序
- 基于51单片机的lcd篮球计分器程序
- 51单片机 等精度测频率 LCD显示 C程序
- 基于51单片机的锯齿波&正弦波发生器
- 利用51单片机实现了红外发射以及接受
- 51单片机LED16X16点阵滚动显示
- 基于51单片机的空调遥控器C源程序
- 51单片机控制RDA5807收音机模块
- 基于C51单片机的声光控灯
- 51单片机电子门铃设计
- 基于51单片机的 4×4键盘及8位数码管显
- 基于51单片机的霹雳灯
- 51单片机贪吃蛇游戏程序
- 51单片机控制57步进电机启停,正反转
- 51单片机实现Modbus从机程序
- 51单片机看门狗设计
- 51单片机开发的韦根接受的C程序;支
- 51单片机ADXL345三轴加速度传感器源代
- 51单片机1602万年历矩阵按键
- 超声波测距仪
- STC89C52RC使用电位器控制WS2812B调光
- C51单片机电子琴
评论
共有 条评论