商场客流量计数与导购系统设计论文C语言编程.docx
- 文档编号:10136739
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:20
- 大小:425.50KB
商场客流量计数与导购系统设计论文C语言编程.docx
《商场客流量计数与导购系统设计论文C语言编程.docx》由会员分享,可在线阅读,更多相关《商场客流量计数与导购系统设计论文C语言编程.docx(20页珍藏版)》请在冰点文库上搜索。
商场客流量计数与导购系统设计论文C语言编程
论文
题目:
商场客流量计数与导购系统
学校:
系别:
计算机与信息工程系
专业:
班级:
姓名:
日期:
目录
前言………………………………………………3
第一章设计任务………………………………..4
1.1基本要求……………………………4
1.2系统总体要求………………………4
第二章方案论证与比较………………………...5
2.1单片机的选择………………………5
2.2语音芯片的选择……………………5
2.3显示模块选择………………………..6
第三章系统硬件框图设计………………………8
3.1最小系统及液晶部分设计框图……..8
3.2驱动系统部分设计框图……………..9
第四章系统硬件设计………………………........10
4.1单片机最小系统电路………………..10
4.2驱动LCD液晶显示电路……………...11
4.3激光检测电路…………………………11
4.4WT588语音播报电路………………..12
第五章系统软件设计………………………………13
5.1系统软件流程图………………………..13
5.2系统软件程序说明……………………..14
第六章测试与结果………………………………….14
6.1测试仪器和材料…………………………14
6.2测试结果………………………………...15
第七章设计总结……………………………………..15
附录……………………………………………………16
前言
目前绝大数商场都采用传统的进出口系统或者根本没有,并且关于顾客在某个季节对某些商品的喜好与需求没有一个科学合理的统计调查,造成一些商品销售库存、另一些商品销售短缺的尴尬局面,商场客源减少却没有及时了解,不利于商场的最佳运营。
但如果专门安排人员去调研这方面,不仅浪费资源、影响耽误顾客购物,而且得出的结果不一定准确。
鉴于此,设计一个自动检测商场进入顾客的总人数,现在还有多少人在商场内,对顾客进入商场购物表示欢迎的科学系统是很有利用价值的,其中检测可以采用激光传感器。
激光按能量分累,用于此处的传感器应属于第Ⅰ类激光,是无公害激光。
因采用能量不高的激光,对人的身体不会造成伤害,可以放心的使用商场进出口处作检测用。
另外随着激光技术的发展,特别是在军事上,一种强度高的激光可以穿透较厚的钢板甚至是更为硬的东西,它的威力远比子弹的威力大的多,将来有可能会有更多的激光枪出现战斗中;还有激光通信也是比较先进的技术,它较无线通信更稳定,传输数据时不易被盗取;激光用在循迹机器人身上,让机器人在循迹的时候更稳定,不易出现路线寻找错误,例如清华大学参加的飞思卡尔机器人设计大赛就是用激光代替普通的红外检测技术来实现机器人的循迹路线,因为激光的强度比红外线要高,不易受外界光线的干扰;还有一些常见的利用激光制造的工具,例如激光雕刻机,激光切割机,激光打标机,激光打印机。
第一章设计任务
1.1基本要求
1、设计双激光传感器检测电路,分别监测进入、走出商场的顾客;
2、再设计出单片机最小系统,用来接收信号、计数处理和发出指令;
3、最后设计出语音播报(带稳压的)电路,接收单片机指令,对进出商场的顾客表示问候。
1.2系统总体要求
当有顾客进入商场时,系统检测出他(她)是当天的第多少位顾客,并调出相对应的播报“您是今天的第多少位顾客,祝您购物愉快”等类似语音;当有顾客出商场时,系统通过语音播报“谢谢光临,欢迎下次再来”相关语音;与此同时,当商场调研统计人员想知道当日已有多少顾客光顾商场,当前商场内还有多少人,可以通过LCD显示直接读出。
第二章方案论证与比较
2.1单片机的选择
方案一:
选择8031单片机芯片
8031芯片内部无ROM,需要外扩程序存储器,由此造成电路焊接的困难,况且使用8031还需要另外购买其他的芯片,从而造成成本较高,性价比低。
方案二:
选择AT89C52
AT89C52芯片内部有ROM,且片内ROM全部采用FlashROM,它能于3V的超低压工作,与MCS-51系列单片机完全兼容。
结合实际,选择AT89C52单片机来设计。
2.2语音芯片的选择
方案一:
采用APR9600语音芯片
台湾公司最新推出的APR9600语音录放芯片,是继美国ISD公司以后采用模拟存储技术的又一款音质好、噪音低、不怕断电、可反复录放的新型语音电路,单片电路可录放32-60秒,串行控制时可分256段以上,并行控制时最大可分8段。
它较ISD系列语音芯片易于控制且价格也较便宜。
方案二:
采用WT588语音芯片
WT588系列语音芯片是中国广州唯创科技有限公司中国台湾华邦共同研发出来的集单片机与语音电路与一体的可编辑语音芯片。
可控制的语音地址位能达到220个,每个地址位里能加载可组合语音为128段,总共28160段语音,足以应对商场的巨大客流量。
其特点:
1、支持2M~32M的SPI-Flash内存,播放时长较大;
2、内嵌DSP高速音频处理器,处理速度快;
3、内置13Bit/DA转换器,以及12Bit/PWM输出,音质好;
4、可通过专业上位机操作软件,随意组合语音;
5、USB下载方式,支持在线下载/脱机下载,即便在WT588通电的情况下,也一样可以正常下载数据到SPI-Flash;
6、抗干扰能力强,可用于公共或者工业场合。
由于本系统要求很多的语音段、高速处理和抗干扰能力强等要求,所以选择WT588作为语音播报的主控芯片。
2.3显示模块选择
方案一:
LCD数码管液晶显示,由单片机驱动.它主要用来显示大量数据、文字、图形,能够显示的位数多,显示得清晰多样、美观。
方案二:
点阵显示,是由八行八列的发光二极管集成在一块电路上组成,主要用来显示汉字,同时也能显示数字和少量图象,但它的焊接较麻烦,价格高,鉴于所设计的题目要求它不切实际。
所以排除此方案。
方案三:
LED数码管静态显示,电路容易理解且驱动的程序简单,多片七段译码器驱动显示,这不仅增加了成本,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难,因此不选用这种方案作为显示模块。
方案四:
采用LED数码管动态扫描显示,价格低廉,不仅减少了对I/O口的浪费,而且能够同时驱动多个数码管。
其驱动程序容易编写和理解。
当显示内容不太多,可以排除。
经过四种方案的比较以及本系统实际,由于该系统需要显示两个内容,上述的LCD液晶显示比较妥善,我们选择性价比相对高的LCD1602液晶。
第三章系统硬件框图设计
本系统采用以STC89C52系列单片机为控制中心,以及外围供电、复位、晶振、MAX232构成电频转换电路组成单片机最小系统电路,用AMS1117构成的稳压模块、WT588构成的语音模块以及双激光组成的检测模块共同组成驱动系统电路,激光检测信号传送给单片机,单片机作出计数与判断,给语音模块发出播报相应语音指令,同时让LCD1602液晶显示总人数与剩余人数。
3.1最小系统及液晶部分设计框图
本部分主要包括供电电路、复位电路、晶振电路、电频转换电路及单片机电路组成,框图如下:
图1单片机最小系统设计框图
3.2驱动系统部分设计框图
驱动系统部分主要由双激光模块电路和稳压语音模块组成,框图如下:
图2驱动系统设计框图
第四章系统硬件设计
整个装置主要由以下电路组成:
STC89C52单片机最小系统、LCD1602液晶显示驱动电路、激光检测电路、WT588语音播报电路。
4.1单片机最小系统电路
单片机最小系统电路主要包括供电电路、复位电路、晶振电路、MAX232电频转换电路和STC89C52单片机电路组成,如图:
图三单片机最小系统电路图
4.2驱动LCD液晶显示电路
主要由16孔排座、1.8K电阻和0欧电路组成,如图:
图四LCD1602液晶显示驱动电路图
4.3激光检测电路
接进出激光传感器的3孔排座2个、10K电阻2个、1K电阻2个、LED灯2个及信号输出2孔排座1个组成激光检测电路,如图:
图五激光检测电路图
4.4WT588语音播报电路
WT588语音播报电路包括:
以AMS1117芯片为主控,C1、C2电容,R5电阻和LED组成的稳压供电模块;以WT588芯片为核心,J5信号输入双孔排座和J4语音信号输出双孔排座。
如图:
图六WT588语音播报电路
第五章系统软件设计
5.1系统软件流程图
整个系统软件运行流程如下图:
5.2系统软件程序说明
对于同时有顾客分别从入口与出口处进出的情况,则计数变量没有增加也没有减少,但这种情况可以忽略。
只要有时间差别,语音均播报欢迎第多少位顾客。
第六章测试与结果
6.1测试仪器和材料
主要包括:
5V输出稳压电源、激光发送端、喇叭或音响、插线及固定胶布。
6.2测试结果:
在PC上位机上用KEILuVISION3软件建立测试工程,用C语言编写程序,通过正确设置,编译生成.HEX文件,再通过正确的COM口用STC-ISP软件将.HEX文件烧录到系统中;用胶布将对准的两对激光收发端平行固定,用5V的电源给激光发出端通电;对应正确的原理图与C程序编写情况,将各个插线插好,并仔细检查;再通电。
测试初始,发现程序没问题,却不显示。
经过检查发现单片机插针弯曲,有三个引脚没插入插槽。
纠正之后仍然不显示,检查发现焊接时不小心将LCD显示的两个信号输入线路连接在一起了,经过清理成功显示。
通电模拟:
当有人模拟进入商场,语音播报“欢迎第x顾客”,LCD显示商场中的人数和“Welcome!
”;当有人模拟离开商场,LCD显示商场中的人数和“Welcome!
”。
第七章设计总结
经过半个多月的时间奋战,在指导老师的帮助下,我进行了准备性基础与原理的学习、设计方案与元器件选择、系统各个模块的框架设计、电路Protel绘图、PCB布线排版、刻板、焊接与硬件测试、程序编写与烧录、模拟测试,终于将此设计完成。
虽然时间很短,但我的指导老师宋工程师、徐老师、熊老师、周老师的耐心教导与技术支持,给我的启迪很大。
这次的实习对我的人生有很大促进,让我养成了认真思考、仔细探索的学习习惯。
附录:
1、系统的实物图:
2、系统C程序的源码:
//文件包含与定义操作********************************************************
#include
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcount=210;
sbitin=P2^3;//激光检测入口接单片机24号引脚
sbitout=P2^4;//激光检测出口接单片机25号引脚
ucharsegnum[4]={0,0,0,0};
ucharsum=0,current_sum=0;
typedefunsignedcharBYTE;
typedefunsignedintWORD;
typedefbitBOOL;
sbitrs=P2^0;
sbitrw=P2^1;
sbitep=P2^2;
BYTEcodedis1[]={"welcome!
"};
//延时子程序*****************************************************************
delay1(BYTEms)
{
BYTEi;
while(ms--)
{
for(i=0;i<250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
//测试LCD忙碌状态************************************************************
BOOLlcd_bz()
{
BOOLresult;
rs=0;//寄存器选择,rs=0选择指令寄存器
rw=1;
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
result=(BOOL)(P1&0x80);
ep=0;
returnresult;
}
//写入指令数据到LCD***********************************************************
lcd_wcmd(BYTEcmd)
{
while(lcd_bz());
rs=0;
rw=0;
ep=0;
_nop_();
_nop_();
P1=cmd;
_nop_();
_nop_();
_nop_();
_nop_();
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
ep=0;
}
//设定显示位置******************************************************************
lcd_pos(BYTEpos)
{
lcd_wcmd(pos|0x80);
}
//写入字符显示数据到LCD**********************************************************
lcd_wdat(BYTEdat)
{
while(lcd_bz());
rs=1;
rw=0;
ep=0;
P1=dat;
_nop_();
_nop_();
_nop_();
_nop_();
ep=1;
_nop_();
_nop_();
_nop_();
_nop_();
ep=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()
{
uchari;
lcd_init();
lcd_pos(0x44);//设置显示位置为第一行的第一个字符
i=0;
while(dis1[i]!
='\0')//显示字符"welcome!
"
{
lcd_wdat(dis1[i]);
i++;
}
for(;;){
if(!
in){
while(!
in);
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--;
elsecurrent_sum=0;
}
segnum[2]=current_sum%10|0x30;
segnum[1]=current_sum%100/10|0x30;
segnum[0]=current_sum/100|0x30;
lcd_pos(0x85);//设置显示位置为第一行的第一个字符
i=0;
while(segnum[i]!
='\0')//显示字符"welcome!
"
{
lcd_wdat(segnum[i]);
i++;
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商场 客流量 计数 导购 系统 设计 论文 语言 编程