




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
流水线光电计数器【摘要】:数字式电子计数器计数精确并且直观,已在许多行业中广泛使用。而光电传感器制作的光电式计数器,有着其他计数器不可取代的特点。本文设计了一个基于STC89C52单片机的流水线光电计数系统,通过光电开关统计流水线物体的数目。并且把统计的个数显示在LCD液晶屏上,我们可以通过按键设定统计物体的上限数和下限数,当统计的数目超过上限数或低于下限数的时候蜂鸣器就会报警,同时我们可以通过按键对统计数目清零。【关键词】:STC89C52;光电开关;LCD1602;蜂鸣器;Abstract:BecauseDigitalelectroniccounterhastheadvantagesofintuitiveandaccuratecount,ithasbeenwidelyusedinmanyindustries.PhotoelectriccounterthatisfrequentlymadeofPhotoelectricsensorshasothercountersirreplaceablefeatures.Inthispaper,itdesignedapipelinephotoelectriccountingsystemthatisbasedonSTC89C52MCU,whichcountsthroughthepipelinestatisticsphotoelectricswitch.AndthenumberthatiscountedisdisplayedontheLCDscreen.Wesetthemaximumnumberandtheminimumnumberthroughthekey.Whenthenumberexceedsthemaximumnumberofstatisticsorislessthantheminimumnumberofstatistics,thebuzzerwillalarm.Andwecanclearonthenumberofstatisticsthroughthekey.Keywords:STC89C52;Photoelectricswitch;LCD1602;Buzzer目录前言.1第1章方案设计与论证.2第1.1节主控模块.2第1.2节显示模块.2第1.3节检测模块.2第2章系统的设计原理.3第2.1节系统的主要功能.3第2.2节系统的组成与结构.3第3章系统的硬件设计.5第3.1节主控模块.5第3.2节最小系统.8第3.3节LCD液晶显示.9第3.4节键盘模块.12第3.5节检测模块.12第3.6节蜂鸣器模块设计.14第4章软件设计.15第4.1节软件总体设计.15第4.2节程序设计原理.15第5章系统测试.17第5.1节硬件调试.17第5.2节软件调试.17结论.18参考文献.18致谢.19附录.20附录一:总电路图.20附录二:系统仿真图.20附录三:实物照片说明.20附录四:源程序.21第0页前言随着电子技术的发展,人们生活水平的提高,对电子产品的人性化、智能化要求越来越高。传统机械计数器已很难满足现代生产的要求,催生了新一代计数器-光电计数器。光电计数器主要是利用数字电路技术输出给定时间内所通过的脉冲数并显示计数结果得数字化仪器。而光电式传感器是将光信号转化为电信号的一种传感器。它的理论基础是光电效应。这种类型的效应可以分为三种类别。第一种是外光电效应,是指在阳光照射的时候,会使电子逸出物体的表面。真空光电管、光电倍增管等都是利用这种效应所做成的。第二种是内光电效应,是指有光线照射的时候,会导致物质的电阻率发生改变。各类半导体光敏电阻就属于这种类型的器件。第三种是光生伏特效应,是指在光线照射的时候,物体的内部会产生电动势,这种电动势被称为光生电动势。本次光电计数器的设计一方面是为了巩固课本所学知识,实现理论迁移,及课程产品化;另一方面是为了加强动手能力,识图能力及设计能力,进一步理解专业所学的理论知识;同时可以熟悉常用元器件性能,掌握其工作原理,逐渐了解其电路功能;掌握电路设计的基本思想和方法,学会如何科学查找问题、分析问题、解决问题;熟练掌握用软件Proteus对所设计的电路进行仿真的过程;学会查阅资料,自主学习,培养认真刻苦的学习态度和缜密严谨的思考方法,以及工艺素质、团队精神、设计创新能力。本设计是一种基于STC89C52单片机的智能化光电计数系统的设计,并已成功的用于实际系统中。更需要指出的是,本设计用软件编程,不仅占用硬件资源少,而且成本低,抗干扰性好,可靠性高,使用方便。此种计数器主要用在工厂的生产流水线上作产品统计,还可用于统计商场、电影院、博物馆、展览馆、车站、码头、银行等公共场所的人员数量及人员流通数量,同时丝毫不会侵犯到被测人员的个人隐私。例如,用在停车场计算停车数量,避免了车主因停车位已满发生徒劳而返的麻烦,节省了时间、人力、物力。本电路的指导思想是设计两个光控电路,一个放在入口用来加1计数,一个放在出口用来减1计数。当触发到入口的光控电路时,计数器就会进行加1计数操作,当触发出口的光控电路时,计数器会进行减1的计数操作,当入口处的计数器达到所设定的最大值或出口处的计数器达到按键设定的最小值时蜂鸣器就会报警,并且还可以通过按键进行复位。该设计的优点有:电路结构简单、成本低、计数准确。该光电计数器只具有两位数,如果两位数不能满足也可以通过级联扩展为三位、六位,八位,甚至更多。整体结构先进行方案的设计与论证,然后详细的进行系统设计以及硬件与软件的设第1页计,最后进行调试,完成整个设计过程。第2页第1章方案设计与论证第1.1节主控模块方案一:采用MSP430系列单片机,这种单片机是一种16位超低功耗的混合信号处理器。其内部集成了很多模拟电路、数字电路和微处理器,提供强大的功能。不过该芯片昂贵不适合一般的设计开发方案二:采用51系列的单片机,该单片机是一个高可靠性,超低价,无法解密,高性能的8位单片机9,32个IO口,并且STC系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试。综合考虑,选用方案二中的51系列单片机作为主控制芯片。第1.2节显示模块方案一:采用点阵式数码管进行显示,点阵式数码管由八行八列的发光二极管组成的,此种数码管比较适用于显示文字,并且此处显示的是数字,采用此种方案显示数字太浪费了,而点阵数码管价格也相对较高,因此不选用该种方法进行显示。方案二:采用LED数码管动态扫描,LED数码管价格虽然适中,也最合适用于显示数字,并且采用LED数码管动态扫描法与单片机进行连接时,占用单片机接口线少。但是由于LED数码管动态扫描需要借助74LS164移位寄存器进行移位,而该芯片在调试时往往会有很多障碍,所以不采用LED数码管作为显示。方案三:采用LCD液晶作为显示屏,因为液晶显示屏的显示功能强大,可以显示大量文字,图形等,并且LCD显示多样,清晰可见,对于此次设计而言选用一个LCD1602的液晶屏就可以满足实验需求,价格也还能接受,虽然需要大量的接口线,但是能够给调试带来方便。所以本设计中方案三中的LCD1602液显示屏作为显示模块。第1.3节检测模块根据题目要求这里选用了2个光电开关进行物件的统计,当有物体挡住光电开关的时候,光电开关输出的电平会变高电平,通过判断这个电平可以判断物体是否经过光电开关,其中一个光电开关用来检测物体的增加,而另一个光电开关用来检测物体的减少。第3页第2章系统的设计原理第2.1节系统的主要功能本系统设计制作是一个基于单片机的流水线光电计数器。能实现以下几种功能:(1)、可以统计流水线来往的物件数量并进行相应的加减。(2)、用户可以通过按键物件统计的上限数量和下限数量,当统计的数量超过上限或下限的时候,单片机会驱动蜂鸣器报警提示。(3)、系统带有清零功能,设置后清除当前统计的数目。第2.2节系统的组成与结构该设计的系统是以单片机为控制核心,对系统进行初始化,主要完成对键盘的响应、液晶显示、物件统计等功能的控制,起到总控和协调各模块之间工作的作用。图2-1系统结构图如图2-1所示。整个光电计数器系统主要由按键模块、液晶模块、单片机控制模块、光电计数器1和光电计数器2模块、以及蜂鸣器这几个部分组成。对于一般的光电计数器而言,发射器发出的红外光信号经过反射进入接收管变为电信号,电信号经过放大比较整形变换为触发脉冲4。此处光电计数器采用的是脉冲红外光交流驱动模块。工作时红外发光管发出红外线透过光耦的槽投射到光敏三极管上,光敏三极管导通,集电极输出低电平;当红外光线被物体遮挡时,光敏三极管截止,集电极输出高电平,每被遮挡一次,光电计数器的工作状态就会改变一次。通过放大器可使计数记下被遮挡的次数,并利用单片机的串行通信接口在显示模块中显示记下的数值,当显示的数值达到按键设置的最大值或小于按键设置的最小值时报警器就会发出警报。并且可以通过按键进行手动清零、清除报警。第4页第3章系统的硬件设计第3.1节主控模块主控模块模块在整个系统中起着统筹的作用,需要检测键盘,统计数量等各种参数,同时驱动液晶显示相关参数,在这里我们选用了51系列单片机中的STC89C52单片机作为系统的主控芯片。51系列单片机是Intel公司早期推出的性能优越的单片机,由于Intel公司的51系列单片机的内核的开放性,使得一些半导体芯片制造商在51内核上集成了一些片内外设,使其可成为51的兼容机17。这些各大电子制造商推出的单片机都兼容51指令、并在51的基础上扩展一些功能而内部结构是与51一致的17,如STC89C52等。STC89C52内部结构与80C51基本相同,因此STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器18。STC89C52的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成18。STC89C52单片机的基本组成框图见图3-1:图3-1STC89C52单片机组成框图3.1.1.STC89C52单片机主要特性(1)、一个8位的微处理器(CPU)。(2)、片内数据存储器RAM(128B),用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89系列单片机最多提供1K的RAM。(3)、片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31等。目前单片机的发展趋势是将RAM和ROM都集成在单片机里面,这样既方便了用户进行设计又提高了系统的第5页抗干扰性。SST公司推出的89系列单片机分别集成了16K、32K、64KFlash存储器,可供用户根据需要选用。(4)、四个8位并行IO接口P0P3,每个口既可以用作输入,也可以用作输出。(5)、两个定时器计数器,每个定时器计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52系列单片机都会提供3个16位定时器/计数器。(6)、五个中断源的中断控制系统。现在新推出的单片机都不只5个中断源,例如SST89E58RD就有9个中断源。(7)、一个全双工UART(通用异步接收发送器)的串行IO口,用于实现单片机之间或单机与微机之间的串行通信。(8)、片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHz。SST89V58RD最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。3.1.2.STC89C52单片机引脚功能说明:图3-2STC89C52单片机引脚图(1)、时钟电路引脚XTAL1和XTAL2:XTAL2(18脚):接外部晶体和微调电容的一端;片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。第6页要检查振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。XTAL1(19脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。(2)、控制信号引脚RST,ALE,PSEN和EA:RST/VPD(9脚):RST是复位信号输入端,高电平有效。当此输入端保持备用电源的输入端。当主电源Vcc发生故障,降低到低电平规定值时,将5V电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。RST引脚的第二功能是VPD,即接入RST端,为RAM提供备用电源,以保证存储在RAM中的信息不丢失,从而合复位后能继续正常运行。ALE/PROG(30脚):地址锁存允许信号端。当8051上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC的1/6。CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。平时不访问片外存储器时,ALE端也以振荡频率的1/6固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。如果想确定8051/8031芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。如有脉冲信号输出,则8051/8031基本上是好的。ALE端的负载驱动能力为8个LS型TTL(低功耗甚高速TTL)负载。此引脚的第二功能PROG在对片内带有4KBEPROM的8751编程写入(固化程序)时,作为编程脉冲输入端。PSEN(29脚):程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接EPROM的OE端(见后面几章任何一个小系统硬件图)。PSEN端有效,即允许读出EPROMROM中的指令码。PSEN端同样可驱动8个LS型TTL负载。要检查一个8051/8031小系统上电后CPU能否正常到EPROMROM中读取指令码,也可用示波器看PSEN端有无脉冲输出。如有则说明基本上工作正常。EA/Vpp(31脚):外部程序存储器地址允许输入端/固化编程电压输入端。当EA引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051为4K)时,将自动转去执行片外程序存储器内的程序。当输入信号EA引脚接低电平(接地)时,CPU只访问外部EPROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无片内ROM的8031或8032,需外扩EPROM,此时必须将EA引脚接地。此引脚的第二功能是Vpp是对8751片内EPROM固化编程时,作为施加较高编程电压(一般12V21V)的输入端。(3)、输入/输出端口P0/P1/P2/P3:P0口(P0.0P0.7,3932脚):P0口是一个漏极开路的8位准双向I/O口。作为漏第7页极开路的输出端口,每位能驱动8个LS型TTL负载。当P0口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0口的全部引脚浮空,可作为高阻抗输入。作输入口使用时要先写1,这就是准双向口的含义。在CPU访问片外存储器时,P0口分时提供低8位地址和8位数据的复用总线。在此期间,P0口内部上拉电阻有效。P1口(P1.0P1.7,18脚):P1口是一个带内部上拉电阻的8位准双向I/O口。P1口每位能驱动4个LS型TTL负载。在P1口作为输入口使用时,应先向P1口锁存地址(90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平。P2口(P2.0P2.7,2128脚):P2口是一个带内部上拉电阻的8位准双向I/O口。P口每位能驱动4个LS型TTL负载。在访问片外EPROM/RAM时,它输出高8位地址。P3口(P3.0P3.7,1017脚):P3口是一个带内部上拉电阻的8位准双向I/O口。P3口每位能驱动4个LS型TTL负载。P3口与其它I/O端口有很大的区别,它的每个引脚都有第二功能,如下:P3.0:(RXD)串行数据接收。P3.1:(RXD)串行数据发送。P3.2:(INT0#)外部中断0输入。P3.3:(INT1#)外部中断1输入。P3.4:(T0)定时/计数器0的外部计数输入。P3.5:(T1)定时/计数器1的外部计数输入。P3.6:(WR#)外部数据存储器写选通。P3.7:(RD#)外部数据存储器读选通。3.1.3.中断系统STC89C52系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;各中断源的优先级由中断优先级寄存器IP安排;当在同一优先级内的各中断同一时间提出中断请求时,它们的响应次序是由此时内部的查询逻辑确定。在单片机应用系统中,常常会有定时输出、定时检测、定时扫描等定时控制需求;而且需要对外部事件进行计数。STC89C52单片机内集成有两个可编程的定时/计数器18:T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器。第3.2节最小系统第8页图3-3最小系统电路图图3-3为单片机最小系统电路图,单片机最小系统有单片机、时钟电路、复位电路组成,时钟电路选用了12MHZ的晶振提供时钟,作用为给单片机提供一个时间基准,其中执行一条基本指令需要的时间为一个机器周期,单片机的复位电路,按下复位按键之后可以使单片机进入刚上电的起始状态。图中10K排阻为P0口的上拉电阻,由于P0口跟其他IO结构不一样为漏极开路的结构,因此要加上拉电阻才能正常使用。第3.3节LCD液晶显示由于本设计中要求显示界面显示一些参数,因此这里选用了LCD1602作为界面显示,可以把一些相关的参数进行显示。3.3.1.液晶原理介绍液晶显示器(LCD)是一种采用液晶控制透光度技术来实现色彩的显示器。与CRT显示器相比,LCD的优点是很突出的。由于亮和暗显示是通过控制是否透光来来控制的,当光的色彩不变时,此时液晶的显示也会保持着不变,因此无须考虑刷新率的问题了。显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用的是LCD液晶模块,采用一个162的字符型液晶显示模块。点阵图形式液晶由M行N列个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1个字节的8个位,即每行由16字节,共168=128个点组成,屏上6416个显示单元和显示RAM区1024个字节相对应,每一字节的内容和屏上相应位置的亮暗对应。一个字符由68或88点阵组成,即要找到和屏上某几个第9页位置对应的显示RAM区的8个字节,并且要使每个字节的不同的位为1,其它的为0,为1的点亮,为0的点暗,这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。3.3.2.液晶模块简介LCD1602液晶模块采用的控制器是HD44780,该控制器简单并且具有功能较强的指令集,可以实现的功能有字符移动,闪烁等,LM016L与单片机MCU通讯可采用两种方式并行传输,如8位或4位。HD44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系,CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM18。LCD1602液晶模块的引脚图如图3-4所示。图3-4LCD1602引脚图液晶寄存器选择控制如表3-1表3-1寄存器选择控制第10页RSR/W操作说明00写入指令寄存器(清除屏等)01读busyflag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据3.3.3.液晶显示部分与STC89C52的接口图3-5LCD1602与STC89C52的接口连接电路如图3-5所示。用STC89C52的P0口作为数据线,用P1.2、P1.1、P1.0分别作为LCD的EN、R/W、RS。其中EN是下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为1行,字型为57点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。18第11页第3.4节键盘模块图3-6键盘连接电路如图3-6所示。本按键模块使用的是多位独立按键,按键一端接IO口,一端接地,由于单片机的IO口都有内部上拉,因此当按键没有按下的时候,IO检测到的时候高电平,当按键按下的时候,相当于IO短接地,因此这时候单片机检测到的电平为低电平,通过检测不同时刻的IO口状态就可以判断按下的是那个按键。第3.5节检测模块3.5.1.光电开关工作原理光电开关是通过把光强度的变化转换成电信号的变化来实现控制的。光电开关在一般情况下,有三部分构成,它们分为:发送器、接收器和检测电路。图3-7光电开关内部结构图发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管(LED)、激光二极管及红外发射二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管、光电三极管、光电池组成。在接收器的前面,装有光学元件如透镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。此外,光电开关的结构元件中还有发射板和光导纤维。三角反射板是结构牢固的发射装置。它由很小的三角锥体反射材料组成,能够使光束准确地从反射板中返回,具有实用意义。它可以在与光轴0到25第12页的范围改变发射角,使光束几乎是从一根发射线,经过反射后,还是从这根反射线返回。(1)、槽型光电开关把一个光发射器和一个接收器面对面地装在一个槽的两侧的是槽形光电。在没有阻碍时,当发光器能发出红外光或可见光,接收器能接收到光。但当槽中有物体通过时,光会被遮挡住,光电开关便动作。输出一个开关控制信号,切断或接通负载电流,从而完成一次控制动作。槽形开关的检测距离因为受整体结构的限制一般只有几厘米。5(2)、对射型光电开关若把发光器和收光器分离开,就可使检测距离加大。由一个发光器和一个收光器组成的光电开关就称为对射分离式光电开关,简称对射式光电开关。它的检测距离可达几米乃至几十米。使用时把发光器和收光器分别装在检测物通过路径的两侧,检测物通过时阻挡光路,收光器就动作输出一个开关控制信号19。(3)、反光板型光电开关把发光器和收光器装入同一个装置内,在它的前方装一块反光板,利用反射原理完成光电控制作用的称为反光板反射式(或反射镜反射式)光电开关。正常情况下,发光器发出的光被反光板反射回来被收光器收到;一旦光路被检测物挡住,收光器收不到光时,光电开关就动作,输出一个开关控制信号19。(4)、扩散反射型光电开关它的检测头里也装有一个发光器和一个收光器,但前方没有反光板。正常情况下发光器发出的光收光器是找不到的。当检测物通过时挡住了光,并把光部分反射回来,收光器就收到光信号,输出一个开关信号19。3.5.2.光电开关电路设计光电开关的电路设计图:第13页图3-8光电开关电路图这里一共用了2个光电开关进行数量统计,当物件挡住光电开关的时候,红外发光管发出红外线透过光耦的槽投射不到光敏三极管上,光敏三极管会截止,集电极此时输出低电平;当没有物体挡住光电开关的时候,光电开关输出高电平,为了防止物件经过的时候跳变沿产生误触发,这里选用LM311比较器搭建了一个迟滞比较器,可以对误触发进行抑制。单片机通过读取输出的电平可以判断光电开光当前是否有物件经过。遮挡一次光耦输出一个脉冲,因此脉冲的个数是被检测物的数量。即当物件通过第一个光电开关时,光耦就会输出一个脉冲,此时光电计数器1就会增加1;当物件通过第二个光电开关时,此时光耦会输出一个脉冲,此时光电计数器2则减少1。第3.6节蜂鸣器模块设计蜂鸣器模块的电路图:图3-9蜂鸣器驱动电路图如图3-9所示。本设计我们可以通过按键设定最大值或者最小值,当当前数目大于设定的最大值或小于设定的最小值的时候,单片机就可以驱动蜂鸣器发声。由于蜂鸣器的工作电流一般比较大,以至于单片机的I/O口是无法直接驱动的,所以要利用三极管开关电路来驱动。本处选用的是8550三极管,它是一个PNP型的三极管,第14页当基极给低电平的时候三极管导通,这时候蜂鸣器发声,当给高电平的时候,三极管关闭,蜂鸣器不发声。第15页第4章软件设计第4.1节软件总体设计图3-10主程序流程图主程序流程图如图3-10所示,单片机上电后先进行初始化,清除一些参数的初值,然后把当前数量信息显示,每个循环单片机都会判断用户是否按下功能按键,按下功能按键后进入上限和下限参数设置和清零设置,按下清零按键则对当前统计的人数清零,单片机通过物体经过光电开关的先后进行增加或减少,假如通过光电开关1加1,通过光电开关2则减1。第4.2节程序设计原理第16页将软件任务分析和硬件电路设计结合,由硬件完成哪些功能,软件完成哪些任务,当硬件电路设计基本完成后,此次设计也就基本上定下来了。软件设计的总体规划为软件任务分析环节。按照软件的功能来进行分类,可分为两大类:第一类是执行软件,完成如测量,计算,显示,打印,输出控制和通信等各种实质性的功能,第二类是监控软件,用来专门协调各执行模块和操作者的关系,往往在系统软件中该软件充当着组织调度角色。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,也与硬件关系密切。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难了。软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。第17页第5章系统测试第5.1节硬件调试流水线光电计数系统的电路较大,涉及的模块比较多,其中包含温度检测模块,时钟模块,单片机最小系统模块,液晶模块,因此对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。在制作硬件电路之前,我们先根据实际需要的功能划分硬件模块,并且在PROTEL里面画出其硬件原理图和PCB图,检查无误后开始在万用板上焊接。在本系统的硬件调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:问题1:开始的时候光电开关在物件通过的时候电平不跳变。解决:后经过查询资料发现光电开关发射端发光管流过的电流太小,导致接收端没有很好的导通。第5.2节软件调试流水线光电计数系统是一个比较复杂的数字系统,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。首先为了更好的测试效果,我最开始是直接在PROTUES软件下进行仿真,在确定无误后,再把程序烧录到实物中运行。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件上的各种问题。在软件的调试过程中主要遇到的问题如下:问题1烧入程序后,LCD液晶显示闪动,而且亮度不均匀。解决:首先对调用的延时进行逐渐修改,可以解决显示闪动问题。其次,由于本作品使作动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出,但是调用的显示程序时,如果不在返回时屏蔽掉最后的附值,则会出现很亮的现象,所以在显示的后面加了屏蔽子令,最后解决了此问题。问题2当用户按下按键的时候,单片机读取的数值跟设定的数值不对。解决:重新检查矩阵键盘电路的连接,重新建立一个新的对应关系。第18页结论此次设计已接近结束,从中我认识到自己还有很多方面的不足。在设计电路初期,由于没有设计经验,觉得无从下手,空有很多设计思想,经过自己查找资料,自己渐渐有了些头绪,同时确立了系统设计方案,但发现自己对单片机STC89C52的功能的认识和应用掌握力度不够;在软件设计程序时常常遇到问题,又找不到错误问题根源所在。究其原因还是因为我对芯片的应用和对语言编写程序的经验太少。然而这次毕业设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过长时间的设计及调试,本系统基本能实现本系统的所有功能。不足之处有:1.硬件的稳定性有待进一步提高2.系统界面人性化还不足。第19页参考文献1.陈艳.PLC高速计数器工作特点的介绍和分析J.中国学术期刊,2003-03,20(01):67-69.2.王玥玥.典型集成计数器的应用J.中国学术期刊,2007-05-01,(05):48-50.3.杨杰1,刘海民1,舒梅2.公交车载客人数电子计数器的设计J.中国学术期刊,2011-10,33(10):127-129.4.黄茂雄.光电计数器的设计分析J.中国学术期刊,2012-04-08,(10):192.5.刘世泉.光电计数器的原理与制作J.中国学术期刊,2009,(11):8-9.6.杨汉祥,张琦.红外计数器的设计J.中国学术期刊,2009-07-01,(07):187-190.7.梅海峰.红外线光电计数器的设计及制作J.中国学术期刊,2005,28(05):356-357.8.赵红赟,张友鹏,郑伟.基于CPLD和单片机的脉冲计数器设计与实现J.中国学术期刊,2009-06,17(02):82-88.9.栾彦利.基于单片机AT89C51计数器的设计J.中国学术期刊,2009,(12):313.10.李瑞,罗佰绥1,熊小民1,熊锴2.简易函数信号发生器与计数器设计J.中国学术期刊,2008,(07):49-51.11.王明艳,向厚振,沈泉波.基于计数器的数字电子钟的设计J.中国学术期刊,2011,(04):19-20.12.樊战友,胡永辉,边玉敬.嵌入式时间间隔计数器的研制J.中国学术期刊,2005-06,28(01):8-14.13.张俊哲.任意进制计数器设计的新方法J.中国学术期刊,1982,(02):55-62.14.刘雯娟.数显光电计数器的设计J.中国学术期刊,2011,(15):25.15.谭文秀.数字频率计电路的设计与分析J.中国学术期刊,2007,(2).16.高明伦,许海辉,张多利.一种多位计数器的设计方法J.中国学术期刊,2007-06,21(03):79-82.17.杨学昭,王东云.单片机原理、接口技术及应用(含C51)M.西安电子科技大学出版社,2009-02.18.顾春禄,贾姝娟,刘茹敏.基于单片机的数字温度计设计J.中国学术期刊,2010,(12):84-85.19.senba,光电传感器工作原理P./trade/277.htm.第20页致谢美好的时间,总是来不及紧握,便已流逝,曾经憧憬的大学生活,也已悄悄离去。四年的辛勤与努力,随着本次设计的完成,将要划下句号。虽然四年在我们漫长的人生旅途中很短暂,但却是我们最美好的时光。在此衷心感谢我的指导老师以及我的班主任丁建强老师,老师的循循善诱的教导和不拘一格的思路给予我无尽的启迪。丁老师的渊博的专业知识,精益求精的工作作风,严以律己、宽以待人的崇高风范,诲人不惓的高尚师德,朴实无华、平易近人的人格魅力,将是我以后生活、工作中的榜样。感谢我所有曾经教导过我的老师以及给予过我关心和帮助的朋友、同学们。第21页附录:中英文文献翻译名称基于2t-dram的紧凑的数字像素传感器(DSP)第22页附录一:总电路图附录二:系统仿真图附录三:实物照片说明第23页附录四:源程序#includereg52.h#includekey.h#includeLCD1602.hintnum=0;第24页sbitNum_Add=P32;sbitNum_Dec=P33;voidnum_scan(void)if(Num_Add=1)Scan10MsDelay();if(Num_Add=1)num+;while(Num_Add);if(Num_Dec=1)Scan10MsDelay();if(Num_Dec=1)num-;while(Num_Dec);if(num999)num=999;voidmain(void)LCDInit();while(1)num_scan();KeyScan();if(gFunctionCount=0)LCDDispString(4,1,Number);LCDDispString(7,2,);LCDDispNumInt(7,2,num);if(numNum_H)|(num#includelcd1602.h/*Function:voidDelayN40us(unsignedintn)Description:延时函数,延时40us的整数倍,传入值n代表延时时间到n*40us,不能实现准确延时,只能实现大概时间的延时,利用的是指令实现延时功能。Calls:没有调用其它函数CalledBy:voidLCDWriteCommand(unsignedchardat);voidLCDWriteData(unsignedchardat);Input:unsignedintn-用于延时时间的确定,取值、为165535Output:无Return:无*/voidDelayN40us(unsignedintn)unsignedinti;unsignedcharj;for(i=n;i0;i-)for(j=0;j0;x-)for(y=110;y0;y-);voidKeyScan(void)/独立键盘扫描子函数/-/if(Key1=0)/如果检测到有键按下第30页Scan10MsDelay();/延时10msif(Key1=0)/再次判断是否确实按下按键,进行消抖操作。gFunctionCount+;gTimeCount=0;/每次都开始设定if(gFunctionCount=1)LCDCursor();BEEP=1;LCDWriteCommand(0x01);/*清除屏幕显示*/Scan10MsDelay();Scan10MsDelay();Scan10MsDelay();Scan10MsDelay();LCDDispString(0,1,SetAlarmNumber);LCDDispString(0,2,High:Low:);LCDDispNum(5,2,Num_H%1000/100);LCDDispNum(6,2,Num_H%100/10);LCDDispNum(7,2,Num_H%10);LCDDispNum(13,2,Num_L%1000/100);LCDDispNum(15,2,Num_L%10);LCDDispNum(14,2,Num_L%100/10);elseif(gFunctionCount=2)LCDNotCursor();LCDWriteCommand(0x01);/*清除屏幕显示*/Scan10MsDelay();Scan10MsDelay();Scan10MsDelay();Scan10MsDelay();LCDDispString(0,1,ResetNumber);elseif(gFunctionCount=3)gFunctionCount=0;LCDNotCursor();LCDWriteCommand(0x01);/*清除屏幕显示*/Scan10MsDelay();Scan10MsDelay();Scan10MsDelay();Scan10MsDelay();while(!Key1);/未松手时,不跳出循环,避免误检测/-第31页-/if(Key2=0)/同上,判断第二个按键情况/功能键Scan10MsDelay();if(Key2=0)gTimeCount+;if(gFunctionCount=1&gTimeCount=1)LCDDispNum(13,2,Num_L%1000/100);elseif(gFunctionCount=1&gTimeCount=2)LCDDispChar(12,2,:);elseif(gFunctionCount=1&gTimeCount=3)LCDDispNum(6,2,Num_H%100/10);elseif(gFunctionCount=1&gTimeCount=4)LCDDispNum(5,2,Num_H%1000/100);elseif(gFunctionCount=1&gTimeCount=5)LCDDispChar(4,2,:);elseif(gFunctionCount=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 政治●重庆卷丨2023年重庆市普通高中学业水平选择性考试政治试卷及答案
- 浙江省嘉兴市多校2023-2024学年四年级下学期数学期末检测(含答案)
- 初中英语八年级下册统编教案 uunit5
- 从军直播活动方案
- 仓储质量活动年活动方案
- 仙桃市送喜报活动方案
- 代发留存率活动方案
- 代表代表活动方案
- 代账公司获客活动方案
- 以建平台办活动方案
- 陕西省2025届高考数学押题试卷含解析
- 电气施工管理
- 视唱练耳知到智慧树章节测试课后答案2024年秋四川音乐学院
- 五年级法制教育课件
- 手术室护理质量控制指标
- 小儿泌尿道感染护理查房
- 住院患儿实施院内转运临床实践指南2023版课件
- GB/T 44450-2024光学和光子学光学材料和元件0.78 μm~25 μm红外光谱用光学材料特性
- 代持股协议书
- 2024至2030年中国绿甲醇行业市场前景预测与发展趋势研究报告
- 2024年天津市中考英语真题卷及答案
评论
0/150
提交评论