#include <REGX52.H>
#include "MOTOR.h"
sbit HLE = P0^0;
sbit HRE = P0^5;
sbit BLE = P3^2;
sbit BRE = P3^7;
sbit PWM = P1^7;//舵机
unsigned char counter,speed = 0;
//unsigned char counter2,speed2 = 0;
unsigned char jishu,angle;//舵机
void Timer0Init() //100微秒@11.0592MHz
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0xA4; //设置定时初值
TH0 = 0xFF; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //定时器中断允许
EA = 1; //定时器开关
PT0 = 0; //中断优先级
}
void Timer0_Routine() interrupt 1 //中断
{
TL0 = 0xA4; //设置定时初值
TH0 = 0xFF; //设置定时初值
// speed = 20;
counter++;
if (counter >= 100)
{
counter = 0;
}
if (counter < speed)
{
HLE = 1;
HRE = 1;
BLE = 1;
BRE = 1;
}
else
{
HLE = 0;
HRE = 0;
BLE = 0;
BRE = 0;
}
//--------------------------舵机
jishu++;
if(jishu<=200)
{
if(jishu<=angle)
{
PWM = 1;
}
else
{
PWM = 0;
}
}
else
{
jishu = 0;
PWM = 0;
}
}
void duoji(unsigned char num)//舵机
{
if(num==1){jishu=0;angle=5;} //右
if(num==2){jishu=0;angle=7;}
if(num==3){jishu=0;angle=9;}
if(num==4){jishu=0;angle=12;}//中
if(num==5){jishu=0;angle=14;}
if(num==6){jishu=0;angle=16;}
if(num==7){jishu=0;angle=20;}//左
}
void car_go(unsigned char SPEED)
{
speed = SPEED;
motor_HL_GO();
motor_HR_GO();
motor_BL_GO();
motor_BR_GO();
}
void car_back(unsigned char SPEED)
{
speed = SPEED;
motor_HL_BACK();
motor_HR_BACK();
motor_BL_BACK();
motor_BR_BACK();
}
void car_left(unsigned char SPEED)
{
speed = SPEED;
motor_HL_STOP();
motor_HR_GO();
motor_BL_STOP();
motor_BR_GO();
}
void car_right(unsigned char SPEED)
{
speed = SPEED;
motor_HL_GO();
motor_HR_STOP();
motor_BL_GO();
motor_BR_STOP();
}
void car_stop(unsigned char SPEED)
{
speed = SPEED;
motor_HL_STOP();
motor_HR_STOP();
motor_BL_STOP();
motor_BR_STOP();
}
void car_left_still(unsigned char SPEED)
{
speed = SPEED;
motor_HL_BACK();
motor_HR_GO();
motor_BL_BACK();
motor_BR_GO();
}
void car_right_still(unsigned char SPEED)
{
speed = SPEED;
motor_HL_GO();
motor_HR_BACK();
motor_BL_GO();
motor_BR_BACK();
}
void move(unsigned char num,unsigned char speed1)
{
if(num == 0){car_stop(0); }
if(num == 1){car_go(speed1);}
if(num == 2){car_back(speed1);}
if(num == 3){car_left(speed1);}
if(num == 4){car_right(speed1);}
if(num == 5){car_left_still(speed1);}
if(num == 6){car_right_still(speed1);}
}
//void move(unsigned char num)
//{
// unsigned char m;
//// unsigned char speed1;
// m = num;
//// speed1 = speed2;
////
// switch (m)
// {
// case'0':car_stop(0);
// break;
// case'1':car_go(30);
// break;
// case'2':car_back(30);
// break;
// case'3':car_left(30);
// break;
// case'4':car_right(30);
// break;
// case'5':car_left_still(30);
// break;
// case'6':car_right_still(30);
// break;
// }
//}
//---------------------------------------------------
//void Timer0Init() //100微秒@11.0592MHz
//{
// TMOD &= 0xF0; //设置定时器模式
// TMOD |= 0x01; //设置定时器模式
// TL0 = 0xA4; //设置定时初值
// TH0 = 0xFF; //设置定时初值
// TF0 = 0; //清除TF0标志
// TR0 = 1; //定时器0开始计时
// ET0 = 1; //定时器中断允许
// EA = 1; //定时器开关
// PT0 = 0; //中断优先级
//}
//void Timer0_Routine2() interrupt 1 //中断
//{
// TL0 = 0xA4; //设置定时初值
// TH0 = 0xFF; //设置定时初值
//// speed2 = 20;
// counter2++;
// if (counter2 >= 100)
// {
// counter2 = 0;
// }
// if (counter2 < speed2)
// {
// HLE = 1;
// HRE = 1;
// BLE = 1;
// BRE = 1;
// }
// else
// {
// HLE = 0;
// HRE = 0;
// BLE = 0;
// BRE = 0;
// }
//}
//void car_go2(unsigned char SPEED)
//{
// speed2 = SPEED;
// motor_HL_GO2();
// motor_HR_GO2();
// motor_BL_GO2();
// motor_BR_GO2();
//}
//void car_back2(unsigned char SPEED)
//{
// speed2 = SPEED;
// motor_HL_BACK2();
// motor_HR_BACK2();
// motor_BL_BACK2();
// motor_BR_BACK2();
//}
//void car_left2(unsigned char SPEED)
//{
// speed2 = SPEED;
// motor_HL_STOP2();
// motor_HR_GO2();
// motor_BL_STOP2();
// motor_BR_GO2();
//}
//void car_right2(unsigned char SPEED)
//{
// speed2 = SPEED;
// motor_HL_GO2();
// motor_HR_STOP2();
// motor_BL_GO2();
// motor_BR_STOP2();
//}
//void car_stop2(unsigned char SPEED)
//{
// speed2 = SPEED;
// motor_HL_STOP2();
// motor_HR_STOP2();
// motor_BL_STOP2();
// motor_BR_STOP2();
//}
//void car_left_still2(unsigned char SPEED)
//{
// speed2 = SPEED;
// motor_HL_BACK2();
// motor_HR_GO2();
// motor_BL_BACK2();
// motor_BR_GO2();
//}
//void car_right_still2(unsigned char SPEED)
//{
// speed2 = SPEED;
// motor_HL_GO2();
// motor_HR_BACK2();
// motor_BL_GO2();
// motor_BR_BACK2();
//}
//void move2(unsigned char num,unsigned char speed1)
//{
// if(num == 0){car_stop2(0); }
// if(num == 1){car_go2(speed1);}
// if(num == 2){car_back2(speed1);}
// if(num == 3){car_left2(speed1);}
// if(num == 4){car_right2(speed1);}
// if(num == 5){car_left_still2(speed1);}
// if(num == 6){car_right_still2(speed1);}
//}
没有合适的资源?快使用搜索试试~ 我知道了~
基于51单片机的遥控+自动避障小车程序
共418个文件
c:79个
lst:74个
obj:72个
需积分: 0 3 下载量 60 浏览量
2023-04-16
20:18:06
上传
评论 1
收藏 684KB ZIP 举报
温馨提示
51单片机学习记录,通过小车制作提高自己对51单片机的了解。 文件中包括调试过程中的每一个阶段的功能程序以及最后的功能整合后的程序。 所写程序较为简单基础,对于初学51单片机以及想要制作51智能小车的初学者会有所帮助
资源推荐
资源详情
资源评论
收起资源包目录
基于51单片机的遥控+自动避障小车程序 (418个子文件)
project.uvgui.29696 94KB
project.uvgui.29696 92KB
project.uvgui.29696 92KB
project.uvgui.29696 91KB
project.uvgui.29696 91KB
project.uvgui.29696 91KB
project.uvgui.29696 91KB
project.uvgui.29696 90KB
project.uvgui.29696 90KB
project.uvgui.29696 90KB
project.uvgui.29696 90KB
project.uvgui.29696 90KB
project.uvgui.29696 90KB
project.uvgui.29696 89KB
project.uvgui.29696 89KB
project.uvgui.29696 89KB
CarMove.__i 125B
move.__i 116B
Uart.__i 116B
move.c 5KB
move.c 5KB
move.c 5KB
main.c 3KB
main.c 3KB
move.c 3KB
move.c 3KB
main.c 3KB
move.c 2KB
move.c 2KB
move.c 2KB
move.c 2KB
move.c 2KB
move.c 2KB
move.c 2KB
main.c 2KB
main.c 2KB
main.c 2KB
gensui.c 2KB
CarMove.c 2KB
CarMove.c 2KB
gensui.c 2KB
gensui.c 2KB
gensui.c 2KB
motor.c 2KB
motor.c 2KB
motor.c 2KB
bizhang.c 1KB
bizhang.c 1KB
bizhang.c 1KB
bizhang.c 1KB
main.c 1KB
main.c 1KB
main.c 1KB
bizhang.c 1KB
bizhang.c 1KB
main.c 1004B
gensui.c 996B
chaoshengbo.c 954B
chaoshengbo.c 841B
chaoshengbo.c 839B
chaoshengbo.c 833B
chaoshengbo.c 823B
chaoshengbo.c 823B
chaoshengbo.c 823B
motor.c 818B
motor.c 818B
motor.c 818B
motor.c 818B
motor.c 818B
motor.c 818B
motor.c 818B
motor.c 818B
motor.c 818B
duoji.c 801B
duoji.c 801B
duoji.c 788B
chaoshengbo.c 785B
main.c 725B
Timer0.c 716B
UART.c 549B
bizhang.c 371B
bizhang.c 371B
main.c 284B
main.c 284B
Delay.c 153B
Delay.c 153B
Delay.c 153B
Delay.c 153B
Delay.c 153B
Delay.c 153B
Delay.c 153B
Delay.c 153B
Delay.c 153B
Delay.c 153B
Delay.c 153B
Delay.c 153B
main.c 141B
main.c 131B
MOVE.h 873B
MOVE.h 841B
共 418 条
- 1
- 2
- 3
- 4
- 5
资源评论
仰望星空873
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
- 上传下载手机电影下载-mobiledy.rar
- 响应式旅游网站源码下载 马尔代夫旅游网站.rar
- CMS小涴熊漫画连载系统漫画网站源码 带采集API.rar
- 福袋点点.apk
- 基于STM32的电子秤采用0.96寸OLED显示UI界面源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功