• 大小: 2.06MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-08-11
  • 语言: 其他
  • 标签: ps2  stm32  

资源简介

这个为ps2手柄资料,里面包含arduino,51单片机,stm32的例子,有控制舵机的函数,控制电机的函数,等等。库已经封装好。

资源截图

代码片段和文件信息

#include   
#include 
#include 
#include 
/*********************************************************
Copyright (C) 2015-2025 ZYRobot.
湖南智宇科教设备有限公司
www.hnzhiyu.cn
File:ps2测试程序
Author:zhulin    Version:1.0     Data:2017/05/30

**********************************************************/  

#define  Fosc  22118400     //晶振频率

#define uchar unsigned char
#define uint unsigned int

sbit  Speaker=P1^1;
sbit  Led=P1^0;

sbit  DATA=P3^4; //手柄接口
sbit  CMND=P3^5;
sbit  ATT=P3^6;
sbit  CLK=P3^7;

/********手柄定义变量*********/
uchar code scan[9]={0x010x420x000x000x000x000x000x000x00};
uchar  out[9];  
/********************************************************************
* 名称 : void delayms(uint xms)
* 功能 : 延时
* 输入 : 有
* 输出 : 无
***********************************************************************/
void delayms(uint xms)
 {
   uint ij;
   for(i=xms;i>0;i--)
      for(j=1700;j>0;j--);
 }
/********************************************************************
* 名称 : void uart_init()
* 功能 : 串口设置
* 输入 : 无
* 输出 : 无
***********************************************************************/
void uart_init()
{
SCON=0x50;//8位发送,无奇偶校验位
BRT=0xfa;//BRT=256-Fosc/32/9600/12;
AUXR=0x91;//选择并打开独立计数器
    EA=1; // 打开总中断开关
    ES=1; // 打开串口中断开关 
}
/********************************************************************
* 名称 : uart_sendata(uchar n)
* 功能 : 发送字节
* 输入 : 有
* 输出 : 无
***********************************************************************/
void uart_sendata(uchar n)
{
    ES=0;
TI=0;
    SBUF = n;
while(!TI);                   //如果发送完毕,硬件会置位TI
TI=0;
ES=1;
}

void delay(uint n)  //delay(x)=(2.5+x)us; 
{
uint i;
for(i=0;i// _nop_();//每个_nop_();大概0.1微秒
}
void psin(uchar command)//手柄发送子程序
{
    uchar i;
    for(i=0;i<=7;i++)     //逐位接收     
    {
 if(command&0x01)  //此if下5行语句用时1us
        CMND=1;
     else
        CMND=0;
     command=command>>1;
  _nop_();
_nop_();
     CLK=0;
     delay(10); 
     CLK=1;
 delay(3);
    }
CMND=1;
}
uchar scanout(uchar command)//手柄发送子程序
{
    uchar ij=1;
uchar res=0; 
    for(i=0;i<=7;i++)     //逐位接收     
    {
 if(command&0x01)
        CMND=1;
     else
        CMND=0;
     command=command>>1;
  _nop_();
_nop_();
     CLK=0;
     delay(10);
 if(DATA) res=res+j;
     j=j<<1; 
 CLK=1;
 delay(3);  
    }
    CMND=1;
    return res;
}
 void Read_PS2(void)//手柄读取程序
{
 uchar i;
     ATT=0;
 for(i=0;i<9;i++) //扫描按键
        {
         out[i]=scanout(scan[i]);
 } 
     ATT=1;       
     for(i=0;i<9;i++)
        {
 uart_sendata(0x30);
 uart_sendata(0x78);
 if(out[i]/16<10) uart_sendata(out[i]/16+0x30);
 else uart_sendata(out[i]/16+0x37);
 if(out[i]%16<10) uart_sendata(out[i]%16+0x30);
 else uart_sendata(out[i]%16+0x37);
         uart_sendata(‘ ‘);
 uart_sendata(‘ ‘);
}
uart_sendata(0x0d);
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4048  2017-07-04 18:04  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\main.c

     文件       9765  2017-07-04 17:56  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\main.LST

     文件       1187  2017-02-17 15:42  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\PS2.hex

     文件         55  2017-02-17 15:42  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\PS2.lnp

     文件      11040  2017-02-17 15:42  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\PS2.M51

     文件        228  2017-07-04 18:04  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\PS2.plg

     文件      70719  2017-07-05 17:39  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\PS2.uvgui.Administrator

     文件       5009  2017-07-05 17:39  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\PS2.uvopt

     文件      13968  2017-07-05 17:39  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\PS2.uvproj

     文件      55510  2017-07-04 17:57  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\PS2_uvopt.bak

     文件      14038  2017-07-04 17:47  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\PS2_uvproj.bak

     文件       6376  2009-05-07 14:37  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\STARTUP.A51

     文件      14051  2017-07-04 17:56  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\STARTUP.LST

     文件        749  2017-07-04 17:56  PS2无线手柄遥控器资料\PS2-51例程\PS2—STC12C5A60S2\STARTUP.OBJ

     文件       4108  2013-07-07 10:18  PS2无线手柄遥控器资料\PS2-Arduino-lib\PS2X_lib\examples\PS2XMouse\PS2XMouse.ino

     文件       7255  2013-07-07 10:18  PS2无线手柄遥控器资料\PS2-Arduino-lib\PS2X_lib\examples\PS2X_Example\PS2X_Example.ino

     文件       1604  2013-07-07 10:18  PS2无线手柄遥控器资料\PS2-Arduino-lib\PS2X_lib\keywords.txt

     文件      13161  2013-07-07 10:18  PS2无线手柄遥控器资料\PS2-Arduino-lib\PS2X_lib\PS2X_lib.cpp

     文件       7480  2013-07-07 10:18  PS2无线手柄遥控器资料\PS2-Arduino-lib\PS2X_lib\PS2X_lib.h

     文件        399  2015-03-12 08:49  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\keilkilll.bat

     文件        931  2015-05-06 23:18  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\Libraries\KEY\key.c

     文件        483  2015-05-06 23:18  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\Libraries\KEY\key.h

     文件        606  2017-07-05 17:38  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\Libraries\LED\led.c

     文件        479  2015-05-06 23:18  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\Libraries\LED\led.h

     文件       2805  2017-07-05 17:38  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\Libraries\PS2\pstwo.c

     文件       1752  2015-08-25 14:05  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\Libraries\PS2\pstwo.h

     文件       1557  2017-07-05 17:38  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\Libraries\SERVO\servo.c

     文件        612  2015-05-28 15:51  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\Libraries\SERVO\servo.h

     文件        298  2015-07-21 09:25  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\README.TXT

     文件       2038  2011-01-12 20:34  PS2无线手柄遥控器资料\PS2-stm32例程\ps2与舵机\SYSTEM\delay\delay.c

............此处省略202个文件信息

评论

共有 条评论