基于51单片机的排队机叫号系统设计_第1页
基于51单片机的排队机叫号系统设计_第2页
基于51单片机的排队机叫号系统设计_第3页
基于51单片机的排队机叫号系统设计_第4页
基于51单片机的排队机叫号系统设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、本科生毕业论文(设计)题 目: 基于 51 单片机的排队机叫号系统设计 姓 名: 系 别: 工程系 专 业: 电气工程及其自动化 班 级: 08 电气 3 班 学 号: 指导教师: 2012 年 6 月 10 日目目 录录摘摘 要要.iabstract.ii第一章第一章 绪论绪论.11.1 引言.11.2 排队系统的功能简介.11.2.1 系统的流程图 .11.2.2 取号 .21.2.3 排队 .21.2.4 叫号 .2第二章第二章 排队机叫号系统的硬件电路设计排队机叫号系统的硬件电路设计.42.1 取号机硬件电路设计.42.1.1 取号输入装置电路设计 .42.1.2 mcu 电路设计 .

2、42.1.3 m-150ii 针式打印机电路设计 .62.1.4 lcd 液晶显示电路设计 .82.2 窗口叫号系统硬件电路设计.82.2.1 叫号输入装置电路的设计 .92.2.2 mcu 电路的设计 .92.2.3 窗口 led 显示屏电路 .102.3 主控电路硬件电路设计.122.4 语音及大厅显示硬件电路设计.132.4.1 语音部分电路设计 .132.4.2 lcd 显示部分电路设计 .152.4.3 mcu 电路设计 .152.4 无线通信部分硬件电路设计.15第三章第三章 排队机叫号系统的软件设计排队机叫号系统的软件设计.193.1 取号机软件设计.193.1.1 设计流程图

3、.193.1.2 m-150ii 打印机部分 .193.1.3 lcd12864 驱动部分 .243.2 窗口叫号系统软件设计.303.2.1 设计流程图 .303.2.2 led 显示部分 .303.2.4 mcu 主控部分 .323.3 大厅语音及 lcd 显示部分.333.3.1 设计流程图 .333.3.2 语音系统部分 .343.3.3 主控系统软件设计 .39第四章第四章 系统设计总结分析系统设计总结分析.424.1 设计的实用性.424.2 排队机叫号系统的应用前景.43参考文献参考文献.44致谢致谢.45附录附录 1.46附录附录 2.51青岛农业大学海都学院工程系电气本科毕业

4、设计i基于 51 单片机的排队机叫号系统设计摘 要随着经济的迅速发展,业务数量也迅速增多扩展,以营业大厅为代表的窗口行业,大量客户的拥挤排队已成为了这些网点改善服务品质、提升自身形象的障碍,避免一些不必要的麻烦和冲突。日常研究调查统计发现,没有任何组织管理的排队是最能影响客户心情的因素。有关统计发现,客户等待 10 分钟以上,开始出现浮躁;大于 20分钟后会出现烦感;如果要是超出 40 分钟,很大部分人会因为生气而离开。但排队又是不可避免的,如果让等待的时间变为一段难得的休闲时间,则可在一定程度上有效地降低客户的焦虑情绪。本文分析了国内外对于排队解决方案的利弊,通过总结最终提出自己的见解。而后

5、论述了基于 51 单片机的排队机叫号系统的实现原理,并针对整个系统的硬件结构和软件设计作出了现实可行的方案,并完成了实际模型的制作。该系统的设计通过取号实现了公平的先后顺序排队,避免了因插队、抢队引起的摩擦;关关键键字:字:单片机、打印机、无线通信、语音系统青岛农业大学海都学院工程系电气本科毕业设计iiqueue number calling system design based on 51mcuabstractwith the rapid development of the economy, business volume also increased rapidly extended

6、to the business hall, as the representative of the window industry, a large number of customers queuing has become crowded these outlets to improve service quality, enhance their image barriers, effectively reduce and avoid the employees and customers of the conflict. behavioral scientists found, ju

7、mping the queue is the impact of customer service is one of the main reasons. the results show that, for more than 10 minutes, emotional impatient to start; more than 20 minutes then begins to annoy; more than 40 minutes, often angry and leave. but queueing is inevitable, if the waiting time is a ra

8、re leisure time, are in a certain extent can effectively reduce the clients anxiety.this paper analyzes the external address queue on the issue of the status quo, analysis of the advantages and disadvantages of various methods, and proposes own opinion. then discusses the51 based on the queue number

9、 calling system for the realization of the principle, and the hardware structure of the system and the design of software to make feasible solution, and completed the actual model making.the design of the system by taking the number of the fair order line, avoids the queue, grab the team caused by f

10、riction;keywords: single chip microcomputer, printer, wireless communication, voice system青岛农业大学海都学院工程系电气本科毕业设计1第一章 绪论1.1 引言近几年,伴随着科学技术的飞速发展和人们消费水平的提高,各行各业尤其是以企业的营业厅的服务质量竞争越来越大。越来越多的企业将营业厅的服务态度和服务质量当作一个企业的整体的形象,并且这一做法也深受消费者的喜爱和认可,而营业厅的服务窗口正是作为企业形象的主要表现形式之一。经济增长无疑会增加企业的服务增加,营业厅的排队问题也更加的突出。长时间以来,人们在医院

11、、银行、移动、国企、个企等服务窗口拥挤、混乱地排队等待,有时需要等候好几个小时,这似乎已经成为很常见的事情,极大地影响了消费者的心情。对于营业厅的服务质量差,越来越多的人感觉到不满意,因此提高营业厅的服务质量、解决因排队带来的疲劳、烦感、创造更加高效、人性化服务环境已成为当前急需解决的现实问题。设计智能轻松的排队服务系统,解决因排队引起的种种问题,显得尤为重要,因此本文针对以上问题设计了一套基于 51 单片机的排队机叫号系统。本系统可以真正模拟人们的排队过程,通过叫号的顺序给出相应的业务号码,通过叫号的形式来一次接受服务,而在这期间人们可以在等候室等候,等候室提供座椅和报纸期刊,舒缓顾客等待的

12、急噪情绪,使人们人们能够舒适的等候排队,真正做到了高科技化服务体系。本文基于 51 单片机的排队叫号系统,由取号机、客户服务窗口、大厅显示叫号和主机部分组成,有 lcd 大屏幕,可以显示客户被呼叫的信息,让客户知道什么时候被叫到去办理业务,另外还有语音提示客户,简单方便的实现了排队机叫号系统。1.2 排队系统的功能简介1.2.1 系统的流程图 下图为排队叫号系统的整个流程如图 1-2-1:青岛农业大学海都学院工程系电气本科毕业设计2图 1-2-1 排队叫号系统的整个流程整个过程井然有序,大大提高了工作的效率,真正的做到了科技的人性化。1.2.2 取号取票过程是指客户进入营业厅之后,从取号机上获

13、取自己相应的排队小票的过程。本系统中采用按键输入信息,客户在确定自己的业务类型之后,通过按键输入自己的业务类型,mcu 接收到输入的信息后,会在对应的业务类型所排队的人数上面自动加 1,并将最终的号码、前面还有多少人在排队、日期、时间等信息发送至 m-150ii 打印机,进行小票的打印,最后打印完毕,客户拿到小票到等候室等候呼叫自己的号码。在此期间取票机会通过 nrf24l01 无线通信的方式将客户刚刚打印的小票信息发送到主机,主机收到数据后并作出应答,此时取票机准备下一次的取号。因为此部分的mcu 采用 1t 的单片机作为核心,所以整个过程什么的迅速,更加的提高了工作效率。客户拿到的小票上面

14、显示当前日期、时间、排队号码、以及前面有多少人在排对等信息。1.2.3 排队客户在领取自己的排队小票之后,进入等候室等候叫号。为了更加人性化的服务于客户,企业可以在等候区设置座椅,提供报纸、书刊,放置公司的相关业务介绍,增加客户等候时的趣味性的同时,还可以让客户更加的了解本公司的业务类型,可谓青岛农业大学海都学院工程系电气本科毕业设计3一举两得。1.2.4 叫号叫号是指通知客户到相应的窗口进行服务的过程。叫号有两种变现形式,一种通过语音呼叫客户到相应的窗口进行服务;另一种方式是通过大厅的 lcd 显示屏显示“请 xxx 号到 xx 窗口” ,与此同时窗口也会显示相应客户“xxx”号码,客户可以

15、直观的找到自己相应的办理窗口。此过程有效地避免了因拥挤带来的一系列问题。青岛农业大学海都学院工程系电气本科毕业设计4第二章 排队机叫号系统的硬件电路设计2.1 取号机硬件电路设计取号机硬件电路包括打印机、lcd 液晶、无线通信、按键、mcu 五部分组成。2.1.1 取号输入装置电路设计按键输入电路如图 2-1-1:图 2-1-1 按键电路本文的设计中提供了 3 个按键,分别对应 3 中不同的业务类型,客户在选择服务类型的时候,只需要按一下对应的按键即可完成取号过程的所有操作,简单易懂。2.1.2 mcu 电路设计取号机部分采用宏晶公司出款的 stc12c5410ad 1t 单片机作为主控芯片,

16、是高速/低功耗/超强抗干扰的新一代 8051 单片机,兼容传统的 8051 数据指令代码,但提高了8-10 倍的速度。内部使用了 max810 专用复位电路。程序存储空间 10k,片上集成 512字节 ram。stc12c5410ad 系列单片机的内部结构如图 2-1-2 所示,包含中央处理器(cpu)、程序存储器(flash)、数据存储器(sram)、定时计数器、uart 串口、i/o 接口、高速 ad转换、spi 接口、pca、看门狗及片内 r/c 震荡器和外部晶振体振荡电路等模块。青岛农业大学海都学院工程系电气本科毕业设计5图 2-1-2 stc12c5410ad 系列单片机的内部结构图

17、stc12c5410ad 数据存储器 eeprom。单片机内集成了 eeprom 是独立的,与程序空间是互相独立的,利用 isp/iap 技术可将内部 flash 存储器用作 eeprom,可以重复读写 10 万次以上,eeprom 拥有很多独立的扇区,每一个有 512 字节,在使用时,放在同一个扇区内的数据必须一块擦写,可以不用满,整体是按一个扇区一个扇区的擦出的。本设计中用 eeprom 来存储一些在应用过程中需要修改且掉电不丢失的参数数据,在程序中可以对 eeprom 进行字节的读写操作。mcu 外围电路设计如图 2-1-3:青岛农业大学海都学院工程系电气本科毕业设计6图 2-1-3 单

18、片机最小系统2.1.3 m-150ii 针式打印机电路设计本设计中使用 epson 的 m-150ii 针式微型打印机。针式微型打印机是市面上通用的微型打印机,我国很早之前就已经有用 epson 打印头研发生产产品。微型打印机构造很简单简单、使用的历史也长、性价比高、能耗比较少。最进几年经济快速的发展,也很大的提高了微型打印机的性能,并且越来越专业化,现在的很多工业等仪表均采用微型打印机。它扮演的角色也愈加的重要。微型打印机的使用,使人们可以很方便的保存要使用的数据,而不易于丢失。凭借着价格低廉的优势,微型打印机占据的市场也日益扩大开来。拥有很好的前景。epson m-150ii 微型打印机机

19、芯主要由直流电机(motor)、测速感应线圈(timing detector)、干簧管复位开关(reset detector)、电磁打印针(print solenoid)abcd、色带、与电机连接的滑槽轮以及蜗杆等部分组成。终端分配如图 2-1-4 所示:图 2-1-4 m-150ii 打印机终端分配m-150ii 打印机一行可打印 96 个点,若英文字符采用 5 乘 7 点阵的话,则一行可打印 16 个字符,打印速度为 1 行/秒,它采用 45mm 宽的普通打印纸打印,日常维护和更换较方便。它的可靠使用寿命为 500000 行,体积很小,为 73.4mm 乘 42.6mm 乘青岛农业大学海都

20、学院工程系电气本科毕业设计712.8mm,重量只有 60g,非常适用于安装在取号机内部。打印机驱动电路原理如图 2-1-5 所示:图 2-1-5 打印机驱动电路2.1.4 lcd 液晶显示电路设计为了更加人性化的设计取号机,本设计中此部分加入了 lcd12864 液晶显示,主要用于显示客户小票上的信息和一下必要的设置菜单。具体的驱动电路如图 2-1-6 所示:图 2-1-6 12864 液晶驱动电路青岛农业大学海都学院工程系电气本科毕业设计82.2 窗口叫号系统硬件电路设计窗口叫号系统由输入装置、led 显示屏、无线通信、mcu 部分。本系统主要负责完成由营业员操作,通过按键可以来选择呼叫下一

21、位客户或者重复呼叫当前的客户。于此同时无线通信模块会将呼叫的客户信息及时的发送到主控端,进行数据处理。客户听到语音呼叫或者大屏幕上显示的号码之后就会前来办理业务。十分的简单方便。2.2.1 叫号输入装置电路的设计按键输入装置电路为两个按键,一个负责呼叫下一位客户,一个负责重复呼叫,身份的简单可靠。电路如图 2-2-1 所示:图 2-2-1 按键输入电路2.2.2 mcu 电路的设计此部分电路的 mcu 采用了和取号机部分相同的 stc12c5410ad 单片机,使得代码的编写和移植更为的方便。具体的关于 mcu 单片机的详细内容请参考 2.1.2 章节的内容,此处不作详细介绍,电路原理图如下图

22、 2-2-2 所示:青岛农业大学海都学院工程系电气本科毕业设计9图 2-2-2 窗口叫号系统 mcu 电路2.2.3 窗口 led 显示屏电路市面上已有的相关的产品的显示屏多采用 3 英寸点阵显示屏或 3 英寸数码管显示屏,各有利弊,点阵式显示屏可以显示汉字、字幕、数字,比较随意灵活,但是亮度不是很高,对于亮度要求很高的场合不太适合;数码管显示屏,只能显示数字或字幕,不能显示汉字,但是数码管亮度高,颜色饱满红润,看上去比较舒服。总之各有利弊。本设计中采用了数码管显示屏,应为其电路简单,易于操控,更加的节约成本。采用了 0.56 英寸共阴极高亮红色 4 位 8 段数码管。采用动态扫描的方式显示客

23、户的号码。数码管的驱动电路采用了 74hc573 来增加电流,驱动数码管的段。对于位选直接用单片机的 io 来驱动,达到稳定显示的目的下,几乎用了最简单的方法来驱动电路。数码管基本参数如图 2-2-3 所示,数码管驱动电路如图 2-2-4 所示。青岛农业大学海都学院工程系电气本科毕业设计10图 2-2-3 数码管基本参数图 2-2-4 窗口 led 显示驱动电路青岛农业大学海都学院工程系电气本科毕业设计112.3 主控电路硬件电路设计主控 mcu 在整个的系统中充当着最重要的角色,他在整个系统中起到了系统宏观调节的作用,首先主控电路要通过曲线通信接收来自取号机的数据,将客户的取号存入系统之中,

24、同时主控电路还要实时接收来自服务窗口的数据,本系统中设有 3 个服务窗口,分别对应 3 种不同的业务。对于来自窗口的请求数据,主控芯片接收后立即处理,判断之后将对应的客户号码发送到服务窗口和大厅的显示屏及语音系统。强大的通信及数据处理就要求主控 mcu 要有强大的处理能力,才能时刻保持整个系统的运行畅通,不会出现数据丢失或发生错误等现象。所以本系统中主控电路采用的是 stc 公司出款的 stc12c5a60s2 1t 单片机。stc12c5a60s2 1t 单片机,是 stc 出款的单时钟/机器周期(1t)的单片机,是高速/低功耗/高抗干扰的新型 8051 单片机,兼容传统全部的 8051 的

25、指令代码,但提高了 8-10 倍的速度。内部拥有 max810 专用的复位电路,2 路 pwm。程序存储空间 60k;片上集成 1280 字节 ram;且具有双串口可同时通信。stc12c5a60s2 系列单片机的内部结构如图 2-1-2 所示,包含中央处理器(cpu)、程序存储器(flash)、数据存储器(sram)、定时计数器、uart 串口、i/o 接口、高速 ad转换、spi 接口、pca、看门狗及片内 r/c 震荡器和外部晶振体振荡电路等模块。内部结构图如图 2-3-1 所示。系统时钟源采用外部晶振 22.1184mhz,极大地提高了系统的数据处理速度,使得系统的处理速度更加快速,能

26、够快速收发无线通信,并能够快速处理数据信息。是系统变得更加敏捷迅速。强大的硬件支持,是系统的整个运行流畅完美。青岛农业大学海都学院工程系电气本科毕业设计12图 2-3-1 stc12c5a60s2 单片机内部结构图 stc12c5a60s2 外围电路如图 2-3-2 所示:图 2-3-2 stc12c5a60s2 外围电路2.4 语音及大厅显示硬件电路设计语音模块采用的是 isd 公司的 isd4004 芯片。isd4004 语音芯片由美国 isd 公司推出,芯片内部高度的集成化,振荡器、滤波器、除噪音、防大功率等均集于一体,仅仅需要几个外围电路就可以构成一个很强大的语青岛农业大学海都学院工程

27、系电气本科毕业设计13音录制播放的系统。通信方式采用 spi 串行接口输入。采样频率可分为8、6.4、5.3、4khz,与所能录制的时间成反比,与音质成正比。芯片存储器内的数据更是可以保存 100 年在短点的情况下,而且可以录制 10 次左右而不损坏。市场上很多的电子产品均在采用此款芯片。显示部分采用的是 lcd 12864 液晶显示,因为距离客户距离很进,这样可以更加直观形象的将信息传递给每一个客户。lcd12864 液晶可以显示汉字、字母、数字符号等,这样就可以利用液晶同时显示4 个客户的信息,分别占据一行,这儿样客户就可以提前看到自己被呼叫的相关信息。2.4.1 语音部分电路设计语音电路

28、部分包括话筒输入部分、放音部分,还有语音芯片。语音输入部分采用的是咪头话筒,该话筒体积小便于调试安装,内部电路如图 2-4-1 所示:图 2-4-1 咪头话筒内部电路咪头话筒技术参数资料如下图 2-4-2 所示:图 2-4-2 咪头话筒技术参数isd4004 系列语音芯片 isd4004-08、isd4004-10、isd4004-12、isd4004-16 共 4青岛农业大学海都学院工程系电气本科毕业设计14款不同的芯片,每种芯片的具体参数如下图 2-4-3 所示:图 2-4-3 isd4004 系列芯片参数本设计中采用的是 isd4004-08 芯片,8 分钟即可满足设计的需求,isd40

29、04-08 芯片可以分为 2400 段存储空间,即最多可以录制 2400 段录音,也可以连续的录音,读取每一段的其实地址即可放音。驱动电路见下图 2-4-4 所示电路:图 2-4-4 isd4004 驱动电路电路中对于 isd4004 语音输入的 mic 接口电路做了去耦滤波的处理,使得输入的声音信号更加清新平稳,尽量减噪音的影响。放音电路采用了 lm386 芯片放大声音信号,使得输出的电压信号可以驱动较大点的喇叭,省的声音更大更清晰,效果更好。2.4.2 lcd 显示部分电路设计此部分的电路设计与取号机部分的显示电路相同,具体电路及内容请参考 2.1.4章节的内容。此处不作重复声明。2.4.

30、3 mcu 电路设计此部分的 mcu 为主控电路的 mcu 所控制,详情见主控电路 mcu 的具体参数说明及青岛农业大学海都学院工程系电气本科毕业设计15其电路。2.4 无线通信部分硬件电路设计此节的无线通信部分为取号机、窗口、主控电路部分共同所有。本文设计的无线通信系统采用的是 nrf24l01 无线通信模块。极低的电流消耗:如果工作在正常模式下,发射的功率会为-6dbm 的时候,电流会为 9ma,接收的时候有12.3ma。工作在掉电模式与待机模式的时候会更低。基本参考数据如图 2-4-5 所示:图 2-4-5 nrf24l01 基本参数nrf24l01 模块拥有 6 个独立的通道,在接收状

31、态下,nrf24l01 能够收到 6 个通道的信号,见图 2-4-6 所示,每一个信号通道必须使用互不相同的地址,可以公用相同的数据频道,相当于 6 个发送的模块对应一个接收的模块可以实现。只有通道 0 拥有可以设置为 40 位自身地址通道。15 信号通道仅仅拥有 8 位自身和 32 位公用地址,但所有的数据通道都可以通过软件设置为增强型。nrf24l01 在收到某个通道的数据后会记录地址,紧接着会以此地址为应答地址发送应答信号。发送数据端,信号通道 0 会被用作接收应答信号,所以,接受不发生错误,通道 0 要与发送端的地址相同,这样才能保证正常的运行。青岛农业大学海都学院工程系电气本科毕业设

32、计16图 2-4-6 nrf24l01 接收发送对应关系nrf24l01 的外围驱动电路如下图 2-4-7 所示:图 2-4-7 nrf24l01 电路nrf24l01 芯片的工作电压为 1.9-3.6v,io 可以直接输入 5v 电压,所以 io 口可以直接与单片机的 io 口相连,对于工作电压,本文设计中使用的是通用的 3.3v 工作电青岛农业大学海都学院工程系电气本科毕业设计17压,采用的是 ams1117-3.3v 稳压芯片,具体的稳压转换电路如下图 2-4-8 所示:图 2-4-8 ams1117 稳压电路最后整个系统的 5v 电源均由 5v 开关电源提供,电流为 2a,方便使用和移

33、动。青岛农业大学海都学院工程系电气本科毕业设计18第三章 排队机叫号系统的软件设计软件部分的代码编写本设计中采用了 c 语言,简单明了,而且移植很方便,采用的编程软件为 keil4,一共分为 4 个大的部分:取号机部分代码、窗口叫号部分代码、主控+语音液晶显示部分代码、无线通信部分代码。3.1 取号机软件设计取号机代码的编写可以分为三个部分:打印机驱动部分、液晶显示驱动部分、无线通信部分,无线通信部分详情见附录 1。3.1.1 设计流程图本文在设计之前,对此部分做了流程图规划,具体内容如下图 3-1-1:图 3-1-1 取号机软件设及流程3.1.2 m-150ii 打印机部分打印 57 点阵字

34、符的时序图如图 3-1-2 所示,首先由脉冲宽度为定时信号 tntn+1 的打印脉冲 pn 激励打印针 a 工作,然后由脉冲宽度为定时信号 tn+1tn+2 的打印脉冲 pn+1 激励打印针 b 工作,同样的打印针 c 被打印脉冲 pn+2 激励工作,打印针d 被打印脉冲 pn+3 激励工作,接着打印针 a 再次被打印脉冲 pn+4 所激励。按照这样的规律,打印针 a、b、c、d 依次被连续的打印脉冲所激励,直到完成打印任务。青岛农业大学海都学院工程系电气本科毕业设计19图 3-1-2 打印机时序图驱动程序及注释如下:#include #define uchar unsigned char#d

35、efine uint unsigned int#define ascstart 0x20 #define head 4 #define let_per_head 4 #define vol_per_let 6 #define line 9 uchar print _at_ 0 x7fff; uchar letbufheadlet_per_head; uchar prtbufheadlet_per_head; /*- 源文件 / 文字 : !#$%&()*+,-./0123456789:;? abcdefghijklmnopqrstuvwxyz _abcdefghijklmnopqrstuvwx

36、yz|u 宽高(像素): 5708 字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/570 字节 数据转换日期 : 02-8-13 9:44:55青岛农业大学海都学院工程系电气本科毕业设计20-*/uchar code asctablevol_per_let = 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x06,0 x5f,0 x06,0 x00, 0 x00,0 x07,0 x03,0 x00,0 x07,0 x03,0 x00,0 x24,0 x7e,0 x24,0 x7e,0 x24, 0 x00,0 x24,0 x2b

37、,0 x6a,0 x12,0 x00, 0 x00,0 x63,0 x13,0 x08,0 x64,0 x63,0 x00,0 x36,0 x49,0 x56,0 x20,0 x50, 0 x00,0 x00,0 x07,0 x03,0 x00,0 x00, 0 x00,0 x00,0 x3e,0 x41,0 x00,0 x00, 0 x00,0 x00,0 x41,0 x3e,0 x00,0 x00, 0 x00,0 x08,0 x3e,0 x1c,0 x3e,0 x08, 0 x00,0 x08,0 x08,0 x3e,0 x08,0 x08,0 x00,0 x00,0 xe0,0 x60

38、,0 x00,0 x00, 0 x00,0 x08,0 x08,0 x08,0 x08,0 x08, 0 x00,0 x00,0 x60,0 x60,0 x00,0 x00,0 x00,0 x20,0 x10,0 x08,0 x04,0 x02, 0 x00,0 x3e,0 x51,0 x49,0 x45,0 x3e, 0 x00,0 x00,0 x42,0 x7f,0 x40,0 x00,0 x00,0 x62,0 x51,0 x49,0 x49,0 x46, 0 x00,0 x22,0 x49,0 x49,0 x49,0 x36, 0 x00,0 x18,0 x14,0 x12,0 x7f

39、,0 x10,0 x00,0 x2f,0 x49,0 x49,0 x49,0 x31, 0 x00,0 x3c,0 x4a,0 x49,0 x49,0 x30, 0 x00,0 x01,0 x71,0 x09,0 x05,0 x03,0 x00,0 x36,0 x49,0 x49,0 x49,0 x36, 0 x00,0 x06,0 x49,0 x49,0 x29,0 x1e, 0 x00,0 x00,0 x6c,0 x6c,0 x00,0 x00,0 x00,0 x00,0 xec,0 x6c,0 x00,0 x00, 0 x00,0 x08,0 x14,0 x22,0 x41,0 x00,

40、 青岛农业大学海都学院工程系电气本科毕业设计210 x00,0 x24,0 x24,0 x24,0 x24,0 x24,0 x00,0 x00,0 x41,0 x22,0 x14,0 x08, 0 x00,0 x02,0 x01,0 x59,0 x09,0 x06, 0 x00,0 x3e,0 x41,0 x5d,0 x55,0 x1e,0 x00,0 x7e,0 x11,0 x11,0 x11,0 x7e, 0 x00,0 x7f,0 x49,0 x49,0 x49,0 x36, 0 x00,0 x3e,0 x41,0 x41,0 x41,0 x22,;void buildprtbuf(uc

41、har line) uchar head, let, vol; uchar t1; uchar t2; for (head=0; headhead; head+) for (let=0; letlet_per_head; let+) t1 = letbufheadlet - ascstart; t2 = 0 x00; for (vol=0; volline) & 0 x01); t2 = 1; prtbufheadlet = t2; void printletline() /打印一个字符行 uchar head, vol, line, let;青岛农业大学海都学院工程系电气本科毕业设计22 f

42、or (line = 0; line line; line+) buildprtbuf(line); while (!p3_3) ; for (let = 0; let let_per_head; let+) for (vol = 0; vol vol_per_let; vol+) for (head = 0; head head; head+) while (!p3_2) ; print = 0 x10; print = (0 x10 | ( (prtbufheadlet & 0 x01) = 1; delay_us(20); print = 0 x10; void print() ucha

43、r head, let, i; print = 0 x00; p1_1 = 0; delay_us(0 xc8*0 x64); print = 0 x10; 青岛农业大学海都学院工程系电气本科毕业设计23 for (i = 0; i 5; i+) sprintf(letbuf, %d hello world!, (uint)i); printletline(); print = 0 x00; p1_1 = 1; delay_us(1); print = 0 x00;3.1.3 lcd12864 驱动部分lcd12864 液晶的时序图如图 3-1-3 所示:图 3-1-3 12864 液晶串行口

44、时序图12864 液晶初始化的流程图如图 3-1-4 所示:青岛农业大学海都学院工程系电气本科毕业设计24图 3-1-4 12864 液晶初始化的流程图程序及注释如下:#include sbit lcd_cs = p23;sbit lcd_sid= p22;sbit lcd_clk= p21;sbit lcd_rst= p20;uchar code bit_num=0123456789abcdef;/*/void lcd12864_write(uchar com_dat,uchar byte) uchar a,b,temp;uchar p3;if(com_dat = 0) /写指令p0 = 0

45、xf8;elsep0 = 0xfa; /写数据青岛农业大学海都学院工程系电气本科毕业设计25p1 = 0xf0 & byte;p2 = (0x0f & byte)4; lcd_sid= 0;lcd_clk= 0;lcd_cs = 1; for(a=0;a3;a+)temp = pa;for(b=0;b8;b+)if(temp & 0x80)lcd_sid = 1;elselcd_sid = 0;lcd_clk= 1;lcd_clk= 0;temp 4);lcd12864_write(dat,bit_numdata0&0 x0f);lcd12864_write(dat,bit_num(data1

46、&0 xf0)4);lcd12864_write(dat,bit_numdata1&0 x0f);void lcd12864_cleartxt() /清除文本 uchar i; lcd12864_write(com,0 x30); lcd12864_write(com,0 x80); for(i=0;i64;i+) lcd12864_write(dat,0 x20);void lcd12864_bmp(uchar *puts) /绘图函数uint x=0;uchar i,j;青岛农业大学海都学院工程系电气本科毕业设计28lcd12864_write(com,0 x34); /扩展指令lcd12

47、864_write(com,0 x36); /打开绘图for(i=0;i32;i+) lcd12864_write(com,0 x80|i); lcd12864_write(com,0 x80); for(j=0;j16;j+) /16*8=256 lcd12864_write(dat,putsx+);for(i=0;i32;i+)lcd12864_write(com,0 x80|i);lcd12864_write(com,0 x88); /下半屏for(j=0;j16;j+)lcd12864_write(dat,putsx+);void lcd12864_clearbmp() /清除图形函数

48、 uchar i,j; lcd12864_write(com,0 x34); lcd12864_write(com,0 x36); for(i=0;i32;i+) lcd12864_write(com,0 x80|i); /行位置lcd12864_write(com,0 x80); /列位置for(j=0;j4;b = display_data0&0x0f;c = (display_data1&0xf0)4;d = display_data1&0x0f;p1 = duana;byte1 = 0;delay_ms(1);byte1 = 1;青岛农业大学海都学院工程系电气本科毕业设计31p1 =

49、duanb;byte2 = 0;delay_ms(1);byte2 = 1;p1 = duanc;byte3 = 0;delay_ms(1);byte3 = 1;p1 = duand;byte4 = 0;delay_ms(1);byte4 = 1;3.2.4 mcu 主控部分这里 mcu 主要完成的功能是采集按键输入的信息,然后做出判断处理之后,控制led 显示相应的号码,及控制无线模块发送数据到主控芯片。完成数据的传送。具体的程序编写如下:#include reg52.huchar code tx_data0 =0x3d,0x01; /重复呼叫uchar code tx_data1 =0x3

50、d,0x02; /呼叫下一个void main()init_interrupt(); /初始化中断 nrf24l01int();/初始化无线通信while(1)if(ex0_flag = 1) /外部中断 0 标志位青岛农业大学海都学院工程系电气本科毕业设计32ex0_flag = 0;nrfsettxmode(tx_data0); /重复呼叫while(checkack(); /等待发送成功nrfsetrxmode(); /设置为接收模式else if(ex1_flag = 1) /外部中断 1 标志位ex1_flag = 0;nrfsettxmode(tx_data1); /呼叫下一个wh

51、ile(checkack(); /等待发送成功nrfsetrxmode(); /设置为接收模式nrfrevdate(); /接收数据3.3 大厅语音及 lcd 显示部分此部分系统包括:语音驱动代码、lcd 驱动代码、无线通信代码及主控 mcu 代码。其中 lcd 液晶部分与 3.1.3 章节重复,此处不再作重复介绍,无线通信部分详见附录1。3.3.1 设计流程图本文对此部分的程序编写之前,写进行了流程图的设计,设计如图 3-3-1 所示:青岛农业大学海都学院工程系电气本科毕业设计33图 3-3-1 流程图3.3.2 语音系统部分isd4004 的时序如下图 3-3-2 所示:图 3-3-2 i

52、sd4004 时序图isd4004 8 位命令格式如下图 3-3-3 所示:图 3-3-3 isd4004 8 位命令格式isd4004 24 位命令格式如下图 3-3-4 所示:青岛农业大学海都学院工程系电气本科毕业设计34图 3-3-4 isd4004 24 位命令格式isd4004 录音、停止时序如下图 3-3-5 所示:图 3-3-5 isd4004 录音、停止时序isd4004 在使用之前需要将播放的声音录制到芯片内,本文的设计中,因为需要播放的声音信号种类不多,提前将“请、号、到、窗口、0、1、2、3、4、5、6、7、8、9、a、b、c”分别单独录制到芯片即可,因为每一段录音都拥有

53、自己独立的地址,所以在播放录音时可以通过地址直接调用任何一段录音。比如在本设计中如需要播放“请 a123 号到 1 号窗口” ,当大屏幕上显示此信息时,就会听到此信息的声音信号,具体的完成过程是将每一个字的声音信号单独从芯片的存储器中调用,然后将其连续的播放即可实现一段语音的连续播放。isd4004 录音、放音、停止的程序及注释如下:#include uint code callnum=0x0000,0x0006,0x000c,0x0013,0x001a,0x001f,0x0027, 0x002e,0x0034,0x003b,0x0049,0x004f,0x0056,0x005d; /语音 0

54、dsbit sclk = p10; sbit ss = p11; sbit mosi = p12; sbit rac=p13;sbit isd_int= p33; /中断青岛农业大学海都学院工程系电气本科毕业设计35/*/isd4004 spi 串行发送子程序,8 位数据/*void spi_send(uchar data)uchar i;sclk=0;for(i=0;i1;void isd_stop()delay_us(10);ss=0;spi_send(isd_stop);ss=1;/*/发送 上电指令/*青岛农业大学海都学院工程系电气本科毕业设计36void isd_up()delay_

55、us(10);ss=0;spi_send(isd_power_up);ss=1;/*/发送 掉电指令/*void isd_down()delay_us(10);ss=0;spi_send(isd_power_down);ss=1;/*void isd_play()ss=0; spi_send(play_now);ss=1;/*void isd_setplay(uint address)ss=0; spi_send(address&0 xff); delay_us(2);spi_send(address&0 xff00)8); delay_us(2);青岛农业大学海都学院工程系电气本科毕业设计3

56、7spi_send(play_set); ss=1;/void callthenum(uchar *num,uchar bite) /呼叫相应的号码uchar a,b,c,d,e,f;a = (num0&0xf0)4;b = num0&0x0f;c = (num1&0xf0)4;d = num1&0x0f;e = (bite&0xf0)4;f = bite&0x0f;isd_up(); /上电delay_ms(50);isd_setplay(0 x0043); /请isd_play();delay_ms(1100);isd_setplay(callnuma); isd_play();delay

57、_ms(1100);isd_setplay(callnumb); isd_play();delay_ms(1100);isd_setplay(callnumc); isd_play();青岛农业大学海都学院工程系电气本科毕业设计38delay_ms(1100);isd_setplay(callnumd); isd_play();delay_ms(1100);isd_setplay(0 x006a); /号isd_play();delay_ms(1100);isd_setplay(0 x0063); /到isd_play();delay_ms(1200);isd_setplay(callnume

58、); /窗口号码isd_play();delay_ms(1100);isd_setplay(callnumf); isd_play();delay_ms(1100);isd_setplay(0 x0071); /窗口isd_play();delay_ms(2000);isd_stop(); /停止isd_down(); /下电3.3.3 主控系统软件设计本文设计中主控电路部分采用的是 stc12c5a60s2 单片机,具体的程序代码如下:#include 青岛农业大学海都学院工程系电气本科毕业设计39uint print_num;uchar xdata print_data1000;void

59、main()uchar i;lcd12864_init(); /12864 初始化if(nrf_rx_flag0=1) nrf_rx_flag0 = 0;print_dataprint_num = rx_date00;print_dataprint_num+1= rx_date01;tx_date00=0x3d;tx_date00=(print_num/2); /计算排队人数nrfsettxmode(0,tx_date0); /向打印机发送排队人数print_num += 2; /总数组赋值位置后移 2 位if(nrf_rx_flag1=1) nrf_rx_flag1=0;if(rx_date

60、10=0x3d&rx_date11=0x02) /窗口 01 呼叫下一位数据rx_date10=0;rx_date11=0;tx_date10=0 xa1; tx_date11=0 x11;delay_ms(1000);nrfsettxmode(1,tx_date1); /向窗口 01 发送打印机数据青岛农业大学海都学院工程系电气本科毕业设计40while(checkack(); /检测应答信号,用于发射nrfsetrxmode(); /设置为接收模式lcd12864_writenum(0,tx_date1);/液晶显示窗口 01 呼叫的号码callthenum(tx_date1,0x01);

温馨提示

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

评论

0/150

提交评论