/***************51前轮转向智能小车PS2手柄控制 ****************
功能:51前轮转向智能小车PS2手柄控制。
小车上电后,
如果电池电压小于门槛值,小车进行蜂鸣器响,LED亮,这时应该给电池充电。
如果电池电压足够,按下控制板上的K1键,可用PS2手柄控制小车的运动。
液晶上会显示提示信息。
烧写程序时,选择单片机内部时钟,频率为22.1184M。
烧写程序说明:
1、烧写程序的时候是USB转TTL程序烧写器给单片机烧写程序:
USB转TTL程序烧写器的GND接控制板程序烧写接口的G
USB转TTL程序烧写器的RXD接控制板程序烧写接口的T
USB转TTL程序烧写器的TXD接控制板程序烧写接口的R
2、烧写程序的时候,不要在控制板的PS2信号接收器插座上
插PS2信号接收器。
3、具体的烧写过程见视频教程。
实验接线说明:
1、在控制板上接好两个后轮的电机线。
2、在控制板上连接好液晶导线。
3、将转向舵机导线插到电源板的对应1号舵机接口上
(舵机的棕色导线对应舵机接口的G;舵机的红色导线对应舵机接口的V;
舵机的橙色导线对应舵机接口的S),并将舵机信号线(橙色导线)通过
杜邦线转接到控制板的A型扩展接口的P2.1上。
4、在控制板的控制板的PS2信号接收器插座上插PS2信号接收器。。
5、烧写好程序后将电源线连接好(电池盒的DC电源线插到电源板的POWER_IN
电源插座,电源板的POWER_OUT电源插座通过双公头DC导线与控制板的
DC电源插座相连接)。
6、具体的实验过程见视频教程。
**************************************************************/
#include "stc15.h" //包含头文件stc15.h
#include<intrins.h> //包含头文件intrins.h
#define LCD_Data P5 //定义LCD数据口
#define Busy 0x80 //LCD忙
#define ADC_POWER 0x80 //将0x80宏定义成ADC_POWER
#define ADC_FLAG 0x10 //将0x10宏定义成ADC_FLAG
#define ADC_START 0x08 //将0x08宏定义成ADC_START
#define ADC_SPEEDLL 0x03 //将0x03宏定义成ADC_SPEEDLL
#define ADC_SPEEDL 0x20 //将0x20宏定义成ADC_SPEEDL
#define ADC_SPEEDH 0x40 //将0x40宏定义成ADC_SPEEDH
#define ADC_SPEEDHH 0x60 //将0x60宏定义成ADC_SPEEDHH
#define warning_voltage 7.2 //报警电压值
#define START_CMD 0x01 //开始命令
#define ASK_DAT_CMD 0x42 //获取数据命令
#define Dj_Left1 2 //前轮左转角度,这个角度值很大,有时舵机不能正常归位,最好不要用。
#define Dj_Left2 3 //前轮左转角度。
#define Dj_Left3 4 //前轮左转角度。
#define Dj_Left4 5 //前轮左转角度。
#define Dj_Middle 6 //前轮回到中间位置。
#define Dj_Right4 7 //前轮右转角度。
#define Dj_Right3 8 //前轮右转角度。
#define Dj_Right2 9 //前轮右转角度。
#define Dj_Right1 10 //前轮右转角度,这个角度值很大,有时舵机不能正常归位,最好不要用。
typedef bit BOOL; //定义BOOL变量
sbit LCD_RS = P3^5; //定义LCD的RS管脚
sbit LCD_RW = P3^6; //定义LCD的RW管脚
sbit LCD_E = P3^7; //定义LCD的E管脚
sbit LCD_D7 = P5^3; //定义LCD的D7管脚
sbit ControlPort = P2^1; //转向舵机信号端口
sbit BEEP = P1^0; //定义LCD的BEEP管脚
sbit LED = P1^1; //定义LCD的LED管脚
sbit K1 = P1^4; //定义LCD的K1管脚
sbit K2 = P1^2; //定义LCD的K1管脚
sbit U5_En1 = P0^0; //定义电机驱动芯片L293D(U5)的EN1管脚
sbit U5_In1 = P0^1; //定义电机驱动芯片L293D(U5)的IN1管脚
sbit U5_In2 = P0^2; //定义电机驱动芯片L293D(U5)的IN2管脚
sbit U5_En2 = P0^3; //定义电机驱动芯片L293D(U5)的EN2管脚
sbit U5_In3 = P0^4; //定义电机驱动芯片L293D(U5)的IN3管脚
sbit U5_In4 = P0^5; //定义电机驱动芯片L293D(U5)的IN4管脚
sbit U6_En1 = P0^6; //定义电机驱动芯片L293D(U6)的EN1管脚
sbit U6_In1 = P0^7; //定义电机驱动芯片L293D(U6)的IN1管脚
sbit U6_In2 = P2^2; //定义电机驱动芯片L293D(U6)的IN2管脚
sbit U6_En2 = P2^3; //定义电机驱动芯片L293D(U6)的EN2管脚
sbit U6_In3 = P2^4; //定义电机驱动芯片L293D(U6)的IN3管脚
sbit U6_In4 = P2^5; //定义电机驱动芯片L293D(U6)的IN4管脚
sbit U7_En1 = P4^0; //定义电机驱动芯片L293D(U7)的EN1管脚
sbit U7_In1 = P4^1; //定义电机驱动芯片L293D(U7)的IN1管脚
sbit U7_In2 = P4^3; //定义电机驱动芯片L293D(U7)的IN2管脚
sbit U7_En2 = P4^4; //定义电机驱动芯片L293D(U7)的EN2管脚
sbit U7_In3 = P4^6; //定义电机驱动芯片L293D(U7)的IN3管脚
sbit U7_In4 = P4^7; //定义电机驱动芯片L293D(U7)的IN4管脚
sbit PS2_DAT = P4^2; //PS2信号接收器DAT管脚定义
sbit PS2_CMD = P4^5; //PS2信号接收器CMD管脚定义
sbit PS2_ATT = P2^7; //PS2信号接收器ATT管脚定义
sbit PS2_CLK = P2^6; //PS2信号接收器CLK管脚定义
unsigned char code start[] = {"Initialization"}; //定义LCD显示内容
unsigned char code voltage[] = {"Voltage: . V"}; //定义LCD显示内容
unsigned char code PowerLow[] = {"Power Low"}; //定义LCD显示内容
unsigned char code PressKey1[] = {"Press K1 Start"}; //定义LCD显示内容
unsigned char code Space[] = {" "}; //定义LCD显示内容(空白)
unsigned char code state[] = {"State"}; //定义LCD显示内容
unsigned char code Forward1[] = {"Forward"}; //定义LCD显示内容
unsigned char code Back1[] = {"Back"}; //定义LCD显示内容
unsigned char code Left1[] = {"Left"}; //定义LCD显示内容
unsigned char code Right1[] = {"Right"}; //定义LCD显示内容
unsigned char code LeftForward1[] = {"LeftForward"}; //定义LCD显示内容
unsigned char code RightBack1[] = {"RightBack"}; //定义LCD显示内容
unsigned char code RightForward1[] = {"RightForward"}; //定义LCD显示内容
unsigned char code LeftBack1[] = {"LeftBack"}; //定义LCD显示内容
unsigned char code Stop1[] = {"Stop"}; //定义LCD显示内容
unsigned char psx_buf[9]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //存储手柄的数据
void Delay5Ms(void); //延时函数
void delay(unsigned int t); //delay延时函数
void delay_us(unsigned int t); //delay_us延时函数
void delay_ms(unsigned int t); //delay_ms延时函数
void WriteDataLCD(unsigned char WDLCD); //LCD写数据函数
void WriteCommandLCD(unsigned char WCLCD,BuysC); //LCD写命令函数
unsigned char ReadDataLCD(void); //LCD读数据函数
unsigned char ReadStatusLCD(void); //LCD读状态函数
void LCDInit(void); //LCD初始化
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); //LCD显示一个字符
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData); //LCD显示一个字符串
void ADC_init(void); //AD初始化
unsigned char GetADCResult(unsigned char ch); //获取AD值
void LcdGpio_Init(void); //LCD的IO口初始化
void BeepGpio_Init(void); //BEEP的IO口初始化
void LedGpio_Init(void); //LED的IO口初始化
void KeyGpio_Init(void); //KEY的IO口初始化
void MotorGpio_Init(void); //电机驱动芯片的IO口初始化
void DjGpio_Init(void); //舵机控制信号IO口初始化
void Ps2Gpio_Init(void); //PS2信号接收器的IO口初始化
void Beep_On(void); //蜂鸣器响
void Beep_Off(void); //蜂鸣器不响
void Led_On(void); //LED亮
void Led_Off(void); //LED不亮
void Voltage_Warning(void); //测量电池电压
void KeySacn(void); //按键扫描
void L293d_Init(void); //L293D管脚初始化
void ZHL_ZhenZhuan(void); //左后轮正转
void YHL_ZhenZhuan(void); //右后轮正转
void ZHL_FanZhuan(void); //左后轮后转
void YHL_FanZhuan(void); //右后轮后转
void ZHL_Ting(void); //左后轮停
void YHL_Ting(void); //�
没有合适的资源?快使用搜索试试~ 我知道了~
51单片机(STC15W4K56S4)前轮舵机转向智能小车PS2手柄控制程序源代码.rar
共20个文件
m51:6个
plg:2个
bak:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 109 浏览量
2021-12-12
10:23:57
上传
评论 2
收藏 118KB RAR 举报
温馨提示
该程序源代码用于51单片机(STC15W4K56S4)前轮舵机转向智能小车PS2手柄控制实验。 1、源代码开发软件:keil4; 2、程序对应处理器是:STC15W4K56S4; 3、智能小车电机驱动芯片是:L293D; 4、智能小车电机为:TT直流减速电机; 5、需要用到1602液晶; 6、需要用到舵机; 7、需要用到无线PS2遥控手柄; 该程序源代码在本人STC15W4K56S4单片机前轮舵机转向智能小车上亲测可用。
资源推荐
资源详情
资源评论
收起资源包目录
5、51单片机(STC15W4K56S4)前轮舵机转向智能小车PS2手柄控制程序源代码.rar (20个子文件)
5、51单片机(STC15W4K56S4)前轮舵机转向智能小车PS2手柄控制程序源代码
lst
51前轮转向智能小车前进后退循环运动.m51 41KB
STM32单片机前轮转向小车前进后退循环运动.m51 40KB
51前轮转向智能小车正反圆周运动.m51 43KB
51前轮转向智能小车PS2手柄控制.m51 56KB
main.lst 63KB
51前轮转向智能小车圆周运动.m51 42KB
51单片机全向小车各个方向运动.m51 40KB
out
51前轮转向智能小车PS2手柄控制.lnp 110B
51前轮转向智能小车PS2手柄控制.plg 776B
51前轮转向智能小车PS2手柄控制 43KB
51前轮转向智能小车正反圆周运动.plg 6KB
main.obj 49KB
51前轮转向智能小车PS2手柄控制.hex 12KB
obj
inc
STC15Fxxxx.h 33KB
stc15.h 13KB
51前轮转向智能小车PS2手柄控制.uvproj 13KB
51前轮转向智能小车PS2手柄控制.uvopt 71KB
51前轮转向智能小车PS2手柄控制_uvopt.bak 71KB
src
main.c 30KB
51前轮转向智能小车PS2手柄控制_uvproj.bak 13KB
共 20 条
- 1
资源评论
- m0_684044082022-05-22用户下载后在一定时间内未进行评价,系统默认好评。
- m0_671688992022-05-06用户下载后在一定时间内未进行评价,系统默认好评。
嵌入式硬件与代码
- 粉丝: 492
- 资源: 582
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功