排队叫号机文档绝对是你要的.docx

上传人:b****2 文档编号:1831020 上传时间:2023-05-01 格式:DOCX 页数:19 大小:129.77KB
下载 相关 举报
排队叫号机文档绝对是你要的.docx_第1页
第1页 / 共19页
排队叫号机文档绝对是你要的.docx_第2页
第2页 / 共19页
排队叫号机文档绝对是你要的.docx_第3页
第3页 / 共19页
排队叫号机文档绝对是你要的.docx_第4页
第4页 / 共19页
排队叫号机文档绝对是你要的.docx_第5页
第5页 / 共19页
排队叫号机文档绝对是你要的.docx_第6页
第6页 / 共19页
排队叫号机文档绝对是你要的.docx_第7页
第7页 / 共19页
排队叫号机文档绝对是你要的.docx_第8页
第8页 / 共19页
排队叫号机文档绝对是你要的.docx_第9页
第9页 / 共19页
排队叫号机文档绝对是你要的.docx_第10页
第10页 / 共19页
排队叫号机文档绝对是你要的.docx_第11页
第11页 / 共19页
排队叫号机文档绝对是你要的.docx_第12页
第12页 / 共19页
排队叫号机文档绝对是你要的.docx_第13页
第13页 / 共19页
排队叫号机文档绝对是你要的.docx_第14页
第14页 / 共19页
排队叫号机文档绝对是你要的.docx_第15页
第15页 / 共19页
排队叫号机文档绝对是你要的.docx_第16页
第16页 / 共19页
排队叫号机文档绝对是你要的.docx_第17页
第17页 / 共19页
排队叫号机文档绝对是你要的.docx_第18页
第18页 / 共19页
排队叫号机文档绝对是你要的.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

排队叫号机文档绝对是你要的.docx

《排队叫号机文档绝对是你要的.docx》由会员分享,可在线阅读,更多相关《排队叫号机文档绝对是你要的.docx(19页珍藏版)》请在冰点文库上搜索。

排队叫号机文档绝对是你要的.docx

排队叫号机文档绝对是你要的

 

课程设计报告

课程名称:

 

设计题目:

系别:

专业:

班级:

学生姓名:

学号:

指导教师评语:

 

指导教师签名:

年月日

成绩评定

项目

权重

成绩

杨礼

王进

1、设计过程中出勤、学习态度等方面

0.2

2、课程设计质量与答辩

0.5

3、设计报告书写及图纸规范程度

0.3

总成绩

教研室审核意见:

 

教研室主任签字:

年月日

教学系审核意见:

 

主任签字:

年月日

摘要

排队叫号管理系统(排队机、叫号机)是针对银行、工商、税务、通讯、政府机构等部门的大厅工作流程设计的,是利用电脑的科学管理客户排队的系统,很好地解决了客户在服务机构办理业务时所遇到的各种排队、拥挤和混乱现象,为客户办理业务带来莫大的方便和愉悦。

本课题研究的目的是研制一款无人排队的排队叫号机,它主要由主控制器、键盘、数码管显示电路、蜂鸣器电路等部分构成。

系统利用单片机进行控制,通过串行通信方式传输处理数据;通过按键取号,在数码管上显示排队的号码以及当前正在等待的人数;通过按键叫号,在数码管上显示叫到的号码,由扬声器发出声音提示客户。

同时免除了令客户不舒服的站立式排队,这种现代化的高科技产品彻底解决了银行、医院等服务性企业普遍存在的站立等候,服务无序的问题,深化并完善了服务的质量。

本系统采用单片机进行控制,利用数码管显示,蜂鸣器鸣叫提示的人机交互界面,模拟排队管理系统,科学地处理各种排队情况。

操作简便,控制灵活,显示清晰,制作成本低,性价比较高。

关键词:

排队叫号机;串行通信;独立键盘;数码管动态显示;蜂鸣器

 

目录

设计要求1

1方案论证与对比1

1.1方案一1

1.2方案二1

1.3系统方案对比论证2

2硬件电路设计与分析2

2.1排队取号机主电路设计2

2.2排队取号机通信电路设计2

2.3动态显示电路3

2.4叫号电路3

3系统软件设计与分析4

3.1软件流程图4

3.2动态显示模块5

3.3叫号模块5

3.4串行通信模块6

4系统仿真及调试6

4.1软件调试6

4.2硬件调试6

4.2.1动态显示模块6

4.2.2叫号模块6

4.2.3串行通信模块7

4.3调试结果7

5设计总结7

6致谢7

7详细仪器清单7

参考文献9

附录一:

整体电路图10

附录二:

程序清单11

排队叫号机

设计要求

利用单片机的串行通信方式,完成一个科学管理各种复杂排队情况的排队叫号系统。

具体要求如下:

(1)主机:

通过按键来完成报号,由数码管显示叫到的号码,并发出蜂鸣声。

(2)客户端:

通过按键完成取号,由数码管显示号码和当前需要等待的人数。

(3)主机和客户端用串口通信,在20人等待的队列中进行测试。

1方案论证与对比

1.1方案一

系统采用如图1所示的电路,通过STC89C52的I/O口的扩展一块NECD8255AC-2构成的矩阵键盘,完成排队取号的流程,单片机控制数码管显示排队等待情况,控制蜂鸣器发声完成叫号功能。

图1采用矩阵键盘实现功能

1.2方案二

系统采用如图2所示的电路,通过STC89C52单片机直接扩展的独立键盘,完成排队取号流程(本系统直接利用系统的中断0按键控制),单片机控制数码管显示排队等待情况,控制蜂鸣器发声完成叫号功能。

图2采用独立键盘实现功能

1.3系统方案对比论证

因为采用矩阵键盘完成排队取号流程,但客户较多的时候要实现排队取号的功能,就要占去过多的I/O端口,操作起来也比较复杂,而方案二的独立键盘操作控制简单,占用主机资源少,所以选择方案二,采用独立键盘控制排队取号,通过串行通信的方式,模拟排队取号管理系统的流程显得更加方便、科学。

2硬件电路设计与分析

2.1排队取号机主电路设计

主电路原理图见附录一。

系统采用STC89C52单片机完成整个系统的控制流程。

从机通过单片机的中断0按键,当系统检测到按下时完成取号功能。

主机同样通过单片机的中断0按键,当系统检测到按下时完成叫号功能。

图3串行通信电路

2.2排队取号机通信电路设计

通信电路采用如图3所示的串行通信电路,通过单片机的串行通信端口进行数据传递。

2.3动态显示电路

由于需要动态显示排队等待情况,需要使用到LED动态显示功能,考虑到合理利用STC89C52单片机的I/O口资源,本系统通过一块NECD8255AC-2外扩LED电路进行动态显示。

由8255芯片的PA、PB口联合控制数码管显示排队等待情况。

采用如图4、图6所示电路实现LED动态显示功能。

图48255芯片引脚图

2.4叫号电路

此电路采用如图5所示的电路,通过单片机的P33端口输出一定频率的方波,使蜂鸣器发声,完成叫号,提醒客户。

图5

图6数码管显示电路

3系统软件设计与分析

3.1软件流程图

本程序可以实现课程设计的基本要求。

客户端通过按键完成取号,数码管显示排队、等待人数情况;主机通过按键完成叫号,数码管显示叫到的号码,并通过蜂鸣器发声提示;客户端和主机通过串行通信方式完成排队取号功能。

程序流程如图7所示:

图7总体流程图

3.2动态显示模块

此模块由于要使数码显示管不同的数值,数字各位对应的段选值不同,所以位选不能同时打开,所以需要采用动态显示实现同时显示排队号码以及等待的人数。

最后采用如图8所示的电路完成要求功能。

图8动态显示流程图

3.3叫号模块

此模块采用无源蜂鸣器发声,采用如图9所示电路,通过单片机向P33端口输出一定频率的方波,就可使蜂鸣器的发声。

图9叫号模块电路

3.4串行通信模块

设计要求客户端与主机通过串行通信方式,采用如图3所示的常用双机通信方式,通过使用定时器1采用2400bps的波特率进行通信。

4系统仿真及调试

4.1软件调试

(1)在Keil软件中建立工程,新建工程,选择AtmelAT89C52芯片,创建源代码,进行编译,在Keil中仿真调试。

(2)在Protues软件中,根据功能模块,画出相应原理图。

利用Keil中生成的*.hex文件与Keil进行程序联调。

4.2硬件调试

4.2.1动态显示模块

开始调试时,在Protues软件上可以很好模拟动态显示效果,但硬件电路数码管显示效果失真,考虑到延时在动态显示中的重要作用,通过调小延时时间,使数码管稳定、准确地显示。

4.2.2叫号模块

开始调试时,由于程序产生的方波频率比较低,导致蜂鸣器无法正常工作,通过查找资料,熟悉蜂鸣器有特定的工作频率范围,调试一合适方波频率,使蜂鸣器正常发声。

4.2.3串行通信模块

开始调试时,通过串口调试助手进行调试,但效果始终不出来,通过向同学请教,设置好软件的波特率在调试可以实现,最后把程序细节部分调试,使串行通信部分正常工作。

4.3调试结果

进过调试,系统可以实现对20人的队伍排队取号,客户端通过按键可以完成取号,并通过数码管显示排队等待情况,主机通过按键可以实现叫号,并可以通过蜂鸣器鸣叫和数码管显示的双重提示。

 

5设计总结

(1)通过本次课程设计,加深了对于怎样学好单片机这门课程的理解,学单片机就是要多实践,老师领我们进入单片机世界,精通它就得靠我们自己,那就是多实践,灵活运用自己所学知识到自己的作品当中。

(2)在程序设计过程中遇到的很多问题,阻碍设计的过程,通过总结,深深体会到程序设计的时候模块化处理的重要性,可以先画好程序流程图,然后各个模块各个击破。

同时遇到问题时可以同学之间相互讨论、回到书本在学习,更有助于加深对所学知识的理解。

 

6致谢

这次课程设计对我来说有着深远的意义,让我对未来的路又看得清楚了些。

在此我要深深的感谢那些传授我知识的老师们,是你们无私的奉献,才会有如今的我们;要感谢父母一直给我的支持,感谢他们的关怀;还要感谢同学对我的鼓励,感谢搭档对我的认可,让我能尽情的发挥我的能力,激扬去验证自己的想法。

 

7详细仪器清单

表1仪器清单

类型

规格

数量

备注

5V直流电源

ZH-6003

2

USB232converter

U232-P9

2

电阻

1k

28个

芯片

NECD8255AC-2

2片

扩展I/O

芯片

STC89C52

2片

晶振

12M

2个

蜂鸣器

无源

1个

数码管

3位共阳极

4个

极性电容

0.1UF

2个

非极性电容

30pf

2个

按键开关

2个

三极管

9015

12个

参考文献

[1]张鑫.单片机原理及应用[M].北京:

电子工业出版社,2005.8.

[2]邱关源、罗先觉.电路[M].北京:

高等教育出版社,2006.5.

[3]康光华.电子技术基础.数字部分[M].北京:

高等教育出版社,2006.1.

[4]康光华.电子技术基础.模拟部分[M].北京:

高等教育出版社,2006.1.

[5]祁伟,杨亭.单片机C51程序设计教程与实验[M].北京:

北京航空航天大学出版社,2006.

[6]楼然苗.李光飞.单片机课程设计指导[M].北京:

北京航空航天大学出版社,2007.4

[7]单片机学习网

附录一:

整体电路图

附录二:

程序清单

头文件:

#include

#include

#definePAXBYTE[0xD9FF]/*PA口地址*/

#definePBXBYTE[0xDAFF]/*PB口地址*/

#definePCXBYTE[0xDDFF]/*PC口地址*/

#defineCONXBYTE[0xDFFF]/*控制字地址*/

取号程序:

#include//头文件

#defineucharunsignedchar

#defineuintunsignedint

uintm,n;

uchari,j,q_head,q_tail;

sbitP32=P3^2;

ucharconsttable[16]={

0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA,

0x20,0x28,0x30,0x25,0xE4,0x23,0x64,0x74,

};

ucharconsttable_queue[]={//20个排队号码

0x00,0x01,0x02,0x03,0x04,0x05,

0x06,0x07,0x08,0x09,0x0a,

0x0b,0x0c,0x0d,0x0e,0x0f,

0x10,0x11,0x12,0x13,0x14,

};

delay(uintk)

{

while(k--);

}

display(ucharp,ucharq)

{

uintb,c,d,e;

b=(uint)p/10;

c=(uint)p%10;

d=(uint)q/10;

e=(uint)q%10;

PA=0xfe;

PB=table[b];

delay(200);

PA=0Xfd;

PB=table[c];

delay(200);

PA=0xef;

PB=table[d];

delay(200);

PA=0Xdf;

PB=table[e];

delay(200);

}

init()

{

CON=0x80;

EA=1;

EX0=1;

SCON=0x50;

TMOD=0x20;

TH1=0xf3;

TL1=0xf3;

TR1=1;

}

voidint0()interrupt0

{

if(P32==0)

{

delay(1200);

if(P32==0)

{

q_tail=table_queue[++m];

i=q_tail;

j=q_tail-q_head;

display(i,j);

}

}

while(P32!

=1)display(i,j);

}

main()

{

init();

q_head=table_queue[++n];

while

(1)

{

display(i,j);

if(m>=n){

TI=0;

SBUF=q_head;

while(!

TI);

RI=0;

while(!

RI)display(i,j);

if(n

{

q_head=table_queue[++n];

j=q_tail-q_head;

}

elseif(n==m)

q_head=table_queue[++n];

}

}

}

叫号程序:

#include//头文件

#defineucharunsignedchar

#defineuintunsignedint

uintj,k;

uchart;

sbitbuzzer=P3^3;

sbitP32=P3^2;

ucharconsttable[16]={

0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA,

0x20,0x28,0x30,0x25,0xE4,0x23,0x64,0x74,};

delay(uinti)

{

while(i--);

}

display(uinti,uintj)

{

PA=0xfe;

PB=table[i];

delay(200);

PA=0Xfd;

PB=table[j];

delay(200);

}

init()

{

CON=0x80;

EA=1;

EX0=1;

SCON=0x50;

TMOD=0x20;

TH1=0xf3;

TL1=0xf3;

TR1=1;

RI=1;

}

beep()

{

uints=500;

while(s--)

{

buzzer=~buzzer;

delay(50);

display(j,k);

}

}

voidint0()interrupt0

{

if(RI==1)

{

t=SBUF;

j=(uint)t/10;

k=(uint)t%10;

display(j,k);

RI=0;

TI=0;

SBUF=0xff;

while(!

TI);

beep();

}

}

main()

{

init();

RI=0;

while

(1)

{

display(j,k);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2