单片机原理及应用课程设计排队叫号机_第1页
单片机原理及应用课程设计排队叫号机_第2页
单片机原理及应用课程设计排队叫号机_第3页
单片机原理及应用课程设计排队叫号机_第4页
单片机原理及应用课程设计排队叫号机_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湖南人文科技学院 课程设计报告 课程名称课程名称: 单片机原理及应用课程设计 设计题目设计题目: 排队叫号机 系系 别别: 通信与控制工程系 专专 业业: 自动化 班班 级级: 08 级自动化一班 学生姓名学生姓名: 学学 号号: 起止日期起止日期: 2010 年 12 月 20 日 2010 年 12 月 31 日 指导教师指导教师: 教研室主任教研室主任: 指导教师评语指导教师评语: 指导教师签名: 年 月 日 成绩成绩 项项 目目权重权重 唐立志唐立志李蕾李蕾 1、设计过程中出勤、学习态度等方面0.2 2、课程设计质量与答辩0.5 3、设计报告书写及图纸规范程度0.3 成成 绩绩 评评

2、定定 总 成 绩 教研室审核意见: 教研室主任签字: 年 月 日 教学系审核意见: 主任签字: 年 月 日 摘摘 要要 随着市场经济的发展,客户在市场交易中的地位越来越重要,所以现在的很多服 务性的企业都提出了各种尊重客户、维护客户利益的制度与行为准则, “客户就是上帝” 是现在的很多的企业对员工提出的要求,但是针对现在的市场情况,就要真正站在客 户的角度来考虑问题。个人化的服务已成趋势,所以,近些年来“一米线”的服务已 满足不了人们的需求。站立等候已经过时,舒适的环境已成竞争的重要手段,许多银 行、医院等营业厅不仅有了沙发、报纸,还有纯净水、糖果和咖啡。传统柜台服务存 在不安全隐患,偷盗密码

3、已经不再是个别案例。多窗口类别的服务往往让人无所适从, 客户盼望只排一个队,只接受“一对一”的服务。很明显,营业窗口是形成银行、电 信、航空、医院等企业的公众形象的重要因素。企业竞争日益激烈,如何解决长久以 来的枯燥的排队问题,创造一个轻松的个性化的窗口环境,就显得日益重要。由此, 排队管理系统应运而生。 本课题研究的目的是研制一款无人排队的排队叫号机,它主要由主控制器、键盘、 数码管显示电路、蜂鸣器电路等部分构成。 采用的主要技是利用单片机进行控制,该 系统能够在数码管上显示排队的号码以及当前正在等待的人数,通过按键叫号,由扬 声器发出声音。本系统采用单片机进行控制,利用数码管显示,操作简便

4、,控制灵活, 显示清晰,制作成本低,性价比较高,同时免除了令客户不舒服的站立式排队,这种 现代化的高科技产品彻底解决了银行、医院等服务性企业普遍存在的站立等候,服务 无序的问题,深化并完善了服务的质量。 关键词:关键词:排队叫号;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.5 led 显示电路 .5 3

5、 系统软件工程流程图 .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 1 基于 stc89c52 的排队叫号机课程设计 设计要求 用户从客户机通过按键领取排队的号码,由数码管显示号码和当前需要等待的 人数。 工作人员从主机通过按键来完成报号,由数码管显示叫到的号码,并发出蜂鸣 声并把叫到的号码用串口通信的方式传给客户机。 1 方案论证与对比 1.1 方案一 系统

6、主体采用 89c52 单片机实现在系统复位方面选择 x2502 芯片而不是按键复 位,按键复位电路简单但是利用 x2502 芯片复位可以减少对电路板的空间需求, x2502 的看门口定时器功能还可以对单片机提供独立的保护系统,通过蜂鸣器。键 盘,步进电机实现其功能。 1.2 方案二 采用 89c52 单片机通过与 8255 串口相连,通过键盘数码管的显示,由相同频率 的方波驱动蜂鸣器发出声音。 1.3 键盘连接方式方案比较 方案一:方案一:独立式键盘 一个独立式键盘,每一个按键的一端都接地,另一端接 mega16 的 i/o 口。独立 式键盘每一按键都需要一根 i/o 线,占用 mega16

7、的硬件资源较多。因此独立式键盘 只适合按键较少的场合。键盘是一组按键或开关的集合,键盘接口向计算机提供被 按键的代码。特点:使方便、结构复杂、成本高。 方案二:方案二:矩阵式键盘 我们采用 44 矩阵式键盘,键盘的行线 x0x3通过电阻接+5v,当键盘没有键 闭合时,所有的行线和列线断开,行线 x0x3均呈高电平。当键盘上某一键闭合时, 该键所对应的行线与列线短路,此时该行线的电平将由被短路的列线电平所决定。 如果将行线接至单片机的输入端口,列线接至单片机的输出端口,则在单片机的控 制下使列线 y0为低电平,其余 4 根列线 y1、y2、y3均为高电平,然后单片机读输 入口状态(即键盘行线状态

8、),若 x0、x1、x2、x3均为高电平,则 y0这一列上没有 2 键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和0相交的键处于 闭合状态。如果 y0这一列没有键闭合,紧接着使列线 y1为低电平,其余列线为高 电平,用同样的方法检查 y1这一列有无键闭合,如此类推。这种逐行逐列地检查键 盘状态的过程称为对键盘的扫描。cpu 对键盘的扫描可以采取程序控制的随机方式, cpu 空闲时才扫描键盘;也可以采取定时控制方式,每隔一段时间,cpu 对键盘扫 描一次;还可以采用中断方式,当键盘上有键闭合时,向 cpu 请求中断,cpu 响 应键盘发出的中断请求,对键盘进行扫描,以识别哪一个键处于

9、闭合状态,并对键 输入信息作相应处理2。 1.4 系统方案对比论证 因为采用 x25025 和步进电机实现其功能虽然能见效对电路板的空间需求,但实现起来较麻 烦,且我们的开发板上没有 x2502hen 步进电机,所以我们选择较简单的第种方案二,对于键盘 选用,因为如果采用独立式键盘 avr mega16 的 i/o 口对于方案二来说已经足够,我们选用方 案一独立式键盘。 2 单元电路设计 2.1 主控制芯片 图 1 stc89c52 引脚图 3 2.2 8255 串口结构图 图 2 8255 引脚图 reset:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制 寄存器)均被清除,所

10、有 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。 d0d7:三态双向数据总线, 8255 与 cpu 数据传送的通道,当 cpu 执

11、行 输入输出指令时,通过它实现 8 位数据的读 /写操作,控制字和状态信息也通过 数据总线传送。 pa0pa7:端口 a 输入输出线,一个 8 位的数据输出锁存器 /缓冲器, 一 个 8 位的数据输入锁存器。 pb0pb7:端口 b 输入输出线,一个 8 位的 i/o 锁存器, 一个 8 位的输入 输出缓冲器。 pc0pc7:端口 c 输入输出线,一个 8 位的数据输出锁存器 /缓冲器, 一 个 8 位的数据输入缓冲器。端口 c 可以通过工作方式设定而分成 2 个 4 位的端 4 口, 每个 4 位的端口包含一个 4 位的锁存器,分别与端口 a 和端口 b 配合使 用,可作为控制信号输出或状态

12、信号输入端口。 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 电源接 通而实现的,它兼具上电复位功能。因

13、本系统的晶振的频率为 12mhz,所以,复位 信号持续时间应当超过 2s 才能完成复位操作。 s5 r9 r10 1k 100 reset vcc sw-pb c3 22u 图 3 复位电路结构图 5 2.4 蜂鸣器电路设计图 图 4 蜂鸣器电路图 如图所示,蜂鸣器的正极接到 vcc(5v)电源上面,蜂鸣器的负极接到三极 管的发射极 e,三极管的基级 b 经过限流电阻 r4 后由单片机的 p3.3 引脚控制,当 p3.3 输出高电平时,三极管 t1 截止,没有电流流过线圈,蜂鸣器不发声;当 p3.3 输出低电平时,三极管导通,这样蜂鸣的电流形成回路,发出声音。因此,我们可 以通过程序控制 p3

14、.3 脚的电平来使蜂鸣器发出声音关闭。程序中改变单片机 p3.3 引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色和音调的声 音。另外,改变 p3.3 输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小, 这我们都可以通过编程验证。 2.5 led 显示电路 显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产 品工艺,单片机应用系统中常用的显示器有: 发光二极管 led 显示器、液晶 lcd 显示器、crt 显示器等。led 显示器是现在最常用的显示器之一,如下图所示。 如图 3-3 所示,采用动态扫描显示,由 6 个数码管,8255i/o 扩展芯片构成, 通

15、 过不断地对 8255pa、pc 口进行动态扫描1。 6 图 5 led 显示图 发光二极管(led)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独 使用,也可以组装成分段式或点阵式 led 显示器件(半导体显示器)。分段式显示 器(led 数码管)由 7 条线段围成 8 字型,每一段包含一个发光二极管。外加正向 电压时二极管通电发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各 种字形或符号。 3 系统软件工程流程图 本程序可以实现课程设计的基本要求,并可以通过按键进行排队叫号。 3.1 主程序流程图 上电初始 化 按呼号键 叫号,蜂鸣器发声并发 送至从机 图 6 主机程序流程图

16、7 上电初始化 按取号键 显示号码 图 7 从机程序流程图 3.2 蜂鸣器流程图 图 9 蜂鸣器流程图 图 8 蜂鸣器程序流程图 3.3 键盘工作流程图 开始 延时 end p3.3 置低 延时 p3.3 置高 8 开始 初始化 读入键值 key=0 调用 keyscan 子程 序 图 9 键盘工作流程图 4 系统功能测试与整体指标 4.1 软件测试 (1)打开 keil vision3,新建 keil 项目,选择 at89s52 单片机作为 cpu,新 建 c 源文件,编写程序,并将其导入到“source group 1”中。在“options for target” 对话窗口中,选中“ou

17、tput”选项卡中的“create hex file”选项和“debug”选项卡中的 “use:proteus vsm simulator”选项。编译源程序,改正程序中的错误。 (2)在 proteus isis 中,选中 at89s52 并单击鼠标左键,打开“edit component”对话窗口,设置单片机晶振频率为 12mhz,在此窗口中的“program file” 栏中,选择先前用 keil 生成的.hex 文件。在 proteus isis 的菜单栏中选择“file” “save design”选项,保存设计。在 proteus isis 的菜单栏中,打开“debug”下拉菜 单,

18、在菜单中选中“use remote debug monitor”选项,以支持与 kile 的联合调试。 9 (3)在 kile 的菜单栏中选择“debug”“start/stop debug session”选项,或者直 接单击工具栏中的“debugstart/stop debug session”图标,进入程序调试环境。按 “f5”键,顺序运行程序。调出“proteus isis”界面,得到程序运行结果。 4.2 硬件测试 通过独立按键取号及呼号,可以通过复位电路按复位键,重新排队,键盘与主 控芯片 89c52 与 8255 芯片相连,通过内部时钟的中断产生溢出延时,从而在蜂鸣 器 p3.3

19、 口产生不同频率的方波,继而叫号。 5 详细仪器清单 表格 1 仪表清单 仪器名称数量 8255 芯片1 89c52 芯片1 键盘1 蜂鸣器1 数码管(led)6 6 总结与思考及致谢 作为一名自动化专业的大三学生,我觉得做单片机课程设计是十分有意义的, 而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在 课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们 所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提 供了良好的实践平台。在做本次课程设计的过程中,我感触最深的当属查阅大量的 设计资料了。为了让自己的设计更加完善,查阅这方面

20、的设计资料是十分必要的, 同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以 抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实 际的构想永远只能是构想,永远无法升级为设计。其次,在这次课程设计中,我们 运用到了以前所学的专业课知识,如:pcb 绘图软件,c 语言、模拟和数字电路知识 等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很 高,这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就必须做到: 在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有 10 哪些资源;要有一个清晰的思路和一个完整的

21、的软件流程图;在设计程序时,不能 妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养 成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就 能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到 问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次 再碰到同样的问题。另外,这次课程设计让我感到了团队合作的重要性。在团队中, 我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们 的设计产生影响。还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。 2 周的课程设计结束了,但是从中学到的知识会

22、让我受益终身。发现、提出、分析、 解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。 参考文献 1 蒋廷彪、刘电霆等. 单片机原理及应用m.重庆:重庆大学出版社,2005 年 1 月. 2 李光、谢然苗. 8051 实验指导书电子电气综合实训系统m.北京:北京航天航 空大学出版社,2009 年 9 月. 3 吴金戌,沈庆阳,郭庭吉. 8051 单片机实践与应用m.北京:清华大学出版 社,2002. 5 张国勋. 缩短 icl7135a/d 采样程序时间的一种方法j.北京航空航天大学学报, 1993 年第一期. 6 高峰. 单片微型计算机与接口技术m.北京:科学出版社,2003.

23、7张毅刚. mcs-51 单片机实用子程序设计m. 哈尔滨: 哈尔滨工业大学出版社, 2003. 8谢自美. 电子线路设计.实验.测试m(第二版). 武汉: 华中科技大学出版社. 9康华光. 电子技术基础 模拟部分m(第四版). 北京: 高等教育出版社,1999. 10李华. mcs51 系列单片机实用接口技术m. 北京: 北京航空航天大学出版社, 1993. 11何立民. 单片机应用技术选篇m. 北京: 北京航空航天大学出版社,1997. 12徐爱卿. mcs 一 51 系列单片机原理及应用m. 北京: 北京航空航天大学出版 11 社,1998. 13刘乐善. 微型计算机接口技术及应用m.

24、武汉: 华中理工大学出版社,1993. 14王守中. 51 单片机开发入门与典型实例m.北京:人民邮电出版社, 2007:80102. 15余永权. atmel89 系列单片机应用技术m. 北京: 北京航空航天大学出版社, 2002 附录一:设计原理图 图 10 设计原理图 12 附录二:程序附录二:程序 从机 #include #include #define pa xbyte0 xd9ff #define pb xbyte0 xdbff #define pc xbyte0 xddff #define control xbyte0 xdfff #define uchar unsigned c

25、har sbit int1=p33; uchar cnum=0,num1,num2,dat,dat1,dat2; uchar code table=0xa0,0xbb,0x62,0x2a,0x39, 0x2c,0x24,0xba,0x20,0x28; /不带点的数码管段码 09 void init(void) control=0x81;/8255. tmod=0x20; th1=0xf3; tl1=0xf3; tr1=1; scon=0x50;/.串口初始化 ea=1; es=1; pa=0 xff; void delay(uchar z) uchar x,y; for(x=z;x0;x-)

26、for(y=110;y0;y-); void keyscan() 13 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=0 xdf; pb=tablenum2; delay(20); pa=0 xef; pb=tablenum1; delay(20); if(datcnum) dat=cnum; dat1=(cnum-dat)/10; dat2=(cnum-dat)%10; pa=0 xfe; 14 pb=tabledat1; delay(20); pa=0 xfd; pb=tabledat2; delay(20); void main() init(); while(1) keyscan(); display(); void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论