1、西安航空职业技术学院毕 业 设 计(论 文)论文题目: 某商场客流量统计计算 所属系部: 自动化工程系指导教师: 职 称: 学生姓名: 学 号: 专 业: 电气自动化技术西安航空职业技术学院制西安航空职业技术学院毕业设计(论文)任务书题目: 某商场客流量统计计算任务与要求:1.红外线传感器检测电路,分别监测进入、走出商场的顾客2.单片机控制系统,用来接收信号、计数处理和显示数据3.电源电路、显示电路等辅助电路设计时间: 2011 年 2 月 23 日 至 2011 年 4 月 30 日 共 8 周所属系部: 自动化工程系学生姓名: 学 号: 专业: 电气自动化技术指导单位或教研室: 电气自动化
2、教研室指导教师: 职 称: 西安航空职业技术学院制毕业设计(论文)进度计划表日 期 工 作 内 容 执 行 情 况 指导教师签 字2011.2.23-3.16 与老师沟通3.17-3.20 在图书馆查找相关资料3.21-3.29 整理所查找的相关资料3.30-4.10 学习软件,编程4.11-4.17 写毕业设计并修改格式4.18-4.22 老师审核,修改4.23 提交电子稿及打印教师对进度计划实施情况总评签名 年 月 日 摘要本论文主要阐述了利用 AT89C51 单片机来实现某商场客流量统计计算系统的工作原理和硬件电路的设计,当中对单片机系统作了详细的介绍和分析,LM317 稳压电路的概述,
3、以及 LCD 数码管显示器的描述。最后对结果监测与调试。关键词:AT89C51;红外线传感器;LCD 数码管显示器;LM317 稳压电路 AbstractThe captio mainly discusses how to use the AT89C52 single chip computer to realize a market volume statistics calculation system working principle and hardware circuit design, among the SCM smallest system makes a detailed
4、introduction and analysis, the final result of monitoring and debugging Key words:AT89C51;laser sensor; LCD mon目录1 概述 11.1 研究意义 11.2 发展现状 11.3 论文主要内容 12 设计方案选择 22.1 方案查询选定 .22.2 模块设计 .22.2.1 某商场客流量统计计算设计的基本结构框图 22.2.2 某商场客流量统计计算设计的组成部分介绍及选择 32.2.3 LCD 数码管显示器的选择 .73 系统硬件设计 .123.1 系统结构框图 123.3 LCD 液晶显
5、示驱动电路 .143.4 供电电路图 154 系统软件设计 .144.1 软件设计步骤 144.2 LCM 初始化程序流程图 .164.3 系统控制程序 17结束语 .22谢辞 .16参考文献 .17附录 .18西安航空职业技术学院 毕业设计论文11 概述1.1 研究意义应用十分广泛,遍布生活的每个角落,像汽车上车载人数统计,车辆流量统计,大型宾馆、图书馆客流量统计等等。统计面向公众是与国际接轨的需要所决定的。定期、经常通过各种媒体向社会公众发布统计信息,是一种国际惯例。在许多国家,各级政府部门及其首脑也是通过媒体或其它载体的发布来获取非机密的统计信息,而很少提出特殊的“领导需要” 。扩大对外
6、开放, “迎接入世”挑战,中国的统计信息从计算方法、采集渠道到公布形式,无疑应该更加详细、公开和透明。更好地为百姓服1.2 发展现状随着外资零售企业的大举进入,零售企业的竞争日益激烈。客流量对于零售业是非常基础的指标,它与销售量直接成正比关系,因此客流量统计尤为重要。客流量是大型商业、旅游、公共安全、文博、连锁等公共场所在管理和决策方面不可缺少的数据。作为一项重要的市场研究手段,它能够为大型机关、企业的运营决策和综合管理提供准确及时的数据参考。商场客流量统计系统的重要性显而易见。考虑到设计周期及技术难度,本文对简单的红外对管的人流量检测做简单的设计实现。1.3 论文主要内容通过比较现在普遍采用
7、的客流量统计计算的各种解决方案的优缺点得出本次设计所选定的方案:红外对管的人流量检测设计。进而得出相应的某商场客流量统计计算设计的基本结构框图。第二章对各个组成模块进行介绍,并且给出了红外接线和 1602 液晶显示的选择。然后介绍了系统硬件框图设计全过程、硬件电路设计及测试结构分析。西安航空职业技术学院 毕业设计论文22 设计方案选择2.1 方案查询选定现在所普遍采用的客流量统计解决方案大面上可以分为 2 种,一种采用机器视觉的技术,通过本地或远程监控摄像头采集视频帧数据,由主机电脑服务器处理(主要通过人头部,肩部等特征,来识别画面中的人物)并检测出进出商场或者车箱的人数。这种方法的优点是识别
8、精度高,识别准确。缺点是工程规模大,相比后一种成本要高出许多。另一种是通过红外线和单片机系统构成的检测系统。这种方法也大概分为两种,一种是通过人体的热成像来识别判断人物,然后进行计数。另一种是通过红外线对管发射和接收,来判读是否有人出入,并计数。这种红外计数的检测设备也有好多种, 有一些是红外对管分别安装在人流进出门的两侧,一边发送一边接收,当接受不到后外信号就计数一次。还有一种方案是将红外对管安装在一起,在检测门对面安装反射镜,这样设计的系统可以成为一个单个的整体,节省了成本。这里我们选择最后一种方案进行设计。2.2 模块设计2.2.1 某商场客流量统计计算设计的基本结构框图本设计的基本结构
9、框图如下图 2-1 所示:西安航空职业技术学院 毕业设计论文3图 2-1 某商场客流量统计计算设计的基本结构框图2.2.2 某商场客流量统计计算设计的组成部分介绍及选择本设计在结构上可以分为以下几个模块:80C51 单片机主控模块、红外检测模块、电源模块、1602 液晶显示模块。(1)红外检测模块采用两对红外对管,在相隔 10-15cm 的距离内进行 2 次检测,确保检测的西安航空职业技术学院 毕业设计论文4准确性。红外发射管芯中央凸显,红外接收管管芯有红外感光电极。红外对角的两引脚一长一短,长引脚是正极,和普通发光管相同。通电测试方法辨别用一只发光二极管和一个电阻与被测的电管串联,用遥控器对
10、着被测管按下任意键时,被测管亮,则是红外接收管,不亮则是红外发射管。(2)80C51 单片机主控模块其管脚图如图 2-2 所示图 2-2 AT89C51 单片机管脚图P0 口 1有八条端口线,命名为 P0.0P0.7,其中 P0.0 为低位,P0.7 为高位。每根线由一个输出锁存器,两个三态缓冲器,输出驱动电路和输出控制电路组成。P0 口是一个三态双向 I/O 口,它有两种不同的功能,用于不同的工作环境。P1 口 2西安航空职业技术学院 毕业设计论文5P1 口有八条端口线,命名为 P1.0P1.7,P1 口是一个准双向口,只作普通的 I/O 口使用,器功能与 P0 口的第一功能相同。作输出口使
11、用时,由于其内部有上拉电阻,所以不需外接上拉电阻;作输入口使用时,必须先向锁存器写入“1”,使场效应管 T 截止,然后才能读取数据。P2 口 3P2 口有八条端口线,命名为 P2.0P2.7,P2 口也是一个准双向口,它有两种使用功能:一种是当系统不扩展外部存储器时,作普通的 I/O 口使用,其功能与 P0 口的第一功能相同。作输出口使用时,不需外接上拉电阻;另一种是当系统外扩存储器时,P2 口作系统扩展的地址总线口使用,输出高 8 位的地址A7A15,与 P0 口第二功能输出的低 8 位地址相配合,共同访问外部程序或数据存储器,但它只确定地址并不能像 P0 口那样还可以传送存储器的读写数据。
12、P3 口 4P2 口有八条端口线,命名为 P3.0P3.7,P3 口是一个多用途的准双向口,第一功能是作普通的 I/O 口使用,其功能与 P1 口的第一功能相同。当不对 P3口寻址时,口锁存器的 Q 端自动置 1。这时 P3 口作为第二功能使用。并行口的负载能力 5P0 口每一口线可驱动 8 个 LSTTL 负载P1,P2,P3 口的每一位能驱动 4 个 LSTTL 负载。可方便地由 OC 门或漏极开路电路驱动,而无须外接上拉电阻。AT89C51 芯片具有 8K 字节 FLASH 闪烁存储器 256 字节内部 RAM, 32 个 I/O口线,3 个 16 位定时/计数器,一个 6 向量两级中断
13、结构,一个全双工串行通信口,片内振荡器、时钟电路。同时 AT89C52 可降至 0HZ 的静态逻辑操作,并支持两种软件可逆的节电工作模式,停止 CPU 的工作,允许 RAM,定时/计数器,串行通信口及中端系统继续工作。结合实际,选择 89C52 单片机来设计。AT89C51 是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k 字节 Flash可擦写存储器(PEROM) 。AT89C51 器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,AT89C51 的片内Flash 允许程序存储器通过传统编程器反复编程。由于芯片内集成
14、了通用 8 位中央处理器和 Flash 存储单元,功能强大的微处理器 ATMEL AT89C51 可为许多嵌入式控制应用系统提供高度灵活、高性价比的解决方案。AT89C51 具有如下特点:4k Bytes Flash 存储器、 128 bytes 的 RAM、32个 I/O 口、2 个 16 位定时/计数器,5 个中断优先级 2 层中断嵌套中断、1 个全双工串行通信口、片内时钟振荡器。 此外,AT89C51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。AT89C51 在空闲模式下,CPU 暂停工作,而西安航空职业技术学院 毕业设计论文6RAM、定时/计数器、串行口和外中断系统可
15、继续工作,掉电模式冻结振荡器并保存 RAM 的数据,停止芯片其它功能直至硬件复位。AT89C51 的特性如下:低功耗空闲和省电模式兼容 MCS-51 指令系统 4k 可反复擦写(1000 次)Flash ROM 时钟频率 0-24MHz 2 级程序存储器锁1288 位内部 RAM 32 个双向 I/O 口 2 个 16 位定时/计数器 6 个中断源和可编程串行通道(3)红外线传感器的选择红外线接收头(又称红外线接收模组,IRM)是集成红外线接收 PD 二极管、放大、滤波和比较器输出等的 IC 模块.红外接收头的主要参数:工作电压:2.74.5V 工作电流:1.72.7mA 接收频率:37.9k
16、Hz 峰值波长: 940nm 静态输出:高电平 输出低电平:0.4V 输出高电平:接近工作电压红外接收头其特性如下:小型设计 内置专用 IC 宽角度及长距离接收 抗干挠能力强 能抵挡环境干挠光线 低电压工作;光电参数如下:光电参数(T=25 Vcc=5v f0=38KHZ):参 数 符号 测试条件 Min Type Max 单 位 工作电压 VCC 2.7 5.5 V 工作电流 Icc 0.6 0.8 - mA 静态电流 Ice 无信号输入时 0.1 0.5 mA 接收距离 L 15 18 M 接收角度 1/2 +/-35 Deg 载波频率 f0 37.9西安航空职业技术学院 毕业设计论文7红
17、外线的模块选择红外发光二极管是采用砷化镓( GaAs ) 和砷铝化镓( GaAlAs ) 等半导体材料制成的, 它们的外形和普通的发光二极管基本相同, 用透明的树脂材料封装。中、大功率的红外发光二极管采用金属或陶瓷材料作底座, 用玻璃或树脂透镜作窗口。红外接收二极管接收电路的红外接收管是一种光敏二极管,使用时要给红外接收二极管加反向偏置电压,他才能正常工作获得高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率较小,红外接收二极管收到的信号较弱,所以接收端就要增加高增益放大电路。红外对射式检测电路主要分两部分接收与发射,可以采用集中与分散供电方式。2.2.3 LCD 数
18、码管显示器的选择(1)1602 字符型 LCD 简介液晶显示器各种图形的显示原理线段的显示:点阵图形式液晶由 MN 个显示单元组成,假设 LCD 显示屏有 64 行,每行有 128 列,每 8 列对应 1 字节的 8位,即每行由 16 字节,共 168=128 个点组成,屏上 6416 个显示单元与显示 RAM 区 1024 字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由 RAM 区的 000H00FH 的 16 字节的内容决定,当(000H)=FFH 时,则屏幕的左上角显示一条短亮线,长度为 8 个点;当(3FFH)=FFH 时,则屏幕的右下角显示一条短亮线;
19、当(000H)=FFH, (001H)=00H, (002H)=00H,(00EH)=00H, (00FH)=00H 时,则在屏幕的顶部显示一条由 8 段亮线和 8 条暗线组成的虚线。这就是 LCD 显示的基本原理。(2)字符的显示 用 LCD 显示一个字符时比较复杂,因为一个字符由 68 或 88 点阵组成,既要找到和显示屏幕上某几个位置对应的显示 RAM 区的 8 字节,还要使每字节的不同位为“1” ,其它的为“0” ,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在 LCD 上开始显示的行列
20、号及每行的列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。(3)汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵西安航空职业技术学院 毕业设计论文8码(一般用字模提取软件) ,每个汉字占 32B,分左右两半,各占 16B,左边为1、3、5右边为 2、4、6根据在 LCD 上开始显示的行列号及每行的列数可找出显示 RAM 对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加 1,送第二个字节,换行按列对齐,送第三个字节直到 32B 显示完就可以 LCD 上得到一个完整汉字。 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式L
21、CD,目前常用 16*1,16*2,20*2 和 40*2 行等的模块。下面以长沙太阳人电子有限公司的 1602 字符型液晶显示器为例,介绍其用法。(4)1602LCD 的基本参数及引脚功能1602LCD 分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图(5) LCD1602 主要技术参数 显示容量:162 个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm(6)引脚功能说明1602LCD 采用标准的 14 脚(无背光)或 16 脚(
22、带背光)接口,各引脚接口说明如表 2-1表 2-1: 引脚接口说明表编号符号 引脚说明 编号符号 引脚说明1 VSS 电源地 9 D2 数据2 VDD 电源正极 10 D3 数据3 VL 液晶显示偏压 11 D4 数据4 RS 数据/命令选择 12 D5 数据5 R/W 读/写选择 13 D6 数据6 E 使能信号 14 D7 数据7 D0 数据 15 BLA 背光源正极8 D1 数据 16 BLK 背光源负极第 1 脚:VSS 为地电源。第 2 脚:VDD 接 5V 正电源。第 3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时西安航空职业技术学院 毕业设计论文9对比度最高
23、,对比度过高时会产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比度。第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:D0D7 为 8 位双向数据线。第 15 脚:背光源正极。第 16 脚:背光源负极。1602 液晶模块内部
24、的控制器共有 11 条控制指令,如表 2-2 所示表 2-2:基本操作时序表序号指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D01 清显示 0 0 0 0 0 0 0 0 0 12 光标返回 0 0 0 0 0 0 0 0 1 *3 光标返回 0 0 0 0 0 0 0 0 1 I/DS4 显示开/关控制0 0 0 0 0 0 0 D C B5 光标或字符移位0 0 0 0 0 0 0 S/CR/L* *6 置功能 0 0 0 0 1 DL N F * *7 置字符发生存贮器地址0 0 0 1 字符发生存贮器地址8 存贮器地址0 0 1 显示数据存贮器地址9 读忙标志或地址0
25、 1 BF 计数器地址西安航空职业技术学院 毕业设计论文1010 写数到CGRAM 或DDRAM)1 0 要写的数据内容11 从 CGRAM或 DDRAM读数1 1 读出的数据内容1602 液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。(说明 1 为高电平,0 为低电平)指令 1:清显示,指令码 01H,光标复位到地址 00H 位置指令 2:光标复位,光标返回到地址 00H指令 3:光标和显示位置设置 I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平表示有效,低电平表示无效。指令 4:显示开关控制。D:控制整体的显示开与关,高电平表示开显示
26、,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令 5:光标或显示移位 S/C :高电平时显示移动的文字,低电平时移动光标指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线 N:低电平时为单行显示,高电平时为双行显示,F:低电平时显示 5X7 的点阵字符,高电平时显示 5X10 的显示字符。指令 7:字符发生器 RAM 地址设置。指令 8:DDRAM 地址设置。指令 9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令或数据,如果为低电平表示不忙。与 HD44780
27、相兼容的芯片时序表如下:表 2-3:基本指令读状态 输入 RS=L,R/W=HE=H输出 D0-D7=状态字写指令 输入 RS=L,R/W=L,D0D7=指令码,E=高脉冲输出 无西安航空职业技术学院 毕业设计论文11读数据 输入 RS=H,R/W=H,E=H输出 D0-D7=数据写数据 输入 RS=H,R/W=L,D0D7=数据,E=高脉冲输出 无(7)1602LCD 的 RAM 地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在,哪里显示字符, 例如第二行第一个
28、字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平 1 所以实际写入的数据应该是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,如图 10-58 所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,
29、每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H) ,显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A” 。西安航空职业技术学院 毕业设计论文123 系统硬件设计本系统采用以 STC89C51 系列单片机为控制中心,以及外围供电、复位、晶振、LM317 稳压电路组成单片机系统电路,单片机作出计数与判断,同时让LCD1602 液晶显示总人数与剩余人数。3.1 系统结构框图图 3-1 系统结构框图整个装置主要由以下电路组成:STC89C51 单片机最小系统、LCD1602 液晶显示驱动电路、红外线检测电路。LM317 稳压电路3.2
30、 单片机最小系统电路AT89C51LM317 稳压电路复位电路晶振电路LCD1602 液晶显示红外检测电路西安航空职业技术学院 毕业设计论文13图 3-2 系统结构框图单片机最小系统主要由复位电路,晶振电路,电源等几部分组成。(1) 复位电路复位电路有两种方式:上电复位和按钮复位,我们主要用按钮复位方式。如下图 3-3 所示:图 3-3 复位电路(2) 晶振电路晶振电路原理图如图 3-4 所示:西安航空职业技术学院 毕业设计论文14图 3-4 晶振电路(3)电源AT89C51 单片机的供电电源是 5V 的直流电源。(4)EA 非/Vpp 脚 我们没有用外部扩展 ROM,因此 EA 非/Vpp
31、为高电平3.3 LCD 液晶显示驱动电路主要由 16 孔排座、1.8K 电阻和 0 欧电路组成,如图 3-5 所示:图 3-5 LCD1602 液晶显示驱动电路图西安航空职业技术学院 毕业设计论文153.4 供电电路图典型供电电路图中 Lm317 原理图如图 3-7 所示图 3-7 集成稳压电源电路如图 3-7 LM317 输出电流为 1.5A,输出电压可在 1.25-37V 之间连续调节,其输出电压由两只外接电阻 R1、RP1 决定,输出端和调整端之间的电压差为1.25V,这个电压将产生几毫安的电流,经 R1、RP1 到地,在 RP1 上分得的电压加到调整端,通过改变 RP1 就能改变输出电
32、压。注意,为了得到稳定的输出电压,流经 R1 的电流小于 3.5MA。LM317 在不加散热器时最大功耗为 2W,加上200*200*4MM3 散热板时其最大功耗可达 15W。VD1 为保护二极管,防止稳压器输出端短路而损坏 IC,VD2 用于防止输入短路而损坏集成电路西安航空职业技术学院 毕业设计论文144 系统软件设计4.1 软件设计步骤(1)系统定义所谓系统定义,就是清楚地列出系统的各个部分与软件设计有关的特点,并进行定义,以作为软件设计的依据。系统定义是对系统任务的描述,系统定义至少应包括下列内容:输入定义: 首先列出系统向微机提供的所有输入项,然后对每个输入提出问题。输出定义: 首先
33、列出要求微机产生的所有输出项,然后对每个输出提出问题。定义存储器: 指对存储器资源如何管理,工作区然后划分?是否采取存储器掉电保护?定义信息处理方式: 从读入输入数据到送出结果之间的阶段称为处理阶段。在这个阶段必须精确确定用什么方法处理输入数据以获得要求的结果。定义错误处理方式: 系统出现错误是难免的,因此,设计者必须为排错及故障诊断做好准备。定义操作要求: 任何系统都要人来干预,即要进行人机对话。因此必须考虑操作者最合适的输入方式和操作步骤,何种显示形式才能很容易地提醒操作人员出现的操作出错。(2)程序设计程序设计是制定程序的纲要,也就是将系统定义的问题用程序的方式进行描述、绘制流程图,结构
34、化程序设计、模块化程序设计和自顶向下设计等,都是此步骤的有效方法。(3)编程所谓编程就是将程序流程图的一系列操作,编译成计算机能够接受的具体程序。编程人员可以采用机器语言、汇编语言或是高级语言,采用何种语言编程,应根据相系统的情况、要求和设计人员的技术水平。(4)查错和测试查错是让程序去执行设计规定它应该完成的任务,用以发现程序中出现的错误。测试是用以校验程序是否正确地执行了总的系统任务。查错只能发现编程中的错误,而很难发现系统在总体结构方面、各任务之间协调配合方面的错西安航空职业技术学院 毕业设计论文15误。这方面的错误依靠测试阶段来发现。查错和测试是软件设计很关键的步骤。由于系统应用软件通
35、常都要固化在只读存储器中,所以程序在固化之前必须进行查错和测试。(5)文件编制文件编制是用流程图、注释、存储器分配说明等方法来描述程序来形成文件,以便用户和操作人员了解。文件编制的好坏,直接影响到程序的使用、维护和扩充。(6)维护和再设计当软件投入现场运行时,一方面可能会发生各种现场问题,因而需要进一步对系统软件进行改造和完善;另一方面,用户往往会由于环境或技术条件的变化,提出比原计划更多的要求,因而需要对原系统软件进行改进和扩充,然后再重新固化,以适应情况变化的要求。4.2 统软件流程图整个系统软件运行流程如图 4-1 所示:图 4-1 系统软件流程图西安航空职业技术学院 毕业设计论文16对
36、于同时有顾客分别从入口与出口处进出的情况,则计数变量没有增加也没有减少,但这种情况可以忽略。只要有时间差别,语音均播报欢迎第多少位顾客。4.2 LCM 初始化程序流程图图 4-2 LCM 初始化程序流程图开始显示模式设置关闭显示显示清屏显示光标移动设置显示开关控制指令显示开关光标返回西安航空职业技术学院 毕业设计论文174.3 系统控制程序/文件包含与定义操作*#include#include #include#define uchar unsigned char#define uint unsigned intuchar count=210;sbit in =P23; /红外线检测入口接单片
37、机 24 号引脚sbit out=P24; /红外线检测出口接单片机 25 号引脚uchar segnum4=0,0,0,0;uchar sum=0,current_sum=0;typedef unsigned char BYTE;typedef unsigned int WORD;typedef bit BOOL ; sbit rs = P20;sbit rw = P21;sbit ep = P22;BYTE code dis1 = “welcome!“;/延时子程序*delay1(BYTE ms) BYTE i;while(ms-)for(i = 0; i 250; i+)_nop_();
38、西安航空职业技术学院 毕业设计论文18_nop_();_nop_();_nop_();/测试 LCD 忙碌状态*BOOL lcd_bz()BOOL result;rs = 0; / 寄存器选择,rs=0 选择指令寄存器rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (BOOL)(P1 ep = 0;return result;/ 写入指令数据到LCD*lcd_wcmd(BYTE cmd)while(lcd_bz();rs = 0;rw = 0;ep = 0;_nop_();_nop_();西安航空职业技术学院 毕业设计论文19P1
39、= cmd;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;/设定显示位置*lcd_pos(BYTE pos)lcd_wcmd(pos | 0x80);/写入字符显示数据到LCD*lcd_wdat(BYTE dat)while(lcd_bz();rs = 1;rw = 0;ep = 0;P1 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;西安航空职业技术学院 毕业设计论文20_nop_();_nop_();_nop_();_nop_();ep
40、= 0;/LCD 初始化设定*lcd_init()lcd_wcmd(0x38);delay1(1);lcd_wcmd(0x0c);delay1(1);lcd_wcmd(0x06);delay1(1);lcd_wcmd(0x01); /清除 LCD 的显示内容delay1(1);/主程序*main()uchar i;lcd_init();lcd_pos(0x44);/ 设置显示位置为第一行的第一个字符i = 0;while(dis1i != 0)/ 显示字符“welcome!“lcd_wdat(dis1i);i+;西安航空职业技术学院 毕业设计论文21for(;)if(!in)while(!in
41、);current_sum+;sum+;Read_Voice(14);/欢迎第delay_Voice(1400);Read_Num(sum);delay_Voice(900);Read_Voice(15);/位顾客if(!out)while(!out);if(current_sum)current_sum-;else current_sum=0;segnum2=current_sum%10|0x30;segnum1=current_sum%100/10|0x30;segnum0=current_sum/100|0x30;lcd_pos(0x85);/ 设置显示位置为第一行的第一个字符i = 0
42、;while(segnumi != 0)/ 显示字符“welcome!“lcd_wdat(segnumi);i+;西安航空职业技术学院 毕业设计论文22结束语本设计主要实现了通过红外线传感器分别监测进入、走出商场的顾客,单片机最小系统,用来接收信号、计数处理和发出指令。我的毕业设计在经过理论的收集和原理的学习,设计方案与元器件选择、系统各个模块的框架设计、电路Protel 绘图、原理图的设计、软件的设计,最终调试。在设计中存在以下问题:有些元器件的管脚作用不明,在选择元器件时没有仔细了解它的作用以及适用范围,导致测试结果不明,通过它使我对单片机系统有了掌握,还有在硬件中一些元器件的接法是比较难的,从当中我学到了要做一个完好设计,首先有个初步的规划,然后对各个部分做布局,最后将整个电路图有个认识,如何进行一个产品的开发和设计,并对其设计过程如何进行优化选择有了初步的认识,为以后的工作打下了坚实的基础。我所获得的这些知识都是西安航空职业技术学院对我辛勤培养的结果。因此,我要感谢母校的各级领导及老师们,谢谢你们三年来对我的教育和引导。在这当中我存在着许多问题不会处理只能做到这种地步,还请各位老师了解。