1、本科毕业论文(20 届)流水线光电计数器的设计所在学院专业班级 电子信息科学与技术学生姓名指导教师完成日期流水线光电计数器目 录前言 .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章
2、 软件设计 .15第 4.1 节 软件总体设计 .15第 4.2 节 程序设计原理 .15第 5章 系统测试 .17第 5.1 节 硬件调试 .17第 5.2 节 软件调试 .17结论 .18参考文献 .18致谢 .19附录 .20附录一:总电路图 .20附录二:系统仿真图 .20附录三:实物照片说明 .20附录四:源程序 .21流水线光电计数器【摘要】:数字式电子计数器计数精确并且直观,已在许多行业中广泛使用。而光电传感器制作的光电式计数器,有着其他计数器不可取代的特点。本文设计了一个基于STC89C52 单片机的流水线光电计数系统,通过光电开关统计流水线物体的数目。并且把统计的个数显示在
3、LCD 液晶屏上,我们可以通过按键设定统计物体的上限数和下限数,当统计的数目超过上限数或低于下限数的时候蜂鸣器就会报警,同时我们可以通过按键对统计数目清零。【关键词】:STC89C52;光电开关;LCD1602;蜂鸣器;Abstract : Because Digital electronic counter has the advantages of intuitive and accurate count,it has been widely used in many industries. Photoelectric counter that is frequently made of
4、Photoelectric sensors has other counters irreplaceable features. In this paper, it designed a pipeline photoelectric counting system that is based on STC89C52 MCU,which counts through the pipeline statistics photoelectric switch. And the number that is counted is displayed on the LCD screen. We set
5、the maximum number and the minimum number through the key. When the number exceeds the maximum number of statistics or is less than the minimum number of statistics, the buzzer will alarm. And we can clear on the number of statistics through the key.Key words: STC89C52;Photoelectric switch;LCD1602;
6、Buzzer第 1 页前言随着电子技术的发展,人们生活水平的提高,对电子产品的人性化、智能化要求越来越高。传统机械计数器已很难满足现代生产的要求,催生了新一代计数器-光电计数器。光电计数器主要是利用数字电路技术输出给定时间内所通过的脉冲数并显示计数结果得数字化仪器。而光电式传感器是将光信号转化为电信号的一种传感器。它的理论基础是光电效应。这种类型的效应可以分为三种类别。第一种是外光电效应,是指在阳光照射的时候,会使电子逸出物体的表面。真空光电管、光电倍增管等都是利用这种效应所做成的。第二种是内光电效应,是指有光线照射的时候,会导致物质的电阻率发生改变。各类半导体光敏电阻就属于这种类型的器件。第
7、三种是光生伏特效应,是指在光线照射的时候,物体的内部会产生电动势,这种电动势被称为光生电动势。本次光电计数器的设计一方面是为了巩固课本所学知识,实现理论迁移,及课程产品化;另一方面是为了加强动手能力,识图能力及设计能力,进一步理解专业所学的理论知识;同时可以熟悉常用元器件性能,掌握其工作原理,逐渐了解其电路功能;掌握电路设计的基本思想和方法,学会如何科学查找问题、分析问题、解决问题;熟练掌握用软件 Proteus 对所设计的电路进行仿真的过程;学会查阅资料,自主学习,培养认真刻苦的学习态度和缜密严谨的思考方法,以及工艺素质、团队精神、设计创新能力。本设计是一种基于 STC89C52 单片机的智
8、能化光电计数系统的设计,并已成功的用于实际系统中。更需要指出的是,本设计用软件编程,不仅占用硬件资源少,而且成本低,抗干扰性好,可靠性高,使用方便。此种计数器主要用在工厂的生产流水线上作产品统计,还可用于统计商场、电影院、博物馆、展览馆、车站、码头、银行等公共场所的人员数量及人员流通数量,同时丝毫不会侵犯到被测人员的个人隐私。例如,用在停车场计算停车数量,避免了车主因停车位已满发生徒劳而返的麻烦,节省了时间、人力、物力。本电路的指导思想是设计两个光控电路,一个放在入口用来加 1 计数,一个放在出口用来减 1 计数。当触发到入口的光控电路时,计数器就会进行加 1 计数操作,当触发出口的光控电路时
9、,计数器会进行减 1 的计数操作,当入口处的计数器达到所设定的最大值或出口处的计数器达到按键设定的最小值时蜂鸣器就会报警,并且还可以通过按键进行复位。该设计的优点有:电路结构简单、成本低、计数准确。该光电计数器只具有两位数,如果两位数不能满足也可以通过级联扩展为三位、六位,八位,甚至更多。整体结构先进行方案的设计与论证,然后详细的进行系统设计以及硬件与软件的设第 2 页计,最后进行调试,完成整个设计过程。第 3 页第 1 章 方案设计与论证第 1.1 节 主控模块方案一:采用 MSP430 系列单片机,这种单片机是一种 16 位超低功耗的混合信号处理器。其内部集成了很多模拟电路、数字电路和微处
10、理器,提供强大的功能。不过该芯片昂贵不适合一般的设计开发方案二:采用 51 系列的单片机,该单片机是一个高可靠性,超低价,无法解密,高性能的 8 位单片机 9,32 个 IO 口,并且 STC 系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试。综合考虑,选用方案二中的 51 系列单片机作为主控制芯片。第 1.2 节 显示模块方案一:采用点阵式数码管进行显示,点阵式数码管由八行八列的发光二极管组成的,此种数码管比较适用于显示文字,并且此处显示的是数字,采用此种方案显示数字太浪费了,而点阵数码管价格也相对较高,因此不选用该种方法进行显示。方案二:采用 LED 数码管动态扫描, LE
11、D 数码管价格虽然适中,也最合适用于显示数字,并且采用 LED 数码管动态扫描法与单片机进行连接时,占用单片机接口线少。但是由于 LED 数码管动态扫描需要借助 74LS164 移位寄存器进行移位,而该芯片在调试时往往会有很多障碍,所以不采用 LED 数码管作为显示。方案三:采用 LCD 液晶作为显示屏,因为液晶显示屏的显示功能强大,可以显示大量文字,图形等,并且 LCD 显示多样,清晰可见,对于此次设计而言选用一个 LCD1602的液晶屏就可以满足实验需求,价格也还能接受,虽然需要大量的接口线,但是能够给调试带来方便。所以本设计中方案三中的 LCD1602 液显示屏作为显示模块。第 1.3
12、节 检测模块根据题目要求这里选用了 2 个光电开关进行物件的统计,当有物体挡住光电开关的时候,光电开关输出的电平会变高电平,通过判断这个电平可以判断物体是否经过光电开关,其中一个光电开关用来检测物体的增加,而另一个光电开关用来检测物体的减少。第 4 页第 2 章 系统的设计原理第 2.1 节 系统的主要功能本系统设计制作是一个基于单片机的流水线光电计数器。能实现以下几种功能:(1)、 可以统计流水线来往的物件数量并进行相应的加减。(2)、 用户可以通过按键物件统计的上限数量和下限数量,当统计的数量超过上限或下限的时候,单片机会驱动蜂鸣器报警提示。(3)、 系统带有清零功能,设置后清除当前统计的
13、数目。第 2.2 节 系统的组成与结构该设计的系统是以单片机为控制核心,对系统进行初始化,主要完成对键盘的响应、液晶显示、物件统计等功能的控制,起到总控和协调各模块之间工作的作用。图 2-1系统结构图如图 2-1 所示。整个光电计数器系统主要由按键模块、液晶模块、单片机控制模块、光电计数器 1 和光电计数器 2 模块、以及蜂鸣器这几个部分组成。对于一般的光电计数器而言,发射器发出的红外光信号经过反射进入接收管变为电信号,电信号经过放大比较整形变换为触发脉冲 4。此处光电计数器采用的是脉冲红外光交流驱动模块。工作时红外发光管发出红外线透过光耦的槽投射到光敏三极管上,光敏三极管导通,集电极输出低电
14、平;当红外光线被物体遮挡时,光敏三极管截止,集电极输出高电平,每被遮挡一次,光电计数器的工作状态就会改变一次。通过放大器可使计数记下被遮挡的次数,并利用单片机的串行通信接口在显示模块中显示记下的数值,当显示的数值达到按键设置的最大值或小于按键设置的最小值时报警器就会发出警报。并且可以通过按键进行手动清零、清除报警。第 5 页第 3 章 系统的硬件设计第 3.1 节 主控模块主控模块模块在整个系统中起着统筹的作用,需要检测键盘,统计数量等各种参数,同时驱动液晶显示相关参数,在这里我们选用了 51 系列单片机中的 STC89C52 单片机作为系统的主控芯片。51 系列单片机是 Intel 公司早期
15、推出的性能优越的单片机,由于 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 的程序存储器
16、(掩膜 ROM),和 128B 的数据存储器(RAM)组成 18。STC89C52 单片机的基本组成框图见图 3-1:图 3-1 STC89C52单片机组成框图3.1.1. STC89C52 单片机主要特性(1)、 一个 8 位的微处理器(CPU)。(2)、 片内数据存储器 RAM(128B),用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供 1K 的 RAM。(3)、 片内程序存储器 ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带 ROM/EPROM,如 8031,8032,80C31 等。目前单片机的发展趋势
17、是将 RAM 和 ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的第 6 页抗干扰性。SST 公司推出的 89 系列单片机分别集成了 16K、32K、64K Flash 存储器,可供用户根据需要选用。(4)、 四个 8 位并行 IO 接口 P0P3,每个口既可以用作输入,也可以用作输出。(5)、 两个定时器计数器,每个定时器计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的 52 系列单片机都会提供 3 个 16 位定时器/计数器。(6)、 五个中断源的中断控制系统。现在新推出的单片机
18、都不只 5 个中断源,例如SST89E58RD 就有 9 个中断源。(7)、 一个全双工 UART(通用异步接收发送器)的串行 IO 口,用于实现单片机之间或单机与微机之间的串行通信。(8)、 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为 12MHz。SST89V58RD 最高允许振荡频率达 40MHz,因而大大的提高了指令的执行速度。3.1.2. STC89C52 单片机引脚功能说明:图 3-2 STC89C52单片机引脚图(1)、 时钟电路引脚 XTAL1 和 XTAL2:XTAL2(18 脚):接外部晶体和微调电容的一端;片内它是振荡电路反相放大器的输出端,
19、振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。第 7 页要检查振荡电路是否正常工作,可用示波器查看 XTAL2 端是否有脉冲信号输出。XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。(2)、 控制信号引脚 RST,ALE,PSEN 和 EA:RST/VPD(9 脚) :RST 是复位信号输入端,高电平有效。当此输入端保持备用电源的输入端。当主电源 Vcc 发生故障,降低到低电平规定值时,将5V 电源自动两个机器周期(24 个时钟振荡周期)的高电平时,就可以完成复位操作。RST 引脚的
20、第二功能是VPD,即接入 RST 端,为 RAM 提供备用电源,以保证存储在 RAM 中的信息不丢失,从而合复位后能继续正常运行。ALE/PROG(30 脚):地址锁存允许信号端。当 8051 上电正常工作后,ALE 引脚不断向外输出正脉冲信号,此频率为振荡器频率 fOSC 的 1/6。CPU 访问片外存储器时,ALE 输出信号作为锁存低 8 位地址的控制信号。平时不访问片外存储器时,ALE 端也以振荡频率的 1/6 固定输出正脉冲,因而 ALE 信号可以用作对外输出时钟或定时信号。如果想确定 8051/8031 芯片的好坏,可用示波器查看 ALE 端是否有脉冲信号输出。如有脉冲信号输出,则
21、8051/8031 基本上是好的。ALE 端的负载驱动能力为 8 个 LS 型 TTL(低功耗甚高速 TTL)负载。此引脚的第二功能 PROG 在对片内带有 4KB EPROM 的 8751 编程写入(固化程序)时,作为编程脉冲输入端。PSEN(29 脚):程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接 EPROM 的 OE 端(见后面几章任何一个小系统硬件图) 。PSEN 端有效,即允许读出 EPROMROM 中的指令码。PSEN 端同样可驱动 8 个 LS 型 TTL 负载。要检查一个 8051/8031 小系统上电后 CPU 能否正
22、常到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 口。作为漏