本科毕设论文-—智能电子计步器.doc

本科毕设论文-—智能电子计步器.doc

ID:12658394

大小:5.44 MB

页数:44页

时间:2018-07-18

上传者:zhaojunhui
本科毕设论文-—智能电子计步器.doc_第1页
本科毕设论文-—智能电子计步器.doc_第2页
本科毕设论文-—智能电子计步器.doc_第3页
本科毕设论文-—智能电子计步器.doc_第4页
本科毕设论文-—智能电子计步器.doc_第5页
资源描述:

《本科毕设论文-—智能电子计步器.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

本科生毕业论文设计题目:_智能电子计步器__37 上海商学院本科生毕业论文论文题目:智能电子计步器学生姓名:_____胡黛娟_________学生学号:07103040212指导教师:沙立仁二级院系:__信息与计算机学院____专业班级:072班完成时间:_____2011年4月20日_______37 目录声明II摘要IIIABSTRACTIV第1章概述11.1课题背景11.2课题意义1第2章系统分析与方案比较32.1系统的功能分析32.2系统总体设计思路32.3方案论证与比较42.3.1输入模块42.3.2显示模块5第3章硬件设计及介绍63.1微处理器模块63.1.1外形和电路图符号63.1.2功能特点和组成63.2传感模块83.3显示模块83.3.1数码管类别93.3.2数码管引脚排列103.4元件清单及开发环境103.4.1元件清单103.4.2设计开发环境113.5硬件电路图设计及PCB印刷板113.5.1硬件总电路图113.5.2关键部分电路图123.5.3PCB图14第4章软件设计及调试164.1总设计思路164.2计步主程序设计164.3调试检查214.4硬件使用说明21第5章总结23参考文献24致谢2437 上海商学院学位论文原创性声明本人郑重声明:本人所呈交的学位论文,系我个人在导师的指导下进行研究工作所取得的成果。除文中已特别加以标注和致谢的地方外,不包含其它个人或机构已经发表或撰写过的研究成果。对本研究做出贡献的其它个人和集体,均已在文中明确说明和致谢。本人充分意识到本声明的法律结果完全由本人承担。学位论文作者签名:_____日期:年月日学位论文使用授权的声明本人完全了解上海商学院有关保留和使用学位论文的规定,学校有权保留和向有关部门或机构送交本论文的复印件和电子版,允许论文被查阅和借阅。学校可以将本学位论文的全部或部分内容编入有关数据库,可以采用影印、缩印或其它复印手段保存和汇编本学位论文。保密论文在解密后适用本声明。论文作者签名:_____论文导师签名:_____日期:年月日37 基于小波变换的数字图像水印技术摘要随着经济不断增长,在快节奏、高效率的现代社会中,人们深知身体健康很重要。在不良饮食习惯与工作压力下,不少人处于亚健康状态。事实证明坚持步行,就能达到锻炼的目的。计步器的出现满足了这类人的需求。计步器的主要功能是检测步数,通过步数和步幅可计算行走的路程,高级的计步器还可以计算人体消耗的热量。但这些计算的主要依据是步数的检测。本次智能电子计步器设计主要的功能是通过传感器的感应使计步器计步数,扩展功能是计时和计算频率,也就是计走过步数所用的时间从而算出每分钟走多少步数。设计由震荡传感器和计数器两部分组成。计数部分采用单片机ET44M210开发调试并编入程序。传感部分使用自己制作的弹珠震荡模块来实现,既经济又实用。并且考虑到手工制作的会比较粗糙,可能在震荡过程中多计或少计步数,使计步不精确。为了解决这个问题特别加入防抖动的部分,使其检测更精准。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点说明了系统的设计思路和详细设计过程。关键词:震荡传感器ET44M210单片机计步器37 基于小波变换的数字图像水印技术AbstractWiththeeconomygrowinginafastpaced,highefficiency,themodernsociety,peopleknowthathealthisveryimportant.Inunhealthyeatinghabitsandworkingpressure,manypeopleofsub-healthstate.IntheFactswalkcanachievethepurposeoftheexercise.Pedometersatisfiedthedemandforthiskindofperson.Themainfunctionistotestpedometerquantity.Throughthestepsandstridecancalculatethedistance.Seniorpedometercancomputethehumanconsumptionquantityofheat.Butthesecalculationstepsisthemainbasisofdetection.Thisintelligentelectronicpedometerdesignmainfunctionistheinductionbysensorstoprojectpedometerefficiency.Functionexpansionprojectistimingandcalculationfrequency.Itisalsoplanstosteptimeusedpastcalculatehowmanystepsperminutewalk.Designbyvibrationsensorandcounter.Countpartadoptssingle-chipmicrocomputerET44M210developmentofcommissioningandputintoprocedures.Sensingpartusinghomemademarblesconcussionmoduletorealizebymyself.Itiseconomicalandpractical.Consideringthehand-madewillcoarser.Itmaybeinshockprocessmuchplanorlessquantity,andmakeplanprojectsteparenotaccurate.Inordertosolvethisproblemisespeciallytojointhejitterpartandmakeitsdetectionmoreaccurate.Thispapermainlyintroducedthedevelopmentbackgroundandsubjecttocompletethefunctionsanddevelopmentprocess.Keyillustratesthedesigningideaofthesystemanddetaileddesignprocess.Keywords:shocksensor,ET44M210microcontroller,pedometer37 第1章概述1.1课题背景随着经济的不断发展,快节奏、高效率的现代社会中,健康的生活对我们而言越来越重要。当今生活的不良饮食习惯与工作压力双重考验下,人们的亚健康趋于严重,而对于繁忙工作的人群来说,锻炼只可以说是一种美好的向往。因此在交通工具已十分发达的今天,最容易被遗忘的健身方法是什么?是步行。下定决心,最容易坚持终生的健身方法是什么?也是步行。根据有关资料显示步行对我们的身体健康起到了很大的作用1.步行能增强心脏功能使血管弹,减少血管破裂的可能性。2.步行能增强肌肉力量,强健腿足、筋骨,并能使关节灵活,促进人体血液循环和新陈代谢。3.步行可以增强消化腺的分泌功能,促进胃肠有规律的蠕动,增加食欲,对于防治高血压、糖尿病、肥胖症、习惯性便秘等症都有良好的作用。4.在户外新鲜空气中步行,大脑思维活动变得清晰、灵活,可有效消除脑力疲劳,提高学习和工作效率。据有关专家测试,每周步行三次,每次一小时,连续坚持4个月者与不喜欢运动的人相比,前者反映敏锐,视觉与记忆力均占优势。5.步行可以保护环境,消除废气污染,对强健身体,提高身体免疫力,减少疾病,延年益寿也有积极的推动作用。综上所述为了我们的能拥有一个健康年轻的身体,也为了不增加城市交通负担和环境污染,步行可以说是最明智的选择。1.2课题意义俗话说“百练不如一走”,“步行是运动之王”。科学家最新研究结果提示,如果一个人可以步行400米,折算一下是500步左右。这就说明他的身体状况至少能多活6年以上,而且走得越快,寿命就越长。可能在很多人眼里看来,37 步行与身体情况以及寿命没有直接性的联系,但根据多次调查发现,老年人能否在短时间内可以走完500步是一个重要的标志,并且间接关系着他们能不能抵御更大的疾病。美国匹兹堡大学医学院从事该研究的带头人艾恩·纽曼教授指出,那些无法走完500步的老年人,在将来的生活中,要比能走完500步的人更加具有面对严重疾病或死亡的危险。纽曼及其科研小组对2700位年龄介于70~79岁的老年人进行了测试,让他们完成步行任务,并且不带任何比赛奖励的性质。所有参于测试者都事先经过体检,证明其身体健康,他们也都表示走这点路一点也不费劲。但最终只有86%的人完成了比赛。科学家随后对所有的参与者进行了6年的跟踪研究。研究发现完成步行者与未完成者之间出现很大的不同。那些没有走完全程的人,在后来患上重病或死亡的危险非常大。完成步行所用时间也相当重要。那些虽然完成步行,但处在最慢的25%人群中的人,其死亡的危险程度明显比快行者高出3倍。美国医学专家推荐了一个用走路自测健康状况的公式:如果你能在10分钟内走完1000步,说明健康状况良好;如果能在20分钟内走完2000步,说明健康状况优秀;而如果能在30分钟内走完3000步,那么你的身体状况与一个青壮年小伙子一样棒。正因为步行对健康起到如此重要的作用,而又需要比较合理的测出行走的步数,一个小巧方便的计步器是不可或缺的。它是一种健康电子产品,顾名思义就是在你走步的时候帮你计算一共走了多少步,是一个既经济又科学的小工具。计步器可以帮我们完成每天走步计数目标。总的来说,计步器的开发研制对健康生活极其关键。它不仅仅是一个计数的机器,更是一个督促运动,与健康密切联系的必需品。37 第2章系统分析与方案比较2.1系统的功能分析1.基本功能:根据所学的知识,设计一个计步器,要求自行设计供电电源,该计步器能够实现计步功能。即加1计数器:步数最大值为99999。2.扩展功能:(1)记录本次健身时间:时间单位为分钟。(2)能够计算和显示平均速率:每分钟走的步数。2.2系统总体设计思路计步器由控制器模块,输入模块,输出模块和电源模块组成。对仿真器进行编程,使单片机作为主控制设备对采集到的传感器信号进行处理,最后通过LED数码管显示输出。系统组成框图如图2.1所示。图2.1系统方案框图37 2.3方案论证与比较根据总体设计思路分别对输入模块和显示模块做出分析和比较。2.3.1输入模块方案一:采用独立式按键作为输入模块,其特点是直接使用I/O口构成单个按键电路,接口电路配置较为灵活,按键识别和软件结构简单。但是当键数较多时,占用的I/O口较多,比较浪费资源,其原理图如图2.2所示:图2.2独立的功能按键方案二:采用矩阵式键盘作为输入电路,其特点是当键数越多时越节约I/O口,比较节省资源,但缺点是电路和软件结构稍稍繁琐。其原理图如图2.3所示图2.34*4矩阵式键盘电路图37 综上所述,本设计使用独立式按键作为计步器的计数按键。原因是这个计步器按键较少,仅需3个按键。若采用键盘输入为软件设计增加负担。并且考虑到本次设计中使用的I/O口不是很多,选择方案一是明智之举。2.3.2显示模块方案一:用LCD显示,需要使用专用的驱动控制芯片,如PIC16F873,其特点是软件实现比较复杂,且价格较贵。方案二:采用LED数码管串行静态显示,虽然其显示亮度高,但是如果显示器位数较多,需要增加锁存器,占用I/O口线较多,CPU的消耗大。并且电路连接较为繁琐。方案三:采用LED数码管并行动态显示,显示亮度不及静态显示,但电路相对简单,适合于显示位数较多的设计。综上所述,考虑到用到5位数字显示,为了不增加电路的负重感,所以采用方案三使用2个三位一体并行动态数码管。该数码管具有程序编写简单,对外界环境要求低,易于维护的特点。其排列形状如图2.4所示。图2.4数码管排列形状37 第3章硬件设计及介绍3.1微处理器模块本设计规定使用ET44M210芯片,该芯片由台湾义统电子股份有限公司(EtomsElectronicsCorp.)设计,是一款采用CMOS工艺制造,低价格﹑高性能﹑低功耗的8位SoC微控制器。3.1.1外形和电路图符号图3.1外形图图3.2电路图符号3.1.2功能特点和组成ET44M37 210芯片采用RISC指令集架构,数据存储器容量1.3KB,程序存储器容量16KB,堆栈层数16层,中断源20个。主要功能特点有:1)具有42个I/O引脚,可设置上拉电阻和按键唤醒功能2)具有一个8位定时/计数器TCC和16位长时定时器FRC3)具有一个串行外围接口SPI4)具有2路﹑16位的脉宽调制输出PWM5)具有一个10位﹑16路模数转换器ADC6)具有一个2.4GMH无线射频调制解调器WM7)具有一个符合USB1.1通信协议的全速USB接口芯片的内部组成如下图3.3所示:DownstreamPort*3UpstreamPortRFModuleROM/RAMI/OPORTTIMER/CPWMADCSPIMCUUSBHUB+EmbeddedPortWMPLL图3.3微处理器内部组成本次设计中所涉及到的微处理器部分是输入输出I/O接口,定时器/计数,中断控制。(1)输入输出I/O接口芯片最多可以有42个I/O引脚(PTA0~7,PTB0~7,PTC0~5,PTD0~7,PTE0~7,PTF0~3),通过有关寄存器的设置可以定义这些引脚为输入或输出。所有引脚都可以选择内部上拉电阻,部分引脚可以选择集电极开路。此外,还可以选择按键唤醒功能。(2)定时器/计数器芯片除了通常的带预除器的8位的计数器外,还有一个16位的“长时计数器”37 ,可以很方便地实现长时定时,具有定时器溢出中断的功能。(3)中断控制芯片所有功能模块的响应都是通过中断工作方式来实现的。ET44M210将ROM存储器的0x10到0xA8的区域作为20个中断响应入口。本设计是用FRC计时器0x0020自由计数器溢出中断,自由计数器从ffffH到0000H时可以发生中断[1][2]3.2传感模块本次设计由于没有现成的传感器使用,并考虑到降低成本,合理利用身边易获得的材料自制一个震荡模块,其由一盒子和一个小钢珠组成,用无导电性的有机玻璃制作成盒子状,使用氯仿将一块导电的铜片粘合固定于盒子底部,再将另一块铜片粘在盒子的正前方玻璃壁上,并确保2块铜片无连接。最后将能起到导电作用的小钢珠放置其中,在前后摇动盒子的同时,将会使小钢珠一前一后运动,使电路导通从而计步。最后在盒子的前后各连一根导线作为输入端和接地端,让震荡信息转化为开关信号达到传感器的作用。为了方便使用和收纳,增加了一个插座使得计步器在不使用时可以与传感器分开保存,在需要使用时才连接的作用。本设计新颖,构思巧妙,改变了现有摆锤与开关传感器分离设计的思念,合理设计成一体化的震荡模块,通用于各种造型的壳体或者电路板结构上,确保其计步精度不因电路板焊接差异而产生误差,也可大大降低实际生产成本。结构示意图如下图3.4所示:图3.4自制传感器示意图3.3显示模块本次设计使用的是型号为SP420562K三位一体共阴数码管。3.3.1数码管类别按照数码管上各发光二极管的电极的连接方式不同,可以将数码管分为共阳极37 数码管和共阴极数码管两种。共阴极数码管是指把a、b、c、d、e、f、g这7个发光二极管的阴极连接到一起,形成公共阴极(COM)的数码管。共阴极数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。共阴极数码管内部连接如图3.5所示。图3.5共阴数码管内部连接图共阳极数码管是指把a、b、c、d、e、f、g这7个发光二极管的阳极连接到一起,成公共阳极(COM)的数码管。共阳极数码管在应用时应将公共极COM接到+5V电源上,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阳数码管内部连接如图3.6所示。图3.6共阳数码管内部连接图数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。本设计根据上述比较后选择了动态显示驱动,动态显示驱动是将所有数码管的8个显示笔划”a,b,c,d,e,f,g,dp”的同名端连在一起。其占用CPU时间多,显示数据有闪烁感,但能够节省大量的I/O端口,硬件开销小,而且功耗更低,可以降低成本和电源功耗。37 硬件译码就是显示的段码完全由硬件完成,CPU只要送出标准的BCD码即可,硬件接线有一定标准。软件译码是用软件来完成硬件的功能,硬件简单,接线灵活,显示段码完全由软件来处理,是目前常用的显示驱动方式。[5]3.3.2数码管引脚排列而本次设计使用到的数码管型号为SP420562K,其中引脚11,7,4,2,1,10,5,3连接输入端;引脚12,9,8连接输出端。排列顺序以及引脚分布如图3.7和图3.8所示。图3.7数码管的排列图3.8数码管的引脚图3.4元件清单及开发环境3.4.1元件清单开发电路板一块ET44M210芯片一块SP420561K(三位)LED数码管2组160欧电阻8个,1千欧5个按键3个:开关,切换模式,计数S9013NPN型三极管5个发光二级管1个:指示灯37 导线若干3.4.2设计开发环境WindowsXP/2000VisualStudio2008Protel2004ET44M210仿真器软件:ETUSBWICE2.123.5硬件电路图设计及PCB印刷板3.5.1硬件总电路图根据以上的分析和设计思路综合设计并使用PROTEL2004软件画出总电路图如图3.9所示:图3.9总设计电路图3.5.2关键部分电路图37 其中,显示部分使用I/O引脚是PTB0~7作为数码管输入的八个端口,设计时为避免电流过大而导致数码管损坏又在其每个输入口串联一个电阻。电阻值根据电压3.3伏除以数码管电流20毫安计算得到约为160欧。PTD0~4作为输出5个端口,分别输出个位到万位上的数字,并串联S9013NPN型三极管放大电路。其中NPN型三极管的发射极连接数码管的输入端。基极连接一个电阻值为1000欧的电阻,集电极接地。实验过程中使用万用表区别三极管的3个极。首先将万用表打到1K档,先用黑表笔接三极管的任意一个脚,再用红表笔测其他两个脚,直到找到红表笔测的任意两个脚都是数十K时,说明黑表笔所接的是三极管的基极,另两个脚阻值大的是发射极,阻值小的是集电极。具体电路图如图3.10显示部分所示:图3.10显示部分本设计采用1.5v电池2节,外形小巧易携带。电路图如下图3.11所示:37 图3.11电池部分本设计的滤波部分由2个电容组成,一个10微法的电解电容,滤除低频波;另一个0.1微法的瓷片电容,滤除高频波。滤波电路图如下图3.12所示:图3.12滤波部分根据单片机要复位,本质上是在其RESET脚上保持一定时间的高电平,检测到这个电平保持时间大于它要求的时间就会自动复位的道理。本次复位电路设计是由一个按键一个较小电容和电阻组成。按键按下后:电容相当于被短路放电、RST直接和VDD相连,就是高电平,此时进入“复位状态”。松手后:电源开始对电容器充电,此时,充电电流在电阻上,形成高电平送到RST,仍然是“复位状态”,稍后,充电结束,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作。电容和电阻的取值则根据RC电路响应时间,上电对电容充电,充电的时间保证在复位高电平要求时间。一般10uf和10k就可以了,只要复位脚通过至少2个时间机器周期的高电平,单片机就复位。它们选取也是按照大于等于2个时间机器周期的时间常数计算出来的。电路图如图3.13所示:37 图3.13复位电路3.5.3PCB图设计PCB的流程主要包括:1.准备原理图和SPICEnetlist。2.规划电路板也就是采用板材的物理尺寸,和元件的封装形式极其安装位置,此步极为关键。3.设置参数包括元件的布置参数和布线参数。4装入SPICEnetlist及元件封装完成电路板的自动布线。5.布局元件由protel2004自动完成。6.自动布线和手工调整。7.保存及输出文件。其中特别需要注意的有两点:首先,要仔细考虑PCB尺寸的大小过大导致印制线条长,阻抗增加;过小则散热不好。其次布线时要注意输入/输出端用的导线应尽量避免相邻平行。本设计的PCB如下图3.14所示:37 图3.14印制电路板37 第4章软件设计及调试4.1总设计思路本设计采用C语言对单片机进行编程。为了使程序条理清晰,整个程序由计数,定时,计算频率,数码管显示四部分组成。其中定时器用的是FRC计时器,当FRCE是1时开通计时器功能,0则关闭。FRCOF,状态寄存器的计时器溢出标志。当FRC的值从ffffH→0000H时,FRC溢出中断标志FRCOF置为1,程序转入该中断向量地址0x0020去执行对应的中断子程序。显示部分显示的是5位计步数(最大计数为99999),步数走过的时间(分钟为单位)以及频率(取整数)。以下详细介绍了主程序的设计。[2]4.2计步主程序设计主程序包括开始-停止-清零过程,频率计算部分和计数部分。主要设计思路是:按键1与PTC2管脚连接,只有在count_off==1模式下按键有效,功能是切换不同的显示内容,默认状态是Diaplay_mode=0显示当前步数;按下一次Diaplay_mode=1显示时间:格式为hh-mm(小时-分钟);再按下一次Diaplay_mode=2显示当前时间内的步频,为步数比上时间。如果时间min<1分钟按时间min=1分钟计算。按键2与PTC4管脚连接。作用是启动/停止/清零计数。按键3与PTC3管脚连接。作用是模拟传感器走步,按下一次步数+1,只有在count_off==0(计步数计时状态)下按键有效。默认状态是count_off==2处于清零等待状态,此时按下按键2,count_off==0,为计步数状态,同时计时开始。按下按键3,步数加1。再次按下按键2,count_off==1,为停止计步数计时状态,数据不清零,此时按下按键1即可切换显示内容。再次按下按键2,count_off==2,清零,等待下一次的计数周期。计数部分流程图如下图4.1所示:37 图4.1计数部分流程图计算频率就是周期性信号在单位时间(1分钟)内变化次数,若在一定时间间隔T内测得这个周期性信号的重复变化次数N,其频率就表示为f=N/T。具体流程图如下图4.2所示:37 图4.2频率设计流程图主程序代码段及注释://********************************************************************************voidmain(void){IOCA=0x00;IOCB=0x00;IOCC=PUCC=PTC5+PTC4+PTC3+PTC2+PTC1+PTC0;//PTC0~5为输入端口上拉电阻IOCD=0x00;IOCE=0x00;IOCF=0x00;//PTF0驱动红色二极管灯37 PTA=0x00;PTB=0x00;//PTB驱动led输出PTC=0x00;PTD=0x00;//PTD0-4控制led0-45个数码管的通断PTE=0x00;PTF=0x00;Delay_Nms(1000);//等待1秒稳定可以缩短时间去除也可以//HFRC=21;//FRC定时器10msVALUE>>8//LFRC=160;INTF=0x00;FRCC=0;PRIE=0x01;INTE=GIE+EINT1E+FRCOE+EINT0E;//中断设置FRCOE外部中断0,1使能INTF=0x00;//请中断标志EINTED=0x00;//下降沿触发外部中断count_P=0;//初始化的时候步数为0count_off=2;//初始化的时候停止计数计时Diaplay_mode=0;//默认显示走过的步数PTF=0x01;//开始红色led亮37 while(1){if(count_off==0)//显示当前计数值按下计数按键显示增加1{BuShuTran(count_P);}elseif(count_off==1)//如果处于停止计时计数状态led显示-----//此时按下显示模式切换的话可以在屏幕上显示步数、走过时间xx小时xx分钟//以及显示走过的频率默认显示为走过的步数//PTC2为模式切换按键按下后切换显示内容只有停止计数后按下有效{if(!(PTC&PTC2)){Delay_Nms(50);while(!(PTC&PTC2));//按键延时去抖动Delay_Nms(50);Diaplay_mode++;//切换模式if(Diaplay_mode>2)37 Diaplay_mode=0;}//********************************************************************************4.3调试检查在调试过程中,我所做的首先是查找电路中是否有焊接位置的错误,其次检查是否有虚焊部分。在确保电路焊接无误的情况下,连接USB下载程序,编译无错误。为了检查程序是否能是电路成功运行,我把传感的部分先用按键代替。这样做的目的是检查除了传感部分的其他部分能否正常运行。最后才连接自制的震荡传感器,在实验过程中,确实也碰到了事先预想的问题,也就是震荡一次多计数的问题,根据原先的设想的解决办法:加入防抖动程序或者加长延时时间和并联一个较小电容。经过实验比较,三个方法中较易进行的是把延时时间变长,程序如下:{if(!(PTC&PTC2)){Delay_Nms(50);while(!(PTC&PTC2));//按键延时去抖动}经过多次比较后,选择了最合适的延时时间,使计数更精确。4.4硬件使用说明按键介绍如下:本设计一共3个按键,按键1在电路板下方左边起切换作用,按键2在中间起开关作用,按键3在右边代替传感器时使用起计数作用。操作过程是如下:1.初始状态,屏幕显示”-----”。上电时,默认为count_off=37 =2,Diaplay_mode=0状态。此时按下按键2,计数开始,计时也开始。1.按下按键3(代替传感器时使用),按一次步数增加1,指示灯每秒闪一次。2.若想停止计数,则再次按下按键2,此时屏幕显示步数(默认Diaplay_mode=0),(如果再按按键3计数也不会增加)。这点的好处是在换上震荡传感器使用时,不会因为来不及拆下而导致继续计步,使计数测量过程很切实际。3.此时可以按下按键1,按下一次显示时间,再按下显示频率,在按下又显示步数,循环显示。4.计步完毕,需要清零,按下按键2,此时屏幕又重新显示”-----”,表示清零等待下一个计步数周期。37 第5章总结经过近四个月的学习与努力,我的毕业设计已经基本完成。在次过程中由于对仿真软件不太熟悉,在使用ET_USBICE软件设计过程中遇到过一些困难,在沙立仁导师的帮助下一一解决了,不仅学会了一些电路仿真设计能力,而且在解决这些问题的过程也是对自身专业素质的一种提高。在制作硬件的过程中心得体会也是不少。在焊接过程中元件必须清洁和镀锡,焊接前用小刀刮掉氧化膜,然后再进行焊接。焊接时应使电烙铁的温度高于焊锡的温度以烙铁头接触松香刚刚冒烟为好。焊接点的上锡数量焊接点上的焊锡数量不能太少,太少了焊接不牢,机械强度也太差。而太多容易造成外观一大堆而内部未接通。焊锡应该刚好将焊接点上的元件引脚全部浸没,轮廓隐约可见为好。在调试过程中,首先检查程序段的逻辑问题。程序段的延时等部分是否编写合理,检查无误。进而检查电路连接问题。必须检查有无漏焊、虚焊以及由于焊锡流淌造成的元件短路。虚焊较难发现,可用镊子夹住元件引脚轻轻拉动,如发现摇动应立即补焊。解决了上述问题后再次进行检测,最终完成了调试。通过搭建电路板学习到手工电烙铁的焊接技术,能够独立的完成简单电子产品的安装与焊接、印制电路板图的设计制作等。熟悉电子产品的安装工艺的生产流程,了解电子产品的调试方法。其次,熟悉常用电子器件的类别、型号、规格、性能及其使用范围,能查找资料,查阅有关的电子器件图书等。最后,虽然还是不够娴熟,但基本能编写一些简单的程序。这些知识不仅在课堂上有效,在日常生活中更是有着现实意义,也对自己的动手能力是个很大的锻炼。在设计中,提高了自己解决问题的能力。通过本次设计培养了我理论联系实际的能力,提高了我分析问题和解决问题的能力,增强了独立工作的能力。由于本系统从开始的计划到后来的具体实施的这段时间,无论在时间和细致程度来说都是有限的,所以程序真正投入使用还是会有些许不妥之处,希望各位老师能给予批评和指导。能在今后的不断的学习和努力中,把程序做得更好,真正达到本设计的作用。最后,感谢导师沙立仁老师所给予的帮助。37 参考文献[1]沙立仁.ET44M210汇编语言讲义[2]董胜源.ET44系列USB单片机控制与实践[M].北京:北京航空工业大学出版社[3]梁森.自动检测技术及应用[M].北京:机械工业出版社[4]杨颂华,冯毛官,孙万蓉,胡力山.数字电子技术基础[M].西安:西安电子科技大学出版社[5]李朝青.单片机原理及接口技术[M].北京:电子工业出版社,2004[6]谭博学,苗汇静.集成电路原理及应用[M].北京:电子工业出版社,2003.9[7]白中英.数字逻辑与数字系统(第四版立体化教材)[M].北京:科学出版社,2008[8]崔武子,赵重敏,李青.c程序设计教程[M].北京:清华大学出版社,2007.6[9]马忠梅.单片机的c语言应用程序设计[M].北京:北京航天大学出版社,2003.11[10]李义府.模拟电子技术基础[M].国际科技大学出版社,2004[11]HarpritSinghSandhu.RuningSmallMotorswithPICMicrontrollers,McGrawHillProfessional[J].2009[12]BoschRexrothAG.RexrothMTXThenewCNCsystemsolution-perfectcuttingandforming[J].2006致谢在我的论文完成过程中,得到了很多人的帮助与支持。首先,最感谢的是我的导师沙立仁老师,感谢他对我学业的关心与指导,他以严谨的治学态度,给我提出了许多批评与建议,使我受益匪浅。在我完成毕业设计的过程中,他抽出很多时间和我讨论系统的设计问题,使我的论文得以如期完成,在此致上最真挚的谢意。其次,感谢家人给予我学业上和生活上的支持与照顾。同时感谢给与我帮助的各位老师同学以及朋友们。37 附录实物图:设计代码及详细注释如下://=============================头文件=================================#include"et44m210C.h"//****************************************************************************37 #defineVALUE5536//宏定义预载值VALUE65536-60000//(65536-HFRC:LFRC)*(1/6MHZ)//21160//*******************************变量定义*****************************constunsignedcharLED[12]//0~9DP-数码数据={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80,0x40};//0x80代表"."0x40代表"-"unsignedcharLed_Data[5]={0,0,0,0,0};//显示模式下Led_Data[4]Led_Data[3]显示小时数据led2显示"-"作为间隔//Led_Data[1]Led_Data[0]分钟unsignedintPinlv=0;//中断计数变量tcountunsignedchartcount=0;//中断计数变量tcountunsignedcharsec=0;//设置秒变量secunsignedintmin=0;//设置分变量minunsignedintminend=0;//设置分变量minend存储最后时间数据unsignedcharhour=0;//设置时变量hourunsignedchari=0;//变量unsignedcharcount_off=0;//是否停止计数计时count_off=0计数计时开始//count_off=1停止计数计时此时可以选择显示模式//count_off=2清零频率时间步数数据unsignedinttemp=0;//变量unsignedcharDiaplay_mode=0;//设置显示状态标志Diaplay_mode=0显示走过的步数//Diaplay_mode=1显示走过的时间Diaplay_mode=2显示走过的频率(步/分钟)37 unsignedintcount_P=0,count_Pend=0;//所计步数unsignedcharled_dis=0;//*****************************子程序定义***************************voidDelay_Nus(unsignedintn);//延时NusvoidDelay_Nms(unsignedintn);//延时NmsvoidLED_Display(void);//LED扫描显示子程序voidBuShuTran(unsignedintnu);//将步数转换为led显示的内容voidTimeTran(unsignedintno);//将时间转换为led显示的内容voidPinlvTran(unsignedintnf);//将频率转换为led显示的内容//*****************************main主程序**********************voidmain(void){IOCA=0x00;IOCB=0x00;IOCC=PUCC=PTC5+PTC4+PTC3+PTC2+PTC1+PTC0;//PTC0~5为输入端口上拉电阻IOCD=0x00;IOCE=0x00;IOCF=0x00;//PTF0驱动红色二极管灯PTA=0x00;PTB=0x00;//PTB驱动led输出PTC=0x00;PTD=0x00;//PTD0-4控制led0-45个数码管的通断PTE=0x00;PTF=0x00;Delay_Nms(1000);//等待1秒稳定可以缩短时间去除也可以//HFRC=21;//FRC定时器10msVALUE>>837 //LFRC=160;INTF=0x00;FRCC=0;PRIE=0x01;INTE=GIE+EINT1E+FRCOE+EINT0E;//中断设置FRCOE外部中断0,1INTF=0x00;//请中断标志EINTED=0x00;//下降沿触发外部中断count_P=0;//初始化的时候步数为0count_off=2;//初始化的时候停止计数计时Diaplay_mode=0;//默认显示走过的步数PTF=0x01;//开始红色led亮while(1){if(count_off==0)//显示当前计数值按下计数按键显示增加1{BuShuTran(count_P);}elseif(count_off==1)//如果处于停止计时计数状态led显示//此时按下显示模式切换的话可以在屏幕上显示步数、走过时间xx小时xx分钟//以及显示走过的频率默认显示为走过的步数//PTC2为模式切换按键按下后切换显示内容只有停止计数后按下有效{if(!(PTC&PTC2)){37 Delay_Nms(50);while(!(PTC&PTC2));//按键延时去抖动Delay_Nms(50);Diaplay_mode++;//切换模式if(Diaplay_mode>2)Diaplay_mode=0;}if(Diaplay_mode==0)//显示计数值{BuShuTran(count_P);//数码管显示当前走过的步数}elseif(Diaplay_mode==1){TimeTran(minend);//数码管显示走过时间值}elseif(Diaplay_mode==2){PinlvTran(Pinlv);//数码显示走步频率(取整数)}}elseif(count_off==2)//显示"-----"表明处于停止计数等待开始状态{Led_Data[0]=11;Led_Data[1]=11;Led_Data[2]=11;Led_Data[3]=11;37 Led_Data[4]=11;LED_Display();}}}//********************************中间按键中断****************************voidINT0_ISR(void)interruptEINT0_VEC//用于显示停止计数时候的不同显示内容{Delay_Nms(100);//延时键盘去抖动while(!(PTC&PTC4));//按键按下PTC的PTC4管脚电平为低PTC&PTC4=0PTC4EINT1Delay_Nms(50);count_off++;if(count_off>2)count_off=0;if(count_off==0)INTF&=~FRCOF;elseif(count_off==1)//count_off==1停止计数默认显示步数此时按下最左边按键可以切换显示内容{//Delay_Nms(20);Pinlv=0;minend=min+1;temp=count_P;while(temp>=minend){temp=temp-minend;37 Pinlv++;}}elseif(count_off==2)//count_off==1清零等待重新开始{min=0;minend=0;count_P=0;sec=0;Diaplay_mode=0;}INTF&=~EINT0F;//清中断}//******************************最右边按键计数中断**********************************voidINT1_ISR(void)interruptEINT1_VEC//按下一次计数+1{Delay_Nms(100);//延时键盘去抖动while(!(PTC&PTC3));//按键按下PTC的PTC4管脚电平为低PTC&PTC4=0PTC4EINT1Delay_Nms(50);if(count_off==0)//有效计时计数过程中才计数{count_P++;//步数增加}INTF&=~EINT1F;}37 //******************************FRC定时器中断***************************voidFRC_ISR(void)interruptFRCO_VEC//从5536计数到65536计60000个数耗时10ms{HFRC=21;//FRC定时器10msVALUE>>8LFRC=160;tcount++;//10ms加一次if(tcount==100)//100次为1秒{tcount=0;sec++;if(sec>=60){sec=0;min++;}if(count_off==2)//count_off==2清零min计数{min=0;}PTF=~PTF;}if(count_off==0)//count_off==0计数状态下才清中断才能计时其他状态计时停止INTF&=~FRCOF;}//****************************延时us程序*************************voidDelay_Nus(unsignedintn)37 {while(n--){};}//***********************************延时ms程序**********************voidDelay_Nms(unsignedintn){unsignedinti=0,j=0;for(i=0;i=10000)//计算第五位显示内容{count_P-=10000;led_dis++;}Led_Data[4]=led_dis;led_dis=0;while(count_P>=1000)//计算第四位显示内容{count_P-=1000;led_dis++;}Led_Data[3]=led_dis;37 led_dis=0;while(count_P>=100)//计算第3位显示内容{count_P-=100;led_dis++;}Led_Data[2]=led_dis;led_dis=0;while(nu>=10)//计算第2位显示内容{led_dis++;nu-=10;}Led_Data[1]=led_dis;//Led_Data[1]=count_P/10;Led_Data[0]=nu;LED_Display();}voidTimeTran(unsignedintno)//将传过来的时间处理显示于数码管{temp=no;led_dis=0;while(temp>=60)//60分钟1小时{led_dis++;temp=temp-60;}37 Led_Data[4]=0;while(led_dis>=10){Led_Data[4]=Led_Data[4]+1;led_dis=led_dis-10;}Led_Data[3]=led_dis;Led_Data[2]=11;//显示分隔符号"-"led_dis=0;while(temp>=10){led_dis++;temp=temp-10;}Led_Data[1]=led_dis;Led_Data[0]=temp;LED_Display();}voidPinlvTran(unsignedintnf)//将传过来的步频处理显示于数码管{temp=nf;led_dis=0;while(temp>=10000)//计算第五位显示内容{temp-=10000;led_dis++;}37 Led_Data[4]=led_dis;led_dis=0;while(temp>=1000)//计算第四位显示内容{temp-=1000;led_dis++;}led_dis=0;while(temp>=100)//计算第三位显示内容{temp-=100;led_dis++;}Led_Data[2]=led_dis;led_dis=0;while(temp>=10)//计算第二位显示内容{led_dis++;temp-=10;}Led_Data[1]=led_dis;led_dis=0;Led_Data[0]=temp;LED_Display();//显示}//******************************数码管显示程序***************************voidLED_Display(void)37 {PTD=0x01;//PTD控制哪一个led数码管显示5个led数码管for(i=0;i<5;i++){PTB=LED[Led_Data[i]];//查表取显示数据Delay_Nus(200);//延时保证显示亮度PTD<<=1;//左移点亮不同的数码管}}//****************************************************************************37 SHANGHAIBUSINESSSCHOOL37

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭