基于单片机的计步器设计毕业设计论文.docx
《基于单片机的计步器设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的计步器设计毕业设计论文.docx(20页珍藏版)》请在咨信网上搜索。
基于单片机的计步器设计 摘要 随着社会的发展,生活方式的改变,现代人的生活越来越远离运动,都市的白领们在享受着汽车、互联网等科学技术为生活带来便利的同时,身体的活动机会也在不断的减少。高强度的脑力劳动,长时间的办公室作业,让许多人的身体处于亚健康状态,更有不少人患上了肥胖、失眠等疾病。本文基于IAP15F2K61S2单片机,利用常开型振动传感器模块检测人体行走的步数,通过数码管显示出来。并具有清零、存储记录和查看历史记录的功能。使人们时刻掌握着自己的健身强度和运动水平。 关键词:IAP15F2K61S2、常开型振动传感器模块、计步器 1 设计任务 计步器主要由振动传感器和电子计数器组成。人在步行时重心都要有一点上下移动。以腰部的上下位移最为明显,所以计步器挂在腰带上最为适宜。 计步器的工作核心就是振动传感器,通过振动传感器对日常锻炼进度监控器,可以计算人们行走的步数,估计行走距离、消耗的卡路里,方便人们随时监控自己的健身强度和运动水平。 通过设计实现的功能有: 1) 利用振动传感器来实现对计步器功能的模拟; 2) 可以记录行走的步数,可以显示记录的步数; 3) 通过按键实现归零功能,可以存储历史记录,并断电不丢失; 4) 通过按键实现了历史记录的查看。 2 设计思路 计步器由振荡电路、复位电路、数码管显示模块以及按键模块和传感器模块等几个部分组成(如图2-1)。振荡电路是给单片机提供外部时钟信号,使单片机工作。复位电路是使单片机恢复初始状态。数码管显示模块是受单片机控制显示步数。按键模块是通过相应的按键控制单片机实现相应的功能。传感器模块是检测人体行走时的振动,若检测到振动则传感器给出低电平,来告诉单片机记录步数。 图2-1 计步器系统框图 3 电路原理图 图3-1 计步器电路原理图 4 硬件设计及器件清单 4.1 振荡电路 单片机内设有一个由反向放大器所构成的振荡电路,振荡电路是单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作。假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差。单片机内部时钟不精确,尤其是在高频时,添加外部振荡电路[3],时钟电路中的两个电容用作抗干扰,使得晶振频率更加稳定(如图4-1)。 图4-1 时钟振荡电路 4.2 复位电路 为确保单片机电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位[3]。按键放开时,电容充满电后相当于断路,RST通过电阻接地为低电平。按键按下时,RST通过电阻链接到VCC为高电平,按键松开后,电容充电保持一定时间高电平,系统复位(如图4-2)。 图4-2 系统复位电路 4.3 显示电路 计步器设计采用4位LED共阳极数码管显示做为系统的显示界面(如图4-3)。常用的LED数码管为8段或7段(8段比7段多了一个小数点“dp”段)。每一个段对应一个发光二极管,数码管有共阳极和共阴极两种。共阳极LED数码管的发光二极管的阳极连接在一起,通常是共阳极接VCC。为了使LED数码管显示不同的符号和数字,就要把不同段的发光二极管点亮,这样就要为LED数码管提供代码,因为这些代码可使LED相应的 段发光,从而显示不同字型,该代码称之为段码。当某些发光二极管的阴极为低电平时,发光二极管点亮,相应的段被显示,这些段组合成字型[2]。 图4-3 数码管显示电路 4.4 按键电路 本次设计通过按键的按下来实现步数的存储、步数的清零、查看存储的上一条记录和查看下一条记录(如图4-4)。 图4-4 系统按键电路 4.5 传感器模块 振动传感器的基本工作原理是当检测到机械振动信号后,它在电路的配合下,将机械振动信号转换为电信号输出[1]。 模块使用说明 1) 用于各种振动触发作用,报盗报警,智能小车,电子积木等; 2) 模块在感应到小的振动时触发时间会很短,不够驱动继电器,有些人的资料显示可以直接和继电器模块相连,实际运用效果不佳; 3) 产品不振动时,振动开关呈断开状态,输出端输出高电平,黄色指示灯不亮; 4) 产品振动时,振动开关瞬间导通,输出端输出低电平,黄色指示灯亮; 5) 输出端可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境是否有振动,起到报警作用。 4.6 器件清单 表4-1 计步器元器件列表 序号 器件 数量 1 IAP15F2K61S2单片机 1片 2 常开型振动传感器模块 1块 3 4位共阳数码管 1块 4 晶振11.0592 1块 5 三极管NPN 4个 6 四角开关 4个 7 电阻10K 5个 8 电阻470R 9个 9 电阻300R 4个 10 电解电容10uF 1个 11 电容47pF 2个 12 发光二极管红色 1个 13 开关 1个 14 排针、导线 若干 5 PCB图 5.1 计步器PCB正面图 图5-1计步器PCB正面图 5.2计步器PCB背面图 图5-2计步器PCB背面图 6 程序流程图 7 部分程序代码 7.1 数码管显示程序 循环语句实现数码管的动态扫描,显示对应的位,利用人眼的视觉惰性实现显示。主程序调用数码管段显示子程序,显示字型[4]。 while(1) { qian=num/1000;bai=(num/100)%10;shi=(num/10)%10;ge=num%10; sel1=0; sel2=0; sel3=0; sel4=1; seg(qian); delay(1); sel1=0; sel2=0; sel3=1; sel4=0; seg(bai); delay(1); sel1=0; sel2=1; sel3=0; sel4=0; seg(shi); delay(1); sel1=1; sel2=0; sel3=0; sel4=0; seg(ge); delay(1); } void seg(uint n) { switch(n) { case 0:P0 = 0xC0; break; case 1:P0 = 0xF9; break; case 2:P0 = 0xA4; break; case 3:P0 = 0xB0; break; case 4:P0 = 0x99; break; case 5:P0 = 0x92; break; case 6:P0 = 0x82; break; case 7:P0 = 0xF8; break; case 8:P0 = 0x80; break; case 9:P0 = 0x90; break; default:P0 = 0xC0; break; } } 7.2 记录存储程序 存储记录要先擦除扇区,在写入数据,写入数据前要对命令触发寄存器写入0x5A,再写入0xA5,才能写如数据。 //===============写字节数据=============== void write(uint addr,uchar dat) { iap_contr = eniap; iap_cmd = 0x02; iap_addrl = addr; iap_addrh = addr>>8; iap_data = dat; iap_trig = 0x5A; iap_trig = 0xA5; _nop_(); uniap(); } //===============擦除扇区=============== void erase(uint addr) { iap_contr = eniap; iap_cmd = 0x03; iap_addrl = addr; iap_addrh = addr>>8; iap_trig = 0x5A; iap_trig = 0xA5; _nop_(); uniap(); } 8 设计总结及学习FPGA感想 为期两周的生产实习渐渐的结束了,在这次实习过程中,我选择了计步器设计。在实习过程中,我先是对硬件电路进行了设计,之后要进行焊接操作,由于之前很少使用电烙铁进行焊接,所以导致刚开始焊接时对焊点焊的不够饱满,有时甚至出现了虚焊的情况,但慢慢地熟悉了之后,焊接起来也就快了不少。而在后面的程序设计的阶段,我选择的C语言进行设计,在经过数百次的修改和调试之后,最终顺利完成了设计。同时,这次生产实习是一次很好的把理论应用到实践中去的锻炼,通过实习,我更加认识到了理论知识的重要性,也对自己所学知识的长处与不足有了一定的认识,锻炼了动手能力。最后看着自己努力设计出来的成果,心里有了一丝的成就感。 感谢至芯科技,无私地给我们带来一个星期的FPGA培训。经过一周的培训,我收获颇丰。有技能的提高,思维的扩展还有生活的充实。技能的提升对我来说非常明显。培训一开始,老师教我们用熟这些软件,这些软件的熟练掌握,加速了进一步设计电路的速度。老师根据我们薄弱的底子和对Verilog HDL的一无所知的基本情况,从简单的显数、计数,再到RAM、ROM、串行通信的设计,逐步深入,设计合适的万用框架体系让我们更容易上手,化繁为简,局部分模块化逐步设计到后来顶层文件做关联形成一个看起来功能很复杂的程序体系。最后能够轻松完成一个复杂功能的电路。体现了硬件描述语言能够模块化设计关联的强大特性。也使我们对Verilog HDL编程有了浓厚的兴趣。 学习的一周过的十分充实,坐在实验室里写程序看似单调,但有条不紊,忙忙碌碌,脑子里是如何用语言描述一个功能,如何处理时序还有各个功能块之间的关系。现在我能能感觉到自己的提高,自然会感觉无限充实。经过培训和实习,大大增强了我的自学能力和独立能力。更重要的是,我拓展了思路,开阔了视野,活跃了思想,对以后的学习工作起到了很大的帮助作用。 参考文献 [1] 胡向东.传感器与检测技术.机械工业出版社.2015,01(2):303~314. [2] 童诗白,华成英.模拟电子技术基础.高等教育出版社.2013,12(19):74~115. [3] 姜志海,黄玉清,刘连鑫.单片机原理与应用.电子工业出版.2014,07(2):27~32. [4] 谭浩强.C程序设计(第四版).清华大学出版社.2012,10(10):37~140. 附录 计步器完整程序: #include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define iapaddr 0x4A00 #define endaddr 0x4800 #define eniap 0x82 sfr iap_data = 0xC2; //iap数据寄存器 sfr iap_addrh = 0xC3; //iap地址寄存器高字节 sfr iap_addrl = 0xC4; //iap地址寄存器低字节 sfr iap_cmd = 0xC5; //iap命令寄存器 sfr iap_trig = 0xC6; //iap命令触发寄存器 sfr iap_contr = 0xC7; //iap控制寄存器 sbit led = P2^7; sbit key0 = P2^0; sbit key1 = P2^6; sbit key2 = P2^5; sbit key3 = P2^4; sbit sel1 = P1^0; sbit sel2 = P1^1; sbit sel3 = P1^2; sbit sel4 = P1^3; void delay(uint z); //延时程序 void seg(uint n); //数码管段显示 void uniap(void); //关闭IAP功能 uint read(uint addr); //读字节数据 void write(uint addr,uchar dat); //写字节数据 void erase(uint addr); //擦除扇区 //===============主程序=============== void main(void) { uint num=0,n,m,i; uchar qian,bai,shi,ge; n=iapaddr; m=iapaddr-4; led=1; while(1) { qian=num/1000;bai=(num/100)%10;shi=(num/10)%10;ge=num%10; sel1=0; sel2=0; sel3=0; sel4=1; seg(qian); delay(1); sel1=0; sel2=0; sel3=1; sel4=0; seg(bai); delay(1); sel1=0; sel2=1; sel3=0; sel4=0; seg(shi); delay(1); sel1=1; sel2=0; sel3=0; sel4=0; seg(ge); delay(1); if(num==9999) //计数等于9999灯闪烁两下 { sel1=1; sel2=1; sel3=1; sel4=1; led=0; delay(50); led=1; delay(50); led=0; delay(50); led=1; } if((key1==0)||(num==9999)) //按键按下存储数据并归零 { if(num!=0) { erase(endaddr); if(!(n%512)) erase(n); for(i=0;i<4;i++) { switch(i) { case 0:write(n,qian); break; case 1:write(n,bai); break; case 2:write(n,shi); break; case 3:write(n,ge); break; } n++; } m=n; if(n==0xFDFF) n=iapaddr; write((uint)endaddr,(uchar)(n>>8)); write((uint)endaddr+1,(uchar)n); } num=0; } if(key2==0) //按键按下显示下一条记录 { m=m+4; if(m>=((read((uint)endaddr)<<8)+read((uint)endaddr+1))||m==iapaddr) { sel1=1; sel2=1; sel3=1; sel4=1; m=iapaddr; led=0; delay(36); led=1; } for(i=0;i<200;i++) { sel1=0; sel2=0; sel3=0; sel4=1; seg(read(m)); delay(1); sel1=0; sel2=0; sel3=1; sel4=0; seg(read(m+1)); delay(1); sel1=0; sel2=1; sel3=0; sel4=0; seg(read(m+2)); delay(1); sel1=1; sel2=0; sel3=0; sel4=0; seg(read(m+3)); delay(1); } } if(key3==0) //按键按下显示上一条记录 { m=m-4; if(m<iapaddr) { sel1=1; sel2=1; sel3=1; sel4=1; m=((read((uint)endaddr)<<8)+read((uint)endaddr+1))-4; led=0; delay(36); led=1; } for(i=0;i<200;i++) { sel1=0; sel2=0; sel3=0; sel4=1; seg(read(m)); delay(1); sel1=0; sel2=0; sel3=1; sel4=0; seg(read(m+1)); delay(1); sel1=0; sel2=1; sel3=0; sel4=0; seg(read(m+2)); delay(1); sel1=1; sel2=0; sel3=0; sel4=0; seg(read(m+3)); delay(1); } } if(key0==0) num++; } } //===============延时程序=============== void delay(uint z) { uint i,j; for(i=z;i>0;i--) for(j=1300;j>0;j--); } //===============数码管段显示=============== void seg(uint n) { switch(n) { case 0:P0 = 0xC0; break; case 1:P0 = 0xF9; break; case 2:P0 = 0xA4; break; case 3:P0 = 0xB0; break; case 4:P0 = 0x99; break; case 5:P0 = 0x92; break; case 6:P0 = 0x82; break; case 7:P0 = 0xF8; break; case 8:P0 = 0x80; break; case 9:P0 = 0x90; break; default:P0 = 0xC0; break; } } //===============关闭IAP功能=============== void uniap(void) { iap_contr = 0; iap_cmd = 0; iap_trig = 0; iap_addrh = 0x80; iap_addrl = 0; } //===============读字节数据=============== uint read(uint addr) { uint dat; iap_contr = eniap; iap_cmd = 0x01; iap_addrl = addr; iap_addrh = addr>>8; iap_trig = 0x5A; iap_trig = 0xA5; _nop_(); dat = iap_data; uniap(); return dat; } //===============写字节数据=============== void write(uint addr,uchar dat) { iap_contr = eniap; iap_cmd = 0x02; iap_addrl = addr; iap_addrh = addr>>8; iap_data = dat; iap_trig = 0x5A; iap_trig = 0xA5; _nop_(); uniap(); } //===============擦除扇区=============== void erase(uint addr) { iap_contr = eniap; iap_cmd = 0x03; iap_addrl = addr; iap_addrh = addr>>8; iap_trig = 0x5A; iap_trig = 0xA5; _nop_(); uniap(); } 20- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 计步器 设计 毕业设计 论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文