排队叫号机.docx
- 文档编号:6914504
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:18
- 大小:309.23KB
排队叫号机.docx
《排队叫号机.docx》由会员分享,可在线阅读,更多相关《排队叫号机.docx(18页珍藏版)》请在冰豆网上搜索。
排队叫号机
湖南人文科技学院
课程设计报告
课程名称:
单片机原理及应用课程设计
设计题目:
排队叫号机
系别:
通信与控制工程系
专业:
自动化
班级:
08级自动化一班
学生姓名:
学号:
起止日期:
2010年12月20日~2010年12月31日
指导教师:
教研室主任:
指导教师评语:
指导教师签名:
年月日
成绩评定
项目
权重
成绩
唐立志
李蕾
1、设计过程中出勤、学习态度等方面
0.2
2、课程设计质量与答辩
0.5
3、设计报告书写及图纸规范程度
0.3
总成绩
教研室审核意见:
教研室主任签字:
年月日
教学系审核意见:
主任签字:
年月日
摘要
随着市场经济的发展,客户在市场交易中的地位越来越重要,所以现在的很多服务性的企业都提出了各种尊重客户、维护客户利益的制度与行为准则,“客户就是上帝”是现在的很多的企业对员工提出的要求,但是针对现在的市场情况,就要真正站在客户的角度来考虑问题。
个人化的服务已成趋势,所以,近些年来“一米线”的服务已满足不了人们的需求。
站立等候已经过时,舒适的环境已成竞争的重要手段,许多银行、医院等营业厅不仅有了沙发、报纸,还有纯净水、糖果和咖啡。
传统柜台服务存在不安全隐患,偷盗密码已经不再是个别案例。
多窗口类别的服务往往让人无所适从,客户盼望只排一个队,只接受“一对一”的服务。
很明显,营业窗口是形成银行、电信、航空、医院等企业的公众形象的重要因素。
企业竞争日益激烈,如何解决长久以来的枯燥的排队问题,创造一个轻松的个性化的窗口环境,就显得日益重要。
由此,排队管理系统应运而生。
本课题研究的目的是研制一款无人排队的排队叫号机,它主要由主控制器、键盘、数码管显示电路、蜂鸣器电路等部分构成。
采用的主要技是利用单片机进行控制,该系统能够在数码管上显示排队的号码以及当前正在等待的人数,通过按键叫号,由扬声器发出声音。
本系统采用单片机进行控制,利用数码管显示,操作简便,控制灵活,显示清晰,制作成本低,性价比较高,同时免除了令客户不舒服的站立式排队,这种现代化的高科技产品彻底解决了银行、医院等服务性企业普遍存在的站立等候,服务无序的问题,深化并完善了服务的质量。
关键词:
排队叫号;LED;STC89C52
目录
设计要求1
1方案论证与对比1
1.1方案一1
1.2方案二1
1.3键盘连接方式方案比较1
方案一:
独立式键盘1
方案二:
矩阵式键盘1
1.4系统方案对比论证2
2单元电路设计2
2.1主控制芯片2
2.3复位电路设计4
2.4蜂鸣器电路设计图4
2.5LED显示电路5
3系统软件工程流程图6
3.1主程序流程图6
3.2蜂鸣器流程图7
3.3键盘工作流程图8
4系统功能测试与整体指标8
4.1软件测试8
4.2硬件测试9
5详细仪器清单9
6总结与思考及致谢9
参考文献10
附录一:
设计原理图11
附录二:
程序12
基于STC89C52的排队叫号机课程设计
设计要求
用户从客户机通过按键领取排队的号码,由数码管显示号码和当前需要等待的人数。
工作人员从主机通过按键来完成报号,由数码管显示叫到的号码,并发出蜂鸣声并把叫到的号码用串口通信的方式传给客户机。
1方案论证与对比
1.1方案一
系统主体采用89C52单片机实现在系统复位方面选择X2502芯片而不是按键复位,按键复位电路简单但是利用X2502芯片复位可以减少对电路板的空间需求,x2502的看门口定时器功能还可以对单片机提供独立的保护系统,通过蜂鸣器。
键盘,步进电机实现其功能。
1.2方案二
采用89c52单片机通过与8255串口相连,通过键盘数码管的显示,由相同频率的方波驱动蜂鸣器发出声音。
1.3键盘连接方式方案比较
方案一:
独立式键盘
一个独立式键盘,每一个按键的一端都接地,另一端接mega16的I/O口。
独立式键盘每一按键都需要一根I/O线,占用mega16的硬件资源较多。
因此独立式键盘只适合按键较少的场合。
键盘是一组按键或开关的集合,键盘接口向计算机提供被按键的代码。
特点:
使方便、结构复杂、成本高。
方案二:
矩阵式键盘
我们采用4×4矩阵式键盘,键盘的行线X0~X3通过电阻接+5V,当键盘没有键闭合时,所有的行线和列线断开,行线X0~X3均呈高电平。
当键盘上某一键闭合时,该键所对应的行线与列线短路,此时该行线的电平将由被短路的列线电平所决定。
如果将行线接至单片机的输入端口,列线接至单片机的输出端口,则在单片机的控制下使列线Y0为低电平,其余4根列线Y1、Y2、Y3均为高电平,然后单片机读输入口状态(即键盘行线状态),若X0、X1、X2、X3均为高电平,则Y0这一列上没有键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态。
如果Y0这一列没有键闭合,紧接着使列线Y1为低电平,其余列线为高电平,用同样的方法检查Y1这一列有无键闭合,如此类推。
这种逐行逐列地检查键盘状态的过程称为对键盘的扫描。
CPU对键盘的扫描可以采取程序控制的随机方式,CPU空闲时才扫描键盘;也可以采取定时控制方式,每隔一段时间,CPU对键盘扫描一次;还可以采用中断方式,当键盘上有键闭合时,向CPU请求中断,CPU响应键盘发出的中断请求,对键盘进行扫描,以识别哪一个键处于闭合状态,并对键输入信息作相应处理[2]。
1.4系统方案对比论证
因为采用x25025和步进电机实现其功能虽然能见效对电路板的空间需求,但实现起来较麻烦,且我们的开发板上没有X2502hen步进电机,所以我们选择较简单的第种方案二,对于键盘选用,因为如果采用独立式键盘AVRmega16的I/O口对于方案二来说已经足够,我们选用方案一——独立式键盘。
2单元电路设计
2.1主控制芯片
图1STC89c52引脚图
2.28255串口结构图
图28255引脚图
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
A0,A1:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.
当A0=0,A1=0时,PA口被选择;
当A0=0,A1=1时,PB口被选择;
当A0=1,A1=0时,PC口被选择;
当A0=1.A1=1时,控制寄存器被选[4]。
2.3复位电路设计
下图为复位电路原理图,复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序,并使其它功能单元处于一个确定的初始状态。
本复位电路采用的是按键复位,它是通过复位端经电阻与VCC电源接通而实现的,它兼具上电复位功能。
因本系统的晶振的频率为12MHz,所以,复位信号持续时间应当超过2μS才能完成复位操作。
图3复位电路结构图
2.4蜂鸣器电路设计图
图4蜂鸣器电路图
如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R4后由单片机的P3.3引脚控制,当P3.3输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.3输出低电平时,三极管导通,这样蜂鸣的电流形成回路,发出声音。
因此,我们可以通过程序控制P3.3脚的电平来使蜂鸣器发出声音关闭。
程序中改变单片机P3.3引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色和音调的声音。
另外,改变P3.3输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这我们都可以通过编程验证。
2.5LED显示电路
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有:
发光二极管LED显示器、液晶LCD显示器、CRT显示器等。
LED显示器是现在最常用的显示器之一,如下图所示。
如图3-3所示,采用动态扫描显示,由6个数码管,8255I/O扩展芯片构成,通
过不断地对8255PA、PC口进行动态扫描[1]。
图5LED显示图
发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。
分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管通电发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
3系统软件工程流程图
本程序可以实现课程设计的基本要求,并可以通过按键进行排队叫号。
3.1主程序流程图
图6主机程序流程图
图7从机程序流程图
3.2蜂鸣器流程图
图9蜂鸣器流程图
图8蜂鸣器程序流程图
3.3键盘工作流程图
图9键盘工作流程图
4系统功能测试与整体指标
4.1软件测试
(1)打开KeilμVision3,新建Keil项目,选择AT89S52单片机作为CPU,新建C源文件,编写程序,并将其导入到“SourceGroup1”中。
在“OptionsforTarget”对话窗口中,选中“Output”选项卡中的“CreateHEXFile”选项和“Debug”选项卡中的“Use:
ProteusVSMSimulator”选项。
编译源程序,改正程序中的错误。
(2)在ProteusISIS中,选中AT89S52并单击鼠标左键,打开“EditComponent”对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“ProgramFile”栏中,选择先前用Keil生成的.HEX文件。
在ProteusISIS的菜单栏中选择“File”→“SaveDesign”选项,保存设计。
在ProteusISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“UseRemoteDebugMonitor”选项,以支持与Kile的联合调试。
(3)在Kile的菜单栏中选择“Debug”→“Start/StopDebugSession”选项,或者直接单击工具栏中的“Debug>Start/StopDebugSession”图标,进入程序调试环境。
按“F5”键,顺序运行程序。
调出“ProteusISIS”界面,得到程序运行结果。
4.2硬件测试
通过独立按键取号及呼号,可以通过复位电路按复位键,重新排队,键盘与主控芯片89C52与8255芯片相连,通过内部时钟的中断产生溢出延时,从而在蜂鸣器P3.3口产生不同频率的方波,继而叫号。
5详细仪器清单
表格1仪表清单
仪器名称
数量
8255芯片
1
89C52芯片
1
键盘
1
蜂鸣器
1
数码管(LED)
6
6总结与思考及致谢
作为一名自动化专业的大三学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。
其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:
PCB绘图软件,c语言、模拟和数字电路知识等。
虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
最后,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
另外,这次课程设计让我感到了团队合作的重要性。
在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。
还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。
2周的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
参考文献
[1] 蒋廷彪、刘电霆等.单片机原理及应用[M].重庆:
重庆大学出版社,2005年1月.
[2] 李光、谢然苗.8051实验指导书电子电气综合实训系统[M].北京:
北京航天航空大学出版社,2009年9月.
[3]吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:
清华大学出版社,2002.
[5]张国勋.缩短ICL7135A/D采样程序时间的一种方法[J].北京航空航天大学学报,1993年第一期.
[6]高峰.单片微型计算机与接口技术[M].北京:
科学出版社,2003.
[7]张毅刚.MCS-51单片机实用子程序设计[M].哈尔滨:
哈尔滨工业大学出版社,2003.
[8]谢自美.电子线路设计.实验.测试[M](第二版).武汉:
华中科技大学出版社.
[9]康华光.电子技术基础模拟部分[M](第四版).北京:
高等教育出版社,1999.
[10]李华.MCS-51系列单片机实用接口技术[M].北京:
北京航空航天大学出版社,1993.
[11]何立民.单片机应用技术选篇[M].北京:
北京航空航天大学出版社,1997.
[12]徐爱卿.MCS一51系列单片机原理及应用[M].北京:
北京航空航天大学出版社,1998.
[13]刘乐善.微型计算机接口技术及应用[M].武汉:
华中理工大学出版社,1993.
[14]王守中.51单片机开发入门与典型实例[M].北京:
人民邮电出版社,2007:
80~102.
[15]余永权.ATMEL89系列单片机应用技术[M].北京:
北京航空航天大学出版社,2002
附录一:
设计原理图
图10设计原理图
附录二:
程序
从机
#include
#include
#definePAXBYTE[0xd9ff]
#definePBXBYTE[0xdbff]
#definePCXBYTE[0xddff]
#defineCONTROLXBYTE[0xdfff]
#defineucharunsignedchar
sbitInt1=P3^3;
ucharcnum=0,num1,num2,dat,dat1,dat2;
ucharcodetable[]={0XA0,0XBB,0X62,0X2A,0X39,
0X2C,0X24,0XBA,0X20,0X28};//不带点的数码管段码0~9
voidinit(void)
{
CONTROL=0X81;//8255....
TMOD=0X20;
TH1=0XF3;
TL1=0XF3;
TR1=1;
SCON=0X50;//......串口初始化
EA=1;
ES=1;
PA=0xff;
}
voiddelay(ucharz)
{
ucharx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidkeyscan()
{
Int1=1;
if(Int1==0)
{
delay(5);
if(Int1==0)
{
cnum++;
while(!
Int1);
delay(5);
while(!
Int1);
if(cnum==100)
cnum=0;
}
}
}
voiddisplay()
{
num1=cnum/10;//十位数
num2=cnum%10;//个位数
PA=0xdf;
PB=table[num2];
delay(20);
PA=0xef;
PB=table[num1];
delay(20);
if(dat>cnum)
{
dat=cnum;
}
dat1=(cnum-dat)/10;
dat2=(cnum-dat)%10;
PA=0xfe;
PB=table[dat1];
delay(20);
PA=0xfd;
PB=table[dat2];
delay(20);
}
voidmain()
{
init();
while
(1)
{
keyscan();
display();
}
}
voidser()interrupt4
{
if(RI==1)
{
RI=0;
dat=SBUF;//接收
}
}
主机
#include
#include
#definePAXBYTE[0xd9ff]
#definePBXBYTE[0xdbff]
#definePCXBYTE[0xddff]
#defineCONTROLXBYTE[0xdfff]
#defineucharunsignedchar
sbitInt1=P3^2;
sbitFM=P3^3;
ucharznum=0,num1,num2,i;
voiddisplay();
ucharcodetable[]={0XA0,0XBB,0X62,0X2A,0X39,
0X2C,0X24,0XBA,0X20,0X28};//不带点的数码管段码0~9
voidinit(void)
{
CONTROL=0X81;//8255....
TMOD=0X20;
TH1=0XF3;
TL1=0XF3;
TR1=1;
SCON=0X50;//......串口初始化
EA=1;
ES=1;
EX0=1;
PA=0xff;
FM=1;
}
voiddelay(ucharz)
{
ucharx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voiddisplay()
{
num1=znum/10;//十位数
num2=znum%10;//个位数
PA=0xdf;
PB=table[num2];
delay(10);
PA=0xef;
PB=table[num1];
delay(10);
}
voidmain()
{
init();
while
(1)
{
display();
}
}
voidser()interrupt4
{
TI=0;
}
voidser1()interrupt0
{
for(i=0;i<200;i++)
{
FM=!
FM;
delay(5);
}
znum++;
while(!
Int1);
delay(5);
while(!
Int1);//松手检测
FM=1;
if(znum==100)
znum=0;
SBUF=znum;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排队 叫号