电动车翘翘板_毕业设计正文

上传人:仙*** 文档编号:136727053 上传时间:2022-08-17 格式:DOC 页数:44 大小:441.50KB
收藏 版权申诉 举报 下载
电动车翘翘板_毕业设计正文_第1页
第1页 / 共44页
电动车翘翘板_毕业设计正文_第2页
第2页 / 共44页
电动车翘翘板_毕业设计正文_第3页
第3页 / 共44页
资源描述:

《电动车翘翘板_毕业设计正文》由会员分享,可在线阅读,更多相关《电动车翘翘板_毕业设计正文(44页珍藏版)》请在装配图网上搜索。

1、目 录前 言2第1章 任务要求31.1 设计任务31.2 设计要求41.2.1 基本部分要求41.2.2 发挥部分要求41.3 设计说明5第2章 方案论证52.1 系统设计方案选择与论证52.1.1 电机方案的选择与论证52.1.2 寻迹检测电路方案的选择与论证62.1.3 平衡检测电路方案的选择与论证62.1.4 平衡标志方案的选择与论证72.1.5 显示时间电路方案的选择与论证72.1.6 电源方案的选择与论证82.2 系统电路组成及原理8第3章 系统的软件设计与实现93.1 单片机介绍93.2 ADC0832数据读取程序设计流程123.3 寻找平衡子程序设计流程143.4 T0中断定时子

2、程序流程图163.5 LCD显示子程序流程173.6 主程序流程18第4章 系统测试及调试204.1 系统测试204.1.1 测试仪器204.1.2 数据测试204.1.3 测试数据与结果分析214.2 软件调试21总结22致谢23参考文献24附录1 硬件电路图25附录2 系统软件设计清单26附录3 英语原文40附录4 中文翻译43前 言随着计算机技术的飞速发展, 单片机已逐渐发展成为一门关键的技术学科。20 多年来, 高校单片机课程成了很多专业的必修课。该课程是一门应用性很强的课程, 如何让学生在学好基础知识的同时, 迅速掌握设计应用技术, 其中的实践教学起着非常重要的作用。单片机实践教学包

3、括单片机基本理论实验、典型功能应用实验(课程设计) 、应用开发实验(毕业设计) 以及新技术使用实验等等多环节训练。21 世纪是信息时代, 是经济大发展的时期,要求培养更多的高素质、高能力、有开拓进取精神的探索创新型人才, 因此不仅要使学生通过单片机实践教学来掌握基本实践手段, 更重要的是使学生具备应用这些手段从事科学研究的独立工作能力。在实践教学中, 仅仅传授实践技术是不够的, 必须注重学生能力的培养, 使学生在知识和能力方面得到全面的发展。古人云: “授之以鱼, 只供一饭之需, 教之以渔, 则终生受用无穷。”培养能力无异于给学生一把开启知识之门的钥匙, 有了这把钥匙才能使他们在知识的海洋里泛

4、舟冲浪。所以单片机实践教学的方法得当, 有利于创新人才的培养。传统的单片机实验均以单片机实验箱或者单片机技术开发装置为实验器材, 开设的实验大多数属于验证性实验和训练性实验, 学生实验时是在指导教师的指导下根据实验讲义一步一步完成相应的内容。在整个学习过程中, 学生往往很被动, 而且与实际应用不接轨。学生学完整个单片机课程后不知道单片机的应用场合, 更谈不上开发一些具有实用价值的东西。一种型号的单片机可以学习很多年,学生训练分散、时间短暂, 实践教学没有层次, 阶段不明, 忽视培养学生的实践能力和创新精神。要想从根本上解决问题, 应该根据培养能力的要求, 建立单片机实验教学新体系, 打破单片机

5、实验教学依附于理论教学, 为理论教学服务的传统观念。而本课题就是为打破这种传统观念,而用实际物品来验证单片机各种性能的,运用现代化的实践教学手段和管理模式,课题充分利用实验室有利的条件, 不断地改革和完善单片机实践教学的内容和方法, 提高学生单片机应用与开发能力, 达到培养具有实践能力和创新精神的高素质人才的目的。第1章 任务要求1.1 设计任务图1-1 起始状态示意图设计并制作一个电动车跷跷板,在跷跷板起始端A一侧装有可移动的配重。配重的位置可以在从始端开始的200mm600mm范围内调整,调整步长不大于50mm;配重可拆卸。电动车从起始端A出发,可以自动在跷跷板上行驶。电动车跷跷板起始状态

6、和平衡状态示意图分别如图1-1和图1-2所示。图1-2 平衡起始状态示意图1.2 设计要求1.2.1 基本部分要求在不加配重的情况下,电动车完成以下运动:(1)电动车从起始端A出发,在30秒钟内行驶到中心点C附近;(2)60秒钟之内,电动车在中心点C附近使跷跷板处于平衡状态,保持平衡5秒钟,并给出明显的平衡指示;(3)电动车从(2)中的平衡点出发,30秒钟内行驶到跷跷板末端B处(车头距跷跷板末端B不大于50mm);(4)电动车在B点停止5秒后,1分钟内倒退回起始端A,完成整个行程;(5)在整个行驶过程中,电动车始终在跷跷板上,并分阶段实时显示电动车行驶所用的时间。1.2.2 发挥部分要求图1-

7、3 自动驶上跷跷板示意图将配重固定在可调整范围内任一指定位置,电动车完成以下运动:(1)将电动车放置在地面距离跷跷板起始端A点 300mm以外、90扇形区域内某一指定位置(车头朝向跷跷板),电动车能够自动驶上跷跷板,如图1-3所示。(2)电动车在跷跷板上取得平衡,给出明显的平衡指示,保持平衡5秒钟以上。(3)将另一块质量为电动车质量1020的块状配重放置在A至C间指定的位置,电动车能够重新取得平衡,给出明显的平衡指示,保持平衡5秒钟以上。(4)电动车在3分钟之内完成(1)(3)全过程。(5)其他。1.3 设计说明(1)跷跷板长1600mm、宽300mm,为便于携带也可将跷跷板制成折叠形式。(2

8、)跷跷板中心固定在直径不大于50mm的半圆轴上,轴两端支撑在支架上,并保证与支架圆滑接触,能灵活转动。(3)测试中,使用参赛队自制的跷跷板装置。(4)允许在跷跷板和地面上采取引导措施,但不得影响跷跷板面和地面平整。(5)电动车(含加在车体上的其它装置)外形尺寸规定为:长300mm,宽200mm。(6)平衡的定义为A、B两端与地面的距离差d=dA-dB不大于40mm。(7)整个行程约为1600mm减去车长。(8)测试过程中不允许人为控制电动车运动。第2章 方案论证2.1 系统设计方案选择与论证2.1.1 电机方案的选择与论证方案一:采用步进电机。步进电动机的一个显著的特点就是具有快速启动和停止能

9、力,能够达到我们所要求的标准。其转换灵敏度比较高。正转、反转控制灵活。但是步进电机的驱动能力较差、速度较低、对于方案要求相差较大,而且力矩小,容易步丢失1。方案二:采用减速电机,其最大的优点是转矩较大,驱动能力较强, 但是减速电机的速度也较低,不能很好的满足要求方案三:采用大功率达林顿管组成的H型方向控制的电机驱动普通的直流电机。H型电机驱动电路具有优良的转向控制,电子开关速度很快,稳定性也很强,可实现频繁的无极快速启动、制动和反转,能满足各种不同的特殊运行要求。 由于普通直流电机价格适宜,更易于购买,并且电路相对简单,因此采用方案三2。2.1.2 寻迹检测电路方案的选择与论证本设计要求在整个

10、行驶过程中,电动车始终在跷跷板上,为了防止小车在行使过程中掉下跷跷板,因此在跷跷板上画出黑色直线轨道。考虑到轨道是在白纸上打印的一条黑线,可以利用传感器辨认路面黑白两种不同的状态。对传感器的选择有以下方案。方案一:用光电传感器。光电传感器对黑色和白色的反射系数不同,由此判断传感器是否在黑线上行驶。但是,由于其他光源影响,需采用聚焦式光电传感器。方案二:用反射式红外传感器。红外线比可见光的波长要长,散射度小,可以降低环境对光源接收管的干扰,但由于直接利用直流电源对管子供电,限于管子的平均功率要求,工作电流只能在10mA左右,仍易受到干扰。基于可靠性和成本的考虑,我们选择方案一3。2.1.3 平衡

11、检测电路方案的选择与论证方案一:采用集成芯片SCA61T倾角传感器。该角度传感器是一个单轴倾角传感器,测量范围在+30度到30度之间,符合跷跷板角度范围,该传感器可以输出模拟量和SPI数字量,易于单片机采集数据,稳定性高,抗冲击能力强,价格合理,与单片机接口电路简单易懂,容易实现4。方案二:采用旋转编码器。将编码器固定在跷跷板旋转的轴上,当跷跷板转动时,连带着编码器旋转某个角度,根据编码器旋转一周(即360度)编码器输出脉冲数目与检测到的数目比较可以得到板面与地面之间的角度,根据转动方向不同,编码器输出A与输出B比较,当B的相位超前于A的相位90度代表跷跷板正向旋转,当A的相位超前于B的相位9

12、0度代表跷跷板反向旋转,这样根据编码器输出不同就能得到跷跷板的角度与方向,可以根据此来控制单片机发出不同的指令控制小车状态,但此方案加大了系统的复杂性5。方案三:采用电位器。电位器可以安装在跷跷板上,跷跷板旋转就可以带动电位器轴旋转,因此电位器阻值发生变化,利用一片A/D转换芯片,将变化的模拟量经过转换得到不同的数字量,再根据数据运算后发出命令控制小车的运行状态。此方案元器件较为普遍,降低了系统的复杂性,但是电位器阻值变化快,不易采值。综合上述分析,我们采用方案一。2.1.4 平衡标志方案的选择与论证方案一:采用蜂鸣器和发光二极管相结合。当跷跷板平衡时,利用蜂鸣器发出声音和发光二极管发亮示意平

13、衡,此电路直观简单易懂。方案二:利用角度仪。当跷跷板平衡时,角度仪的指针刚好指向中间,但是,如在旁边不仔细观察,不能发现角度仪的作用。基于上述分析,我们采用方案一。2.1.5 显示时间电路方案的选择与论证方案一:采用LED数码管静态显示的方法。此方法容易理解,驱动程序简单,但需要多片数码管驱动显示,增加成本,而且占用单片机多个I/O口,浪费系统硬件资源。方案二:采用LED数码管动态显示的方法。此方法需要7个I/O口可以驱动8个数码管显示,驱动程序也很简单而且容易理解,但是硬件电路也比较繁琐,由于小车的容纳空间有限,不易采用6。方案三:采用LCD液晶显示。采用1602A液晶显示器,占用单片机10

14、个I/O口,浪费系统硬件资源,但其美观大方,使整个系统看起来更加漂亮。综合各方案的特点,我们选择方案三。2.1.6 电源方案的选择与论证方案一:采用单电源供电。在测试过程当中,我们采用的是直流稳压电源提供的5V电压,可以使小车能正常完成各项功能。方案二:采用双电源供电。利用双电源供电会增加单片机工作的可靠性;但它增加小车系统的电路连线,可能会造成电线过多而产生错误的问题,而且也增加了电路的复杂性7。基于上述分析,我们采用了方案一。2.2 系统电路组成及原理本系统电路主要由六大模块组成,微机主控制模块、寻迹检测模块、平衡检测模块、显示模块、蜂鸣器模块和直流电机驱动控制模块等六大模块组成。见图2-

15、1。其工作原理是通过AT89C52来控制直流电机的转动,再由电机驱动小车行驶,小车在行驶过程中通过光电传感器检测黑线使小车直线前进。小车到达平衡位置时蜂鸣器有5秒的鸣响,同时指示灯亮,小车到终点时只有指示灯亮。在行驶过程中,由LCD液晶实时显示小车行驶的时间。AT89C52单片机平衡检测时间显示电机驱动、车向控制蜂鸣器引导线检测图2-1 设计原理框图第3章 系统的软件设计与实现3.1 单片机介绍图3-1 AT89C52引脚图目前,CPU 的发展应用趋于多样化,主要可分为 8 位机和 16 位机两种,8 位单片机的应用占主流,根据本系统的特点及功能要求,选用了一种低功耗、低价格、高性能的 CMO

16、S8 位微处理器AT89C52,芯片内部具有8K 在系统可编程Flash 存储器,芯片采用51系列指令集并与51系列单片机引脚完全兼容8。其引脚图见图3-1。AT89C52单片机的各引脚功能如下:(1)VCC : 电源(2)GND: 地(3)P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。(4)P1口:P1

17、 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。 (5)P2口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种

18、应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX Ri)访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。(6)P3口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口亦作为AT89C52特殊功能(第二功能)使用,见表3-1。 (7)REST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门

19、狗计时完成后,REST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。表3-1 P3口引脚替换功能表P3口引脚第二功能P3.0RXD(串行口输入)P3.1TXD(串行口输出)P3.2(外部中断0输入)P3.3(外部中断1输入)P3.4 T0(定时器0外部脉冲输入)P3.5 T1(定时器1外部脉冲输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通) (8)ALE/:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在Flash编程时,此引脚()也

20、用作编程输入脉冲。时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”, ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。(9):外部程序存储器选通信号。当AT89C52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。(10)/Vpp:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器

21、读取指令,必须接GND。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏Vpp电压。(11)XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。(12)XTAL2:振荡器反相放大器的输出端9。3.2 ADC0832数据读取程序设计流程ADC0832芯片接口程序的编写:44为了高速有效的实现通信,我们采用汇编语言编写接口程序。由于ADC0832的数据转换时间仅为32uS,所以A/D转换的数据采样频率可以很快,从而也保证了某些场合对A/D转换数据实时性的要求。数据读取程序以子程序调用的形式出现,方便了程序的移植。程序占有资源有累加器A,工作寄存器R7,通用寄存器B和特殊寄

22、存器CY。通用功能寄存器和转换值共用寄存器B。在使用转换子程序之前必须确定通道功能寄存器B的值,其赋值语句为“MOV B,#date”(00H-03H)。运行转换子程序后的转换数据值被放入B中。子程序退出后即可以对B中数据处理10。常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换

23、完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入两位数据用于选择通道功能。当此2位数据为“1”、“0”时,只对CH0进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当两位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。到第3个脉冲的下沉之后DI端的输入电平就失去输入

24、作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了11。3.3 寻找平衡子程序设计流程倾角传感器SCA61T是一个单轴倾角传感器,其测量范围在+30度到30度之间,单极5V供电,比例电压输出,具有很高

25、的分辨率,具有数字SPI和模拟电压输出,内置温度传感器,长期稳定性好,低噪声,工作温度范围宽,抗冲击能力强。 由于我们所用的AT89C52没有SPI接口,所以我们用的是模拟数据输出模式。小车在跷跷板上行驶时,倾角传感器SCA61T输出的模拟电压值由2.2伏到2.9伏。小车出发时(即跷跷板A点时),输出的电压值大约是2.2伏;当小车行驶到平衡位置时(即跷跷板C点时),输出的电压值大约是2.5伏,小车行驶到终端(即跷跷板B点时),输出的电压大约是2.9伏。图可见图1-1。 我们把模拟方式输出的数据高位存在R4寄存器里,数据低位存在R5寄存器里,再存入21H存储单元里,由于跷跷板从始端到终端时R4寄

26、存器里数据都不变,所以我们只需要比较数据低位就好。3.4 T0中断定时子程序流程图AT89C52内部有3个16位可编程的定时器/计数器,简称定时器0,定时器1,定时器2,分别用T0,T1,T2表示。本设计用T0工作在模式0下定时,赋5mS初值,用软件控制定时起停12。其中TMOD为模式控制寄存器,主要用来设置定时器/计数器的操作模式;TCON为控制寄存器,主要用来控制定时器的启动与停止。T0工作在定时方式时,计数脉冲输入信号是由内部时钟提供的,每一个机器周期使计数器的值加1。而每个机器周期等于12个振荡周期,故计数器的计数频率为振荡器频率的1/12。实质上定时工作方式,就是对单片机的机器周期数

27、进行计数。3.5 LCD显示子程序流程TC1602A可分为2行共显示32个字符,每行显示16个字符。内含HD44780控制器的液晶显示器模块的TC1602A有两个寄存器:一个是命令寄存器,另一个是数据寄存器。所有对TC1602A的操作必须先写命令字,再写数据。 TCl602A内部结构由DDRAM、CGROM、IR、DR、BF、AC等大规模集成电路组成。DDRAM为数据显示用的RAM(Data Display RAM,简称DDRAM)用以存放要LCD显示的数据,只要将标准的ASCII码放入DDRAM,内部控制线路就会自动将数据传送到显示器上,并显示出该ASCII码对应的字符。CGROM为字符产生

28、器ROM (Character Generator RAM,简称CGRAM),可供使用者存储特殊造型的造型码,CGRAM最多可存8个造型。IR为指令寄存器(Instruction Register,简称IR),负责存储MCU要写给LCD的指令码。当RS及RW引脚信号为0且Enable引脚信号由1变为0时,D0D7引脚上的数据便会存入到IR寄仔器中。DR为数据寄存器(Data Register,简称DR),它们负责存储微机要写到CGRAM或DDRAM的数据,或者存储MCU要从CGRAM或DDRAM读出的数据。因此,可将DR视为一个数据缓冲区当RS及RW引脚信号为1且Enable引脚信号由l变为0

29、时,读取数据:当RS引脚信号为l,RW引脚信号为0且Enable引脚信号由1变为0时,存入数据。BF为忙碌信号(Busy Flag简称BF)。当BF为l时,不接收微机送来的数据或指令;当BF为0时,接收外部数据或指令,所以,在写数据或指令到LCD之前,必须查看BF是否为0。AC为地址计数器(Ad-dress Counter,简称AC),负责计数写入读出CGRAM或DDRAM的数据地址,AC依照MCU对LCD的设置值而自动修改它本身的内容。3.6 主程序流程主程序流程分3大部分,第一部分为小车从起始位置到寻找到平衡位置,这一部分里主要包括前进,寻迹,寻找平衡且显示时间子程序。第二部分为从平衡位置

30、到走到终端这一段,这一部分主要包括前进,寻迹,判断是否到黑线子程序。第三部分为从终端返回到起始位置这一段路程,这一部分主要包括后退,寻迹子程序。第4章 系统测试及调试4.1 系统测试4.1.1 测试仪器仪器名称型号用途数量直流电压源luyang提供电压1仿真器keil调试程序1烧写器RF-2148烧写程序1数字万用表测量电路电压、电流及各种器件14.1.2 数据测试4.1.2.1跑道全程测试测试次数完成时间(S)行使路程 (mm)寻迹次数1153320072129320053123320044.1.2.2 平衡测试测试次数寻找平衡时间平衡次数误差率145有70222无340有432有551无6

31、49有740有830无946有1023有4.1.3 测试数据与结果分析通过多次测试数据,本电动车跷跷板系统设计的性能指标及实现功能如下:1、 在规定的时间内小车可完成往返全程路;2、 在配重物的情况下,小车达到的平衡度有一定的误差;3、 小车可寻迹运行,并能循着黑线继续往前行驶;4、 实时显示小车当前的时间功能; 5、 实现蜂鸣器和发光管示意的功能;4.2 软件调试本系统软件程序较长,给程序的编写和调试带来了一定的困难,在调试过程中出现了很多问题,尤其是在调试小车平衡状态、寻迹等程序的调试,后来我们采用了模块化的调试过程,最终在多次尝试和细心修改后最终取得了成功。如我们在编写寻找平衡子程序时,

32、由于我们不知道小车在具体位置时SC61T单轴倾角器输出的具体电压值,我们得先编写一个具体的显示SCA61T输出的电压值的程序,显示出小车在跷跷板上不同位置时输出的不同电压值。从而根据这些不同的电压值判断小车的位置。而在编写寻迹子程序时,当光电传感器检测到黑线时,转多大的角度也是我们一遍一遍修改程序,最后才最终选定的,从而达到比较好的效果。而如何让其实现分阶实时显示时间,我们也想了很多方案,最终我们选定了把主程序设成3个大循环,从而解决了分阶实时显示时间的功能。我们在编程过程中还遇到过很多问题,但经过我们多次尝试修改后最终完成了我们的任务要求。这让我们认识到只要自己不放弃,努力,再努力,就一定会

33、成功。也让我们知道了知识的重要性。总结本系统设计基本达到了作品要求的功能,整个系统运行稳定。在调试过程中,首先对硬件进行调试,只有硬件电路没有问题了方可进行软件调试。通过本次毕业作品的设计与制作,让我们体会最深的是团队精神的重要性, 在整个设计与制作过程中我们秉着互相信任、互相配合、分工合作的态度。最后基本完成了作品要求的功能。本次作品考验的不仅仅是我们的理论知识和动手能力更是对我们毅力、应变能力、心理素质的综合考验。另外电路板焊接技术也是很重要的,虽然电路板的焊接非常不起眼,但是它对整个设计作品的成败起着非常关键的作用。焊接电路板时,要高度集中精力,不能急于求成,因为每一个细微的焊接失误都会

34、导致调试失败,这也让我们学到了细节决定成败的道理。同时最为重要的一点就是软件编程的问题,在这方面我还有很多不足,有待我们去提高。致谢 我们所做的“电动车跷跷板的设计与制作”这个设计是一个结合科研的题目。它涉及到系统原理图设计,主控软件的设计,单片机汇编语言的编程还有相关软件(Keil)的使用。由于我们能力有限,在毕业设计的制作过程中,遇到很多问题和困难,但在老师的指导的帮助和关心下,我们成功地完成了主控软件的总体设计和编程工作。在此,我们向帮助过我们的老师致以真诚的感谢!本论文是我在尊敬的祝玲老师的精心指导下完成的。祝玲老师严谨的治学作风和孜孜不倦的工作态度深深地激励着我,使我尽最大努力克服工

35、作中所遇到的困难,不断进步,在理论和实践方面的能力都获得了很大的提高。在四年的大学学习过程中,祝老师给予我的支持和鼓励使我倍感温暖,一生难忘。在此谨向我的导师祝老师致以崇高的敬意和衷心的感谢。衷心感谢电气信息工程学院各位领导和老师在我的四年的大学学习和毕业设计期间给予热情的关心和帮助。同时感谢我的各位朋友,在我的大学生活中,他们丰富了我的生活,也给了我莫大的支持,在此感谢他们对我的帮助。最后,我要特别感谢我的父母多年来对我的关爱。在我近年的学习生涯中,我的每一点进步、每一点成绩都与他们给予我的鼓励和全力支持密不可分。在我的求学生涯暂告一段落之际,谨向他们表示我深深的感谢。参考文献1王俊峰 编著

36、 电子产品开发设计与制作 人民邮电出版社 2005版2黄智伟 编著 全国大学生电子设计竞赛训练教程 电子工业出版社 2005版3 李民刚 曹巧媛 曹琳琳 陈忠平 主编单片机原理及使用技术高等教育出版社出版 2005年版4(美) Paul Scherz著 蔡声镇 . 等 译 发明者电子设计宝典福建科学技术出版社 2004版5 http:/www.tan-6 陈民荧 编著 8051单片机课程设计实训教材清华大学出版社出版 2004年版7杨刚 周群 主编 电子系统设计与实践 电子工业出版社 2004版8王振红 张常年编著 综合电子设计与实践 清华大学出版社 2005版9吴金戌 沈庆阳 郭庭吉编著 8

37、051单片机实践与应用 清华大学出版社 2002版10 杨欣 王玉凤 主编电子设计从零开始清华大学出版社出版 2005年版11 12李玉梅 编著 基于MCS-51系列单片机原理的应用设计 国防工业出版社 2006版附录1 硬件电路图附录2 系统软件设计清单系统总的软件程序如下:;=;主程序:实现控制电动机寻迹,找平衡功能,并且完成分段记时,;报警,显示等功能;= RS EQU P3.7 ;LCD 数据/命令选择端 RW EQU P3.6 ;LCD 读/写选择端 E EQU P3.5 ;LCD 使能信号 AD_CS EQU P3.3 ;ADC0832 片选信号 AD_CLK EQU P3.2 ;

38、ADC0832 时钟端 AD_DAT EQU P3.1 ;ADC0832 数据端 HOUR EQU30H MIN EQU31H SEC EQU32H ;定义时,分,秒,以及数据 DEDA EQU 33H ;存储单元 SEC0 EQU34H X EQU35H D0_D7 EQUP0 ;LCD数据? DII BITP2.5;报警标志位 DENG BITP2.6;指示灯标志位STOP_CHE BITPSW.5;用户自定义位F0,停车标志位 STOP_AD0832 BITPSW.1 ;用户自定义位F1,AD0832停止标志位 ORG 0000H ORG000BH;T0中断入口 LJMPT0_INT ;

39、T0中断LJMPSTARTORG 0100H ;- START: MOV SP, #60H MOV A,#00H MOV 20H,A MOV 21H,A;清位MOVP2,A;清P2口CLRSTOP_CHECLRSTOP_AD0832;清标志位SETBDIISETBDENG MOV P0,#0FFH ACALLINIT;调用清存储单元程序INITACALLINIT_TIMER;初始化T0中断程序 ACALL INIT_LCD;初始化LCD LCALLDIS1 ;调用显示程序;=;LOOP1完成小车前进并寻迹,找到平衡位置;并显示这段路程所需时间;= LOOP1:CLRCLCALL AD_CONV

40、 ;调用AD转换程序 LCALL AD_CHULI;调用AD数据转换程序LCALLCONV;调用电子表显示程序LCALLDELAYLCALLDELAYLCALLLANGJIN;调用前进行车程序LCALLXUNJI3;发挥部分寻迹LCALLXUNJI1;调用前进寻迹程序MOVA,21HCJNEA,#70H,XUANZE;AD转换的低位值与70H比较SJMPWWW1;相等则转XUANZE: JC WWW;不等,A值小于70H则转CLRCLCALL AD_CONV ;调用AD转换程序 LCALL AD_CHULI;调用AD数据转换程序LCALLCONV;调用电子表显示程序LCALLDELAYLCAL

41、LDELAYMOVA,21HCJNEA,#70H,XUANZE0;再次确认A值SJMPWWW1XUANZE0:JCWWWWWW1:LCALLPINGHENG;调用寻找平衡程序JBSTOP_AD0832,LOOP2;判断是否停AD标志位WWW:SJMPLOOP1;=;LOOP2完成小车从平衡位置寻迹走到跷跷板终端功能;并记录这段时间,在终端停5秒,并报警;=LOOP2:LCALLCONV;调用电子表显示程序LCALLLANGJIN ;调用前进行车程序LCALLXUNJI1;调用前进循迹程序LCALLHEIXIAN;调用判断到终点并停车程序JBSTOP_CHE,LOOP3;判断停车标志位SJMPL

42、OOP2;=;LOOP3完成小车从跷跷板终端寻迹退回功能;并记录这段时间;=LOOP3:LCALLCONV;调用电子表显示程序LCALLLANGTUI;调用后退行车程序LCALLXUNJI2;调用后退寻迹程序SJMPLOOP3;=;时间存储区域初始化;=INIT:MOVHOUR,#00HMOVMIN,#00H;清空MOVSEC,#00H MOVDEDA,#00HRET;=;T0中断初始化;=INIT_TIMER:MOVTMOD,#00H;设定T0工作模式MOVIE,#82H;开中断MOVTH0,#99MOVTL0,#24;赋5S初值SETBTR0;开始定时RET;=;T0中断子程序;=T0_I

43、NT:PUSHACCMOVTH0,#99MOVTL0,#24;赋初值INCDEDAMOVA,DEDACJNEA,#199,TT;一秒钟到?MOVDEDA,#0INCSECMOVA,SECCJNEA,#60,TT;一分钟到?INCMINMOVSEC,#0MOVA,MINCJNEA,#60,TT;一小时到?INCHOURMOVMIN,#0MOVA,HOURCJNEA,#24,TTMOVSEC,#0MOVMIN,#0;清零MOVHOUR,#0TT:POPACCRETI ;=;LCD初始化子程序;= INIT_LCD: MOVA,#00000001B;清屏 ACALLWRITE_LCD_COM MOV

44、A,#00111000B;8位2行5*7点阵 ACALLWRITE_LCD_COM MOVA,#00001100B;显示器开,光标开,闪烁开 ACALLWRITE_LCD_COM MOVA,#10000000B;写显示起始地址,第二行第一个位置80H-8FH ACALLWRITE_LCD_COM RET;=;检查忙碌子程序;= CHECKBUSY: PUSHACCLOP1: CLRRS;选择指令寄存器 SETBRW;选择读模式 MOVD0_D7,#0FFH;P1口写1,准备写入 SETBE;使能LCD MOVA,D0_D7;将LCD的D0-D7由P1口送A,以便查第七位BF是否为0 CLRE;

45、禁止LCD JBACC.7,LOP1;判断由LCD读入第七位BF是否为1,若为1,表示LCD忙 POPACC RET;=;写入IR寄存器子程序;= WRITE_LCD_COM: PUSHACC ACALLCHECKBUSY;调检查忙碌子程序 CLRE;禁止LCD CLRRS;选择指令寄存器 CLRRW;选择写模式 SETBE;使能LCD MOVD0_D7,A;将指令写入LCDLCD_PORT SETBE;使能LCD CLRE;使能LCD POPACC RET;=;写入DR寄存器子程序;= WRITE_LCD_DATA: PUSHACC ACALLCHECKBUSY;调检查忙碌子程序 CLRE;

46、禁止LCD SETBRS;选择数据寄存器 CLRRW;选择写模式 SETBE;使能LCD MOVD0_D7,A;将数据写入LCD SETBE;使能LCD CLRE;禁止LCD POPACC RET;= ;PIGHENG:寻找平衡标志位子程序;=PINGHENG:NOPWW1:CLRP2.0CLRP2.1CLRP2.2CLRP2.3;停车LCALLCONVLCALLDLYLCALLCONVLCALLDLY;电子表显示并延时一段时间LCALLCONVLCALLDLYLCALLCONVLCALLDLYSETBP2.0SETBP2.3;小车后退LCALLCONVLCALLDLY;延时并显示时间LCAL

47、LCONVLCALLDELAY1CLRP2.0CLRP2.3;停车LCALLCONVLCALLDLYLCALLCONV;延时并显示时间LCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALL AD_CONV ;再次调用AD转换处理程序 LCALL AD_CHULI LCALLDELAYMOVA,21HCLRCCJNEA,#40H,XUANZE2;取转换值低位与40H比较XUANZE2:JCWW2;若小于40H则转CJNEA,#70H,XUANZE7;若大于40H,则与80

48、H比较XUANZE7:JCSS;若小于70H则转LJMPWW1;若大转WW1WW2:SETBP2.1SETBP2.2;小车前进LCALLDLYLCALLXUNJI1CLRP2.1CLRP2.2 ;停车LCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONV;显示时间并延时一段时间LCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALL DLYLCALLCONVLCALL AD_CONV LCALL AD_CHULI LCALLDELAYMOVA,21HCLRC;再次调AD转换低位值于确认CJNEA,#40H,

49、XUANZE3XUANZE3:JCWW2CJNEA,#70H,XUANZE4XUANZE4:JCSSLJMPWW1SS:MOVR5,#18HCLRDENGCLRDIILCALLINIT;找到平衡停车5秒LCALLCONV;并显示这段时间ZZ:LCALLDLYLCALLCONVDJNZR5,ZZSETBAD_CS;关掉AD转换SETBSTOP_AD0832;置停AD转换标志位LCALLINIT;把时间存储区域清空SETBDENGSETBDIIWW:RET;=;HEIXIAN:判断是否到终点子程序;完成判断,停车5秒,并记录这段时间功能;= HEIXIAN:MOVC,P1.0ORLC,P1.1JNCTING;P1.0,P1.1同时为0转TINGRETTING:NOPNOPMOVC,P1.0ORLC,P1.1;再次确认转TINGCHEJNCTINGCHERETTINGCHE:CLRP2.0CLRP2.1CLRP2.2CLRP2.3SETBP2.4;停车MOVR5,#18HLCALLINITCLRDENGZZ1:LCALLCONV;延时5秒,并显示LCALLDLYDJNZR5,ZZ1SETBSTOP_CHE;置停车标志位LCALLINIT;清时间存SETBDENGRET;=;LANGJIN:前进行车子程序;=

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!