电动车跷跷板设计报告1
- 格式:doc
- 大小:2.67 MB
- 文档页数:18
电动车跷跷板设计方案1. 引言电动车作为一种环保、经济、便捷的交通工具,在城市中越来越受到人们的欢迎。
随着电动车使用的普及,对电动车的性能和舒适性需求也越来越高。
其中,车辆的悬挂系统是决定乘坐舒适性的关键因素之一。
本文将重点介绍电动车跷跷板设计方案。
2. 跷跷板的作用电动车的跷跷板是连接前后轮的重要部件,它在路面不平的情况下起到缓冲和减震作用,提高骑行的舒适性和稳定性。
合理的跷跷板设计能够降低车身的颠簸感,提高乘坐舒适性和操控性。
3. 跷跷板设计需考虑的因素在设计电动车跷跷板时,需要考虑以下因素:3.1 材料选择跷跷板需要具备足够的强度和耐久性,以应对恶劣的路面条件和长时间使用带来的疲劳等问题。
常见的跷跷板材料包括铝合金和碳纤维等。
铝合金具备较高的强度和刚性,而碳纤维材料则轻量且具备良好的振动吸收能力。
3.2 结构设计跷跷板的结构设计需要考虑到整车的重心、空间限制和悬挂系统的类型等因素。
合理的结构设计可以降低车辆的重量,并提高整车的稳定性和行驶的舒适性。
3.3 减震系统跷跷板作为车辆的减震系统之一,需要考虑到减震效果和调校。
通过合理的减震系统设计,可以降低车身的颠簸感,提高骑行的舒适性。
4. 设计方案基于以上考虑因素,本文给出以下电动车跷跷板设计方案:4.1 材料选择采用铝合金材料作为跷跷板材料。
铝合金具备优秀的强度和刚性,同时具有较好的耐腐蚀性和耐久性,适合应对各种路面条件。
在材料选择上,还可以考虑采用碳纤维增强的铝合金,以进一步提高载荷能力和减震效果。
4.2 结构设计跷跷板的结构设计应该考虑到整车的重心和空间限制。
可以采用H 型结构设计,将重力分散到两侧,提高整车的稳定性。
在空间限制允许的情况下,还可以考虑增加三角支撑等结构,提高跷跷板的刚性和稳定性。
4.3 减震系统跷跷板需要配备减震系统,以提高骑行舒适性。
可以采用液压减震器或弹簧减震器,根据不同的需求进行选择。
减震系统还可以根据用户的体重和骑行环境进行调校,以获得最佳的减震效果。
电动车跷跷板设计方案电动车跷跷板是一种创新性的设计,可以帮助人们更方便地停靠和启动电动车。
在许多城市,电动车已经成为主要的出行方式。
然而,电动车在停车时,需要使用力量将车辆托起或降下,这对于一些年纪较大或身体不适的人来说可能会很困难。
因此,电动车跷跷板是一项非常有用的发明,能够让电动车的停放更加容易和便捷。
一般来说,电动车跷跷板有两种设计方案:手动操作和自动操作。
手动操作的设计需要用户手动旋转跷跷板,以将电动车推起或降下。
这种设计成本较低,但用户需要一定的力量和技能才能轻松完成操作。
另外,手动操作的设计需要更多的时间和精力,不太适合老年人或身体有残疾的人。
自动操作的设计是一种更加先进和高级的设计,它利用电动机和控制器来完成跷跷板的升降操作。
用户只需要轻按按钮或开关即可完成整个过程。
自动操作的设计有多种控制方式,包括遥控器、传感器和自动识别系统等等。
这种设计的成本更高,但用户可以省去很多时间和精力,使用起来非常方便。
除了操作方式的不同,电动车跷跷板的设计还有很多其他的特点。
比如,电动车跷跷板的材料可以采用钢板、铝合金、塑料等多种材质,不同的材料有着不同的优势和劣势,需要根据风险防范、耐用性、安全性和成本等多个因素来选择。
电动车跷跷板的设计还可以增加一些额外的功能,如夜视灯、加热器、视音频系统等等,这些增强功能可以使车辆的停放更加智能化和便捷。
除了以上提到的基本设计特点,为了满足不同用户的需求和喜好,电动车跷跷板还可以增加一些个性化的设计元素。
比如,可以在跷跷板表面印上个性化的图案或标志,让用户可以将自己的电动车个性化地装扮起来。
此外,电动车跷跷板的外形和尺寸也可以根据用户需求进行定制。
在选择电动车跷跷板方案时,需要考虑很多因素,如成本、设计和效果等等。
这些因素关系到电动车跷跷板的使用效果和意义,也与对于产品的整体评估有关。
因此,我们需要在设计电动车跷跷板时,充分考虑不同用户的需求和喜好,以期为用户提供最佳的使用体验。
青岛大学全国电子设计大赛设计报告题目电动车跷跷板学生姓名马云开高原王世伟专业智能科学与技术二零一五年五月摘要本电动车跷跷板是以玩具车为车架,AT89C52单片机为控制核心,加以直流减速电机、LN298驱动电路、mpu6050陀螺仪、红外光电传感器、LCD1602液晶以及其他电路构成。
系统由AT89C52单片机通过IO口控制小车的前进后退停止平衡以及转向,寻迹由红外光电对管完成,平衡由mpu6050陀螺仪完成,用L298N驱动直流减速电机,同时本系统用1602液晶显示,以显示当前电动车的运动状态以及各部分运行时间。
关键词:AT89C52 L298N 直流减速电机传感器mpu6050陀螺仪AbstractThis electric vehicles on the seesaw is toy car frame, AT89C52 single chip microcomputer as control core, dc gear motor, LN298 drive circuit, mpu6050 gyro, the infrared electric sensors, LCD1602 LCD and other circuits. System controlled by single-chip microcomputer AT89C52 through IO mouth car stop balance and to browse forward and backward, to be finished by infrared electric pipe tracing, balance completed by mpu6050 gyroscope, used L298N drive dc gear motor, this system use 1602 LCD at the same time, to show the current motion state and each part of the running time of electric cars.Keywords: dc gear motor L298N AT89C52 sensor mpu6050 gyroscope摘要 (2)Abstract (2)1.电动车跷跷板(F题) (4)2.系统方案的选择与论证 (6)2.1设计要点 (6)2.2 单片机的选择: (6)2.3 显示器选择: (7)2.4电机制动 (7)2.5地面黑线检测模块 (7)2.5角度检测模块 (7)3.1 显示模块 (9)3.2 电机调速 (9)3.3 电机驱动 (9)3.4 跑道标志检测 (10)3.5路程检测模块电路图 (10)4.软件流程 (10)4.1 主程序流程 (10)4.2 计时子程序流 (11)4.3路程速度监测子程序图 (11)4.4角度检测子程序图 (11)5.测试方法与数据 (12)6总结 (14)7.参考文献 (14)附录一.元件清单 (14)附录二仪器设备清单 (15)附录三原件电路图 (15)附录四主程序 (17)附录五需要完善及要解决的问题 (35)1.电动车跷跷板(F题)电动车跷跷板(2007年F题)【本科组】一、任务设计并制作一个电动车跷跷板,在跷跷板起始端A一侧装有可移动的配重。
57科技资讯 S CI EN CE & T EC HNO LO GY I NF OR MA TI ON 工 业 技 术1 设计任务与要求1.1设计任务在给定条件的翘翘板上,小车主要完成从一端出发行驶至平衡点附近,停留一定的时间后开始寻找平衡点,达到平衡点之后行驶至终点,停留一定的时间后返回终点。
如图1所示。
2 方案比较与论证2.1各种方案比较与选择电机选择:为实现小车的运动,还有完成跷跷板的平衡调节,电机应该具有较好的灵敏度和动力。
方案一:直流电机,直流电机响应比较快,调节起来比较方便,价格也比较便宜,可以实现高速的选择。
但是力矩有一定的限制。
方案二:减速电机,减速电机驱动能力强,制动性也好,调节平衡比较方便,但是响应比较慢。
通过实践,直流电机速度快但是动力不强,制动性比较差,不能较好的实现平衡的调节,减速电机虽然反应慢,但是可以满足平衡的调节要求,因此选择减速电机。
倾角测量传感器:倾角是小车运行的控制量,它的准确获取才能使小车能够稳定地达到平衡,并且能够准确测量倾角,还能加大控制量。
方案一:倾角传感器,经测量倾角传感器灵敏度高,跷跷板两端采样值的差值20。
方案二:MMA7260三轴加速度计,该传感器可以测量重力延竖直方向上的分量,但是通过实际的检测发现其灵敏度低,且不稳定。
控制器的选择:对于一个不稳定系统,要控制系统达到平衡位置,需要加入一个控制器。
方案一:采用PID控制器。
PID控制器是一种适应范围广的控制算法。
可以达到一般的控制要求。
跷跷板的平衡是要达到两边的力矩平衡。
小车行驶到某一个特定的位置才能使跷跷板平衡。
方案二:采用步进法不断搜索平衡点,使系统达到平衡。
步进调节比较稳定。
由于倾角传感器的灵敏度的限制,控制量太小用PD控制器实现起来比较麻烦,而且参数的调节也不好控制,因此我们采用步进控制。
2.2控制算法设计采用步进控制,角度的变化量和长度的变化量均随时间而变,并且和各自速度相关,因此,引入小车每个控制周期的步进量 v ,和角度每个控制周期的变化量 ,假设速度控制的周期为T(ms),那么就有下面的式子合力钜: ()cos(T)f M G L v T M 合 (1)每个控制周期,先让小车走一段距离,停止一定时间测量角度,然后以这个角度为依据进行下一次平衡调节,如果所调的参数满足式子(1),那么跷跷板最终可以达到平衡。
电动车跷跷板设计跟总结报告摘要:本设计为使电动车在跷跷板上按要求准确运行采用了单片机A T89C51最小系统作为电动车的检测和控制系统。
通过红外发射接收一体探头检测路面黑色寻迹线,使小车按预定轨道行驶,根据角度传感器检测跷跷板的平衡状态控制电动车使其在跷跷板上达到动态平衡。
再加上基于STM8S单片机的键盘、液晶显示电路,构成了整个系统的硬件总电路。
最后通过软件设计,实现了按预定轨道行驶、保持平衡等功能。
关键字:STM8S 跷跷板角度(倾角)传感器1.方案设计与验证方案一:改装摇控电动车,利用单片机直接控制电动机,采用限位开关检测小车行驶位置。
由于小车是由单片机直接控制,所以驱动不了电机,实现不了小车的基本功能。
用限位开关不利于用小车的独立运行,且控制不便。
方案二:自制小车,利用步进电机,采用单片机控制,用电位器自制角度传感器,自制小车,制作过程极其复杂,且时间紧张,没有较好的机械部件支持,步进电机不易购买,体积较大,供电系统复杂,价格昂贵。
自制传感器精度不高,反应不灵活,线性度太差。
无法实现角度与电阻的线性转换。
方案三:自制小车,利用步进电机,采用stm8s单片机控制,使用现成的角度传感器跟现成的L298N电机驱动模块,成本低,花费时间短,精度高。
综上考虑,我们选择了方案三,经过一番仔细的论证比较,我们最终确定的系统详细方框图如下:2.电路设计2.1寻迹线探测模块通过光电检测器来实现黑白线的监测,当检测到黑线时输出端为低电平,白线时为高电平。
两个TCRT5000来实现小车走直线。
输出端要加上拉电阻,才能得到稳定信号,其原理图如图所示。
2.2电机驱动模块使用L298N,用单片机PWM能实现加速,减速,直线,转弯,后退等动作,原理图如下:3.3倾角检测模块MMA7361角度传感器采用了信号调理、单级低通滤波器和温度补偿技术,并且提供了2个灵敏度量程选择的接口和休眠模式接口,该产品带有低通滤波并已作零g补偿,原理图如下:4软件设计5测试方法跟结果仪器名称型号用途数量计算机联想调试程序 1数字万用表my-65 各种电路参数 1秒表测量时间 1测量结果次数到达A点时间到达B点时间到达C点时间总时间1 8.93 6.82 9.66 25.412 15.72 6.75 8.79 31.263 20.65 6.59 7.88 35.126设计总结经过我们小组的努力,我们终于成功的完成了题目的要求,并在此基础上进行了创新。
基于51单片机的电动车跷跷板设计1.引言本设计为参加电子设计竞赛而作,较好地解决了电动车在跷跷板上的运行和控制问题,系统结构比较简单,控制比较准确。
2.系统方案设计、比较与论证根据题目的基本要求,设计任务主要完成电动车在规定时间内按规定路径稳定行驶,并能具有保持平衡功能,同时对行程中的有关数据进行处理显示。
为完成相应功能,系统可以划分为以下几个基本模块:电动机驱动模块、寻迹线探测模块、平衡状态检测模块、信息显示模块。
见图1 图1 系统框图2.1 寻迹线探测模块探测路面黑色寻迹线的原理:光线照射到路面并反射,由于黑线和白纸的反射系数不同,可根据接受到反射光强弱由传感器产生高低电平并最终通过单片机判断是否到达黑线或偏离跑道。
方案一:由可见光发光二极管与光敏二极管组成的发射-接收电路,如图2 所示。
该方案成本较低,易于制作,但其缺点在于周围环境光源会对光敏二极管的工作产生很大干扰,一旦外界光亮条件改变,很可能造成误判和漏判;如果采用超高亮发光管和高灵敏度光敏管可以降低一定的干扰,但又将增加额外的功率损耗。
图2 方案一电路方案二:自制红外探头电路。
此种方法简单,价格便宜,灵敏度可调,但易受到周围环境影响,特别是较强光照对检测信号的影响,会造成系统不稳定。
再加上时间有限,制作分立电路较繁琐。
方案三:集成式红外探头。
可以采用集成断续式光电开关探测器,它具有集成度高、工作性能可靠的优点,只须调节探头上的一个旋钮即可以控制探头的灵敏度。
此种探头还能有效地防止普通光源(如日光灯等)的干扰。
红外探测器E3F-DS30C4 见图3。
图3 集成红外探测头基于上述考虑,为了提高系统信号采集检测的精度,我们采用方案三。
2.2平衡状态检测模块方案一:断续式光电开关。
在跷跷板两头的地面上各放置一个,调节灵敏度使其在一定范围内接收不到反射光产生低电平,从而认为达到。
摘要:本课题组设计制作了一款智能自动小车。
小车具有以下几个功能:寻迹功能(按路面的黑色轨道行驶);计算并显示所走的路程和行走的时间,变速行驶,自动寻找平衡点使跷跷板达到平衡。
该作品基于凌阳16位单片机SPCE061A,用直流电机作为驱动,通过各种传感器来采集信息,并送入主控单元SPCE061A单片机进行处理,并产生相应的动作,以达到自身控制。
电机控制电路包括方向控制单元和速度控制单元两大部分。
角度检测部分由角度传感器产生信号后送入单片机;黑带检测和速度检测部分都是利用红外线对射方式,在小车的车轮粘上一个挡光圆所料片圈,并在上面开一些透光孔,通过设定固定时间来计量车轮转过圈数进而测出速度。
控制单元接收到信号后,通过程序控制来完成相应动作,实现了无人控制即可完成设计需要动作。
一,系统方案论证与比较方案一:通过搭建各种数字电路来组合成小车的控制系统,对扩展的黑线检测,速度检测,角度测量等信号进行处理。
本方案设计电路复杂,扩展性不好,实现起来比较困难。
方案二:采用凌阳16位单片机SPCE061A来作为系统的控制单元。
红外线探头采用市面上通用的发射管与及接收头,经过LF358放大后送入单片机;角度传感器采用分辨率可以达到小于等度的WQH36-45倾角传感器,它所产生的信号通过A/D转换成数字信号进行处理。
此系统设计起来比较简单,可扩展性较强,灵活性较好,各类功能也易于实现。
所以决定采用方案二,其系统的结构框图如下图所示:比较以上两种方案的优缺点,方案二简洁、灵活、可扩展性好,能够很好地达到设计题目的要求,因此采用方案二来实现。
该系统的结构框图如下图所示:二,模块电路设计与比较1,速度测量模块方案一:利用红外线对射方式,在小车的车轮粘上一个挡光圆塑料圈,并在上面开一些透光孔,,通过计算在固定时间内计量车轮转过圈数而测出速度。
方案二:利用霍尔元件来对转过的车轮圈数来计程,在车轮子上装小磁片,霍尔元件靠近磁片一次计程为车轮周长。
电动车跷跷板报告电动车跷跷板报告【摘要】本系统采用遥控电动小汽车改装而成,主要由89C52和模拟电路为核心器件,实现对智能电动车行驶的自动控制。
整车长23 厘米,宽5厘米,运行性能良好,符合设计要求。
电动车平衡检测使用倾角传感器。
电动智能小车电路由平衡检测电路、计时显示电路、电机驱动电路等组成,它不需要遥控就能按要求行走。
一、方案的选择与论证根据题目要求,系统可以以划分为几个基本模块,如图1.1所示键盘检测平衡检测单片机电机驱动显示电路图1.1 1、步进电机驱动调速模块方案一采用与步进电机相匹配的成品驱动装置。
使用该方法实现步进电机驱动,其优点是工作可靠,节约制作和调试的时间,但成本很高。
方案二采用集成电机驱动芯片LA298。
采用该方法实现电路驱动,简化了电路,控制比较简单,性能稳定,但成本较高。
方案三采用互补硅功率达林顿管ULN2003实现步进电机的驱动。
采用该方法实现步进电机的驱动,电路连接比较简单,工作也相对可靠,成本低廉,技术成熟。
基于上述理论分析,最终选择方案三。
2、平衡检测模块方案一采用精密的倾角传感器,这种传感器对应每个角度输出一个固定电流。
可以实现精确控制,但价格昂贵。
方案二采用简易的倾角传感器,它直接输出一个开关量。
当其与地面垂直时,两触点断开;若倾斜角度超出一定范围,两触点短接。
这种传感器价格低廉,使用方便。
基于上述分析,最终选择方案二。
3、显示模块方案一采用数码管显示。
数码管具有经济、低功耗、耐老化和精度比较高等优点,但它与单片机连接时,需要外接存储器进行数据锁存。
此外,数码管只能显示少数几个字符。
方案二采用LCD进行显示。
LCD具有功耗低、无辐射、显示稳定、抗干扰能力强等特点,而且可以显示汉字。
考虑到本次设计的人性化设计,综合考虑,决定采用方案二。
4、电源选择考虑到本次设计对电源的要求,我们采用四节1.5V的干电池作为供电电源。
二、系统的具体设计与实现系统的组成及原理框图如图所2.1示。
电动车翘翘板(F题)设计报告摘要此电动车是由玩具小车改装而成,核心处理芯片为ATMEG8和AT89C2051单片机,传感器件有红外发射接收传感器和角度传感器。
ATMEG8是主控制芯片,控制整个电路,通过对分别置于前、后端的红外发射接收头和角度传感器信息进行采集和分析,使翘翘板在平衡时小车能够停止并发出声光信号作为平衡显示。
AT89C2051则主要控制数码管的显示,使车在行驶过程中能够实时显示时间,它通过串口与ATMEG8相连。
电动车采用双电源供电,即电机驱动、传感电路和数据处理电路分别用不同的电源供电,并且电机控制端口和单片机通过光耦连接,这样就减小了电机对单片机的噪声影响。
关键字双电源、光耦、角度传感器、巡线、电机控制、平衡控制、噪声抑制1.方案设计与论证1.1独立模块方案设计 1.1.1平衡控制部分方案一:如图1.1作标记使车在到达此处时自动停止,从而达到使跷跷板平衡的目的。
这种方法虽然简单,但不确定因素很多,平衡位置不定。
方案二: 把角度传感器安装在半圆形轴上,角度测量部分与板相连,利用无线通信,把传感器测的角度实时反馈给单片机,使小车在平衡位置附近寻找平衡点,当角度信息处于平衡范围内且变化率符合平衡要求时,小车停止。
此方案保证了传感器的稳定性和测量精度,但无线通信易受外界信号干扰,且实时性难以实现。
方案三:角度传感器安装在车上,其它与方案二相同。
虽然角度传感器会受到车运动时振动的影响 ,但当车速很低时,扰动也会很低。
因此我们选择第三种方案。
1.1.2上板控制 方案一:采用摄像头进行图像的采集,并利用单片机进行图像分析来找到跷跷板,并通过电机的控制使小车顺利上板。
这种方法实现了电动车的自动导向,智能程度很高,但技术要求太高,所需器件价格昂贵且在短时间内很难实现。
方案二:通过在扇形区域内贴引导黑线,通过车前端的三个红外发射接收管给单片机输入信号,然后单片机控制前轮转向舵机调整方向,使小车能够沿黑线顺利上板。
电动车跷跷板摘要:本设计采用单片机AT89C55作为电动车跷跷板的控制及检测核心。
采用集成驱动芯片L298和PWM 波实现电动车的转向和转速控制。
通过红外传感器阵列检测引导线引导小车寻找跷跷板及在其上运动。
通过倾角传感器检测跷跷板与地面之间的夹角,采用分段模糊控制算法来控制电动车寻找平衡点,并使其逐渐到达平衡状态,用发光二极管实现平衡指示。
通过RT1602液晶实现电动车分段行驶时间、总时间、位置和跷跷板与地面夹角的显示。
外加语音分段提示功能。
1.系统方案1.1 实现方法通过对普通电动玩具车进行简单改装,采用自我设计的控制电路及软件编程,分别完成题目要求的各项功能。
1.2 方案论证基于题目要求实现的各项功能及难易程度,采用通用51系列单片机作为处理器要比采用其他单片机、FPGA 或CPLD 等更易实现系统功能。
并且成本低,编程简单。
采用倾角传感器SCA100T 检测跷跷板与地面的夹角控制电动车平衡要比使用其它角度传感器更容易实现。
在地面和跷跷板上粘贴黑色引导线,通过红外调制信号检测使电动车稳定行驶比采用在地面或跷跷板上安装其他标记装置更可靠。
采用红外编码器实现距离测量比采用霍尔传感检测精度更高。
电机驱动电路采用H 桥型集成芯片L298比采用分立元件电路稳定,电路结构简单,驱动电流大。
系统采用LCD 数据显示比采用LED 显示更直观,电路简单。
1.3 系统设计基于上述方案论证分析,本系统主要由单片机AT89C55作为控制与检测核心处理器,外加电机驱动电路、传感信号检测电路、声光提示电路、液晶显示、电源电路和语音提示电路。
本系统的结构框图如图1所示。
2 理论分析与计算2.1 引导线检测与控制方法引导线主要用于引导电动车寻找跷跷板以及保证电动车在其上稳定运行及停止在指定位置。
引导线位置如图2所示。
图1 系统的总体结构框图图中黑线A 与黑线B 是用于引导电动车寻找跷跷板;黑线C 和E 用于电动车在A 和B 端停止时检测;黑线D 用于引导电动车在跷跷板上运行。
完成时间:2008年6月19日摘要:本系统采用单片机凌阳61板为核心器件实现对驱动电路的控制使电动小车自动行驶,通过红外发射﹑接收一体化光电传感器TCRT5000(L)对小车运动轨迹和姿态进行沿跷跷板上预定直线调整,使小车在跷跷板上做出相应的运动。
并采用自制水平导轨控制小车平衡状态以达到平衡。
通过运项目名称:电动车跷跷板小组编号:Q01设计小组名单:朱嫣珺(组长)、石丛磊、田骥陈国兴、张明熙用PWM技术控制小车的直流电机转动,完成对小车运动位置﹑速度﹑运动姿态和时间等的控制。
采用液晶RT1602C显示前进和后退所用的时间。
目录1. 整体介绍 (1)1.1实验任务描述1.2电动车功能要求1.3实际达到功能2. 硬件部分 .................................................................................... 错误!未定义书签。
2.1单片机:凌阳61板SPCE060A_061A2.2驱动电路板2.3光电传感器电路与导轨水平传感器3. 软件部分 (6)4. 项目心得 (8)5. 致谢 (10)第1页1.整体介绍1.1实验任务描述设计并制作一个电动车跷跷板,要求跷跷板起始端一侧装有可移动的配重物体,配重物体位置可调范围不小于400mm。
电动车从起始端出发,按要求自动在跷跷板上行驶。
电动车跷跷板起始状态和平衡状态示意图分别如图所示:起始状态平衡状态1.2电动车功能要求∙先将跷跷板固定为水平状态,电动车从起始端A位置出发,行驶跷跷板的全程(全程的含义:电动车从起始端A出发至车头到达跷跷板顶端B位置)。
停止5秒后,电动车再从跷跷板的B端倒退回至跷跷板的起始端A,电动车能分别显示前进和倒退所用的时间。
前进行驶在1分钟内、倒退行驶在1.5分钟内完成。
∙跷跷板处在图1所示的状态下(配重物体位置不限制),电动车从起始端A出发,行驶跷跷板的全程。
11号F题电动车跷跷板摘要:本设计以一片单片机STC12C5A60S2作为核心来控制电动车跷跷板,加以控制芯片L298N和单片机联合控制小车的前进与后退。
路面的黑带检测使用反射式红外传感器,通过STC12C5A60S2对输入的信号进行处理,使用LCD1602分阶段实时显示电动车行驶所用的时间。
以红外传感器对路面黑线检测用,行驶距离使用对射光电传感器加以码盘进行检测。
使用三轴数字倾斜角度模块,检测跷跷板是否水平。
关键词:STC12C5A60S2 光电传感器L298N控制电动机LCD1602 三轴数字倾斜角度模块Abstract:This system is mainly based on a chip called STC12C5A60S2. This intelligent car designed by us three can run automatically through black lines on the ground and so on.Key words: single-chip microcomputer control system L298nThe three axis digital tilt angle module LCD1602(一)引言:我们认为该题目可以很好的培养我们对于传感器,驱动模块,硬件结构,软件结构,控制模块的全新认识,并且能够使得我们更好的将这些部分融合成一个整体,进行良好的运用。
该设计模块以单片机作为控制中心,加以控制芯片L298N和单片机联合控制小车的前进与后退。
路面的黑带检测使用反射式红外传感器,通过STC12C5A60S2对输入的信号进行处理,使用LCD1602分阶段实时显示电动车行驶所用的时间。
以红外传感器对路面黑线检测用,行驶距离使用对射光电传感器加以码盘进行检测。
使用三轴数字倾斜角度模块,检测跷跷板是否水平。
该模块控制比较稳定,速度适中,是本题目的适合的解决方法。
摘要赛题“电动车跷跷板”是通过电子系统控制小车按照杠杆原理自动位移使跷跷板获得水平平衡及控制小车启停、转向和行驶速度的机电系统。
我们根据电动车跷跷板的设计要求,对整个系统方案进行了研究,通过论证分析确立了较优的设计方案。
我们选用玩具坦克车作为车体,该电动车是以C8051f020作为控制及数据处理的核心,用L298N驱动双步进电机,通过传感器检测、控制电动机的方向、快慢、启停,并运用LCD显示屏对小车的行驶时间及状态进行显示。
电动车可以在跷跷板上自动寻找平衡点,并具有实时显示电动车行驶时间及平衡位置的功能。
在基本功能的基础上我们也对发挥部分进行了设计,让小车在添加配重的情况下也能完成任务。
关键词:c8051f020 加速传感器步进电机寻迹LCD前言赛题“电动机跷跷板”是通过电子系统控制小车按照一定的路线自动位移行驶,并根据杠杆平衡原理使跷跷板获得水平平衡,以及控制小车启停和行驶速度的机电系统。
我们选择玩具坦克作为小车主体,该电动车是以c8051f020单片机为控制核心,用专用芯片L298N对双电机进行驱动,保证了驱动的可靠性和稳定性,安装红外反射对管TCRT5000用以在跷跷板上寻迹前进,通过运用加速传感器帮助小车寻找到平衡位置,另外安装1602LCD液晶显示屏对小车的运动时间等进行显示,供电方面用LM7805对单片机及其他各个模块进行供电。
各模块相互配合在软件的调控下使电动车可以在跷跷板上能稳定、精确地寻找平衡点,具有较高爬坡能力和平衡能力,并能够实时显示电动车行驶时间以及平衡位置。
一.系统方案设计(1)控制模块方案一:使用传统51系列单片机,传统51单片机价格便宜,控制简单,但是它的运算速度慢,片内资源少,存储器容量小,难以实现复杂的算法。
方案二:使用C8051F系列单片机,C8051F单片机使用CIP-51微控制器内核,是标准的混合信号片上系统(SOC),除了具有标准8051的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件.如电压比较器PAC,ADC,DAC,SPI, SMBus(I2C),UART等,特别方便进行数据的实时采集与控制。
电动车跷跷板柳州运输职业技能学院摘要该电动车以凌阳SPCE061A作为控制及数据处置惩罚的焦点,通过传感器检测、控制电动车电机的快慢、启停。
电动车可以在跷跷板上自动寻找平衡点,并具有实时显示电动车行驶时间及任务完成之后自动播报从起始端自动行走到末端及返回所需时间或从起始端自动行走到电动车保持平衡所需时间。
要害字:SPCE061A 倾角传感器光电传感器 PWM一、方案设计与论证本项目按设计要求可分为五部门,分别为控制模块、循迹模块、平衡检测模块、电机驱动模块、显示模块,如图1所示。
图1 系统模块框图(一)控制模块方案一:接纳AT89C51系列单片机作为控制的焦点。
51单片机按单纯的控制和数据处置惩罚是比力经济实惠的,但本项目触及到A/D转换和PWM控制,如果要具备这两个功效必须要有专用的A/D芯片和PWM控制电路,这无疑是提高了本钱。
方案二:接纳凌阳16位单片机SPCE061A作为控制的焦点。
SPCE061A具有10位A/D转换和PWM控制功效,且具备语音播报功效,使作品越发智能化。
综上阐发,选择方案二。
(二)平衡检测模块方案一:接纳水银开关检测跷跷板平衡点。
其内部是由两根导线组合而成,只要当水银流动到导线的两端即水银把两根导线短接在一起。
但当跷跷板平衡时,有可能水银开关还未闭合,可靠性不高。
方案二:接纳Accu StarⅡ倾角传感器检测跷跷板平衡点。
此倾角传感器是通过改变角度来改变其输出电压,具有良好的线性变革,如图2所示,通过读取输出电压的值来控制小车的速度,有助于电动车找到平衡点。
因此选择方案二。
(三)电机驱动模块方案一:接纳分立元件组成的H桥式电机驱动电路。
该驱动电路的优点是本钱低,缺点是电路制作比力麻烦,可靠性不高。
方案二:接纳L293D驱动电机。
使用该芯片驱动的利益是在额定的电压和电流内使用非常方便可靠,可以缩小PCB板。
用SPCE061A自带的PWM控制电机效果更好,使电动车更容易的寻找到跷跷板的平衡点。
电动车跷跷板(F题)设计报告摘要本设计共分为两部分:跷跷板平衡检测系统和和PTR8000无线通信系统。
平衡检测系统是将角度传感器连接在跷跷板中心位置来检测跷跷板摆动角度的开环控制系统。
为以后电动车找平衡角度做准备。
PTR8000无线通信系统是将角度传感器检测出来的角度通过无线发送模块将数据发送给电动车,根据数据电动车调节自身运动从而达到调节平衡的目的。
平衡检测系统、无线通讯系统与电动车构成了一个闭环控制系统。
电动车以ATmega16为控制核心,采用步进机控制电动车前进和倒退,采用光电传感器检测引导线,利用无线接收模块接收跷跷板平衡检测系统发送的数据,CPU对数据进行智能分析,调整小车前进速度和方向,使跷跷板达到平衡状态。
在电动车到达指定位置时,给出声光提示,同时LED 显示时间和小车当前状态。
附加的PC机电动车跷跷板实时模拟系统,关键字:Atmega16、PTR8000、光电传感器、角度传感器、步进电机一、系统方案1.实现思路和方法本题目要求分为基本部分和发挥部分,基本部分要求在不加配重的情况下电动车在规定时间内完成从跷跷板起始端出发,行驶到跷跷板中心点附近,并且在中心点附近找到平衡位置停留几秒钟,然后从平衡点出发行驶到跷跷板末端停留几秒钟,再从末端倒退回起始端,整个过程要给出时间显示和平衡指示。
设计中主要解决的问题是车在跷跷板中心点附近找到平衡和时间显示。
我们应用角度传感器与板的中心相联来检测板子转的角度再通过PTR8000发送给单片机分析处理后就可以得到角度值来控制车的运动从而达到调节平衡的问题。
显示我们用LCD 液晶显示时间,提示我们用蜂鸣器组成声光报警系统,可以达到提示平衡指示的目的。
2. 方案的选择与论证2.1 控制芯片的选择与论证方案一:采用传统的89C51作为电动车的控制核心。
89C51具有价格低廉、使用简单等特点,但运算速度较慢,数据存储器和程序存储器较少,没有ISP 下载线及SPI接口,功能单一,控制过程比较烦琐。
方案二:采用ATmega16作为电动车的控制核心。
ATmega16拥有丰富的资源,运算速度快,低功耗,高性能,可通过ISP下载线写入程序,其SPI接口可用于对无线通讯模块的控制,使小车能实时接收到跷跷板平衡检测模块发送的数据,以此调整自身前进速度及位置,达到跷跷板平衡的要求。
基于上述分析,拟采用方案二。
2.2 执行机构的选择与论证方案一:采用普通直流电机。
直流电动机驱动力大转弯角度小但只能在有限的场地运动,而且控制精度不高,不适合在高精度控制的场合应用。
方案二:采用步进电机。
步进电机的一个显著特点是具有快速启停能力,如果负荷不超过步进电机所能提供的动态转矩值,就能够立即使步进电机启动、反转或停止。
另一个显著的特点是转换精度高,正转反转控制灵活。
为了保证物体能够平稳且精确的运行,我们选择方案二。
2.3 显示系统的选择与论证方案一:采用LED数码管显示器。
LED数码管亮度高,醒目,但其信息量小,占用资源较多,且显示方式单一。
方案二:采用LCD液晶显示器。
LCD液晶显示器屏幕较大,美观,清晰,能显示数字,字母,汉字,甚至图片。
其功耗低,占用资源少,使用简单。
基于上述分析,拟采用方案二。
2.4 跷跷板平衡检测系统的选择与论证方案一:采用角度传感器。
角度传感器是一种高精度测量物体倾斜角度的检测仪器,将其转轴固定在转动物体上一旦物体转动将带动传感器转轴将产生一个数值,再经过A/D转换把此数值转成角度从而测量出物体转动的角度。
此方法测量数据准确并且测量精度高适合高精度的测量。
方案二:在电动车上水平放置一水槽,在水槽正上方设置两探针,当跷跷板失去平衡时,两探针之一接触水面;当跷跷板平衡时,两探针均不接触水面。
但由于受视觉的影响,测量精度将受到影响。
方案三:在电动车上设置一倒立摆,倒立摆顶端连接电位器的转轴,倒立摆受重力影响,一直垂直指向地面,小车在行进过程中,电位器测量摆的倾角,以此判断跷跷板的状态。
通过分析题目对控制的精度要求很高,所以我们选择方案一。
2.5 数据发射\接收系统的选择与论证方案一:采用传统的有线数据传输。
将独立的系统用数据线连接,进行数据传输,电路连接简单,但使用极不方便。
方案二:采用PTR8000无线收发模块。
PTR8000无线收发模块体积小,低电压,低功耗,性能稳定且不受外界干扰,内置完整的通信协议和CRC,通讯方便。
可方便的放于电动车上,实时接收\发送数据。
本系统需要电动车接收跷跷板平衡检测系统发送的角度传感器检测数据,同时电动车也要实时将自身数据发送给PC机进行显示及模拟,三个独立的系统之间要互相通讯,使用有线数据传输不方便,故采用方案二。
3.系统的设计经过以上方案的比较论证我们设计了如下的系统流程图:3.1 系统框图如图F-1所示。
本系统共分为两部分。
一部分为跷跷板平衡检测系统,另一部分为电动车。
跷跷板平衡检测系统通过角度传感器检测跷跷板的实时状态,单片机将角度传感器收集到的数据处理后,通过PTR8000无线发射\接收模块发送给电动车。
电动车接收到数据以后,CPU 对数据进行分析,以此调整前进方向和速度。
在电动车前进的同时,车头的两个光电传感器检测跷跷板面的引导线,保证电动车不会从跷跷板上掉落。
当电动车接收到跷跷板平衡检测系统发送的跷跷板平衡信号时,小车制动,计时器停止,给出声光提示,并在LCD 上做出相应指示。
图F-13.2 跷跷板平衡检测系统的原理与实现在跷跷板中心位置处安装一个角度传感器,如图F-2所示。
当跷跷板两端上下摆动的时候,角度传感器转轴跟随转动,同时将转动的方向和角度等数据经单片机处理后,通过无线通讯模块传送给小车,小车根据接收过来的数据自行判断并设定行走方向和速度。
当角度传感器转轴转动的角度近似于0°时,即可认为跷跷板处于平衡状态,小车停止, 并给出相应提示。
3.3 跷跷板面引导措施及检测在跷跷板面中央和离板面A 端30厘米处都贴有引导物,A 端到B 端之间画有黑色引导线,引导小车在翘翘板中央行走;跷跷板两端各画有一条黑色引导线,引导小车停在跷跷板两端。
小车两头各采用两个光电传感器检测引导线,分别设置在两车头两角上。
光电传感器是一种以发光二极管为光源,以光敏管为接收器,输出信号以脉冲为主的传感器。
如图F-3所示。
当光电传感器测到黑线或障碍物时,其输出端OUT(图中A点)输出为1,使得光电隔离器的发光二极管截止,发光二极管不发光,光电三极管不导通,因此,光电隔离器的输出端(图中B点)为1,当光电传感器没有检测到黑线或障碍物时,其输出为0,光电隔离器的发光二极管导通,发光三极管导通,光电隔离器的输出为0。
光电传感器F-3图二、理论分析与计算1.测量数据2.理论分析与计算由题意说明可知:根据板长和中心高度可以算出板子与地面的夹角(SINa=中心高除以板长的一半)又平衡条件为A、B两端与地面的距离差d=|da-db|不大于40mm板子的幅度不超过10度,即:板子一端每下降或上升1度对应板子偏移的距离为1.4厘米,板子幅度不得超过2厘米。
三、电路与程序设计1. 检测与驱动电路的设计1.1本系统驱动电路采用UDN2916B驱动芯片做为核心元件。
UDN2916B电路设计时需要充分考虑热设计,因为驱动IC消耗的大部分能量主要为在突变关闭期间马达再生电流造成,马达产生的再生电流流过电流检测电阻和地钳制二极管重新流回马达,产生的电压跌落引起了能量消耗,地钳位二极管上的瞬时电压(VF)出现了最大的跌落,产生了主要的功耗。
设计电路时,如果在驱动IC输出端外加肖特基二极管,并且只要这些肖特基二极管的VF特性值比内部地钳位二极管小,马达产生的再生电流将会有一部分从外部肖特基二极管重新回流到马达,使流经驱动IC内部的电流减少,降低了驱动IC的功耗,反过来也就提高了热性能。
驱动电路原理图见附录1.2 检测电路的设计检测电路分为角度检测和路线检测两部分。
角度检测采用角度传感器来测量角度;路线检测才用光电传感器测量;原理图见附录2.总体电路图见附录3.系统的软件设计与工作流程图1 软件设计本系统使用ATMega16作为核心控制,使用C语言进行软件编程。
跷跷板系统软件完成对角度传感器采集的数据进行处理和发送,电动车系统软件完成数据的接收及判断,实现小车行走、寻找平衡位置的智能化,并实时显示系统接收到的数据、小车行走时间、跷跷板状态等。
2 程序流程图四、创新发挥本设计还运用Visual Basic(以下简称VB)语言在PC机上制作电动车跷跷板实时模拟系统。
VB是面向对象的、支持可视化编程的程序设计语言,能方便的设计出实用的应用系统。
电动车在运行过程中,通过PTR8000无线收发模块,将行驶速度、运行状态(包括前进、后退、左转、右转、停止)、所在位置、跷跷板与地面角度等数据发送给PC机。
接收方面,用ATmega16控制另一PTR8000模块接收数据,再通过RS232串口线传送给PC机。
PC机接收到数据后,对数据进行判断、处理并显示,同时以画图的形式,将跷跷板状态、电动车行走路线进行实时模拟显示。
界面直观、数据显示清晰、模拟逼真,电动车运行过程中的各种参数和跷跷板状态都能一目了然。
为了表示跷跷板已经达到平衡,在小车达到平衡时加有声光信号来表明小车已经达到平衡,跷跷板非平衡状态后声光信号会消失。
五、结果分析在调试过程中,当我们检测到水平角度值时,跷跷板总会偏向另一端,所以我们在调节过程中,每当检测到水平范围附近角度值时,小车都会立即做出相反方向的一段运动,来稳定跷跷板平衡。
小车在行走过程中,小车有时会出现失步现象,主要是驱动模块响应脉冲速度有限,所以小车的运行最大速度较小。
附录附录1 原理图部分(1)系统总体图(2)驱动模块原理图(3)PTR8000通信模块原理图附录2 系统程序#include <iom16v.h>#include <macros.h>#include "delay.h"//////////////////////////////////////////////////// #define Z_EN_1 PORTD|=BIT(0) //使能左轮#define Z_EN_0 PORTD&=~BIT(0) //关闭使能#define Z_zz PORTD|=BIT(1) //左轮正转#define Z_fz PORTD&=~BIT(1) //左轮反转#define Z_cp_1 PORTD|=BIT(2) //驱动左轮#define Z_cp_0 PORTD&=~BIT(2)#define Y_EN_1 PORTD|=BIT(3) //使能右轮#define Y_EN_0 PORTD&=~BIT(3) //关闭使能#define Y_zz PORTD|=BIT(4) //右轮正转#define Y_fz PORTD&=~BIT(4) //右轮反转#define Y_cp_1 PORTD|=BIT(5) //驱动右轮#define Y_cp_0 PORTD&=~BIT(5)#define jin 1 //前行#define tui 0 //后退#define you 1 //#define zuo 0 //#define uint unsigned int#define uchar unsigned charuchar q,p,d;uchar gao,di;uchar time=0;uchar time1=0;unsigned int sp;unsigned char gaoducha;unsigned char a[];define SIZE 32uchar TxBuf[SIZE],RxBuf[SIZE];/*-------------------------------------------------------------------------------------------nrf905配置寄存器宏定义 author:HotPowernrf905配置寄存器(10Byte)工作频率f=(422.4+CH_NO/10)*(1+HFREQ_PLL)MHz-------------------------------------------------------------------------------------------*/#define RX_ADDRESS 0x12345678 //接收有效地址(本方)#define TX_ADDRESS 0x12345687 //发送有效地址(对方)#define CH_NO_FREQ_422_4MHz 0x000 //工作频率422.4MHz(433MHz频段最低频率)#define CH_NO_FREQ_422_5MHz 0x001 //工作频率422.5MHz#define CH_NO_FREQ_425_0MHz 0x01a //工作频率425.0MHz#define CH_NO_FREQ_427_5MHz 0x033 //工作频率427.5MHz#define CH_NO_FREQ_430_0MHz 0x04c //工作频率430.0MHz#define CH_NO_FREQ_433_0MHz 0x06a //工作频率433.0MHz(433MHz频段基准频率)#define CH_NO_FREQ_433_1MHz 0x06b //工作频率433.1MHz#define CH_NO_FREQ_433_2MHz 0x06c //工作频率433.2MHz#define CH_NO_FREQ_434_7MHz 0x07b //工作频率434.7MHz#define CH_NO_FREQ_473_5MHz 0x1ff //工作频率473.5MHz(433MHz频段最高频率)#define CH_NO_FREQ_844_8MHz 0x000 //工作频率844.8MHz(868MHz频段最低频率)#define CH_NO_FREQ_862_0MHz 0x056 //工作频率862.0MHz#define CH_NO_FREQ_868_0MHz 0x074 //工作频率868.0MHz(868MHz频段基准频率)#define CH_NO_FREQ_868_2MHz 0x075 //工作频率868.2MHz#define CH_NO_FREQ_868_4MHz 0x076 //工作频率868.4MHz#define CH_NO_FREQ_869_8MHz 0x07d //工作频率869.8MHz#define CH_NO_FREQ_895_8MHz 0x0ff //工作频率895.8MHz#define CH_NO_FREQ_896_0MHz 0x100 //工作频率896.0MHz#define CH_NO_FREQ_900_0MHz 0x114 //工作频率900.0MHz#define CH_NO_FREQ_902_2MHz 0x11f //工作频率902.2MHz#define CH_NO_FREQ_902_4MHz 0x120 //工作频率902.4MHz#define CH_NO_FREQ_915_0MHz 0x15f //工作频率915.0MHz(915MHz频段基准频率)#define CH_NO_FREQ_927_8MHz 0x19f //工作频率927.8MHz#define CH_NO_FREQ_947_0MHz 0x1ff //工作频率947.0MHz(915MHz频段最高频率)#define CH_NO_FREQ CH_NO_FREQ_430_0MHz //工作频率433.0MHz#define CH_NO_BYTE CH_NO_FREQ & 0xff //工作频率低8位 Byte0 01101100#define AUTO_RETRAN 0x20 //重发数据包Byte1.5 0#define RX_RED_PWR 0x10 //接收低功耗模式 Byte1.4 0#define PA_PWR__10dBm 0x00 //输出功率-10dBm Byte1.3~2 00#define PA_PWR_2dBm 0x04 //输出功率+2dBm Byte1.3~2#define PA_PWR_6dBm 0x08 //输出功率+6dBm Byte1.3~2#define PA_PWR_10dBm 0x0c //输出功率+10dBm Byte1.3~2#define HFREQ_PLL_433MHz 0x00 //工作在433MHz 频段 Byte1.1 0#define HFREQ_PLL_868MHz 0x02 //工作在868MHz 频段 Byte1.1#define HFREQ_PLL_915MHz 0x02 //工作在915MHz 频段 Byte1.1#define CH_NO_BIT8 CH_NO_FREQ >> 8 //工作频率第9位 Byte1.0 0#define TX_AFW_1BYTE 1 * 16 //发送地址宽度1字节 Byte2.7~4#define TX_AFW_2BYTE 2 * 16 //发送地址宽度2字节 Byte2.7~4#define TX_AFW_3BYTE 3 * 16 //发送地址宽度3字节 Byte2.7~4#define TX_AFW_4BYTE 4 * 16 //发送地址宽度4字节 Byte2.7~4 100#define RX_AFW_1BYTE 1 //接收地址宽度1字节 Byte2.3~0#define RX_AFW_2BYTE 2 //接收地址宽度2字节 Byte2.3~0#define RX_AFW_3BYTE 3 //接收地址宽度3字节 Byte2.3~0#define RX_AFW_4BYTE 4 //接收地址宽度4字节 Byte2.3~0 100#define RX_PW_1BYTE 1 //接收数据宽度1字节 Byte3.5~0#define RX_PW_32BYTE 32 //接收数据宽度32字节 Byte3.5~0 00100000#define TX_PW_1BYTE 1 //发送数据宽度1字节 Byte4.5~0#define TX_PW_32BYTE 32 //发送数据宽度32字节 Byte4.5~0 00100000#define RX_ADDRESS_0 RX_ADDRESS >> 24 //接收有效地址第1字节 Byte5 11100111#define RX_ADDRESS_1 (RX_ADDRESS >> 16) & 0xff //接收有效地址第2字节 Byte6 11100111#define RX_ADDRESS_2 (RX_ADDRESS >> 8) & 0xff //接收有效地址第3字节 Byte7 11100111#define RX_ADDRESS_3 RX_ADDRESS & 0xff //接收有效地址第4字节 Byte8 11100111#define CRC_MODE_16BIT 0x80 //CRC16模式Byte9.7 1#define CRC_MODE_8BIT 0x00 //CRC8模式Byte9.7#define CRC_EN 0x40 //CRC使能Byte9.6 1#define CRC16_EN 0xc0 //CRC16模式使能 Byte9.7~6 11#define CRC8_EN 0x40 //CRC8模式使能Byte9.7~6#define XOF_20MHz 0x20 //晶体振荡器频率20MHz Byte9.5~3#define XOF_16MHz 0x18 //晶体振荡器频率16MHz Byte9.5~3 100#define XOF_12MHz 0x10 //晶体振荡器频率12MHz Byte9.5~3#define XOF_8MHz 0x08 //晶体振荡器频率8MHz Byte9.5~3#define XOF_4MHz 0x00 //晶体振荡器频率4MHz Byte9.5~3#define UP_CLK_EN 0x40 //输出时钟使能Byte9.2 1#define UP_CLK_FREQ_500kHz 0x03 //输出时钟频率500kHz Byte9.1~0 11#define UP_CLK_FREQ_1MHz 0x02 //输出时钟频率1MHz Byte9.1~0#define UP_CLK_FREQ_2MHz 0x01 //输出时钟频率2MHz Byte9.1~0#define UP_CLK_FREQ_4MHz 0x00 //输出时钟频率4MHz Byte9.1~0#define UP_CLK_EN_500kHz 0x43 //输出时钟频率500kHz Byte9.2~0 111#define UP_CLK_EN_1MHz 0x42 //输出时钟频率1MHz Byte9.2~0#define UP_CLK_EN_2MHz 0x41 //输出时钟频率2MHz Byte9.2~0#define UP_CLK_EN_4MHz 0x40 //输出时钟频率4MHz Byte9.2~0#define TX_ADDRESS_0 TX_ADDRESS >> 24 //发送有效地址第1字节#define TX_ADDRESS_1 (TX_ADDRESS >> 16) & 0xff //发送有效地址第2字节#define TX_ADDRESS_2 (TX_ADDRESS >> 8) & 0xff //发送有效地址第3字节#define TX_ADDRESS_3 TX_ADDRESS & 0xff //发送有效地址第4字节//nrf905命令控制字 author:HotPower#define WC 0x00 // Write configuration register command#define RC 0x10 // Read configuration register command#define WTP 0x20 // Write TX Payload command#define RTP 0x21 // Read TX Payload command#define WTA 0x22 // Write TX Address command#define RTA 0x23 // Read TX Address command#define RRP 0x24 // Read RX Payload command#define uint unsigned int#define uchar unsigned char#define SET(a,b) a|=(1<<b)#define CLR(a,b) a&=~(1<<b)#define CPL(a,b) a^=(1<<b)#define CHK(a,b) (a&(1<<b))//定义使用的IO口#define PTR8000_DD_I DDRB#define PTR8000_PO_I PORTB//PORTB#define PWR 0#define TRXCE 1#define DR 2#define TX_EN 3#define CSN 4#define MOSI 5#define MISO 6#define SCKvoid xian_shi(unsigned char hang,unsigned char wei_zhi,unsigned char shi_zhi){setaddress(hang,wei_zhi);time_conver(shi_zhi);wr_byte(p);wr_byte(q);}void time_conver(uchar data){switch(data){case 0:{p=0xa3;q=0xb0;break;}case 1:{p=0xa3;q=0xb1;break;}case 2:{p=0xa3;q=0xb2;break;}case 3:{p=0xa3;q=0xb3;break;}case 4:{p=0xa3;q=0xb4;break;}case 5:{p=0xa3;q=0xb5;break;}case 6:{p=0xa3;q=0xb6;break;}case 7:{p=0xa3;q=0xb7;break;}case 8:{p=0xa3;q=0xb8;break;}case 9:{p=0xa3;q=0xb9;break;}}}void wr_byte(uchar x){ uint i,j,q;q=x;PORTC|=(1<<1);for(i=0;i<=4;i++){PORTC&=~(1<<2);PORTC|=(1<<2);}PORTC&=~(1<<2);PORTC&=~(1<<1);PORTC|=(1<<2);PORTC&=~(1<<2);PORTC|=(1<<1);PORTC|=(1<<2);PORTC&=~(1<<2);PORTC&=~(1<<1);PORTC|=(1<<2);PORTC&=~(1<<2);//传数前的准备//010for(j=0;j<4;j++){x=q;if((x&0x80)==0){PORTC&=~(1<<1);}else{PORTC|=(1<<1);}PORTC|=(1<<2);PORTC&=~(1<<2);q=q<<1;}PORTC&=~(1<<1);for(i=0;i<=3;i++){PORTC|=(1<<2);PORTC&=~(1<<2);}for(j=0;j<4;j++){x=q;if((x&0x80)==0){PORTC&=~(1<<1);}else{PORTC|=(1<<1);}PORTC|=(1<<2);PORTC&=~(1<<2);q=q<<1;}PORTC&=~(1<<1);for(i=0;i<=3;i++){PORTC|=(1<<2);PORTC&=~(1<<2);}delay_nms(1);}void LCD_write(uchar x, uchar y, uchar *p){setaddress(x,y);while(*p){wr_byte(*p);p++;}}void setaddress(uchar x, uchar y){uchar move;if(x==1){ move=0x80 + y-1; }if(x==2){ move=0x90 + y-1; }if(x==3){ move=0x88 + y-1; }if(x==4){ move=0x98 + y-1; }wr_command(move);delay_nms(1);}void time1_init(void){TCCR1B=0x04;TCNT1H=0x85;TCNT1L=0xee;TIMSK=0x04;}#pragma interrupt_handler time1_int:9void time1_int(){time++;time1++;xian_shi(2,4,time1/60);LCD_write(2,5,"- ");xian_shi(2,6,((time1%60)/10)); //液晶显示xian_shi(2,7,((time1%60)%10));xian_shi(3,4,((time%60)/10)); //液晶显。