1、 基于单片机的跑步机启/停控制模块的软件设计学 院:专 业 班 级:学 号:学 生 姓 名:指 导 教 师:2016年 04月摘 要近年来,随着社会经济的发展和人们生活水平的提高,人们对自身的健康也日益关注,健身成为一种流行时尚,健身器材行业也逐步兴起为一个大的消费领域,电动跑步机作为一种重要的健身器材得到了越来越广泛的应用,具有广阔的市场前景。研发具有多功能和高附加值的人性化科学化的电动跑步机具有重要的现实意义。电动跑步机的电控系统是整个跑步机运转的核心,它需要具有简单接口界面、电机调速和心率功能。本论文以电动跑步机控制系统为对象,以实用、廉价、高性价比和高安全性为目标,以改进型51系类单片
2、机STC89C52为控制核心,完成了无刷直流电动机调速系统硬件设计、电动跑步机手握式红外心率计软硬件设计和电控系统部分软件开发等任务。首先,文章叙述了跑步机的基本结构和工作原理,对其调速原理和调速方法进行了理论分析,建立了转速、电流反馈控制的直流调速系统的动态静态模型,并实际分析跑步机特殊负载的性质,确保跑步机的安全性和舒适性。并依据此基本控制策略,对电动跑步机无刷直流电动机的调速系统进行了硬件实现并画出相应的电路原理图。其次,文章介绍了电动跑步机附加的电子心率计的软硬件开发。最后,开发部分系统软件。关键词:电动跑步机;数码管; 控制系统AbstractIn recent years, wit
3、h the development of social economy and people living standard rise, people is increasingly concerned on their health, fitness has become a popular fashion, fitness equipment industry also gradually rise to a big consumption, electric treadmill as an important kind of fitness equipment has been more
4、 and more widely used, has a broad market prospect. R digital control system; control system第 1 章 绪论1.1 课题研究背景、目的及意义首先了解一下跑步机的发展历史,跑步机是家庭及健身房常备的器材,而且是当今家庭健身器材中最简单的一种,是家庭健身器的最佳选择。世界上第一台跑步机诞生于 1875 年,发明人是美国东部农村的一位机械师 1。这台机器其实是一台便携式农机设备,以牲畜作为动力来源。1866 年,纽约州通过了美国第一部禁止虐待动物的法律,用鞭子打牲口被视为非法行为。 “美国反对虐待动物组织”指
5、责那些爬楼式的动力装置伤害了动物的膝关节,给动物造成了心理压力。于是有人发明了水平跑步机,其传送带和地面平行,动物走在上面就像平时散步一样自然 1。现代意义上的跑步机从 80 年代流行至今已发展到第四代产品第一代产品机械跑步机,是用圆形滚筒组合排列而成的跑台,在两个滚筒中间加装塑胶跑带及跑板,主要运动方式是依靠跑步者脚与跑步带的摩擦力带动来运行从而达到跑步及走步的效果。第二代跑步机模拟电动跑步机,是在原有第一代的基础上增加电机传动装置和升降装置,以及一些电脑控制程序和传感器,通过传感器传输和接收马达的工作信号,用电脑控制程序达到调节跑步机速度、坡度、距离等功能,第三代跑步机数字跑步机,在原有第
6、二代跑步机的基础上去除了传感器,以单片机的数据控制马达的工作状态,不会受到外界的干扰,从而使跑步机运动更稳定、更安全。第四代跑步机是采用的数字变频技术,采用 HK 变频调速器和交流马达组成跑步机的动力系统,因为交流电机结构中没有碳刷,所以终生不需要维护,所以第四代变频跑步机具有更安全、更耐用、更安静、更节能、更稳定 5 大优点使跑步机运动在真正意义上超越了传统室外跑步运动。对于第三代跑步机而言数字跑步机是由第二代模拟电动跑步机发展而来,和模拟电动跑步机的主要区别在于它是由数字信号控制的。模拟数据(Analog Data)是由传感器采集得到的连续变化的值,例如温度、压力、心率,以及目前在电话、无
7、线电和电视广播中的声音和图像;数字数据(Digital Data)则是模拟数据经量化后得到的离散的值,例如在计算机中用二进制代码表示的字符、图形、音频与视频数据。模拟信号跑步机是通过传感器传输和接收马达的工作信号,其随时间、温度、信号强弱等因素,可能导致马达工作不稳定。而数字跑步机则是以单片机的数据控制马达的工作状态,其不会受到外部因素的干扰,从而使跑步机更稳定,更安全。第二代跑步机马达的转速都是各种型号的传感器控制的,均为模拟信号。而第三代跑步机是用单片机控制,系为数字信号 1。模拟信号和数字信号在跑步机中的明显区别:(1) 模拟信号跑步机的最低速度为 0.8kmh 以上,而数字信号跑步机的
8、最低速度可制定在 0.3kmh 以下,且输出大扭力。(2) 模拟信号跑步机的马达上都有个明显的传感器,数字信号跑步机则没有。(3) 模拟信号跑步机控制电源上有大大小小的电位器,数字信号跑步机则没有。(4) 数字信号跑步机在按停止键时,使用者在没有感觉的状态下停止运动,不会出现如急刹车时的眩晕感觉 2。所以基于单片机的第三代跑步机具有很大优点。生命在于运动,健康源于运动。跑步是目前非常流行的一种有氧健身运动,它在医学界和体育界享有高度评价,它是保持一个人身心健康最有效、最科学的健身方式。跑步机是家庭及健身房常备的器材,而且是当今家庭健身器材中最简单的一种,是家庭健身器的最佳选择。专家们相信未来跑
9、步机市场将以高价位产品为主导。低价位产品销售不错,近几年价格已有上升趋势。注重生活时尚的消费者认为跑步机价格在万元以上是理所当然的事。这些迹象表明,未来跑步机仍会持续增长。此次设计的任务为电动跑步机的控制系统。设计包括调速、控制、安全、心率测量等,设计中参考了国内外文献,对电机转速有精确计算,而且设计中可以根据测出的心率来智能调节转速,利用人机学原理,使设计更为人性化。由于跑步机的特殊性,安全问题更值关注,如何正确使用跑步机,和跑步机的保养同样重要 3。针对跑步机的控制系统来言,无刷直流电动机使用电子换向取代了传统直流电动机的机械换向。无刷直流电动机不仅拥有直流电机好的调速范围性能和高效率的优
10、点,还具有交流电机维护方便、可靠操作的长处。此外,BLDCM不需要励磁绕组,有容量小和功率密度大的特点。电动跑步机采用 BLDCM 作为驱动电机时,有价格低廉、机械噪声小、持续工作时间长、便于维护、跑步带调速范围广和速度波动小的优点 4。1.2 课题国内外研究现状及趋势跑步机属于健康器材类产品,由于跑步机驱动电机必须满足各种体重的人来使用。一般使用跑步机的目的有两种:健身和减肥瘦身;如果是减肥瘦身的人来使用,因为身体较肥胖,跑不快,因此驱动电机的低速必须转矩大才能使用。相反的,健身的人跑步快,但是重量轻,因此高速时的转矩需求较小;跑步机必须满足家庭成员每一个人都能使用,因此调速范围要宽广,低速
11、转矩要大,才能满足不同重量的人。目前跑步机使用的驱动装置以直流有刷电机为多,优点是价格便宜。跑步机双面宽厚的跑带让人有草坪般舒适感觉,马力强劲的电机带来恒久的动力,灵敏的控制器配合芯片让人在跑步过程中随心所欲,坚固的钢架以及防护装置使人的安全尽在掌握。电跑使人们在繁忙的工作之余仍然可以尽享运动的乐趣 5。未来人口越来越多的集中在城市,在有限的空间进行锻炼成为了城市居民的不二选择。通过上网了解可知,在跑步机控制系统方面,目前国内外中低市场大都采用直流有刷电动机作为电动跑步机的驱动电机,这些电机的功率在1.5 马力到 2.0 马力之间,同时适用于脉宽调制技术。他们有一下一些问题:大机械噪声、持续工
12、作时间短、高维护费用、短寿命。在高端市场驱动电机大都采用交流电机,大多说功率在 3.0 左右,且适用于矢量控制变频技术,其中一些提升电机 10%的功率,范围改变在 0%到 15%。当然这种系统性能高,而高花费却限制了它的市场 6,7 。另外由于价格和性能的互相限制,目前国内外对于控制系统没有实质性的突破进展时,一般都朝着智能化方向发展,跑步机同时混同各种功能于一体。接下来介绍几种常采用的单片机:采用 ATMEL 公司的 ATmega32 或者 ATmega128 作为跑步机的主控芯片,它具有先进的 RISC 架构,内部集成较大容量存储器,有丰富的管脚资源,驱动能力强,具有在系统编程功能,给控制
13、系统的设计及程序的升级和维护提供了极大方便 8,9 。国外多采用低价位的 8 位单片机 AT89C2051 为核心单元构成了直流有刷电机调速系统,电机采用脉宽调制方式进行调速,通过软件编程改变控制算法,增加了控制的灵活性,具有较高的性价比 10,11 。再介绍一下跑步机重要组成部分无刷直流电动机的发展历程:有刷直流电动机作为最早的电动机广泛应用于工农业生产的各个领域,由于其宽阔而平滑的优良调速性能,在需要调速的应用领域占有重要地位,但机械换向装置的存在,限制了其发展和应用范围。直流电动机的机械电刷和换向器因强迫性接触,造成其结构复杂、可靠性差、火花、噪声等一系列问题,影响了直流电动机的调速精度
14、和性能。科学技术的飞速发展,带来了半导体技术的飞跃,开关型晶体管的研制成功为创造新型的无刷直流电动机带来生机。1955 年,美国人首次提出用晶体管换向线路代替机械换向装置,经过反复实验,人们终于找到了用位置传感器和电子换相线路来代替有刷直流电动机的机械换相装置,出现了磁电耦合式、光电式及霍尔元件作为位置传感器的无刷直流电动机,以后人们发现电量波形和转子磁场的位置存在着一定的对应关系,因此又出现了通过观测电枢绕组中不同电量波形,监测转子位置的无位置传感器的电动机。80 年代初,无刷直流电机进入了实用阶段,方波和正弦波无刷直流电机先后研究成功。 “无刷直流电机”的概念已由最初的具有电子换相器的直流
15、电机发展到泛指一切具有传统直流电机外部特性的电子换相电机。现今,无刷直流电机集电机、变速机构、检测元件、控制软件和硬件于一体,形成为新一代的电动调速系统。无刷直流电机具有最优越的调速性能,主要表现在调速方便(可无级调速) ,调速范围宽,低速性能好(启动转矩大,启动电流小),运行平稳,噪音低,效率高,应用场合从工业到民用极其广泛。如电动自行车、电动汽车、电梯、抽油烟机、豆浆机、小型清污机、数控机床、机器人等等。由于无刷直流电机具有这些优点,因此在 2004 年的国际电机会议上提出了有刷电机将被无刷电机取代这一发展趋势。美、日、英、德在工业自动化领域中已经实现了以无刷直流电机代替有刷电动机的转换
16、12。所以电动跑步机使用无刷直流电动机十分适合。1.3 系统框图图 1-1 系统框图初始化 51 单片机系统启停控制按键是否被按下速度控制按键是否被按下是否第一次按下按键长按键处理启动定时器延时短按键处理是否还处于按下状态是否第一次按下按键启动软件延时是否还处于按下状态长按键处理 短按键处理第 2 章 硬件电路设计2.1 主电源电路跑步机驱动采用无刷直流电动机,所以主电源的任务是得到一个相对稳定的直流电压,以此作为电动机控制系统的输入电压。为了得到+5V 的电源,采用了全波整流电路,结合 7805 三端稳压芯片组成的稳压电路,已确保电路的稳定运行。在电源的输出端,并联了电解电容和瓷片电容,电解
17、电容用来滤掉大部分的电压纹波以保证电压稳定,瓷片电容则用来滤掉高频干扰。大大提高了系统的抗干扰能力,提高了系统的稳定性,可靠性。图 3-1 主电源2.2 STC89C52 单片机及相关电路2.2.1 STC89C52 单片机概述STC89C52 的封装图如下图 3.2.1.1 所示,它是 DIP40 形式,有双列的竖直插入式的封装。外壳是塑料的材料做的,STC89C52 作为本系统的核心控制元件,其管脚图如图 3.1.1.2 所示。图 3.1.1.1 STC89C52 封装图图 3.1.1.2 STC89C52 引脚图(1)VCC:40 脚,电源供电接口,接+5V。(2)VSS:20 脚,接电
18、源地。(3)P0 口:3239 脚,P0 口是一组 I/O 输入输出口,特点是它的漏极开路状态的,如果对 P0 端口写的电平为高电平“1”时,引脚作为高阻抗输入状态。也可以作为一组输出端口。若端口访问外部程序或者查询数据存储器时,P0 口也可以把它当做成低 8 位的地址/数据,复用利用,也就是所谓的信道复用。在这种模式下,P0 具有内部上电阻。但是 P0 口在进行程序校验并作为输出指令字节时,这是需要在外部加上拉电阻,一般选 4.7K10K 的排阻作为上拉电阻。本设计中 P0 口用了 10K 的排阻。(4)P1 口:18 脚,由于 P1 口内部本身具有上拉电阻,P1 口的缓冲器能够接收输出的
19、4 个 TTL 电平电流。如果 P1 端口写入高电平“1”,那么 P1口电平被拉高,就可以作为输入口来使用。(5)P2 口:2128 脚,P3 口:1017 脚。与 P1 口的特征一致。(6)RESET:第 9 脚,作为单片机的一个复位输入端口。倘若作为振荡器的复位器件时,RST 引脚会产生两个或两个以上的机器周期的高电平,回到最开始,这时就可以复位了。(7)ALE/P:30 脚,当 IO 口读取外部存储器的时候,地址会锁定然后存储所允许的输出电平值,然后锁定并存储地址的那位字节。用 FLASH 编程的时候,输入编程的脉冲信号就是在这个引脚可以体现作用的。在一般的情况下,ALE 端会输出以不变
20、的周期的频率,因为这个频率将会是振荡器频率的 1/6 的一个正脉冲信号,因此它可用来检测系统是否正常工作。(8)PSEN:29 脚,用于选择外部存储器的信号入口。(9)XTAL1:19 脚,可以输入振荡器的反相放大器和发生内部时钟的电路。如果要接外部时钟源,就从 XTAL1 输入。(10)XTAL2:18 脚,作为振荡器的反相放大器的输出端口。如接外部时钟源,则 XTAL2 悬空。单片机在系统中作为主控芯片对外部电路采集到的信号进行处理,发出PWM 信号给 L298,然后通过 L298 驱动步进电机。进而实现本系统的自动控制效果。2.2.2 晶振电路晶振的全名叫做石英晶体震荡器。由于石英晶体震
21、荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器可以用来产生基准频率。用晶振的基准频率来保正系统正常运行所需的准确频率。图 3.2.2 所示是单片机的晶体振荡电路图。这是一个时钟产生电路,CPU在这个时钟脉冲同步下进行所有操作。片内振荡器的振荡频率和晶振的频率是非常接近的,一般在 1.2MHz 到 24MHz 左右。C1、C2 作为反馈电容,它的值一般在 10pF60pF 之间选取,其经典值为 30pF。本电路选用 30pF 的瓷片电容,晶振选用 12MHz 的。XTAL1、 XTAL2 分别接晶振的两个引脚,然后分别对地接一个 30pF 的瓷片电容。在石英晶体的两根管脚上加
22、交变电场,它会产生一定的机械变形、机械振动和产生交变电场,被称为压电效应。在正常的时候,无论是机械的振动,还是交变电场的变化,振幅都是非常小的。但是,当交变电场的频率在一定的值时,振幅会急剧增加变化,产生共振,被称为压电振荡。这种特殊的频率是石英晶体所固有的频率,也就称为共振频率。晶振起振后在XTAL2 引脚上,会输出约 3 V 的正弦波,通常情况下,该振荡器时钟频率为0.5 MHz16 MHz 之间其中 12 MHz 和 11.0592 MHz 是典型的值,我们需要特别注意。电容 C1 和 C2 可以帮助起振,我们微调 C1,C2 的值就可以调节频率了。图 3.2.2 石英晶体振电路仿真图2
23、.2.3 复位电路复位电路的主要功能是对单片机进行初始化,在初始化的过程中需要在复位引脚上加上两个或者两个以上机器周期的高电平。单片机复位之后,地址初始化为 0000H,然后会继续从 0000H 这个值开始同时启动程序并执行下去。在复位电路中为了可靠的复位,加入了 10uF 的电解电容,由于电容充电的原因复位引脚上高电平持续的时间延长,以防止在这过程中案件引起的抖动而影响复位。如图 3.2.3 所示。图 3.2.3 复位电路图2.2.4 时钟电路DS1302 是美国的 DALLAS 公司发表和推行的,它的高性能,低功耗被大多数电子生产商喜爱,它的实时时钟芯片,可以对时,分,秒计时,同时还是万年
24、历的核心,有补偿闰年的作用,工作电压范围约在 2.5V5.5V 左右。三线接口与 CPU 的同步通信,如图 3.3.1,VCC1 作为备用电源,VCC2 作为主电力供应。即使在主电源关闭的时候,VCC1 可以作为备用的电源,它能够维持时钟的连续运行,不会造成时间的混乱和重置。DS1302 的供电由 VCC1 或 VCC2 两者中的较大者供电;当 VCC2VCC10.2V 时,VCC2 给 DS1302 供电;当 VCC2unsigned char code SEGtable =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /字符编码sbi
25、t SEKey = P1 0; /启动、暂停和停止按键sbit INCKey = P1 4; /速度增加键sbit DECKey = P1 7; /速度减少键sbit pauseLED = P3 0; /暂停指示灯sbit stopLED = P3 7; /停止指示灯bit keyFlg; /按键长按、短按标志位 0 为短按 1 为长按unsigned char TimeCounter;/计数专用unsigned char KeyDownFlg,set;/按键专用unsigned char yansi,key,send,unitsdData,tensdData,num,keynum;bit k
26、eybz;/延时函数void delay(unsigned char time)unsigned char x,y;for(x=time;x0;x-)for(y=110;y0;y-);/扫描启动、停止、暂停按键void StartAndStopKeyScan()if(SEKey = 0) /键被按下KeyDownFlg = 1;/置键按下标志位TR0 = 1;/启动定时器if(SEKey = 1) /清除键标志位if(keyFlg = 0) /如果是短按stopLED = 1;pauseLED =pauseLED;TR0 = 0;/关闭定时器TimeCounter = 0;/计数器清零keyF
27、lg = 0;/清除短按、长按标志位void SegDisplay(unsigned char tensdData,unsigned char unitsdData)P0 = SEGtabletensdData;delay(10);P2 = SEGtableunitsdData;delay(10);void keyscan1() /具有连加功能的的按键扫描程序if(INCKey=0)/判断 INCKey 键是否按下?SegDisplay(tensdData,unitsdData);/延时去抖动if(INCKey=0)/如果真接下就去执行键盘程序if(keybz=0)/判断是否是第一次按下 ?n
28、um+;/值加一if(num=100) /判断是否加到 100num=0;/加到 100 清 0keybz=1;/第一次进来置标志位key-;/按键次数计数器keynum=5; /快加按键次数计数器tensdData=num/10; /BCD 码转为十进制值unitsdData=num%10;return;/不用检测松手直接返回else/如果是第二次按下则执行下面的语句if(key=0)/判断按键次数到 100 次了吗?if(keynum=0) /检测按下时间是否超过加 5 次的时间key=10; /如果按键持续时间超过加 5 次的时间则以后每 10 次执行加工厂操作num+;if(num=9
29、9)num=0;tensdData=num/10;unitsdData=num%10;return;else/没有到 5 次时间则执行下面的语句keynum-; /快加计数器减一key=100;num+;if(num=99)num=0;tensdData=num/10;unitsdData=num%10;return;else/没有到 100 次下次再来判断 .key-;return;if(INCKey!=0)/松手后所有的计数器清并置默认值keynum=5;key=30;keybz=0;return;/返回 /*以下是减一键处理程序,执行效果同加一程序*/if(DECKey=0)SegDis
30、play(tensdData,unitsdData);if(DECKey=0)if(keybz=0)num-;if(num=-1)num=99;keybz=1;key-;keynum=5;tensdData=num/10;unitsdData=num%10;return;elseif(key=0)if(keynum=0)key=10;num-;if(num=0)num=99;tensdData=num/10;unitsdData=num%10;return;elsekeynum-;key=100;num-;if(num=0)num=99;tensdData=num/10;unitsdData=
31、num%10;return;elsekey-;return; if(DECKey!=0)keynum=5;key=30;keybz=0;return;void Timer0Interrupt(void) interrupt 1TimeCounter+;if(TimeCounter=250) /定时时间到keyFlg = 1; /置长按标志位pauseLED = 1;stopLED = stopLED;/取反TR0=0; /关闭定时器TH0 = 0xd8;TL0 = 0xf0; /定时器重新赋初值/主函数void main(void)EA = 1;TMOD = 0x01;TH0 = 0xd8;
32、/10msTL0 = 0xf0;ET0 = 1; /设置定时器 1unitsdData=0;tensdData=0;P1=0xff;P2=0;key=100;SegDisplay(0,9);while(1)StartAndStopKeyScan();/调用按键扫描子程序keyscan1();SegDisplay(tensdData,unitsdData);致 谢通过几周的努力,这次设计顺利完成了,并最终定稿,看着自己的劳动结晶,内心充满了感激,在此我要感谢我的指导老师杨霞老师对我的悉心的指导,感谢老师给我的帮助。在设计过程中,杨老师在百忙之中还挤出休息时间给我用电子邮件和语音通话的方式为我指点
33、迷津,为我耐心讲解,给我提供大量的资料和教我查阅资料的便捷方法,还经常为我提供各方面的帮助,为我排忧解难。在这次毕业设计中许多同学也为我加油、鼓劲,也使我们的同学关系更进一步,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以,在此,我向各位老师及同学们表示我最衷心的感谢!同时,我也感谢我的所有任课老师,是他们把我带入了电子学科学殿堂。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不很好,但是在设计过程中所学到的东西是这次设计的最大收获和财富,使我终身受益。我会带着这份求学精神,带着老师和同学们寄予我的厚望,好好地把握机会,在以后的生活、工作岗位上发挥自己最大的优势。