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