摘 要
论文论述了仰卧起坐计数器是基于单片机及频率计数器
随着社会日新月异的发展,更多的年轻人,中年人会注重自己的体态,健康。有的人通过一些药物(譬如减肥茶,减肥药等)维持体态,但是更多的人则愿意通过运动来保持身体健康。良好的身体素质是生命的第一要素,有了好的身体才有机会去做更多有意义的事情。在所有的运动项目中,仰卧起坐应该是比较普遍的运动之一。很多人都会做,但是只有极少数人能做好它。本设计就是为激发更多人去坚持这一项运动。
染色机、可编程控制器的发展状况,从高温高压染色机工艺过程及功能要求入手,对控制系统的总体方案进行了论证和设计。对控制系统进行了详细的分析,讨论了硬件系统的组成及各硬件的选型;软件系统的设计,温度控制算法的实现等,从而完成对控制系统的设计。在系统的设计和开发过程中,我们将可编程控制器等先进的控制手段和技术引入染色机的控制之中,实现了织物染色过程的自动控制。
关键字:红外传感器,蜂鸣器,单片机,数码管
第1页 共22页
毕业设计用纸
ABSTRACT
With the development of social change rapidly, more and more young people, middle-aged people will pay more attention to their own body, health. Some people by some drugs ( such as weight loss slimming tea, etc.) to maintain the body, but more people are willing to exercise to keep the body healthy. Good physical quality is the life of the first elements, have a good body to have a chance to do more meaningful things. In all sports, sit-ups should be relatively common sports. Many people will do, but only very few people can do it. This design is to inspire more people to adhere to this sport.
Key words:Infrared sensor, buzzer, SCM, digital tube
第2页 共22页
毕业设计用纸
目 录
摘 要 ................................................................................................................................................ 1 第一章 设计理念........................................................................................................................... 4 第二章 硬件设计............................................................................................................................. 7 1.1 红外传感器的应用 .................................................................................................................... 7 第三章 总体电路设计介绍 ........................................................................... 错误!未定义书签。 第四章 程序的运行与调试(详见实物运行) ......................................... 错误!未定义书签。 参考文献 .......................................................................................................................................... 18 致谢 .................................................................................................................................................. 23
第3页 共22页
毕业设计用纸
第一章 设计理念
1.1 所需主要资源AT89C51(如图1)、数码管(图2)、74HC164(图3)、红外传感器、LED、按键、蜂鸣器。
1.2 目标:利用AT89C51单片机普通I/O模拟串式方式控制,采用漫反射红外传感器,记录1min内仰卧起坐次数;利用定时器进行60s倒计时并显示;设置计数器清0键和开始键;1min结束时声光提示。 1.3 要求:采用两个漫反射红外传感器检测受试者的位置信息,记录1min内仰卧起坐的次数,用四位数码管动态显示,四位数码管两位记录仰卧起坐次数,低两位用于60s倒计时。两个控制按键,开始键和清0键,开始测试时有声音提示,1min时间到有声光提示。如图1-1,1-2所示。
图1-1 实物集成块AT89C51
第4页 共22页
毕业设计用纸
图1-2 AT89C51引脚排列
图1-4 数码管原理图
图1-5 单独数码管示意图
第5页 共22页
毕业设计用纸
图1-6 实物集成块HN74HC164AS 引脚排列
图1-7 74HC164引脚排列
第6页 共22页
毕业设计用纸
第二章 硬件设计
1.1 红外传感器的应用
非接触测量是以光电、电磁等技术为基础,在不接触被测物体表面的情况下,得到物体表面信息的测量方法。典型的非接触测量如红外检测、激光三角法、电涡流法、超声测量、机器视觉测量等。红外技术发展到现在,已经为大家所熟知,这种技术已经在现代科技、国防和工农业等领域获得了广泛应用。
红外传感器系统是用红外线为介质的测量系统,按照功能能够分成五类: 1.辐射计,用于辐射和光谱测量;
2.搜索和跟踪系统,用于搜索和跟踪红外目标,确定其空间位置并对它的运动进行跟踪; 3.热成像系统,可产生整个目标红外辐射的分布图像。 4.红外测距和通信系统;
5.混合系统,是指以上各类系统中的两个或者多个的组合。 6.本案采用红外传感器作为光电开关,检测受试者的坐姿和卧姿,型号选取为前卫传感器公司的G18-A10NA,工作电压DC10~30V,漫反射型,检测距离为10cm,NPN常开式的红外线光电开关。它的原理如图2-1所示。
图2-1 G18-3A10NA原理图
1.1.1 G18-3A10NA工作原理
开始工作时,光电开关发射红外线,当没有物体对管束产生漫反射时,信号线输出高电平,
第7页 共22页
毕业设计用纸
当有物体对光束产生漫反射,从而有足够的的组合光返回接收器时,信号线输出低电平,以此作为开关来判断物体的位置,为了与单片机的电平兼容,电路中采用了光耦合器作为电平传换器件和信号隔离。接口电路如图2-2所示。
图2-2 光电开关接口电路
光电耦合器选择的是常用的TLP521,由输入信号控制内部发光二级管发光与否,需要接限流电阻保护,输出信号微机电极开路输出,所以必须接上拉电阻才能正常工作。本设计采用两个光电开关,共六条连线,所以在电路图上用六脚接线端子表示。开关信号由单片机的P1.0和P1.1两个I/O口检测,当红外传感器没有检测到物体时,单片机引脚的电平为高,一旦检测到了物体,则信号变为低电平。
1.3 蜂鸣器的应用
蜂鸣器的发声原理是电流通过电磁线圈,是电磁线圈产生磁场来驱动振动膜发声
的,因此需要一定的电流放大才能驱动它,单片机I/O引脚输出的电流较小,基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。本设计采用9012晶体管来驱动蜂鸣器,电路如图2-3所示。
当单片机P1.4脚输出高电平时,晶体管截止,蜂鸣器不发声;当P1.4脚输出低电平时,晶体管导通,蜂鸣器发出声音。因此,可以通过程序控制P1.4脚的电平来是蜂鸣器发出声音和关闭。
第8页 共22页
毕业设计用纸
图2-3 蜂鸣器驱动电路
第9页 共22页
毕业设计用纸
第三章 总体电路设计介绍
总体电路设计:仰卧起坐计数器的完整电路如图3-1所示。
图3-1 仰卧起坐计数器原理图
途中的数码管DS4显示倒计时的个位,DS3显示待机时的十位,DS2显示计数值的个位,DS1显示计数器的十位;按键START为开始测量键,OK键为结束测量请0键;因为电路中的红外传感器用的电源和单片机的电源不一致,所以要进行电压转换,本设计采用常见的7805三端稳压集成电路,简单实用,二极管VD1的作用是防止电源接反,烧毁电路元器件。 软件设计
程序流程图:仰卧起坐计数器的程序流程图如图3-2和图3-3所示。
第10页 共22页
毕业设计用纸
3-2 主程序流程图
第11页 共22页
毕业设计用纸
3-3 具体测量过程流程图
程序开始后,先要进行单片机初始化,然后扫描开始按键,当开始按键按下后,进入3S倒计时准备时间,计时结束后进入测量阶段,60s倒计时开始。在60s的测量过程中,信号sig1用来检测测试者的卧姿,当测试者躺下时,挡住红外光电开关,信号由高电平变为低电平;sig2用来检测测试者的坐姿,当测试者做到标准位置时,会挡住红外光电开关,信号由高电平变为低电平。当sig1为高电平且sig2为低电平时,说明受试者由仰卧坐到了标准位置,完成以仰卧起坐过程,计数值加1;为了保证计数正确,要检测测试者是否回到原位即仰卧状态,这时就需要判断sig1是否等于0且sig2是否等于1,满足条件才可以记录下次数值,当60s计时结束时,测量完毕。 C语言程序代码
*************声明区********** #include #include 第12页 共22页 毕业设计用纸 sbit START=P1^2;//定义开始测量键接至P1.2 sbit CLR=p1^3;//定义清0键接至P1.3 sbit SPEAK=P1^4;//定义蜂鸣器接至P1.4 sbit LED=P^5;定义LED接至P1.5 sbit sig1=P1^0;//定义红外传感器1信号接至P1.0 sbit sig2=P1^1;定义红外传感器2信号接至P1.1 #define TH_C(65536-50000)/256//定时50ms,计数值高8位 #define TH_C(65536-50000)/256//定时50ms,计数值低8位 unsigned char sf ,count;//sf存放倒计时时间,count存放仰卧起坐计数值 unsigned char T0count;//记录T0中断次数,20次为1s unsigned char flag60;//60s倒计时时间到标志 unsigned char flag3;//3s倒计时时间至标志 unsigned char flag;//250ms定时刷新数码管 unsigned char tab[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x90,0xff};//数码管码表依次为0~9,灭 void disp(unsigned char s,unsigned char c);//声明显示函数 void disp(unsigned char s,unsigned char byte);//声明发送字节函数 void countdown3();//声明倒计时3s子函数 void delay1ms(int x)//延时xms函数开始 { Int i,j; for(i=0,i《120;j++》;//约1ms } /**********主函数**********/ main( ) { IE=0x82;//10000010,开启定时器0溢出中断 TMOD=0x01;//定时器0,方式1,用于产生50ms定时时间 THO=TH_C;//装入初值 TL0=TL_C; TR0=0;//先关闭定时器 T0count=0;//各变量初始化(清0) sf=0; 第13页 共22页 毕业设计用纸 count=0; flag=0; flag3=0; flag60=0; SPEAK=0;//关闭蜂鸣器 disp(sf,count);//显示开始界面(0 0) while(1)//循环测量 { if(START = =0//扫描开始键 { delay1ms(10);//软件消抖 if(START = =0) { countdown3();//调用3s倒计时函数 TH0=TH_C;//装入初值,为60s倒计时做准备工作 TL0=TL_C; T0count=0;//中断次数清0 sj=60;//60s倒计时开始 TR0=1;//开启定时器 while(flag60= =0) //等待60s倒计时结束 { if((sig1 = =1)&&(sig2 = =0));//如果卧姿光电开关关断且坐姿光电开关关闭,则计数值加1(sig1检测卧姿,sig2检测坐姿) { count ++ while((sig1!=1||(sig2!=1&&(flag60= =0);//判断受试者是否回到原位,,若回到原位则进行下一次基数,如此循环,知道60s时间到 } TR0=0;//测量完毕,关闭定时器 disp(sf,count); TH0=TH_C;//装入初值,为下次车辆做准备 TH0=TL_C; T0count=0; 第14页 共22页 毕业设计用纸 sj=0; count=0; flag3=0; flag60=0; while(CLR = =1)//测量完毕后等待清0键 {SPEAK=1;//声光提示 LED+0;//点亮LED delay1ms(100); SPEAK=1;//关闭蜂鸣器 LED=1;delay 1ms(100) } disp(sf,count); } } } /**********倒计时3s子函数**********/ viod countdown3( ) { sf=3;//倒计时3s开始 显示和声音同步 开启蜂鸣器 短音 关闭蜂鸣器 开启定时器,进入倒计时3s 等待1s时间到 关闭定时器 显示和声音同步 消除标志位 开启蜂鸣器 短音 关闭蜂鸣器 开启定时器,进入倒计时2s 等待1s时间到 第15页 共22页 disp(sf,count);// SPEAK = 1;// delay1ms(100); SPEAK = 0; TR0=1;// while(flag3 = =0); TR0=0;// disp=(sf,count);// flag 3= 0;// SPEAK =1;// delay1ms(100);// SPEAK = 0;// TR0 = 1;// while(flag3 = =0);// TR0 =0; 毕业设计用纸 disp(sf,count); flag3 =0; SPEAK =1; delay1ms(100); SPEAK =0; TR0 = 1; while(flag3 = =0); TR0 = 0; disp(sf,count); flag3 =0; SPEAK = 1; delay1ms(500); } /**********子函数**********/ void disp(unsigned char s,unsigned char c) { unsigned char s1,s2,c1,c2; s1=s/10; s2=s%10; c1=c%10; sendbyte(tab[10]); else sendbeyte(tab[s1]); sendbyte(tab[c2]); if(c1 = =0) sendbyte(tab[10]); else sendbyte(tab[c1]); } /*******发送字节子函数**********/ void sendbyte(unsigned char byte) { unsigned char nu,c; nu=byte. For(c=0;c<8;c + +) 第16页 共22页 毕业设计用纸 { DAT=nu&0x01; Nu =nu >>1; CLK=0; CLK=1; } } /********时器中断函数*********/ void V01S(void)interrupt 1 { TH0=TH_C; TL0=TL_C; T0count ++; flag+ + if(T0count= =20) { sj- -; if(sj = =0) flag60=1; flag3=1; T0count=0; } if(flag = =5) { if(flag = =5) { flag=0; disp(sf,count); } } 第17页 共22页 毕业设计用纸 第四章 总结 4.1总结 本论文以面向交通行业的安全问题为背景,详细阐述了以单片机为核心的控制系统的原理、构成、设计与实现。 总结全文,具体做了一下几方面的工作: (1)通过现场考察设备的控制要求并借鉴大量相关资料,对交通灯闪烁时间的确定,从而避免了道路上减少交通事故的发生为宗旨,为事故发生的理论奠定基础; (2)根据车辆状况的控制要求,结合原有控制系统,设计出符合要求且性能比较高的控制系统总体方案,并进行方案论证; (3)系统的硬件设计,确定PLC的选型; (4)系统的软件设计,分析功能要求,编出PLC程序; 总之,该程序系统是一项比较复杂的机电控制工程,利用PLC实现过程的自动控制。自动化程度相对于以往的红绿灯控制有一定的提高。 鉴于本人知识水平及时间有限,经验不足,再加上写作时间仓促,论文中缺点、错误在所难免,敬请各位专家、老师和朋友批评与指正。 第18页 共22页 毕业设计用纸 4.2 结束语 在完成毕业设计的这段时间里,我收获颇多:通过这次课程设计,我了解到PLC应用面广、功能强大、使用方便等优点,PLC已经广泛地应用在各种机械设备和生产过程的各个方面,编程软件技术更是工业设计中不可缺少的一部分。它不但是PLC自动化中应用最广泛的控制设备,在大型工业网络控制系统中也占有不可动摇的地位。通过这次设计,我对PLC有了更多的了解和认识,不仅巩固了我的基础理论知识,更使我各个方面的能力都有很大的提高。从一开始的无从下手,整理资料,在到老师的帮助下,无疑是对我查阅资料的能力、设计报告的能力、电脑绘图的能力的提高起到了很大的帮助,很好的锻炼了理论联系实际、与具体项目、课题相结合,开发、设计产品的能力。在设计过程中,总是会遇到这样那样的问题,有时发现了一个问题,就需要做很多工作、花大量时间来才能解决,同时这也让我学到了如何处理问题的能力。 通过毕业设计,我对PLC有了进一步的了解,这是对我专业知识的一次检验,也是我走向工作岗位的一次热身。这次毕业设计我收获了很多,在设计中要时刻保持清醒的头脑,不断地接受新事物、新知识,遇到不懂的要及时请教,让自己的各方面能力不断的提高。 第19页 共22页 毕业设计用纸 参考文献 1. 郝建国,刘立新,党建华 《基于单片机的频率计设计》西安邮电学院电报,2003.8 2. 钱进,《基于AT89C51的高精度睡姿频率计的设计》机电产品开发与创新,2007.12 3. 张毅刚,《单片机的原理与应用》高等教育出版社 ,2008.3 4. 马忠美等,单片机的C语言应用设计》,北京航空航天大学出版社,2003.11 第20页 共22页 毕业设计用纸 第五章 总结 5.1总结 本论文以面向交通行业的安全问题为背景,详细阐述了以可编程序控制器(PLC)为核心的控制系统的原理、构成、设计与实现。 总结全文,具体做了一下几方面的工作: (1)通过现场考察设备的控制要求并借鉴大量相关资料,对交通灯闪烁时间的确定,从而避免了道路上减少交通事故的发生为宗旨,为事故发生的理论奠定基础; (2)根据车辆状况的控制要求,结合原有控制系统,设计出符合要求且性能比较高的控制系统总体方案,并进行方案论证; (3)系统的硬件设计,确定PLC的选型; (4)系统的软件设计,分析功能要求,编出PLC程序; 总之,该程序系统是一项比较复杂的机电控制工程,利用PLC实现过程的自动控制。自动化程度相对于以往的红绿灯控制有一定的提高。 鉴于本人知识水平及时间有限,经验不足,再加上写作时间仓促,论文中缺点、错误在所难免,敬请各位专家、老师和朋友批评与指正。 第21页 共22页 毕业设计用纸 5.2 结束语 在完成毕业设计的这段时间里,我收获颇多:通过这次课程设计,我了解到PLC应用面广、功能强大、使用方便等优点,PLC已经广泛地应用在各种机械设备和生产过程的各个方面,编程软件技术更是工业设计中不可缺少的一部分。它不但是PLC自动化中应用最广泛的控制设备,在大型工业网络控制系统中也占有不可动摇的地位。通过这次设计,我对PLC有了更多的了解和认识,不仅巩固了我的基础理论知识,更使我各个方面的能力都有很大的提高。从一开始的无从下手,整理资料,在到老师的帮助下,无疑是对我查阅资料的能力、设计报告的能力、电脑绘图的能力的提高起到了很大的帮助,很好的锻炼了理论联系实际、与具体项目、课题相结合,开发、设计产品的能力。在设计过程中,总是会遇到这样那样的问题,有时发现了一个问题,就需要做很多工作、花大量时间来才能解决,同时这也让我学到了如何处理问题的能力。 通过毕业设计,我对PLC有了进一步的了解,这是对我专业知识的一次检验,也是我走向工作岗位的一次热身。这次毕业设计我收获了很多,在设计中要时刻保持清醒的头脑,不断地接受新事物、新知识,遇到不懂的要及时请教,让自己的各方面能力不断的提高。 第22页 共22页 毕业设计用纸 致谢 非常感谢李翊老师在我大学的最后学习阶段——毕业设计阶段给自己的指导,从最初的定题、资料收集、写作、修改到论文定稿,他对我耐心的指导和无私的帮助。为了指导我们的毕业论文,他放弃了自己的休息时间,他的这种无私奉献的敬业精神令人钦佩,在此我向他表示我诚挚的谢意。同时,感谢所有的任课老师和同学在这三年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是由于他们,我才能在各方面取得显著的进步,在此向他们表示我由衷的谢意,并祝所有的老师培养出越来越多的优秀人才,桃李满天下! 致谢 这次毕业设计可以圆满的完成,得益于导师李翊老师的精心指导。从论文的选题到课题研究工作的展开,论文的撰写与修改,无不凝聚着导师的心血。导师渊博的知识,严谨求实的治学态度,敏锐的学术洞察力,对学术的不断追求和创新使我终生受益,仅以此对导师表示感谢和诚挚的敬意。 在本课题的研究过程中,同学也给予了有益的提示和帮助,我在此表示感谢。最后,向所有在大学阶段关心和帮助过我的老师,同学和 第23页 共22页 毕业设计用纸 朋友表示衷心的感谢! 第24页 共22页 因篇幅问题不能全部显示,请点此查看更多更全内容