基于单片机的人数统计系统毕业论文.doc_第1页
基于单片机的人数统计系统毕业论文.doc_第2页
基于单片机的人数统计系统毕业论文.doc_第3页
基于单片机的人数统计系统毕业论文.doc_第4页
基于单片机的人数统计系统毕业论文.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

宜宾学院毕业设计(论文)本科毕业论文(设计)题 目:基于单片机的人数统计系统摘要本文设计了一个基于单片机的人数统计系统,他可以通过光电开关统计教室的人数,并把实时的人数在lcd1602液晶屏上显示,另该系统还配备了一个时间显示的功能,可显示当前的年、月、日、小时、分种、秒等时间信息,时钟芯片采用的是ds1302.ds1302能存储时间信息,并且时间可以掉电保存。关键词 单片机; lcd1602;人数统计;ds1302abstractthis paper designed a system based on single-chip microcomputer, the number of statistics, he can through the photoelectric switch statistic the number of the classroom, and the number of real-time in the lcd1602 display on the lcd panel, the system also equipped with another time display function, can display the current year, month, day,hours, minutes, seconds time information, such as clock chip uses is ds1302. ds1302time information can be stored, and time can be saved when power supply drop.key words single chip microcomputer lcd1602 the number of statistics ds1302目 录 摘要1abstract2第1章 绪论51.1 目的和意义51.2研究概况和发展趋势51.3本系统主要功能5第2章 总体方案论证与设计72.1主控模块的选型和论证72.2显示模块的选型和论证72.3时钟芯片的选型和论证82.4人数统计模块的选型和论证82.5系统整体设计概述9第3章 系统硬件电路设计103.1主控模块103.1.1 stc89c52单片机主要特性103.1.2 stc89c52单片机的中断系统113.1.3单片机最小系统设计123.2 lcd液晶显示器简介123.2.1液晶原理介绍123.2.2液晶模块简介133.2.3液晶显示部分与stc89c52的接口133.3键盘模块设计133.4时钟模块的设计143.4.1 ds1302概述143.4.2 ds1302内部rtc 和ram 地址分配143.4.3 ds1302时钟和日历153.4.4 ds1302时钟电路设计163.5 人数检测模块设计163.5.1光电开关工作原理163.5.2光电开关电路设计163.6硬件总体连接图17第4章 系统软件设计184.1系统软件总体设计184.2程序设计原理19第5章 系统调试205.1硬件调试205.2软件调试205.3系统检测21结 论22参考文献23致 谢24附录25附录一:系统整体原理图25附录二:系统仿真图25附录三:元件清单26附录四:系统源程序27第1章 绪论1.1 目的和意义在生活中,学校、火车站、银行、商场、公交车等人员流动比较大的地方,如果可以将人数实时地统计出来,这样可以给我们的生活与学习带来很多的便捷。例如,在学校,很大的教室里,考勤对于老师来说是一件很麻烦的事情,但如果设计一款人数统计器,实时显示教室人数的话,考勤也变得方便;在火车站等人员较多的地方,如果可以实时统计室内人数,那么可以减少不必要的排队及拥挤。在公交车上,如果可以设计一个实时人数统计器,可以将公交车的人数固定,使我们的坐车环境得到优化。所以设计一款实时统计人数的器件对于我们的生活是很有意义的,可以提高我们的生活质量。1.2研究概况和发展趋势计数器从发明以来,在不断地发展,如今,市场上已经出现了各种各样的计数器,其功能也从计数扩展到更多的功能,之前的计数器大部分用在工业方面,如:生产线上计数器的使用,数控零件计数应用。人数统计器及我们看到的道路上的大小车辆计数器都是在计数器的基础上扩展而来的,之前的人数统计使用的是接触式的方式,即人体必须接触器件才可以计数,例如:脚踏板人数统计器,若有两个人同时通过的话就不能精确计数,之后出现了非接触式的,人体通过就可以计数,但也不是很精确,必须配备一定的设备才可以提高精确度。发展到现在,人数统计的发展趋势是红外线统计,它的距离可以更远,即:通过红外线扫描,来统计人数,这样的方法就比较精确,并且还可以增加人脸识别功能,方便警察办案。1.3本系统主要功能本系统设计可以实现以下几种功能:(1)可以统计场所来往的人数并进行相应的加减,计算出室内实时人数,并显示在液晶屏幕上。(2)单片机可以采集ds1302的数据,通过数据传输将当时的年、月、日、时、分、秒显示在液晶屏幕上,用户可以使用按键设置时间,时间可以自动更新,系统不供电时,时钟芯片依然可以由后备纽扣供电,使其掉电时保存时间,下次上电时,时间依然准确。(3)系统带有液晶显示可以实时显示时间和当前统计的人数。(4)系统带有清零按键,按下后清除当前统计的人数,但不会将时间清除。第2章 总体方案论证与设计根据本设计所要实现的功能,可以将系统划分为以下几个模块:主控模块、显示模块、时钟模块、人数统计模块,下面对以上模块的选型和论证进行讨论分析。2.1主控模块的选型和论证方案一:如果本设计使用单片机msp430,它是16位超低功耗的混合信号处理器。功能比较强大,但其缺点是:芯片价格比较昂贵,不太适合本设计这样比较一般的设计。方案二若使用51系列的单片机,该8位、32个io口单片机具有高可靠性,超低价,无法解密,高性能等特点,而且stc系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试,比较适合本设计这样一般的设计。由上所述, 51系列单片机比较适合本设计。2.2显示模块的选型和论证方案一:采用点阵式数码管显示,它是八行八列的二极管排列组成的,显示文字要适合一点,若显示数字有点浪费其资源,另一方面价格也较高,所以本系统不使用点阵式数码管作为显示模块。方案二:采用led数码管显示,有以下优点:价格一般,适用于显示数字,它的显示是采用动态扫描法,连接单片机时,占用单片机接口线也少。其缺点是:数码管动态扫描时要使用74ls164移位寄存器进行移位,移位寄存器的使用会给电路的调试带来很多的障碍。方案三:采用lcd1602液晶显示屏,其显示屏可以显示两行,对于文字,图像,数字都可以显示,对于本设计也刚好够用,价格也适中。与单片机连接时接口线较多,有利于系统调试。由上分析, lcd1602液晶显示屏比较适合本系统设计2.3时钟芯片的选型和论证方案一:使用单片机内的定时计数器,通过编程来实现时间计数。这样虽然可以不使用时钟芯片,节约了成本,但是,对于闰年及每月天数的不同来说就不太准确了,对于实时时间的实现误差较大,不可以较精确的计数。方案二:这里用ds1302时钟芯片实现时钟,ds1302的性能比较高,功耗比较低,并且内部有31*8的ram的实时时钟电路,ds1302可以计时年、月、日、时、分、秒等,可以将每个月的31、29、28或30天进行加与减的操作,使时间显示更加准确,也可对闰年进行补偿,其工作在2.5v5.5v。该芯片有两个电源引脚,一个是主电源,另一个是后备电源,在关闭电源的时候可以提供充电,使时钟继续运行,当下次使用时时钟依然是准确时间。芯片是用32.768khz晶振作为标准时钟来计时。由上面的分析,ds1302的优势比较适合本系统。2.4人数统计模块的选型和论证方案一: 在场所的前门按一个光电开关,后门按一个,前门进后门出,分别统计显示人数,进行加减。这种方案不好控制人员是从前门进还是从后门进。对于人数的统计的实现比较困难。方案二:根据本系统功能的要求,这里选用了两个光电开关来实现人数的统计,将两个光电开关置于场所的门口,一前一后放置,当有人经过门口,会挡住光电开关,光电开关输出的电平会由高电平变为低电平,可以由电平变化的先后顺序知道人是进入场所还是出去,从而对所统计的数据进行加减,统计这时室内的总人数。 由上面的分析,方案二比较适合本系统。2.5系统整体设计概述本设计的核心控制芯片为89c52单片机,其功能是:对键盘,显示模块,时钟模块,光电开关统计人数模块进行控制与运行。不仅起到了主控作用,而且在各模块工作时起到了协调作用。 图21 整体设计图系统能完成以下功能。系统设有清零按键,用户可以通过按键清除当前统计的人数,重新开始计数,但不会清除时间的显示,通过区分光电计数器1和光电计数器2的先后触发顺序就可以判断是进去还是出来从而对检测到的人数进行增减,从而统计出实时人数,将人数显示出来,本设计还具有显示实时时间的功能,并且可以使用按键来设置年、月、日、时、分、秒。第3章 系统硬件电路设计3.1主控模块 主控模块在整个设计中起着重要的作用,是核心部分,它控制着各模块的运行,并且将各个模块之间的工作结合起来完成设计所需实现的功能。本设计主控模块采用89c52芯片。3.1.1 stc89c52单片机主要特性 1. 一个8 位的微处理器(cpu),起到重要作用2.数据存储器ram (128b),主要存放数据,单片机最多提供1kram3.程序存储器rom(4kb),存放程序和原始数据及表格。有一些单片机内部不带rom/eprom,如8031,8032,80c31 等。4. 8 位并行io 接口p0p3,与外部器件进行通信5. 两个定时器计数器,有定时或计数功能6. 五个中断源,使用程序进行中断7. 实现串行通信的全双工串行io 口一个。8. 振荡器和时钟产生电路,振荡频率最高为12mhz。 图3-1 stc89c52单片机管脚图部分引脚说明:1.时钟电路引脚xtal1(19 脚) 和xtal2(18 脚):若设计用的是外部时钟,xtal1必须接地。有脉冲信号输出代表正常工作。2.控制信号引脚rst,ale,psen 和ea:rst/vpd(9 脚):高电平信号输入可以复位。ale/prog(30 脚):地址锁存允许信号端。psen(29 脚):可以作为读取程序存储器的选通端。此引脚接eprom 的oe 端。ea/vpp(31 脚):当此引脚为低电平时,cpu直接访问外部程序存储器,高电平时,内部不够用,才访问外部程序存储器3.输入/输出端口p0/p1/p2/p3:p0口(p0.0p0.7,3932 脚p1口(p1.0p1.7,18 脚)p2口(p2.0p2.7,2128 脚)p3口(p3.0p3.7,1017 脚)p3.0:(rxd)串行数据接收。p3口第二功能:p3.1:(rxd)串行数据发送。p3.2:(int0#)外部中断0输入。p3.3:(int1#)外部中断1输入。p3.4与 p3.5:代表定时/计数器t0与t1的外部计数输入。p3.6:外部数据存储写选通。p3.7:外部数据存储读选通。3.1.2 stc89c52单片机的中断系统 stc89c52中断系统有5个中断源,2个优先级, cpu响应中断请求由ie决定;各中断源的优先级由ip决定;具有相同优先级的各中断,响应前后次序由内部的查询逻辑确定。 3.1.3单片机最小系统设计 图3-2 最小系统电路图图3-2为单片机最小系统电路图,除了单片机,还有时钟、复位电路还有电源组成,在时钟电路里用12mhz的晶振提供时间基准,复位电路中的按键按下后,电路回到刚上电的状态。图中10k排阻为p0口的上拉电阻,由于p0口漏极开路的结构跟其他io结构不一样,所以要加上拉电阻才能正常使用。3.2 lcd液晶显示器简介由于本设计中要求显示界面显示一些参数,因此这里选用了lcd1602作为界面显示,可以把一些相关的参数进行显示。 3.2.1液晶原理介绍液晶显示器主要技术是液晶控制透光度技术,运用这个技术来实现色彩。这个技术可以解决刷新率的问题。其通过单片机的控制来显示一些数据即数字,字符等。本系统显示部分用的是lcd液晶模块。 点阵图形式液晶原理:已知显示的字符,将字符对应代码送入,显示器上对应位置点亮或不点亮来将字符清晰地显示出来。3.2.2液晶模块简介lcd1602液晶模块与一般显示器比较,它可以将字符移动,并使其闪烁,与单片机并行通讯。3.2.3液晶显示部分与stc89c52的接口 如图3-3所示。用stc89c52的p0口作为数据线,用p1.2、p1.1、p1.0分别作为lcd的en、r/w、rs。这个电路主要设计为:显示模块初始化:首先要做的是清除屏幕内容,将接口数据设为8位,显示的字符行数为2行,字符的型号为57点阵,再设为整体显示,并将光标和字体闪烁取消,再统一显示。其次将日期显示分为两行,将统计出来的人数置于右端,进行显示。图3-3 lcd1602与stc89c52的接口电路3.3键盘模块设计 本系统按键使用的是独立的按键,按键的一端接io口,另一端接地,io口都有上拉电阻,当按键没有按下时,io接高电平,当按键按下的时候,io接地,单片机检测到这个io口电平为低电平,通过检测与按键连接的 io口状态就可以判断按下的是那个按键。4个按键分别代表以下功能,第一为功能按键,可以切换不同参数设置界面,进行设置,第二个为增加按键,增加年,月,日等,第三个为减少按键,对年,月日进行减,第四个为清零按键,清除当前统计的人数,重新来计数,但不会清除显示的时间。3.4时钟模块的设计实时显示时间这里用串行时钟芯片ds1302。其优点是与单片机的连线大为减少,很大程度的节省了单片机的系统资源,单片机通过读取ds1302里面寄存器里面的的数据就能得到实时时间。3.4.1 ds1302概述 ds1302的性能比较高,功耗比较低,并且内部有31*8的ram的实时时钟电路,ds1302可以计时年、月、日、时、分、秒等时、分、秒比较准确的计时,可以将每个月的31、29、28或30天进行加与减的操作,也可对闰年进行补偿,其工作在2.5v5.5v。该芯片有两个电源引脚,一个是主电源,另一个是后备电源。由vcc1或vcc2中较大者供电。当vcc2大于vcc1+0.2v时,vcc2给ds1302供电;当vcc2小于vcc1时,ds1302由vcc1供电。 ds1302在传送数据时,必须把rst脚置为高电平,才可以将 命令字及数据送入寄存器里面,如果置rst为低电平,数据传送会终止,并且i/o引脚变为高阻态,使得无法读取,无法显示时间。3.4.2 ds1302内部rtc 和ram 地址分配ds1302地址分配如图3-4所示。rtc 寄存器地址位于00h 到07h 处。ram 寄存器地址位于08h3fh。 图3-4 ds1302地址分配图ds1302的控制字如图3-5所示。位7必须是逻辑1;如果它为逻辑0,则不能把数据写入到ds1302中。位6为0,表示存取日历时钟数据;为1表示存取ram数据。位51(a4a0)指示操作单元的地址。位0为0,进行写操作;为1表示进行读操作。 图3-5控制字节的含义把时钟/日历或ram寄存器规定为多字节方式,可以提高地址的寻址能力。数据读写程序如图3-6所示。 图3-6 数据读写程序3.4.3 ds1302时钟和日历读取正确的寄存器字节就可以得到正确的时钟和日历信息,如图3-6,其中有秒寄存器,分寄存器,小时寄存器,年寄存器,可以通过读取数据和写数据来得到准确的时间,还可以设置时间模式是12小时还是24小时。除此之外,这个芯片还有充电寄存器,可以在断电时起作用。 图3-6 ds1302寄存器3.4.4 ds1302时钟电路设计ds1302采用串行数据传输,和单片机连接时用三条线,可以将时间信息写入其寄存器内,也可以从寄存器内读取时间,只要将ce,sclk,i/o串行数据引脚连接到单片机上即可。vcc2是备用电源,掉电时可以用,以便保存数据,芯片采用32.768hz晶振。单片机通过读取寄存器内的数据得到时间信息,并将其显示出来。3.5 人数检测模块设计人数检测模块是整个系统所要实现的主要功能,这里用光电开关来实现功能。3.5.1光电开关工作原理光电开关是将光的变化转化为电平的变化来实现电路功能的。它包括:发送端、接收端和检测电路。单片机通过检测电路的电平高低来统计人数。3.5.2光电开关电路设计本设计用两个槽型光电开关进行实时人数的统计,但有人从光电开关中间通过时,将光线挡住,检测电路会检测到低电平,当不挡住的时候光电开关输出高电平,为了防止人经过的时候跳变沿产生误触发,增加了一个一个迟滞比较器,可以尽量避免误触发,使读取的数据精确,单片机通过读取输出的电平的高与低,可以判断光电开光中间当前是否有人经过。当人先通过光电开关1再通过光电开关2,那么人数增加1,反之则减少1,这样就可以实时地统计出场所内的人数。3.6硬件总体连接图 如图3-6,将各个模块连接起来,组成了整体电路图,其中有单片机的外围复位电路,时钟电路,及电源电路,按键电路,显示电路,及人数统计电路,人数统计电路里面设有迟滞比较器。 图3-6 硬件总体图第4章 系统软件设计4.1系统软件总体设计 图4-1主程序流程图程序流程图如图4-1所示,单片机通电后先复位,清除一些保留的数据,然后把当前的一些时间信息以及人数显示,每个循环单片机都会判断用户是否按下功能按键和清零按键,按下功能按键后进入时间参数设置,设置好后,时钟芯片开始运行,自动计时,按下清零按键则对当前统计的人数清零,单片机通过人经过光电开关的先后顺序进行人数的加减,先通过1再通过2则加1,反之则减1。单片机通过读取时钟芯片内的数据,以及人数统计模块的数据,将时间与统计的人数显示到显示器上。4.2程序设计原理本设计采用c语言进行的程序设计,与汇编语言比较,更容易理解,这是要相对简单的。先确定硬件电路,将各模块的作用与关系分析出来,然后进行软件设计。软件任务分析时,首先要把这个设计需要实现的功能一一列出,并将每一功能模块进行接口定义,将数据结构与数据类型都规划好,之后用软件进行功能模块的实现。 进行软件设计时,要确定主程序与子程序,子程序有显示子程序,时钟子程序,按键程序等。并合理安排中断程序,并将其先后顺序规划好,以更好的设计程序。第5章 系统调试5.1硬件调试人数统计系统的电路较大,涉及的模块比较多,其中包含人数统计模块,时钟模块,单片机最小系统模块,液晶模块,按键模块,因此在焊接方面更是不可轻视,如果电路出现短路,以及错接等情况,那损失会很大。整个电路中,如果有一个地方出现错误的话,都会影响整个电路的功能及调试,而且电路复杂,对于比较靠近的两个引脚,应十分注意,不要将其焊接在一起,造成短路现象。在制作硬件电路之前,我们先根据实际需要的功能划分硬件模块,并且在protel里面画出其硬件原理图和pcb图,检查无误后开始在万用板上焊接。在硬件调试中肯定会有一些问题。不过这些问题的出现可以更好地了解作品,完善作品,问题如下:问题1:开始的时候光电开关在人通过的时候电平不跳变。解决:后经过查询资料发现光电开关发射端发光管流过的电流太小,导致接收端没有很好的导通。问题2:人数统计不准确,与正确的相比,老是少一个或是多一个 解决:经过检查,是迟滞比较器电路没有接通,会出现误触发,将其接通即可。5.2软件调试人数统计系统功能的实现需要较复杂的程序才可以实现,难免在编写程序和调试时出现了一些比较难解决的问题。首先为了更好的测试效果,我最开始是直接在protues软件下进行仿真,在确定无误后,再把程序烧录到实物中运行。然后再将错误的地方进行修改,再调试,经过多次这样的步骤,最后解决了问题,在这个过程中遇到以下问题:问题1烧入程序后,lcd显示一行,只有年月日,无时分秒解决:首先检查程序,看显示子程序有没有问题,之后检测出来,设置显示为两行,解决问题。问题2当使用按键设置时间的时候,设置的时间与显示的时间不是对应的解决:检查按键与单片机的接口电路连接,重新设置5.3系统检测 经过一系列的实验,实际的操作,可以得到比较准确的数据,但是也存在一定的误差。缺点是需要增加一个只可以一个人通过的设备才可以对人数进行准确的统计,而且对于门两边距离太大的场所,它的精确度是无法确定。结 论经过这次设计,我将课本上的知识整理总结,再通过自己的理解,运用到了实际的电子产品上,我做的人数统计系统,可以实现所要求的功能,当然也有一些不足之处,相对来说稳定性还是不够的,也存在一定的误差,还有就是界面还不够完善。通过自己设计硬件电路,使我对模拟电子技术有了更进一步的认识,也让我掌握了一些简单的电路设计,比如:单片机最小系统,按键电路以及时钟电路等。设计软件方面,我也认识到了认真仔细的重要性,其次,在写程序之前,必须规划好,一步一步地进行。通过这些,我进一步地了解了单片机的强大功能,在各个领域内电子产品上的广泛应用,以及c语言在电子行业的广泛应用。在这个过程中,我所学的知识运用到了电子产品上,使我真正地做到了学以致用,得到了锻炼。参考文献1 彭伟.单片机c语言程序设计实训100例.电子工业出版社.2009年2 吴运昌模拟电子线路基础广州:华南理工大学出版社,2004年3 阎石数字电子技术基础北京:高等教育出版社,1997年4 张晓丽等数据结构与算法北京:机械工业出版社,2002年5 马忠梅等arm & linux嵌入式系统教程北京:北京航空航天大学出版社,2004年6 李建忠单片机原理及应用西安:西安电子科技大学,2002年7 韩志军等.单片机应用系统设计m.机械工业出版社,20048 周润景等. proteus在mcs-51&arm7系统中的应用百例m.电子工业出版社,20069 马忠梅等.单片机的c语言应用程序设计m.北京航空航天大学出版社,200610刘树中,孙书膺,王春平.单片机和液晶显示驱动器串行接口的实现j.微计算机信息,200711骆定辉.学术期刊电子测试,2013致 谢这篇论文是在导师李军老师的指导下完成的,李老师在繁忙的教学工作中抽出时间指导我的论文撰写,在这个过程中,从选题,查阅资料,撰写工作表,撰写文献综述到写论文,我遇到了很多问题,每次我都会请教老师,老师为人朴实无华,平易近人,有着渊博的专业知识,每次都会认真讲解,让我在理论方面得到了提升,同时,老师宽以待人,诲人不倦的师德对我影响深远。同时在撰写论文过程中我的其他老师及同学们,给了我许多的指导与建议,使得我能顺利的完成论文。在此,谨向导师及帮助过我的老师们表示崇高的敬意与衷心的感谢。大学的生活即将结束,感谢一路上陪伴我的老师与同学们,感谢老师的教导,老师传授我的知识,感谢同学们的建议与意见。在今后的日子里,我会铭记老师的教诲,不忘同学间的友谊,继续去追求我的梦想。 附录附录一:系统整体原理图附录二:系统仿真图附录三:元件清单元件名称数量stc89c521dip40插座130pf电容212m晶振1轻触按键510k排阻1010k电位器11k电阻6lcd16021光电开关2lm3112dip8插座3继电器2黄色led1绿色led1ds1302132.768khz晶振11000uf电容1万用板1铜柱+螺帽4附录四:系统源程序description: 在屏幕上显示一串字符,考虑到我的数值均存储于数组中,为方便而作,允许外部调用毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发

温馨提示

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

评论

0/150

提交评论