版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于增强型51单片机的多机械臂协调控制系统设计概述1.1研究目的及意义机械臂的功能是能模仿人手和臂的行动,可以根据预先设计的固定程序进行拿取、搬运物体或者操作器材的自动化设备。机械臂能够取代工人的重体力劳动用来实现生产的机械化和自动化,可以在恶劣环境下持续工作,保护工人的人身身安全,因而普及应用在机器制造、金属冶炼、电子元器件生产、轻工和原子能等方面。机械人发展为机械臂的初始研究奠定下了基础。20世纪50年代以来,伴随着机器人的研究,机械臂的早期科学研究也开展起来。随着计算机和自动化技术的成长,尤其是1946年世界上首台数字电子计算机被研发出来,计算机技术取得了蓬勃的发展进程,计算机开始逐渐向高运算速率、大储存容量、低造价和小型化的发展方向进步。同时,随着经济社会的发展和人们生活水平的提高,出现的大批量工业规模的生产需要推动了自动化技术的进展,而这又为机械臂的进一步研究打下了基础。而在能源应用领域,随着核能技术展现出了前程远大的发展前景,产生了许多例如核废料等放射性物质,这些物质人工处理风险大,成本高,所以需要被机械臂代替人工进行处理。在当时急需代替人工的机械设备需求背景下,机械手的研制开始在美国进行。在1947年,第一台遥控机械手被开发出来,1948年机械式的主从机械手在美国被研究出来。在1954年,戴沃尔用首次面世的工业机器人的概念,在美国申请了专利。该专利的的概念内容是控制机器人的关节,借助伺服技术。因而使用人的手臂对机器人进行动作示范,机器人能实行动作示范的记录和重现是该专利的主要技术特点,这成为了世界第一例可以动作示范并进行重现的机器人。这种控制方式同样应用于21世纪现代工业机器人。成熟的工业机械手一般有6个自由度,设计机械手要注意的最重要的参数是自由度。拥有越多的自由度,机械手的灵活度越大,可以使用的范围也会越大,也会拥有更复杂的机械结构。而一般专用机械手也至少要有2~3个自由度。1958年美国联合控制公司研制出首台可以应用于铆接的工业机械臂。成熟机械臂产品最早的代表实用机型有1962年美国AMF公司生产的的“VERSTRAN”和美国UNIMATION公司生产的“UNIMATE”等产品。在不断发展中,机械臂有了从功能和适用范围划分的不同种类,例如根据适用领域的不同可分为两类专用的机械手和通用的机械手;根据轨道控制方法的区分可分为点位轨迹机械臂和连续轨迹控制机械臂等。现在全世界大多数的工业生产都有机械臂参与,这促进了商品经济繁荣,工业产品的成本价格下降,使人们的物质生活极大丰富。1.2机械臂研究的国内外现状机械臂的发展状况如下:第一代机械臂,最大的特点是能够记录事先示范的位置和姿势进行重复的运动轨迹行动。它也被称为示范和再现方式的机械臂,或者是T/P方式的机械臂。它是使用规模范围最大的机械臂,目前国内外使用的机械臂多数还是这类工作模式。由于这种工作方式不能有效感应周围环境变化,只能记录事先示范的位置和姿势进行重复的运动轨迹行动,它的适用范围遭到了限制,只能主要应用于材料的搬运、喷漆、电焊等简单的工作,但它也比人工更有效率。例如在1993年戈道斯在乌克兰申请的一款专利,机械臂可以从事一种最小侵入性的手术,例如可以操作手术器械让病人的第二血管到冠状动脉上被缝合。该系统采用了机械臂和手术器械相连的方式进行手术。机械臂能够被操作抓取手术器械并用器械缝合组织的操作装置的末端。这款机械臂专利用一个控制器和主操作手柄结合。外科医生通过使用移动主操作手柄来让末端的操作装置的进行相对移动。第二代机械臂,拥有外在的感应功能模块比如听觉、视觉、触觉等。因为机械臂有了外部的感应能力,所以可以基于工作环境情况的改变来调整自身的动作,进而完成较为一些难度大的生产经营活动。比如李彦涛团队研制出来了一种能够将控制程序和助餐机器人运行机实时连接和下载的办法,可以能够为伤残病人提供最好的服务。这种情况下能够满足机器人的实时控制的需求,根据实际情况来实现各种患者的用餐需求。在Matlab/xPC实时目标环境系统的根据上,助餐机器人拥有了硬件接口模块和上位机软件模块,实现了助餐机器人模块化控制平台,病人拥有了三种人机交互方式:脚踏开关、语音方面识别和智能图像方面识别的。实现了机械手3个关节自由度,有利于进一步控制器设计、运动学方面算法、规划路径的控制算法。又如人脸肖像绘制机器臂,成为了一款智能化的系统。拥有基于智能的图像采集和处理功能、机械控制绘图的能力。不但能够绘制人脸肖像轮廓图,而且还拥有智能识别并拍摄人的脸部照片的功能,并在采集的数据中分析出人脸的肖像轮廓,然后使用分析的数据运行机械臂在画板上画出人脸线条画。目前机器视觉的主要研究方向是绘制人脸肖像机器人,经常能在科普展览看到许多科技企业推出的各种产品,现在基于机器视觉的应用技术开始在生产和生活各个方面都有了大面积的使用。这当中最主要的是研究绘图机械控制系统的硬件选型和控制算法,例如在VisualC++6.0中实现了外部对机械臂绘图动作的自动控制,设计的机械臂绘画动作流程,也可以能够完成人脸轮廓图的自动绘制。第三代机械臂,这类机械臂拥有强大规划和决策的能力,同时配备有大量电子传感器,能够更好的采集外部数据。所以可以适应因为外部条件的变化而和起始不同的工作环境,结合计算分析找到更好的工作办法并可以进行自主工作。第三代机器人还在完善研究实验的状态,距离大规模实际应用还有一段距离。如邹建奇等人以柔韧性机械臂为例,进行简单的逆运动学分析,并采用小脑模型神经网络方法对机械臂的逆运动学进行了数值仿真分析,小脑模型神经网络可在较短的学习次数中有效地控制机械臂的行动。目前在工业应用领域,在普及第一代工业机器臂基础上,第二代工业机机械臂已经得到大面积推广,成为主流安装机型,第三代机械臂在高精度加工设备方面也占有一定比例。1.3本设计的预期效果本设计重点主要在控制系统和硬件电路两部分,采用6个pwm舵机组成6自由度机械臂。机械臂围绕底座水平旋转需要1号舵机,2号舵机负责机械臂的长臂运动,3号舵机控制机械臂的小臂运动,4号舵机负责机械臂手腕部分伸张的动作,5号舵机负责机械爪的抓取动作,6号舵机负责机械手的旋转。无限ps2手柄的数据接收模块安装在单片机板上,可以用ps2手柄无限控制。舵机源代码编程使用KeilμVision4软件,其兼容51单片机系列,用c语言编程通用性强,方便易懂。预期效果是通过上位pc机编排动作后,可以通过ps2手柄发出指令进行无线控制,使两个机械臂可以做出互相传递的动作。总体方案设计2.1设计要求课题基于增强型51单片机的多机械臂协调控制系统设计,在两个及以上的以增强型51单片机为控制中心的机械臂单元,以增强型51单片机为控制核心,通过PID控制输出PWM信号控制多个舵机的有效动作,可以通过对单片机IO接口输出信号的同步先后次序优化研究以实现机械臂机器人单元动作的协调动作,可以用上位pc机软件进行动作编辑,并能够使用ps2手柄发送编辑好的动作组执行命令,从而实现多机械臂的协调控制。2.2设计方案的选择基于增强型51单片机的多机械臂协调控制系统设计主要包括外设动作单元机械臂、控制电路、执行系统软件编程及其控制算法研究等内容组成。现在就来简单讨论一下方案的选择。如果普通51系列单片机作为控制核心。51系列单片机作为8位单片机,其具有资料丰富、通用应用范围广等优点,但其缺点是寄存器少、运行速率慢、保密性差和功能简单等。经过各种考虑对比,故本次设计使用国产的8051单片机IAP15W4K61S4单片机,作为中国8051单片机设计公司的后起之秀,其产品功能更加强大拥有更多的寄存器、极高的运行效率和良好的保密性能。HYPERLINK"/s/?w=%E8%88%B5%E6%9C%BA&ch=ww.xqy.chain"\t"/z/_blank"舵机作为一种位置伺服的驱动器,舵机的工作原理是接收单片机发出信号。舵机内部有一个内置基准电路,可以产生基准信号,一般为20ms周期,宽度为1.5ms,将获得的直流偏置电压与HYPERLINK"/s/?w=%E7%94%B5%E4%BD%8D%E5%99%A8&ch=ww.xqy.chain"\t"/z/_blank"电位器的电压比较,通过比较得到的电压差输出。当中判断转动方向,主要靠舵机内置电路板上的IC模块,在IC模块判断应该转动的方向后,无核心马达开始转动输出动力,输出的动力通过减速齿轮传导到摆臂,同时通过位置检测器反馈的信号,判断是否已经到指定位置。到达指定位置后,舵机的级联减速齿轮会启动,其会带动电位器旋转,使得比较输出后的电压差为0,这时电机的转动就会停止,舵机会保持当前指定的位置。因此舵机广泛使用于那些需要角度不断变化,并在需要时能一定保持角度的控制系统。机械臂的动作执行需要各个舵机的运行配合,所以舵机的选择也是重中之重。本设计使用TBS-K20舵机,制造时使用的精加工的全金属齿轮,可以有效地提高舵机的使用寿命,这让它拥有良好的机械性能,虚位小。拥有超大扭矩,抓取力量可以达到20kg/cm。在DC4.8V~8.4V的电压下都可以很好的运行。一般舵机旋转的角度范围是0度到180度。本设计的使用的TBS-K20舵机旋转角度范围可以达到0度到270度,性能更加优异。2.3整体设计布局经过对工作原理的具体分析,选择最佳方案,得出该设计的思路:该设计由三个重要部分组成,首先核心核心为IAP15W4K61S4单片机;其次,舵机采用TBS-K20舵机,最后无线遥控设备采用的PS2手柄。故总体设计的框图如下图2-1所示:图2-1总体设计框图当编辑好源代码下载到IAP15W4K61S4单片机内后,就能通过PS2手柄的按键点动命令舵机转动,从而实现机械臂整体的一些动作。如果想实现PS2控制机械臂做出动作组,则要在上位机软件中编辑机械臂的动作组,同时编辑的动作组可以在上位机软件下载到单片机中后,在不退出上位机界面的情况,机械臂就可以进行编辑过的动作组演示,从而更好调试动作组。在该设计中要求ps2模块和单片机之间无延时的信息传输和反馈,即当接收接收到代码,机械臂就能立即执行动作组,并没有时间的拖延。上位机ps机软件编辑时,能实时传达编辑的动作组给机械臂。从而能够更好的调试动作。3.硬件模块设计3.1单片机的介绍单片机作为电路控制的核心,承担着采集和处理数据,计算后发出指令的功能。单片机的选择决定了系统外围电路和系统软件的复杂程度。本科阶段重点学习了Atmel公司生产的AT89C51单片机。该系列单片机比最初的8051单片机相比有着高性能、低功率消耗、存储非易失性等优点,是一款具有代表性的8位单片机产品。支持的编程语言方便学习,内部结构介绍资料也比较齐全。在英特尔公布方案后,开始进入行业的厂家对8051单片机进行了改良,让单片机在8051内芯不变的基础上拥有了更多新的功能,比如拥有更强的I/O口驱动能力。可以使用原来的“准IO口”功能,也可以用推挽输入输出IO、高阻IO、开漏IO等IO形式。在外设方面不同厂商的芯片有不同,比如说在原来8051内芯的基础上。拥有了更多的功能模块,例如AD模块、PWM模块、PLL模块、DAC模块、SPI模块、CAN模块等等。增大了ROM和RAM,并且有的增加了EEPROM或者FlashROM。一般认为凡是比英特尔的8051功能更多的51内核单片机,都可以说是增强型51单片机。这些单片机的外设功能和I/O口的驱动能力,以及处理器运算速度都比8051更快,所以它们是改进过的增强了功能的51单片机。本设计就使用的是同样具有80C51内核的并且功能更强大STC系列单片机IAP15W4K61S4单片机为核心,输出pwm脉冲来驱动6个pwm舵机,组成6自由度机械臂来完成所有的动作。3.1.1IAP15W4K61S4单片机简介1IAP15W4K61S4单片机具有大容量4096字节片内RAM数据存储器。高速:1个时钟/机器周期,增强型8051内核,速度比传统8051快7~12位速度也比STC的STC12/11/10系列速度快20%。宽电压:2.5V~5.5V。还注重节能,拥有低功耗模式:低速模式,空闲模式,掉电模式。拥有内部掉电唤醒定时器,在掉电模式下能够由外部中断唤醒,或者由该定时器唤醒,不需外部复位,这也提高了单片机的使用寿命。在进行ISP编程时,拥有16级复位门槛电压可选,因为具有内置高可靠的复位电路,所以该单片机一般不需要外部晶振,在进行ISP编程时,可以在5MHz-30MHz频率范围内设置内部时钟,而这相当于从60MHz~360MHz的频率范围内设置普通的8051单片机:。具有flash程序存储器,可擦写次数10万次以上大容量片内寄存器。EEPROM功能,擦写次数10万次以上。
具有ISPⅠAP功能,在系统可编程/在应用可编程,无需编程器/仿真器。1IAP15W4K61S4单片机拥有高速8通道10位ADC,读写速度可达30万次/秒,8路PM也能够当作8路DA使用比较器,可当1路ADC使用,可以拥有掉电检测的功能,可以把外部管脚CMP+和CMP放在一起进行比较,能够产生中断从而可在管脚CMPO上得到可设置极性的输出,还可以让外部管脚CMP+和内部参考电压来比较,6通道15位专门的精确度搞并拥有死区控制的PWM和2通道可以输出高速脉冲CCP。可更好的实现8位D/A输入输出。图3-1IAP15W4K61S4单片机引脚图3.2电源模块在六自由度机械臂,最主要的硬件电路设计当属于舵机的动力电源问题,本设计使用的是TBS-K20舵机,其输入电压为4.8V-8.4V,而LED输入电压为3.3V,这需要电源模块转化出不同的输出电压来满足各个器件的运行需求。a.如图3-2为电源输入模块,当系统运行时按下开关按钮,开始进入工作状态,而在VIN端放置一个SS54二极管,是为了控制方向防止电源反接,烧坏单片机。图3-2电源开关电路模块b.经过上图3-2电源开关模块后,续接从下图3-3左边电源通过VCC-IN端口进入xl4015模块。三个电容C470UF、C121和C122起到滤波的作用,三个大小不同容量的电容搭配可以起到低高频滤波兼顾的作用。xl4015是一款DC-DC电源变换模块,而作为直流斩波一定造成输出的电压波形波动,因此需要搭配平波电抗器L47uH5A模块改善输出电压的波形。通过查询xl4050芯片的datasheet,SW实质上就是powerout,即Vout。FB的全称是feedback,它是模块的反馈引脚,一般使用分压电路,SW端输出的电压会受到FB引脚电压的约束。图3-3舵机输入电压转换模块c.U5V0模块及其外围电路是一个三端滤波器。可以看到C51、C52和C6电容在中间,电容接着一段地线。作用是提高高频滤波效果。图3-45V电源电压转换模块d.LM3V3模块是LDO芯片和外围电路,LDO是一种线性稳压器,可以减去输入电压中超前的电压,具有噪音低,静态电流小的特点。图3-53.3V电源电压转换模块3.3舵机模块3.3.1舵机的简介舵机作为一种位置(角度)伺服的驱动器,舵机一般包含舵盘、减速齿轮、直流电机、位置反馈电位计和控制电路板等组成部分。舵机是一种简单的能够应用在那些需要角度不断变化,并在达到指定位置后需要保持的控制系统,在小型无人机、潜艇模型、小型机械臂中已经得到了普遍应用。3.3.2舵机的功能特点大多数舵机的时基脉冲控制频率20ms左右的,这种时基脉冲的高电平部分和频率在0.5ms-2.5ms范围内的角度控制脉冲对应,总间隔为2ms。以180度角度伺服为例,那么脉冲频率和角度的对应的关系如图3-6所示。0.5ms--------------0度;1.0ms------------45度;1.5ms------------90度;2.0ms-----------135度;2.5ms-----------180度;舵机的追随特性图3-6舵机追随特性图如果当前舵机角度稳定在A点,因为舵机一般只受到一个工作力,这时候CPU发出一个PWM信号,舵机受到最大工作力开始由A点转向指定位置B点,而转向指定位置的过程需要一段时间。保持时间为Tw当Tw≥△T时,舵机能够到达目标,并有剩余时间;当Tw≤△T时,舵机不能到达目标;所以在理论上:运用微积分运算,当Tw=△T时,系统最连贯,而且舵机运动的最快。但实际操作过程中w不尽相同,连贯运动时的极限△T比较难以计算出来。假如我们的舵机最小变化量为8us,则当PWM信号依次以8us变化时,此时舵机的对信号的反应速度最快,不过这时运行速度会减慢。在安装舵机的时,安装位置应该选在机械臂的重心附近。舵机和接收机最好能够使用独立电源。并要注意电源电压的稳定问题,尽量使用电压稳定的电源,电源输出不稳定时应该马上更换,因为电源电压不稳会让舵机运行操纵时失灵导致损坏或者整体结构停机。舵机输出盘摇臂可以设置不同的角度,开凿不同大小的力臂孔。在保证机械臂的整体结构稳定的情况下,机械臂的大臂和长臂应尽量选择力臂长度大的,这样可以减小舵机损耗,提高使用寿命。为了保证传输的可靠性,输出盘和舵面之间最好能够用专门的螺丝连动杆。舵机一般内置一个电位器或者角度传感器,用来采集输出轴的实时转动角度数据,控制板可以按照电位器传输的实时采集信息能更好保证控制的良好精确度来保持输出轴的角度。这种的直流电机控制方法叫闭环控制,所以舵机也有人说是伺服马达(英文专用名词serv)。3.3.3舵机模块电路设计本设计采用的TBS-K20舵机,拥有其工作电压为DC4.8V~8.4V。通过图3-3xl4015模块转化的输入电压基本满足驱动需求,如下图3-6是单个舵机模块电路,通过VCC-DJT接口输入xl4015模块转化的输入电压,并用串联F1电阻保护电路,防止电流过大损坏舵机。图3-6单个舵机模块电路4.软件程序设计4.1keil软件的介绍4.1.1keil软件的简介KeilC51是美国KeilSoftware公司开发的兼容单片机C语言的51系列开发软件。与其它汇编语言对比,不难发现C语言在功能方面、结构性方面、可读性方面和可维护性方面具有显而易见的优点,比较方便开发人员的学习和使用。Keil提供了包括链接器、宏汇编、C编译器、管理库和功能多的仿真调试器等在内的完整开发方案,这个集成开发环境(μVision)可以将这些功能模块组织起来。Keil软件具有良好的兼容性,运行Keil软件可以使用windows的各种操作系统。KeilC5不但对使用C语言的开发人员是个福音,它也支持汇编语言。即便使用者不熟悉C语言,去使用汇编语言编程,此软件的功能模块丰富和调用简单的集成环境、强大的软件仿真调试工具也备受用户青睐。4.1.2KeiluVision42009年2月发布KeilμVision4,能更好的兼容51单片机,还新增了多台监视器,并有更加方便使用的窗口系统,在运行软件时,能够在任何地方从视觉表面上对窗口位置的进行控制。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。拥有强大的RealViewMDK开发工具,这让Keil软件拥有强大的自动配置启动代码功能,再加上之前版本内置了Flash集成烧写模块,又极大的提高Simulation工具模拟和解析性能效率,与ARM之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。2011年3月ARM公司发布最新集成开发环境RealViewMDK开发工具中集成了最新版本的KeiluVision4,其编译器、调试工具实现与ARM器件的最完美匹配。4.2Proteus软件的介绍4.2.1Proteus软件简介Proteus软件是英国电子中心实验室公司研发推出的EDA工具设计软件。作为一款划时代的产品,不但可以兼容并仿真别的EDA工具软件,还有单片机仿真和外围器件仿真的功能。已经成为现有比较好的仿真单片机及外围器件的工具。不但受到了单片机爱好者、从事单片机领域教学的教育工作者的喜爱,还获得单片机领域实现应用开发的开发人员的认可。作为赫赫有名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,拥有从理论概念到实际产品的全程设计功能。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,支持包括8051、PIC10/12/16/18/24/30、HC11、DSPIC33、AVR、ARM、8086和MSP430等数值模型。并不断强大处理器支撑功能,Cortex和DSP系列处理器也在2010年加入了Proteus软件,并不断增加更多的应用广泛的系列处理器模型。在编译方面,该应用也支持多种编译器,如Keil和MATLAB等。4.2.2Proteus软件功能特点Proteus拥有完善的电路仿真功能,其中最具特点的是混合仿真功能,在SPICE3F5的工业标准情况下,不但能实现数字电路的仿真设计,还可以设计数字电路和模拟电路的两者混合仿真;Proteus拥有庞大的仿真器件库,超过27000个仿真器件,而且器件的搜索更加方便,有模糊搜索功能,可以方便开发人员更快速定位所需要的器件。如果还不能满足开发人员的使用需求,还可以通过器件库已有的器件原型或者使用厂家提供的SPICE文件进行设计满足符合自己使用需求的仿真器件,而且Labcenter也一直更新更多的仿真元器件,并且用户使用时还能够导入其他开发人员或者厂家设计的符合其数据类型的仿真元器件;支持包括直流、正弦、脉冲、分段线性脉冲、音频文件、信号指数、FM单频、数字时钟和码流等激励源,能够输入信号(基于文件形式)。4.3舵机源程序设计舵机作为位置伺服的驱动器,主要是接收单片机发出信号。通过舵机内部的基准电路,将从内置基准电路收到的的直流偏置电压与电位器的电压比较,通过比较得到的电压差输出伎行输出到电路板。舵机在进行转动时最主要的还要判定到指定位置所需要的转动方向,而判断方向主要是靠舵机内置电路板里的集成数据模块,在集成数据模块判断应该转动的位置方向后,无核心马达开始转动并输出动力,输出的动力通过动力齿轮减速调整后传导到外接转动臂,同时通过位置检测器反馈的信号,判断是否已经到指定位置。在转动臂到达指定位置后,舵机的级级相连齿轮会启动进行减速,而齿轮会带动电位器开始启动,此时比较输出后的电压差为0,这时电机的转动就会停止,舵机会保持当前指定的位置。因此舵机广泛使用于那些需要角度不断变化,并在需要时能一定保持角度的控制系统。在本设计中,因为使用的TBS-K20舵机为数字pwm波舵机,所以采用定时器中断函数,进入定时器中断,进行分时复用产生1~6路、周期为20ms的pwn波形并负责置位。我们使用的TBS-K20舵机工作周期为20ms,可以使用单片机定时器产生周期相同的六路PWM波的。单片机的内部定时器可以产出计数脉冲,一般来说,舵机工作正脉冲宽度小于周期的1/6,这样能够在1个周期内分时启动各路PWM波的上升沿,再利用定时器中断T0确定各路PWM波的输出宽度,定时器中断T1控制20ms的基准时间。voidT0zd(void)interrupt1{ staticuint8i=1; switch(i) { case1: { pwm1=1; Timer0(pwm[1]);//定时 flag_vpwm=1; }break; case2: { pwm1=0;// pwm1变低 Timer0(2590-pwm[1]);// 定时 flag_vpwm=1; }break; case3: { pwm2=1;//pwm2变高 Timer0(pwm[2]);//定时时长为pwm[2] flag_vpwm=1; }break; case4: { pwm2=0;//pwm2变低 Timer0(2500-pwm[2]);//定时时长为pwm[2] flag_vpwm=1; } break; case5: { pwm3=1;//pwm3变高 Timer0(pwm[3]);//定时时长为pwm[3] flag_vpwm=1; }break; case6: { pwm3=0;//pwm3变低 Timer0(2500-pwm[3]);//定时时长为 flag_vpwm=1; } break; default:break; } i++;}4.4ps2手柄程序设计4.4.1读取手柄数据voidPS2_ReadData(void){ volatileu8byte=0; volatileu16ref=0x01; CS_L; PS2_Cmd(Comd[0]);//开始命令 PS2_Cmd(Comd[1]);//请求数据 for(byte=2;byte<9;byte++)//开始接受数据 { for(ref=0x01;ref<0x100;ref<<=1) { CLK_H; CLK_L; //delay_us(50); delay(50); CLK_H; if(DI) Data[byte]=ref|Data[byte]; }//delay_us(50); delay(50); } CS_H; }2.4.2对读出来的ps2手柄数据进行处理u8PS2_DataKey(){ staticu8temp=1; u8index; PS2_ClearData(); PS2_ReadData(); Handkey=(Data[4]<<8)|Data[3];//这是16个按键,按下为0,未按下为1 for(index=0;index<16;index++) { if((Handkey&(1<<(MASK[index]-1)))==0) { temp=(Handkey&(1<<(MASK[index]-1)))
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建省省属艺术院团招聘工作人员21人建设考试备考题库及答案解析
- 2026年安徽职业技术大学公开招聘高层次人才建设考试备考题库及答案解析
- 2026年安徽理工大学附属小学专职教师招聘建设笔试模拟试题及答案解析
- 2026重庆市南岸区统计局公益性岗位招聘1人建设考试参考题库及答案解析
- 2026河南郑州七中教育集团津孚学校教师招聘3人建设笔试备考试题及答案解析
- 2026年昆明市西山区“春城全国名校行”引才活动(86人)建设考试参考题库及答案解析
- 2026吉林辽源市东辽县消防救援大队、东辽县应急救援中心招聘政府专职消防员、应急救援队员14人建设笔试备考题库及答案解析
- 2026天津创业环保集团股份有限公司社会招聘7人建设考试备考题库及答案解析
- 2026西藏检察系统聘用制书记员招聘131人建设笔试备考题库及答案解析
- 2026黑龙江省建设投资集团有限公司社会招聘4人建设考试备考题库及答案解析
- 甘肃省2023年中考:《语文》考试真题与参考答案
- 《电力设备典型消防规程》考试复习题库(含答案)
- 加热炉推料结构设计论文(1)-学位论文
- 桥梁工程量清单
- 河北人社APP认证操作指南
- 英语人教新目标七年级下册My favorite animals
- CB/T 615-1995船底吸入格栅
- 大姜优质高产栽培管理技术课件
- 马工程西方经济学(第二版)教学课件-8
- (完整)普洱茶介绍ppt
- 园林景观小品景观工程施工设计方案
评论
0/150
提交评论