光电计数器设计_第1页
光电计数器设计_第2页
光电计数器设计_第3页
光电计数器设计_第4页
光电计数器设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE光电综合设计报告光电计数器设计院(系)名称信息工程学院专业名称光电信息工程团队成员姓名赵磊1201021046鲁亦乐1201021076王梦杰1201021054姚洋帅12010210262015年PAGEPAGE13摘要计数器在人们日常生活中应用越来越多,己成为不可缺少的必需品。本文介绍了红外计数器的发展前景和现状,设计了一种由数字电路来实现的红外计数器,详细阐述了红外计数器的工作原理和构成,讨论了各模块的实现方法。本红外计数器以AT89S52单片机为中心控制器件,主要由单片机编程模块,显示模块等部分组成。显示部分由4位共阳数码管显示,增加可读性。该系统具备较高的测量精度,能较好的完成设计要求。关键字:自动计数、AT89S52单片机、红外传感器目录1系统总体设计 12系统硬件设计 22.1单片机控制部分 32.2报警部分 32.3显示部分 43系统软件设计及代码 53.1系统软件设计流程图 53.2原理图及实物 53.3设计程序 7结论 10致谢 11参考文献 121、系统总体设计该系统以AT89S52单片机为中心控制器件,主要由红外传感模块,数据转换模块,单片机编程模块,显示模块,控制模块等部分组成,如图1。AT89S52指示电路电源模块红外传感器声光指示显示电路数据转换AT89S52指示电路电源模块红外传感器声光指示显示电路数据转换图1系统基本模块方框图设计功能说明:(1)、反射式检测计数

(2)、可实现加、减计数

(3)、数码管/液晶显示计数数值,计数范围0000-9999

(4)、键盘控制计数暂停、开始、清零

(5)、声光、报警及提醒2、系统硬件设计2.1单片机控制部分

此部分是电路的核心部分,系统的控制采用了单片机AT89S52。单片机内部有8KB单元的程序存储器及256字节的数据存储器。因此系统不必扩展外部程序存储器和数据存储器这样大大的减少了系统硬件部分。电路原理图如图2所示。图2单片机控制电路2.2报警部分当计数器计数到"0000"时应使计数器复位并置数"9999"。但这时将不会显示"0000",而计数器从"0001"直接复位。由于"0000"是一个过渡时期,不会显示出来,所以本电路采用"0050"作为计数器复位脉冲。当计数器由"0000"跳变到"0050"时,从而输出低电平计数器置数,并保持继续计数,蜂鸣器发出一声报警声。当产品经过光电门时,Rs触发器翻转输出高电平,计数器开始计数。若按下S1,计数器立即复位。报警电路的电路图如图3所示。图3报警电路2.3显示部分该系统要求显示计数功能。基于上述原因,我们考虑了三种方案:

方案一:完全采用

LCD显示。完全采用

LCD显示可显示有限的符号和数码字苻,能满足设计的需要。

方案二:完全采用点阵式

LCD显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等,也可满足设计的需要。

方案三:采用

LED显示,LED只显示数字输出。这种方案既满足系统功能要求,又简单,成本有低。

权衡利弊,第三种方案的优缺点,我们决定采用方案三来实现数字显示。系统中采用的数码管为共阳极数码管,显示电路图的电路如图4所示。图4显示电路3、系统软件设计及代码系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(4)绘制程序流程图;(5)合理分配系统资源;(6)为程序加入注释,提高可读性,实施软件工程;(7)注意软件的抗干扰设计,提高系统的可靠性。3.1系统软件设计流程图开始开始初始化初始化输入设定值输入设定值复位复位光电传感电路模块STC89c52光电传感电路模块STC89c52单片机初始化数码管数字显示数码管数字显示红外接收?读取计数数据读取计数数据yes到达设定值?no 到达设定值?结束no结束NO yes相关报警电路设定相关报警电路设定值NO图4-1计数控制流程图3.2原理图及实物3.3设计程序#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitS1=P3^5;//开始sbitS2=P3^4;//暂停sbitS3=P3^3;//减1sbitS4=P3^2;//加1sbitBEEP=P3^6;voidbeep();uintcount,time_count;uchari,j,m;ucharcodeleddata[]={0xc0,//00xf9,//1 0xa4,//2 0xb0,//3 0x99,//4 0x92,//5 0x82,//6 0xf8,//7 0x80,//8 0x90,//9 }; //code表示使用程序存储器,如果不用code ,使用随机存储器voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=114;y>0;y--); //1ms}voiddisplay(){ P0=0xff; P2=0xfe; P0=leddata[count/1000];//显示千位 delay(2); P0=0xff; P2=0xfd; P0=leddata[count%1000/100];//百位 delay(2); P0=0xff; P2=0xfb; P0=leddata[count%100/10];//十位 delay(2); P0=0xff; P2=0xf7; P0=leddata[count%10];//个位 delay(2);}voidmain(){ P1=0xff; count==0; while(1){ display(); if(S1==0) { delay(2);//软件消抖 if(S1==0) { TR0=1; while(!S1); } } if(S2==0) { delay(2); if(S2==0) { TR0=0; while(!S2); } } if(S3==0) { delay(2); if(S3==0&&TR0==0) { count--; while(!S3); } } if(S4==0) { delay(2); if(S4==0&&TR0==0) { count++; while(!S4); } } if(count==50) { beep(); } }}voidbeep(){uintk=10;while(k--){for(j=200;j>0;j--) { P1=0xfe; BEEP=~BEEP;//输出频率1KHz delay(1);//延时500us } for(j=200;j>0;j--) { P1=0xfe; BEEP=~BEEP;//输出频率500Hz delay(1);//延时1ms delay(1); }}}结论本次设计是设计利用光线的通段来统计通过光电门的产品数量的光电计数器。在设计电路初期,由于没有设计经验,觉得无从下手,空有很多设计思想,却不知道应该选哪个,经过自己查找资料,我的设计渐渐有了头绪,通过查阅资料,逐渐确立系统方案,对单片机AT89S52的功能及其他芯片的认识和应用掌握力度不够,在软件设计程序时常常遇到问题,又找不到错误问题根源所在,管老师看过我编写的程序之后凭着丰富的设计经验,一下子就找到问题的根源所在,就是我对芯片应用和C语言编写程序的经验太少,速度过慢。我知道问题的根本原因之后,我认真研究并掌握了芯片的各种功能的应用和提高编写程序的准确度,变成速度。经过这次设计之后我总结了要解决在设计中遇到的问题就应该完全领会设计中所涉及的知识后再动手操作,不能急躁。在设计期间我学到了很多知识和技巧,而最重要的就是学到了科学试验中的不可缺少的毅力和耐心。总之,知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会。致谢在论文完成之际,我首先向关心帮助和指导我的指导老师表示衷心的感谢并致以崇高的敬意!在论文工作中,遇到了研究理论、框架结构、数据整理等问题,他们在撰写、修改和定稿等各个环节均严格把关,并投入了大量的时间和精力,使我得以完成本次论文。每思及恩师教诲和为此付出的辛劳,常自责未能达到恩师期望,唯有在以后的道路上更加勤勉努力,望能不负师恩。再一次向他们表示衷心的感谢,感谢他为学生营造的浓郁学术氛围,以及学习、生活上的无私帮助!值此论文完成之际,谨向老师致以最崇高的谢意!参考文献[1]韩克,柳秀山.电子技能与EDA技术[M].暨

温馨提示

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

评论

0/150

提交评论