单片机课程设计(论文)教室人数自动计数装置.doc
-
资源ID:2881883
资源大小:149.50KB
全文页数:18页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
单片机课程设计(论文)教室人数自动计数装置.doc
目录第1章 绪论11.1 设计背景11.2 设计内容及解决问题1第2章 系统方案设计22.1设计任务及要求22.2系统设计思路22.3 光电传感器简介22.4 方案1设计32.5 方案2设计32.6 方案论证42.7 系统总体框图及原理4第3章 硬件电路设计53.1 单片机最小系统设计53.2 键盘显示模块设计53.3 电源电路设计63.4 外部检测设备设计63.5 显示模块设计7第4章 系统软件设计8第5章 设计总结13参考文献14附录 基本使用器件15附录 芯片型号16摘 要近来在主要的大城市还有一些规模较大的学校中,人口流动量非常大,在一定程度上给生活带来不便。本文主要介绍了教室人数自动计数装置的工作原理,在对各种计数方法进行分析后提出了基于光电传感器和单片机系统的计数测量控制装置,并给出了智能计数器控制的硬件电路设计、软件电路设计和系统程序流程图。本文详细分析了系统的组成及工作原理,给出了系统各个硬件、软件的设计方法。该计数系统安装方便,维护简单,工作稳定,运行可靠,对于学校、商场、会议室等人员流动很大的公共场所有很高的使用价值,方便对于人员流动的管理及配送、具有很高的使用价值和经济价值。关键词:单片机;光电传感器;智能计数器第1章 绪论1.1 设计背景在学校等人员流动较大的地方,如果对人数的变动没有有效的管理和控制,那么对工作和学习的效率是有害的。如何对于人员流动进行实时的、有效的、精确的计数成为学校等场所十分关注的问题,因此设计一款实用有效的人数计数器是很必要的。电子计数器是一种多功能的电子测量仪器,至今已有30多年的发展历史。早期设计师们追求的目标主要是扩展计数范围,提高计数精度、稳定度等,这些也是衡量一款计数器的主要指标。目前这些计数日趋完善,现代的应用技术可以让计数器的范围扩展到无限大。当今,单片机技术迅速发展,基于单片机技术开发的计数设备也广泛应用到各个领域。单片机以体积小、功能强、可靠性高、性价比高等特点,已成为实现现代工业生产技术进步和开发机电一体化智能测控产品的重要手段。如今的自动计数器大多采用非接触式的计数触发方式,早已开发出多种型号的专用检测芯片,利用MCS51系列的单片机作为控制核心的计数器成为了计数应用领域的潮流。1.2 设计内容及解决问题如何构成检测电路、MCS51系列单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示模块的选择、单片机的扩展、提高单片机抗干扰能力和系统的稳定性。第2章 系统方案设计2.1设计任务及要求设计可实现教室内人数自动计数、显示的装置。通过在教室门上安装的检测装置检测进出教室的人数,计算出教室内的实际人数,当按下显示按键、数据通信按键和数据清除按键时,可分别实现人数的显示、通信和数据清除,其中显示应在教室外显示,以便学生查询。此外,装置还设有上课/自习状态按键和相应的指示装置。2.2系统设计思路由于教室前后门应用相同的设备,故只介绍其中一个;使用器件:光电传感器2个,数码管3个,AT89C51单片机一个,控制按键1组。设计思路:门上装有两个光电传感器,并排架设,一前一后,若传感器1先有信号而传感器2后有信号,则表示有人进入教室;若传感器2先有信号而传感器1后有信号,则表示有人出了教室。传感器信号经过放大滤波传给单片机,单片机经过数据处理输出信号,传给8位数码管,数码管放在教室外面,方便学生查看。按键电路设置复位及清零,数码管上还可以显示上课、自习的状态。设备利用CAN总线进行远程通信,连接到控制中心。2.3 光电传感器简介光电传感器是利用光电元件作为检测元件的传感器。它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换为电信号。光电传感器一般有光源,光电元件,转换电路三部分组成。光电检测法具有精度高、反应快、非接触等特点,而且可测参数多,传感器结构简单,形式灵活多样。红外发光二极管是一种把电能转换成光能的半导体器件。它具有体积小、功耗低、寿命长、响应快、机械强度高等优点,并能和集成电路相匹配。因此,广泛的应用于计算机、仪器仪表的自动控制系统中。光电转换部分与单片机的连接框图如下:传感器整形驱动计数脉冲89C51图2.1 观点转换部分与单片机得连接示意图2.4 方案1设计原理图:检测单元MCS51控制单元LED显示驱动LED显示电源检测、单片机保护掉电数据保护电源供电电路原理阐述:RT1072红外检测芯片形成计数脉冲以后送给控制单元AT89C51单片机,通过对它片内计数、显示编程。PS7219是专用的LED显示驱动芯片,可以同时驱动8个数码管。X2504P是一块具有电源电压监控、EEPROM和看门狗定时器电路三种功能于一体的芯片,它保证在电源接通、关断、瞬间电源电压不稳的时候不会造成系统死机、数据误写或误操作,大大提高了系统的稳定性和抗干扰能力。2.5 方案2设计原理图:红外发射电路红外接收电路MCS51显示驱动LED显示电源供电电路原理阐述:红外发射电路和红外接收电路构成红外检测单元以及形成计数脉冲、经过AT89C51外部中断对其片内计数、显示编程、最后通过显示驱动芯片连接上LED显示器就完成最后的显示。2.6 方案论证方案1即可完美的实现人数的计数功能,并且能让系统处于异常状态和抗干扰时通过外围专用芯片得到非常好的解决,外围电路架设相对简单,在市场上属于高端自动计数产品。同时它也暴露出一个重大问题:由于成本太贵的原因此类产品没有得到普及,如果用此方案进行设计只需要了解各专用芯片的引脚功能以及外围连接方法就可以实现自动计数。方案2是这次设计所选用的最终方案,之所以选用是因为这个方案能够达到精确、稳定的自动计数。但也有致命缺点,就是整个系统抗干扰能力较弱,系统掉电以后不能保存数据,在系统处于异常状态下容易出现误操作或者死机,这也是此次设计着重解决的课题。2.7 系统总体框图及原理根据方案2进行了局部的修改,以达到稳定系统的目的,具体框图如下:信号调理波形变换单 片 机存储电路LED显示键盘模块光电传感器原理阐述:本电路的指导思想是利用类似红外发光管的光电传感器检测人员进出,接收器接收到信号,并将其放大、整流形成高电平信号。当人或物品挡住红外光时,接收器没有接收到信号,放大器输出低电平信号。这个便是外部计数脉冲信号。这个脉冲信号送到AT89C51单片机中进行计数控制,完成显示。第3章 硬件电路设计3.1 单片机最小系统设计图3.1 单片机最小系统3.2 键盘显示模块设计图3.2 键盘显示模块上图为键盘电路图,按键功能分别为:K0键:复位清零;K1键:显示上课自习状态;K2键:显示计数脉冲数;此按键电路为低电平有效,当无按键按下的时候,单片机输入引脚P1.0、P1.1、P1.2、P1.3端口均为高电平。当其中任何一个按键按下的时候,其对应的端口变为低电平。3.3 电源电路设计电源电路示意图如下:图3.3 电源电路3.4 外部检测设备设计这个部分主要是由NE555组成的红外发射电路和LM567构成的红外接收电路组成。工作原理为当红外发射二极管发出红外光,检测是否有人或者物品遮挡,然后由红外接收二极管将调制信号通过锁相环鉴频后输出CP计数脉冲以便单片机进行计数控制。红外线发射电路如下图:图3.4.1 红外线发射电路红外线接收电路如下图:图3.4.2 红外线接收电路3.5 显示模块设计显示部分由单片机AT89C51控制完成。显示驱动由74HC241完成。示意图如下:图3.5 显示电路第4章 系统软件设计系统流程图:开始初始化人员检测模块人员计数模块有键按下键服务上课/自习指示清零NY显示图4.1程序流程图系统程序设计:*CPU AT89C51XTAL 12M*#include <AT89X51.H>#include <intrins.h>#define uchar unsigned char#define uint unsigned int*bit time_10ms_ok=0,time_50ms_ok=0; /定义时间标识uchar time_counter1; /软件时间计数器uchar buff3; /显示缓冲区uchar code number10="0123456789" /显示字符/*按键读取子程序,四个按键依次返回1,2,3,4*/uchar read_key(void)static uchar key_state;uchar key_press,key_return=0;key_press=P3&0xf0; /读取按键I/O口switch(key_state) /判断按键状态 case 0: /状态0if(key_press!=0xf0) /不等,表示有键按下key_state=1; /状态置1break;case 1:if(key_press!=0xf0) /确实不等,判断是哪个键按下switch(key_press)case 0xe0: /00001110 第一个按下key_return=1;break;case 0xd0: /00001101 第二个按下key_return=2;break;case 0xb0: /00001011 第三个按下key_return=3;break;case 0x70: /00000111 第四个按下key_return=4;break;key_state=2; /状态置2else /否则是抖动,状态置0key_state=0;break; case 2: / 状态2,等待按键释放if(key_press=0xf)key_state=0;break;return key_return;*LCD显示子函数,显示之前需要将要显示的数按个,十,百依次放入显示缓冲区*void display(uchar add,uchar dat)uchar i;for(i=0;i<3;i+) /将要显示的数分解送显示缓冲区 buff2-i=dat%10; dat=dat/10;write_lcd_cmd(add); /显示在lcd上for(i=0;i<3;i+) write_lcd_dat(numberbuffi); /*主函数*/void main(void) uchar up_limit_in=20,low_limit_in=5;/定义进出门人数要设置的上下限uchar up_limit_out=20,low_limit_out=5;uchar number_in,number_out; /定义进出门人数uchar key_input;uchar set_state=0; /定义设置键状态(第四个键)uchar i;*CAN总线通信模块*#include "CAN_TOUWENJIAN.h" /包含相关寄存器定/ 初始化SJA1000 主控制器子函数void Init_CAN(void)MODE=0x01;CDR=0x88;IER=0x0D;AMR=0xFF;ACR=0x00;BTR0=0x05;BTR1=0xFF;OCR=0xAA;TXERR=0x00;Reg_LINSHI=ECC;MODE=0x09;/ 主程序void can(void) SCON=0x50;PCON=0x00;TMOD=0x21;TL1=0xfd;TH1=0xfd;TR1=1;EA=1;ES=1;Init_CAN();while(1)TX_DATA_CAN(); /发送子程序REC_DATA_CAN() ; /接收子程序SERIAL(); /串行通信子程序第5章 设计总结本次设计选用AT89C51单片机作为控制核心,利用数码管来显示人数,利用CAN总线进行远程数据通信,从分利用所学的智能仪器的知识,使本系统成功的对教室人数进行计数,具有良好的实用性和经济性,为学校更方便的进行学生人数的管理提供了很好的帮助。整个系统结构简单,操作方便、灵活,经济性好、维护方便,具有良好的使用价值和市场经济价值。本次设计的系统仍然有不足之处,比如在掉电的时候无法对数据进行保护,如果学校在晚上进行人员清点的时候,系统再次上电则没有了数据,如果学校经济允许,可以采用方案论证中的第一种方案,在掉电的时候可以对数据进行保护;本系统使用的单片机只是入门级产品,整个51系列在市面上已经极少流通,取而代之的是更小型、更方便、功能更丰富的单片机。若使用新型的、更优秀的单片机,系统的性能必然会上升一个台阶;由于教室有两个门,两个门上的两套系统要进行实时的显示和互动,两套系统之间的联系也要非常密切,如果单纯的使用电压或者电流的连接,则没有很好的抗干扰的能力,如果经济允许,在两台系统之间最好选择一款无线通信装置,这样可以使两台系统更好的进行连接。本次设计遵循经济适用的原则,所以没有考虑这些可以系统的提升设备性能的方案。虽然本次课程设计是要求自己独立完成,但是,彼此还是脱离不了集体的力量,遇到问题和同学互相讨论交流。多和同学讨论。我们在做课程设计的过程中要不停的讨论问题,这样,我们可以尽可能的统一思想,这样就不会使自己在做的过程中没有方向,并且这样也是为了方便最后设计和在一起。讨论不仅是一些思想的问题,还可以深入的讨论一些技术上的问题,这样可以使自己的处理问题要快一些,少走弯路。多改变自己设计的方法,在设计的过程中最好要不停的改善自己解决问题的方法,这样可以方便自己解决问题。参考文献1 丁英丽智能光电计数系统的设计.哈尔滨:黑龙江人民出版社,20032 陆永超电子测量技术.北京:清华大学出版社,20043 王煜东传感器及应用.北京:机械工业出版社,20054 郝建国单片机在电子电路设计中的应用北京:清华大学出版社,20065 李文仲短距离无线数据通信入门与实战北京:北京航空航天大学出版社,2006附录 基本使用器件电阻5.1K、10K、4.7K、120K、15K等二极管6个LED3个电容1000pF三极管6个开关6个晶振1个数码管3个附录 芯片型号单片机AT89C51红外接收电路NE555红外接收电路LM567显示驱动74HC241