人行通道流量监测系统的设计

更新时间:2024-06-07 21:06:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

目 录

0引言 ...................................................................... 1 1 绪论 ...................................................................... 2 1.1 选题的背景和意义 ..................................................... 2 1.2 国内外研究现状及发展趋势 ............................................. 2 1.3 研究内容及需解决的问题 ............................................... 3 2 系统工作原理 ............................................................. 3 2.1 总体设计 ............................................................. 3 2.2 人数统计原理 ......................................................... 3 2.3 元器件的选择 ......................................................... 4 3 系统硬件电路的设计 ....................................................... 6 3.1 传感器的工作原理 ..................................................... 6 3.2 单片机最小系统设计 ................................................... 6 4 系统软件设计 ............................................................ 10 4.1主程序设计 ........................................................... 10 4.2数据采集及处理子程序 ................................................. 10 4.3显示电路子程序 ....................................................... 11

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

5结论及进一步设想 ......................................................... 11 参考文献 ................................................................... 11 课设总结 ................................................................... 13 附录1 程序清单 ............................................................ 14 附录2 电路原理图 .......................................................... 26

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

人行通道流量监测系统的设计

张勃 沈阳航空航天大学北方科技学院

摘 要

工业生产中过程控制是流量测量与仪表应用的一大领域,流量与温度、压力和物位一起统称为过程控制中的四大参数,人们通过这些参数对生产过程进行监视与控制。对流体流量进行正确测量和调节是保证生产过程安全经济运行、提高产品质量、降低物质消耗、提高经济效益、实现科学管理的基础。

流量的检测和控制在化工、能源电力、冶金、石油等领域应用广泛。在天然气工业蓬勃发展的现在,天然气的计量引起了人们的特别关注,因为在天然气的采集、处理、储存、运输和分配过程中,需要数以百万计的流量计,其中有些流量计涉及到的结算金额数字巨大,对测量和控制准确度和可靠性要求特别高。流量计在现代农业、水利建设、生物工程、管道输送、航天航空、军事领域等也都有广泛的应用。 关键词:AT89C52;ADC0809;流量检测;光电传感器

0引言

流量是现代工业测量过程中的一个重要参数,人类对流体的测量具有悠久的历史。流量检测的发展可追溯到古代的水利工程和城市供水系统,古罗马凯撒时代已采用孔板测量居民的饮用水水量;公元前1000年左右古埃及用堰法测量古尼罗河的流量;我国著名的都江堰水利工程应用宝瓶口的水位观察水量大小等等。流量仪表应用范围很广,在工业生产、能源计量、环境保护工程、交通运输、生物技术、科学实验领域都有涉及。 为了适应各种用途,各种类型的流量计相继问世,投入使用的类型有上百种。根据其测量方法和结构原理大致分为差压式流量计、浮子流量计、容积式流量计、电磁流量计、涡街流量计、科里奥利质量流量计、超声流量计、插入式流量计等。

20世纪随着各领域对流量测量需求的牵引,使得流量计得到快速发展,尤其是微电子技术的迅速发展,为流量计的制造技术提供各种新型的元器件,进一步推动了流量计从机械式向智能化、模块化发展。新技术、新器件、新材料和新工艺及新软件的开发应用,使得流量计的测量准确度越来越高,流量的测量范围越来越广。同时流量计对测量介质的要求在降低,适用范围也越来越宽,智能化程度及可靠性得到了很大的提高。 本设计中,将基于单片机的技术,进行一款可对流量进行实时检测,并具有上下限报警功能的涡轮流量计的设计,该产品可实现对管道内天然气的流量的实时检测

第 1 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

1 绪论

1.1 选题的背景和意义

流量就是在单位时间内流体通过一定截面积的量。这个量用流体的体积来表示,称为瞬时体积流量,简称体积流量;用流量的质量来表示称为瞬时质量流量,简称质量流量。这一段时间内流体体积流量或质量流量的累积值称为累积流量。 对在一定通道内流动的流体的流量进行测量统称为流量计量。流量测量的流体是多样化的,如测量对象有气体、液体、混合流体;流体的温度、压力、流量均有较大的差异,要求的测量准确度也各不相同。因此,流量测量的任务就是根据测量目的,被测流体的种类、流动状态、测量场所等测量条件,研究各种相应的测量方法,并保证流量量值的正确传递。

通过对本课题的研究,训练综合运用已学课程的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。对流体流量进行正确测量和调节是保证生产过程安全经济运行、提高产品质量、降低物质消耗、提高经济效益、实现科学管理的基础。流量的检测和控制在化工、能源电力、冶金、石油等领域应用广泛。人们为了控制大气污染,必须对污染大气的烟气以及其他温室气体排放量进行监测;废液和污水的排放,使地表水源和地下水源受到污染,人们必须对废液和污水进行处理,对排放量进行控制。于是数以百万计的烟气排放点和污水排放口都成了流量测量对象。同时在科学试验领域,需要大量的流量控制系统进行仿真与试验。 1.2 国内外研究现状及发展趋势

17世纪托里拆利奠定差压式流量计的理论基础,这是流量测量的里程碑。自那以后,18、19世纪流量测量的许多类型仪表的雏形开始形成,如堰、示踪法、皮托管、文丘里管、容积、涡轮及靶式流量计等。20世纪由于过程工业、能量计量、城市公用事业对流量测量的需求急剧增长,才促使仪表迅速发展,微电子技术和计算机技术的飞跃发展极大地推动仪表更新换代,新型流量计如雨后春笋般涌现出来。至今,据称已有上百种流量计投向市场,现场使用中许多棘手的难题可望获得解决。

流量显示仪表的发展经过了机械运算记录图表式,模拟运算机械计数式,简单逻辑运算数显示和微处理器运算及多功能数字显示四个过程。自从单片机出现后,各种各样的智能流量显示仪不断出现,取代了原有的传统的机械式或者纯模拟、数字电路构成的流量显示仪。智能流里显示仪以单片机为核心可以进行各种流最计算、累加、显示等功能。流量显示仪具有使用方便、工作可靠、可进行补偿计算等优点。从上世纪80年代以来,各种智能流量显示仪就不断出现,功能也不断拓展、完善。智能流量显示仪正朝着低功耗、智能化、网络化、多功能方向发展。具体来说,智能流量显示仪可以实现流量及其它信号的采集、流量计算累加及补偿计算、数据示、数据远程传愉及打印等功能。根据用户的不同

第 2 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

需要,开发人员可以设计出具有不同功能的智能流量显示仪,软件编程非常灵活。 1.3 研究内容及需解决的问题

本文主要研究的是基于单片机的流量检测系统的设计,实现对人行通道的流量的检测,并将流量值实时显示在LED数码管上。

本文详细论述了该设计的具体方案,主要解决系统的总体设计,硬件电路的设计以及系统软件的设计。其中硬件电路设计包括单片机最小系统、流量传感器的设计、放大器的设计、AD转换器接口设计、LED显示接口设计等,软件设计包括主程序、信号采集与AD转换程序、显示程序。

一个产品的具体设计是复杂与艰巨的,设计的好坏直接影响到工业生产的效率和安全。在设计过程中的遇到的每个难点都得一一克服,而本设计的难点在于如何设计简单易行的流量传感器,各芯片的如何应用与合理搭接,而软件的编写如何简洁无误也是一个难点,在实际设计中不断克服改进,力求方案的可行性。

2 系统工作原理

2.1 总体设计

图1 系统硬件结构图

由光电传感器采集流量信息,然后经过AD转换器将连续的模拟信号离散化后传给单片机。单片机在系统软件的控制作用下,对输入的数据进行分析,向外部输出控制信号,实现LED显示。LED数码管显示动态的流量。 2.2 人数统计原理

当进入的人通过第一个光电传感器S1时,光电传感器S1工作,发出电频信号。通过第二个光电传感器S2时,光电传感器S2工作,发出电频信号。当人离开时,则光电传感器S2先工作发出电频信号,S1后工作。单片机将信号以数字形式在LED数码管上显示。所以电频信号由发射S1到S2时是行人进入通道,而由S2到S1时是行人离开通道,并且

第 3 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

单片机将信号以数字形式在LED数码管上显示。 2.3 元器件的选择 2.3.1 单片机

目前在市场常见的有PHILIPS、SIEMENS、INTEL、ATMEL等公司生产的100多种型号单片机。这类单片机具有集成度高,性能价格比优越的特点,在工业测量控制领域内获得极为广泛的应用。

在众多的单片机系列中,STC89C51是一种低功耗、高性能CMOS8位微控制器,具有8K在系列可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,也适用于常规编程。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超高效的解决方案。

STC89C51具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,3个16

图2 单片机STC89C51

第 4 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

位定时器/计数器,一个响亮2级中断结构,全双工串行口,片内晶振及时钟电路。另外 ,STC89C51可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。STC89C51单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。故此选用STC89C51单片机。

2.3.2光电传感器

光电传感器是采用光电元件作为检测元件的传感器。它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。光电传感器一般由光源、光学通路和光电元件三部分组成。 2.3.3 LED数码管

LED是发光二极管的简称,LED有七段和八段之分,也有共阴和共阳两种。 1.LED数码显示管原理

LED数码管结构简单,价格便宜。八段LED显示管有八只发光二极管组成,编号是a、b、c、d、e、f、g和SP,分别和同名管脚相连。七段LED显示管比八段LED少一只发光二极管SP,其他的和八段LED相同。

八段LED数码显示管原理很简单,是通过同名管脚是所加电平高低来控制发光二极管是否点亮而显示不同字形的。例如:若在共阴LED管的SP、g、f、e、d、c、b、a管脚上分别加上7FH控制电平(即:SP上为0伏,不亮;其余为TTL高电平,全亮),则LED显示管显示字形为“8”。7FH是按SP、g、f、e、d、c、b、a顺序排列后的十六进制编码(0为TTL低电平,1为TTL高电平),常称为字形码。因此,LED上所显示字形不同,相应字形码也不一样。八段共阴能显示的字形及相应字形码如表4所列。该表常放在内存,SGTB为表的起始地址,各地址骗移量为相应字形码对表始址的项数。由于“B”和“8”、“D”和“0”字形相同,故“B”和“D”均以小写字母“b”和“d”显示。

LED数码显示管分为共阴和共阳两种。为共阴八段LED管时,所有发光二极管阴极共连后接到引脚G,G脚为控制端,用于控制LED是否点亮。若G脚接地,则 LED被点亮;若G脚TTL高电平,则它被熄灭。

为共阳八段LED数码显示管时,所有发光二极管阳极共连后接到G脚。正常显示时G脚接+5V,各发光二极管是否点亮取决于a—SP各引脚上是否是低电平0伏。因此,共阴和共阳所需字形码正好相反。 2.MCS-51对LED的显示接口电路

第 5 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

MCS-51对LED管的显示可以分为静态和动态两种。静态显示的特点是各LED管能稳定地同时显示各自字形;动态显示是指各LED轮流一遍一遍显示各自字符,人们因视觉惰性而看到的是各LED似乎在同时显示不同字形。

3 系统硬件电路的设计

3.1 传感器的工作原理

光电传感器是通过把光强度的变化转换成电信号的变化来实现控制的[1] 。 光电传感器在一般情况下,有三部分构成,它们分为:发送器、接收器和检测电路。 发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管(LED)、激光二极管及红外发射二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管、光电三极管、光电池组成。在接收器的前面,装有光学元件如透镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。

此外,光电开关的结构元件中还有发射板和光导纤维。

三角反射板是结构牢固的发射装置。它由很小的三角锥体反射材料组成,能够使光束准确地从反射板中返回,具有实用意义。它可以在与光轴0到25的范围改变发射角,使光束几乎是从一根发射线,经过反射后,还是从这根反射线返回。 3.2 单片机最小系统设计

图3 单片机最小系统

·P0口: P0 口是一组8 位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访

第 6 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻

[5]

·P1 口: P1 是一个带内部上拉电阻的8 位双向I /O 口,P1 的输出缓冲级可驱动 4 个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(TTL)。Flash 编程和程序校验期间,P1 接收低8 位地址。

·P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O口,P2 的输出缓冲级可驱动4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2口送出高8 位地址数据。在访问8位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口线上的内容(也即特殊功能寄存器区 R2 寄存器的内容),在整个访问期间不改变。Flash 编程或校验时,P2 亦接收高位地址和其它控制信号。

·P3 口: P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3口输出缓冲级可驱动4 个TTL 逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表1所示:

表1 P3口第二功能

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD TXD INT0 INT1 T0 T1 WR RD 串行输入口 串行输出口 外部中断0 外部中断1 计数器0外部输入 计数器1外部输入 外部数据存储器写选通 外部数据存储器读选通 第 7 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

P3口同时为闪速编程和编程校验接收一些控制信号

·RST复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。

·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的l/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash 存储器编程期间,该引脚还用于输入编程脉冲 (PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的DO 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC 指令ALE 才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 无 。

·PSEN:程序储存允许(PSEN )输出是外部程序存储器的读选通信号,当AT89C51 由外部程序存储器取指令(或数据)时,每个机器周期有两次PSEN ,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有的PSEN信号不出现。

·EA /VPP 外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA 端状态。 如EA 端为高电平 (接VCC 端),CPU 则执行内部程序存储器中的指令。

Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp 。

·XTAL1 振荡器反相放大器的及内部时钟发生器的输入端。 ·XTAL2 振荡器反相放大器的输出端。 ·Vcc 电源电压 ·GND 地

2、时钟电路:单片机工作的时间基准,决定单片机工作速度。时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。AT89S51单片机时钟频率范围:0 — 33MHz。

第 8 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

图4 时钟电路

3、复位电路:确定单片机工作的起始状态,完成单片机的启动过程。

图5 复位电路

单片机接通电源时产生复位信号,完成单片机启动,确定单片机起始工作状态。手动按键产生复位信号,完成单片机启动,确定单片机的初始状态。

通常在单片机工作出现混乱或“死机”时,使用手动复位可实现单片机“重启”。

第 9 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

4 系统软件设计

4.1主程序设计

4.2数据采集及处理子程序

开始 初始化赋值 数据采集与处理 显示电路 图6 主程序设计图 7 数据采集及处理子程序图

第 10 页

图沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

4.3显示电路子程序

开始 当有人进入时 检测进出的 人数

返回 图8 显示电路子程序图

进入人数计数 离开人数计数 当有人离开时 离开人数检测传感器工作 进入人数检测传感器工作 5结论及进一步设想

本设计的一个缺陷在于没有键盘来手动设置通行人数的上下限,而是将通行人数的上下限固化在程序中,这样系统的灵活性就大大降低,另外就软件设计而言也存在着一些不足之处,我相信这些不足之处在以后的工作和学习中会得到改进。

课程设计作为大学阶段的重要的一项任务,是对自己大学四年来学习水平的综合检验。它能使我对所学的知识有一个系统的把握,并在此基础上做到融会贯通。同时,对自己自学能力的培养等都大有裨益。

参考文献

[1]谢维成、杨加国.单片机原理与应用及C51程序设计[M].北京:清华大学出版社,2006.

[2]童诗白、华成英.模拟电子技术基础[M].北京:高等教育出版社,2006. [3]阎石.数字电子技术基础[M].北京:高等教育出版社,2006.

[4]彭为.单片机典型系统设计实例精讲[M].北京:电子工业出版社,2006..

第 11 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

[5]梁国伟、蔡武昌.流量测量技术及仪表[M].北京:机械工业出版社,2002. [6]王玉巧、蔡晓艳.基于单片机的流量控制[J].科技信息,2010,9X.

[7]徐晓光、潘伟;、徐康.基于单片机的涡轮流量检测仪设计[J].工业控制计算机,2008,08.

[8]孙昌权.基于AT89C52单片机的智能流量积算仪设计[J].广西轻工业,2010,12. [9]魏颖.基于单片机的流量检测表设计[J].太原科技,2007,10.

[10]于文辉.基于单片机的智能流量控制系统[J].微计算机信息杂志,2009,26 . [11]苏贝、周常柱、胡松.单片机在流量测量中的应用[J].微计算机信息杂志,2005,5. [12]Keith Lambert.Flow Measurement and Instrumentation:A time of change for the journal[J].Flow Measurement and Instrumentation2010,21(2):79-80.

第 12 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

课设总结

为期三周的课程设计已接近尾声,我也完成了自己的课程设计任务《基于单片机的人行通道流量检测系统的设计》 。通过亲手做课程设计,我发现了自己知识的匮乏和能力的欠缺,我觉得自己对专业知识的认识、理解是比较肤浅的。

实际的应用加深了我对大学所学的软、硬件知识的理解。单片机的选用与学习增强了我们的实际分析解决问题的能力。这次设计让我初次体验了产品设计开发的过程,学习了开发应用的主要方法,也让我意识到理论知识与实际应用之间的距离。在这三个多礼拜里,无论是在专业知识,还是在专业技能方面自己都得到了很好的锻炼,并有相应的提高,作为大学四年学习的总结,使我认识到学习过程中的许多缺陷与不足,并对所学的专业知识进行了重新温习与整理,使许多独立的专业课程在实践中得到了融会贯通。这将对我今后的学习和工作起到了很大的帮助作用,让我认识到了必须踏踏实实的学习,决不能眼高手低,要注重理论与实践的结合。

通过这一阶段的努力,我的课设论文《人行通道的流量监测系统设计》终于完成了。在大学阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。

在本论文的写作过程中,我的导师倾注了大量的心血,从选题到开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我表示衷心感谢;我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友;同时感谢校图书馆为我们提供丰富的学习资料。

写作课设论文是一次再系统学习的过程,课设论文的完成,同样也意味着新的学习生活的开始。这次的课程设计在师长、亲友的大力支持下,做得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。

[2015年1月 16日完成]

第 13 页

沈阳航空航天大学北方科技学院课程设计论文 附录1 程序清单

#define true 1 #define false 0 #define on 0 #define off 1

sbit In=P3^0; //进入方向感应 sbit Out=P3^1;

//走出方向感应

sbit InLed=P3^2; //进入指示灯 sbit OutLed=P3^3;

//走出指示灯

sbit DU=P2^6;

//8段码段选择 sbit WE=P2^7;

//8段码位选择

unsigned char code LEDTable[]=

{ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, //8段码显示0-9

0x0f,0x54,0x5c,0X3E,0X00

//8段码显示特殊字符

// I N O U

};

人行通道流量监测系统的设计

第 14 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

void init_time(void);

//定时器1初始化

void refreshled(unsigned char seg0, //8段码显示内容更新

unsigned char seg1, unsigned char seg2, unsigned char seg3, unsigned char seg4, unsigned char seg5, unsigned char seg6, unsigned char seg7

);

unsigned char ledcount;

unsigned char idata leddata[8];

unsigned int idata countt1;

unsigned char NumIn,NumOut;

//数码管轮流显示控制

//6位数码管各自的显示内容

//定时1计数

//NumIn表示进入人数

//NumOut表示走出人数第 15 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

bit InRealse,OutRealse;

void main(void) {

NumIn=0;

//进入人数初始化为0 //走出人数初始化为0

//显示 In00 Ou00

//定时器初始化

//主程序

init_time();

NumOut=0;

refreshled(10,11,0,0,12,13,0,0); while(true) {

InLed=In;

//进入方

向指示灯亮灭控制

OutLed=Out;

//走出方

向指示灯亮灭控制

if((In==0)&&(InRealse==1))

//判断进入方

向感应 增

InRealse=0;

//标志位

{

NumIn++;

//个数递

清零

refreshled(10,11,NumIn/10,NumIn,12,13,NumOut/10,NumOut); //更新

显示进入人数

} if(In==1) {

InRealse=1;

第 16 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

}

if((Out==0)&&(OutRealse==1))

//判断走出方

向感应 增

OutRealse=0;

//标志位清零

{

NumOut++;

//个数递

refreshled(10,11,NumIn/10,NumIn,12,13,NumOut/10,NumOut); //更新显

示走出人数 }

}

}

if(Out==1) { }

OutRealse=1;

void init_time(void) {

第 17 页

TMOD=0x11; //定时器0,1工作方式1

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

ET1=true; TH1=0xfb; TL1=0x80; TR1=true;

//定时器1触发位置位,开始定时

//定时器1开中断 //定时器th1,tl1初值输入

EA=1;

_nop_(); return; }

void refreshled(unsigned char seg0,

unsigned char seg1, unsigned char seg2, unsigned char seg3, unsigned char seg4, unsigned char seg5, unsigned char seg6,

unsigned char seg7

)

{

leddata[0]=LEDTable[seg0];

//开总中断

//查表更新数据

//每位需显示的数字换算段码

第 18 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

leddata[1]=LEDTable[seg1]; leddata[2]=LEDTable[seg2]; leddata[3]=LEDTable[seg3]; leddata[4]=LEDTable[seg4]; leddata[5]=LEDTable[seg5]; leddata[6]=LEDTable[seg6]; leddata[7]=LEDTable[seg7];

_nop_(); return;

}

void time1isr(void) interrupt 3 using 2 //1.25ms //定时1.25ms,用于数码管显示 { EA=false;

//关总中断

TH1=0xfb;

//11.0592MHz Mode1 1.25mS

初始化 TL1=0x80; EA=true; //开总中断

countt1++;

//计数加1

if(countt1%2==1) //判断时刻 { ledcount++;

//数码管位加1

if(ledcount>=8)

//数码管总共8位

//

第 19 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

{ }

ledcount=0;

switch(ledcount) { //轮流显示

//第1位数码管

//位控制为最低位为0,共阴极

case 0: P0=0xfe;

_nop_(); WE=off; _nop_(); WE=on;

P0=leddata[0]; _nop_(); _nop_(); DU=off; _nop_(); _nop_(); DU=on;

break;

case 1:

P0=0xfd; _nop_(); WE=off;

_nop_(); WE=on;

P0=leddata[1];

_nop_();

//74hc573有效输出

// 74hc573锁存

//第一位数据输出 ,段码输出

//74hc573有效输出

// 74hc573锁存

//第2位数码管

//位控制为第2位为0,共阴极 //74hc573有效输出

//

74hc573锁存

//第二位数据输出 ,段码输出 第 20 页

沈阳航空航天大学北方科技学院课程设计论文 _nop_(); DU=off;

//74hc573有效输出

_nop_(); _nop_(); DU=on;

//

74hc573锁存

break;

case 2:

//第3位数码管

P0=0xfb;

//位控制为第3位为0,共阴极 _nop_(); WE=off; //74hc573有效输出

_nop_(); WE=on;

// 74hc573锁存

P0=leddata[2]; //第三位数据输出 ,段码输出 _nop_(); _nop_(); DU=off;

//74hc573有效输出

_nop_(); _nop_(); DU=on;

//

74hc573锁存

break;

case 3:

//第4位数码管

P0=0xf7;

//位控制为第4位为0,共阴极 _nop_(); WE=off; //74hc573有效输出

_nop_();

人行通道流量监测系统的设计

第 21 页

沈阳航空航天大学北方科技学院课程设计论文

WE=on;

//

74hc573锁存

P0=leddata[3]; //第4位数据输出 ,段码输出 _nop_(); _nop_(); DU=off;

//74hc573有效输出

_nop_(); _nop_(); DU=on;

//

74hc573锁存

break;

case 4:

//第5位数码管

P0=0xef;

//位控制为第5位为0,共阴极 _nop_(); WE=off; //74hc573有效输出

_nop_(); WE=on;

// 74hc573锁存

P0=leddata[4]; //第5位数据输出 ,段码输出 _nop_(); _nop_(); DU=off;

//74hc573有效输出

_nop_(); _nop_(); DU=on;

//

74hc573锁存

break;

case 5:

//第6位数码管

P0=0xdf;

//位控制为第6位为0,共阴极

人行通道流量监测系统的设计

第 22 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

_nop_(); WE=off; _nop_(); WE=on;

//

74hc573锁存

//74hc573有效输出

P0=leddata[5]; //第6位数据输出 ,段码输出

_nop_(); _nop_(); DU=off; _nop_(); _nop_(); DU=on;

break;

case 6:

P0=0xBf; _nop_(); WE=off; _nop_(); WE=on;

P0=leddata[6]; _nop_(); _nop_(); DU=off; _nop_(); _nop_();

DU=on;

//74hc573有效输出

//

74hc573锁存

//第7位数码管

//位控制为第7位为0,共阴极 //74hc573有效输出

// 74hc573锁存

//第7位数据输出 ,段码输出

//74hc573有效输出

//

74hc573锁存

第 23 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

break;

//第8位数码管

case 7: P0=0x7f; _nop_(); WE=off; //位控制为第8位为0,共阴极

//74hc573有效输出

_nop_(); WE=on;

P0=leddata[7]; _nop_(); _nop_(); DU=off; _nop_(); _nop_(); DU=on;

break;

default: _nop_();

break;

}

}else { P0=0Xff;

_nop_(); WE=off;

_nop_();

// 74hc573锁存

//第8位数据输出 ,段码输出

//74hc573有效输出

//

74hc573锁存

//关闭数码管显示

//74hc573有效输出

第 24 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

WE=on; // 74hc573锁存 P0=0X00;

_nop_(); DU=off; _nop_(); _nop_(); _nop_(); DU=on;

}

_nop_(); return;

}

//段码不显示

//74hc573有效输出

// 74hc573锁存

第 25 页

沈阳航空航天大学北方科技学院课程设计论文 人行通道流量监测系统的设计

附录2 电路原理图

第 26 页

本文来源:https://www.bwwdw.com/article/juv6.html

Top