《大学毕业设计---基于51单片机的排队机叫号系统设计.doc》由会员分享,可在线阅读,更多相关《大学毕业设计---基于51单片机的排队机叫号系统设计.doc(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、青岛农业大学海都学院工程系电气本科毕业设计本科生毕业论文(设计)题 目: 基于51单片机的排队机叫号系统设计 系 别: 工程系 专 业: 电气工程及其自动化 班 级: 08电气3班 2012年 6月 10日51目 录摘 要IABSTRACTII第一章 绪论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电路设计42.1.3 M-150II针式打印机电路设计62.1.4 LCD液晶显示电路设计82.2 窗口叫
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 设计流程图193.1.2 M-150II打印机部分193.1.3 LCD12864驱动部分243.2 窗口叫号系统软件设计303.2.1 设计流程图303.2.2 LED显示部分303.2.4 M
3、CU主控部分323.3 大厅语音及LCD显示部分333.3.1 设计流程图333.3.2 语音系统部分343.3.3 主控系统软件设计39第四章 系统设计总结分析424.1 设计的实用性424.2 排队机叫号系统的应用前景43参考文献44致谢45附录146附录251基于51单片机的排队机叫号系统设计摘 要随着经济的迅速发展,业务数量也迅速增多扩展,以营业大厅为代表的窗口行业,大量客户的拥挤排队已成为了这些网点改善服务品质、提升自身形象的障碍,避免一些不必要的麻烦和冲突。日常研究调查统计发现,没有任何组织管理的排队是最能影响客户心情的因素。有关统计发现,客户等待10分钟以上,开始出现浮躁;大于2
4、0分钟后会出现烦感;如果要是超出40分钟,很大部分人会因为生气而离开。但排队又是不可避免的,如果让等待的时间变为一段难得的休闲时间,则可在一定程度上有效地降低客户的焦虑情绪。本文分析了国内外对于排队解决方案的利弊,通过总结最终提出自己的见解。而后论述了基于51单片机的排队机叫号系统的实现原理,并针对整个系统的硬件结构和软件设计作出了现实可行的方案,并完成了实际模型的制作。该系统的设计通过取号实现了公平的先后顺序排队,避免了因插队、抢队引起的摩擦;关键字:单片机、打印机、无线通信、语音系统Queue number calling system design Based on 51MCUAbstr
5、actWith the rapid development of the economy, business volume also increased rapidly extended 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
6、 reduce and avoid the employees and customers of the conflict. Behavioral scientists found, jumping 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 t
7、han 40 minutes, often angry and leave. But queueing is inevitable, if the waiting time is a rare 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 disadvantage
8、s of various methods, and proposes own opinion. Then discusses the51 based on the queue number 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 s
9、ystem by taking the number of the fair order line, avoids the queue, grab the team caused by friction;Keywords: single chip microcomputer, printer, wireless communication, voice system青岛农业大学海都学院工程系电气本科毕业设计第一章 绪论1.1引言近几年,伴随着科学技术的飞速发展和人们消费水平的提高,各行各业尤其是以企业的营业厅的服务质量竞争越来越大。越来越多的企业将营业厅的服务态度和服务质量当作一个企业的整体的
10、形象,并且这一做法也深受消费者的喜爱和认可,而营业厅的服务窗口正是作为企业形象的主要表现形式之一。经济增长无疑会增加企业的服务增加,营业厅的排队问题也更加的突出。长时间以来,人们在医院、银行、移动、国企、个企等服务窗口拥挤、混乱地排队等待,有时需要等候好几个小时,这似乎已经成为很常见的事情,极大地影响了消费者的心情。对于营业厅的服务质量差,越来越多的人感觉到不满意,因此提高营业厅的服务质量、解决因排队带来的疲劳、烦感、创造更加高效、人性化服务环境已成为当前急需解决的现实问题。设计智能轻松的排队服务系统,解决因排队引起的种种问题,显得尤为重要,因此本文针对以上问题设计了一套基于51单片机的排队机
11、叫号系统。本系统可以真正模拟人们的排队过程,通过叫号的顺序给出相应的业务号码,通过叫号的形式来一次接受服务,而在这期间人们可以在等候室等候,等候室提供座椅和报纸期刊,舒缓顾客等待的急噪情绪,使人们人们能够舒适的等候排队,真正做到了高科技化服务体系。本文基于51单片机的排队叫号系统,由取号机、客户服务窗口、大厅显示叫号和主机部分组成,有LCD大屏幕,可以显示客户被呼叫的信息,让客户知道什么时候被叫到去办理业务,另外还有语音提示客户,简单方便的实现了排队机叫号系统。1.2 排队系统的功能简介1.2.1 系统的流程图 下图为排队叫号系统的整个流程如图1-2-1:图1-2-1排队叫号系统的整个流程整个
12、过程井然有序,大大提高了工作的效率,真正的做到了科技的人性化。1.2.2 取号取票过程是指客户进入营业厅之后,从取号机上获取自己相应的排队小票的过程。本系统中采用按键输入信息,客户在确定自己的业务类型之后,通过按键输入自己的业务类型,MCU接收到输入的信息后,会在对应的业务类型所排队的人数上面自动加1,并将最终的号码、前面还有多少人在排队、日期、时间等信息发送至M-150II打印机,进行小票的打印,最后打印完毕,客户拿到小票到等候室等候呼叫自己的号码。在此期间取票机会通过NRF24L01无线通信的方式将客户刚刚打印的小票信息发送到主机,主机收到数据后并作出应答,此时取票机准备下一次的取号。因为
13、此部分的MCU采用1T的单片机作为核心,所以整个过程什么的迅速,更加的提高了工作效率。客户拿到的小票上面显示当前日期、时间、排队号码、以及前面有多少人在排对等信息。1.2.3 排队客户在领取自己的排队小票之后,进入等候室等候叫号。为了更加人性化的服务于客户,企业可以在等候区设置座椅,提供报纸、书刊,放置公司的相关业务介绍,增加客户等候时的趣味性的同时,还可以让客户更加的了解本公司的业务类型,可谓一举两得。1.2.4 叫号叫号是指通知客户到相应的窗口进行服务的过程。叫号有两种变现形式,一种通过语音呼叫客户到相应的窗口进行服务;另一种方式是通过大厅的LCD显示屏显示“请xxx号到xx窗口”,与此同
14、时窗口也会显示相应客户“xxx”号码,客户可以直观的找到自己相应的办理窗口。此过程有效地避免了因拥挤带来的一系列问题。第二章 排队机叫号系统的硬件电路设计2.1 取号机硬件电路设计取号机硬件电路包括打印机、LCD液晶、无线通信、按键、MCU五部分组成。2.1.1取号输入装置电路设计按键输入电路如图2-1-1:图 2-1-1按键电路本文的设计中提供了3个按键,分别对应3中不同的业务类型,客户在选择服务类型的时候,只需要按一下对应的按键即可完成取号过程的所有操作,简单易懂。2.1.2 MCU电路设计取号机部分采用宏晶公司出款的STC12C5410AD 1T单片机作为主控芯片,是高速/低功耗/超强抗
15、干扰的新一代8051单片机,兼容传统的8051数据指令代码,但提高了8-10倍的速度。内部使用了MAX810专用复位电路。程序存储空间10K,片上集成512字节RAM。STC12C5410AD系列单片机的内部结构如图2-1-2所示,包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时计数器、UART串口、I/O接口、高速AD转换、SPI接口、PCA、看门狗及片内R/C震荡器和外部晶振体振荡电路等模块。图2-1-2 STC12C5410AD系列单片机的内部结构图STC12C5410AD数据存储器EEPROM。单片机内集成了EEPROM是独立的,与程序空间是互相独立的,
16、利用ISP/IAP技术可将内部Flash存储器用作EEPROM,可以重复读写10万次以上,EEPROM拥有很多独立的扇区,每一个有512字节,在使用时,放在同一个扇区内的数据必须一块擦写,可以不用满,整体是按一个扇区一个扇区的擦出的。本设计中用EEPROM来存储一些在应用过程中需要修改且掉电不丢失的参数数据,在程序中可以对EEPROM进行字节的读写操作。MCU外围电路设计如图2-1-3:图2-1-3 单片机最小系统2.1.3 M-150II针式打印机电路设计本设计中使用EPSON的M-150II针式微型打印机。针式微型打印机是市面上通用的微型打印机,我国很早之前就已经有用EPSON打印头研发生
17、产产品。微型打印机构造很简单简单、使用的历史也长、性价比高、能耗比较少。最进几年经济快速的发展,也很大的提高了微型打印机的性能,并且越来越专业化,现在的很多工业等仪表均采用微型打印机。它扮演的角色也愈加的重要。微型打印机的使用,使人们可以很方便的保存要使用的数据,而不易于丢失。凭借着价格低廉的优势,微型打印机占据的市场也日益扩大开来。拥有很好的前景。EPSON M-150II微型打印机机芯主要由直流电机(Motor)、测速感应线圈(Timing Detector)、干簧管复位开关(Reset Detector)、电磁打印针(Print Solenoid)ABCD、色带、与电机连接的滑槽轮以及蜗
18、杆等部分组成。终端分配如图2-1-4所示:图2-1-4 M-150II打印机终端分配M-150II 打印机一行可打印96个点,若英文字符采用5乘7点阵的话,则一行可打印16个字符,打印速度为1行/秒,它采用45MM宽的普通打印纸打印,日常维护和更换较方便。它的可靠使用寿命为500000行,体积很小,为73.4mm乘42.6mm乘12.8mm,重量只有60g,非常适用于安装在取号机内部。打印机驱动电路原理如图2-1-5所示:图2-1-5 打印机驱动电路2.1.4 LCD液晶显示电路设计为了更加人性化的设计取号机,本设计中此部分加入了LCD12864液晶显示,主要用于显示客户小票上的信息和一下必要
19、的设置菜单。具体的驱动电路如图2-1-6所示:图2-1-6 12864液晶驱动电路2.2 窗口叫号系统硬件电路设计窗口叫号系统由输入装置、LED显示屏、无线通信、MCU部分。本系统主要负责完成由营业员操作,通过按键可以来选择呼叫下一位客户或者重复呼叫当前的客户。于此同时无线通信模块会将呼叫的客户信息及时的发送到主控端,进行数据处理。客户听到语音呼叫或者大屏幕上显示的号码之后就会前来办理业务。十分的简单方便。2.2.1叫号输入装置电路的设计按键输入装置电路为两个按键,一个负责呼叫下一位客户,一个负责重复呼叫,身份的简单可靠。电路如图2-2-1所示:图2-2-1 按键输入电路2.2.2 MCU 电
20、路的设计此部分电路的MCU采用了和取号机部分相同的STC12C5410AD单片机,使得代码的编写和移植更为的方便。具体的关于MCU单片机的详细内容请参考2.1.2章节的内容,此处不作详细介绍,电路原理图如下图2-2-2所示:图2-2-2 窗口叫号系统MCU电路2.2.3窗口LED显示屏电路市面上已有的相关的产品的显示屏多采用3英寸点阵显示屏或3英寸数码管显示屏,各有利弊,点阵式显示屏可以显示汉字、字幕、数字,比较随意灵活,但是亮度不是很高,对于亮度要求很高的场合不太适合;数码管显示屏,只能显示数字或字幕,不能显示汉字,但是数码管亮度高,颜色饱满红润,看上去比较舒服。总之各有利弊。本设计中采用了
21、数码管显示屏,应为其电路简单,易于操控,更加的节约成本。采用了0.56英寸共阴极高亮红色4位8段数码管。采用动态扫描的方式显示客户的号码。数码管的驱动电路采用了74HC573来增加电流,驱动数码管的段。对于位选直接用单片机的IO来驱动,达到稳定显示的目的下,几乎用了最简单的方法来驱动电路。数码管基本参数如图2-2-3所示,数码管驱动电路如图2-2-4所示。图2-2-3 数码管基本参数图2-2-4 窗口LED显示驱动电路2.3 主控电路硬件电路设计主控MCU在整个的系统中充当着最重要的角色,他在整个系统中起到了系统宏观调节的作用,首先主控电路要通过曲线通信接收来自取号机的数据,将客户的取号存入系
22、统之中,同时主控电路还要实时接收来自服务窗口的数据,本系统中设有3个服务窗口,分别对应3种不同的业务。对于来自窗口的请求数据,主控芯片接收后立即处理,判断之后将对应的客户号码发送到服务窗口和大厅的显示屏及语音系统。强大的通信及数据处理就要求主控MCU要有强大的处理能力,才能时刻保持整个系统的运行畅通,不会出现数据丢失或发生错误等现象。所以本系统中主控电路采用的是STC公司出款的STC12C5A60S2 1T单片机。STC12C5A60S2 1T单片机,是STC出款的单时钟/机器周期(1T)的单片机,是高速/低功耗/高抗干扰的新型8051单片机,兼容传统全部的8051的指令代码,但提高了8-10
23、倍的速度。内部拥有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,极大地提高了系统的数据处理速度,使得系统的处理速度更加快速,能够快速收发无线通信,并能够快速处理数据信息。是系统变得更加敏捷迅速。强
24、大的硬件支持,是系统的整个运行流畅完美。图2-3-1 STC12C5A60S2单片机内部结构图 STC12C5A60S2外围电路如图2-3-2所示:图2-3-2 STC12C5A60S2 外围电路2.4 语音及大厅显示硬件电路设计语音模块采用的是ISD公司的ISD4004芯片。ISD4004语音芯片由美国ISD公司推出,芯片内部高度的集成化,振荡器、滤波器、除噪音、防大功率等均集于一体,仅仅需要几个外围电路就可以构成一个很强大的语音录制播放的系统。通信方式采用SPI串行接口输入。采样频率可分为8、6.4、5.3、4KHZ,与所能录制的时间成反比,与音质成正比。芯片存储器内的数据更是可以保存10
25、0年在短点的情况下,而且可以录制10次左右而不损坏。市场上很多的电子产品均在采用此款芯片。显示部分采用的是LCD 12864液晶显示,因为距离客户距离很进,这样可以更加直观形象的将信息传递给每一个客户。LCD12864液晶可以显示汉字、字母、数字符号等,这样就可以利用液晶同时显示4个客户的信息,分别占据一行,这儿样客户就可以提前看到自己被呼叫的相关信息。2.4.1 语音部分电路设计语音电路部分包括话筒输入部分、放音部分,还有语音芯片。语音输入部分采用的是咪头话筒,该话筒体积小便于调试安装,内部电路如图2-4-1所示:图2-4-1咪头话筒内部电路咪头话筒技术参数资料如下图2-4-2所示:图2-4
26、-2 咪头话筒技术参数ISD4004系列语音芯片ISD4004-08、ISD4004-10、ISD4004-12、ISD4004-16共4款不同的芯片,每种芯片的具体参数如下图2-4-3所示:图2-4-3 ISD4004系列芯片参数本设计中采用的是ISD4004-08芯片,8分钟即可满足设计的需求,ISD4004-08芯片可以分为2400段存储空间,即最多可以录制2400段录音,也可以连续的录音,读取每一段的其实地址即可放音。驱动电路见下图2-4-4所示电路:图2-4-4 ISD4004驱动电路电路中对于ISD4004语音输入的MIC接口电路做了去耦滤波的处理,使得输入的声音信号更加清新平稳,
27、尽量减噪音的影响。放音电路采用了LM386芯片放大声音信号,使得输出的电压信号可以驱动较大点的喇叭,省的声音更大更清晰,效果更好。2.4.2 LCD 显示部分电路设计此部分的电路设计与取号机部分的显示电路相同,具体电路及内容请参考2.1.4章节的内容。此处不作重复声明。2.4.3 MCU 电路设计此部分的MCU为主控电路的MCU所控制,详情见主控电路MCU的具体参数说明及其电路。2.4 无线通信部分硬件电路设计此节的无线通信部分为取号机、窗口、主控电路部分共同所有。本文设计的无线通信系统采用的是NRF24L01无线通信模块。极低的电流消耗:如果工作在正常模式下,发射的功率会为-6dBm的时候,
28、电流会为9mA,接收的时候有12.3mA。工作在掉电模式与待机模式的时候会更低。基本参考数据如图2-4-5所示:图2-4-5 NRF24L01基本参数NRF24L01模块拥有6个独立的通道,在接收状态下,NRF24L01能够收到6个通道的信号,见图2-4-6所示,每一个信号通道必须使用互不相同的地址,可以公用相同的数据频道,相当于6个发送的模块对应一个接收的模块可以实现。只有通道0拥有可以设置为40位自身地址通道。15信号通道仅仅拥有8位自身和32位公用地址,但所有的数据通道都可以通过软件设置为增强型。NRF24L01在收到某个通道的数据后会记录地址,紧接着会以此地址为应答地址发送应答信号。发
29、送数据端,信号通道0会被用作接收应答信号,所以,接受不发生错误,通道0要与发送端的地址相同,这样才能保证正常的运行。图2-4-6 NRF24L01接收发送对应关系NRF24L01的外围驱动电路如下图2-4-7所示:图2-4-7 NRF24L01电路NRF24L01芯片的工作电压为1.9-3.6V,IO可以直接输入5V电压,所以IO口可以直接与单片机的IO口相连,对于工作电压,本文设计中使用的是通用的3.3V工作电压,采用的是AMS1117-3.3V稳压芯片,具体的稳压转换电路如下图2-4-8所示:图2-4-8 AMS1117稳压电路最后整个系统的5V电源均由5V开关电源提供,电流为2A,方便使
30、用和移动。第三章 排队机叫号系统的软件设计软件部分的代码编写本设计中采用了C语言,简单明了,而且移植很方便,采用的编程软件为keil4,一共分为4个大的部分:取号机部分代码、窗口叫号部分代码、主控+语音液晶显示部分代码、无线通信部分代码。3.1 取号机软件设计取号机代码的编写可以分为三个部分:打印机驱动部分、液晶显示驱动部分、无线通信部分,无线通信部分详情见附录1。3.1.1 设计流程图本文在设计之前,对此部分做了流程图规划,具体内容如下图3-1-1:图3-1-1 取号机软件设及流程3.1.2 M-150II打印机部分打印57点阵字符的时序图如图3-1-2所示,首先由脉冲宽度为定时信号TnTn
31、+1的打印脉冲Pn激励打印针A工作,然后由脉冲宽度为定时信号Tn+1Tn+2的打印脉冲Pn+1激励打印针B工作,同样的打印针C被打印脉冲Pn+2激励工作,打印针D被打印脉冲Pn+3激励工作,接着打印针A再次被打印脉冲Pn+4所激励。按照这样的规律,打印针A、B、C、D依次被连续的打印脉冲所激励,直到完成打印任务。图3-1-2 打印机时序图驱动程序及注释如下:#include #define uchar unsigned char#define uint unsigned int#define ASCSTART 0X20 #define HEAD 4 #define LET_PER_HEAD 4
32、 #define VOL_PER_LET 6 #define LINE 9 uchar print _at_ 0x7fff; uchar LetBufHEADLET_PER_HEAD; uchar PrtBufHEADLET_PER_HEAD; /*- 源文件 / 文字 : !#$%&()*+,-./0123456789:;? ABCDEFGHIJKLMNOPQRSTUVWXYZ _abcdefghijklmnopqrstuvwxyz|u 宽高(像素): 5708 字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/570字节 数据转换日期 : 02-8-13 9:44:55-*/uch
33、ar code ASCTableVOL_PER_LET = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x5F,0x06,0x00, 0x00,0x07,0x03,0x00,0x07,0x03,0x00,0x24,0x7E,0x24,0x7E,0x24, 0x00,0x24,0x2B,0x6A,0x12,0x00, 0x00,0x63,0x13,0x08,0x64,0x63,0x00,0x36,0x49,0x56,0x20,0x50, 0x00,0x00,0x07,0x03,0x00,0x00, 0x00,0x00,0x3E,0x41,0x00,
34、0x00, 0x00,0x00,0x41,0x3E,0x00,0x00, 0x00,0x08,0x3E,0x1C,0x3E,0x08, 0x00,0x08,0x08,0x3E,0x08,0x08,0x00,0x00,0xE0,0x60,0x00,0x00, 0x00,0x08,0x08,0x08,0x08,0x08, 0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02, 0x00,0x3E,0x51,0x49,0x45,0x3E, 0x00,0x00,0x42,0x7F,0x40,0x00,0x00,0x62,0x51,0x4
35、9,0x49,0x46, 0x00,0x22,0x49,0x49,0x49,0x36, 0x00,0x18,0x14,0x12,0x7F,0x10,0x00,0x2F,0x49,0x49,0x49,0x31, 0x00,0x3C,0x4A,0x49,0x49,0x30, 0x00,0x01,0x71,0x09,0x05,0x03,0x00,0x36,0x49,0x49,0x49,0x36, 0x00,0x06,0x49,0x49,0x29,0x1E, 0x00,0x00,0x6C,0x6C,0x00,0x00,0x00,0x00,0xEC,0x6C,0x00,0x00, 0x00,0x08,0
36、x14,0x22,0x41,0x00, 0x00,0x24,0x24,0x24,0x24,0x24,0x00,0x00,0x41,0x22,0x14,0x08, 0x00,0x02,0x01,0x59,0x09,0x06, 0x00,0x3E,0x41,0x5D,0x55,0x1E,0x00,0x7E,0x11,0x11,0x11,0x7E, 0x00,0x7F,0x49,0x49,0x49,0x36, 0x00,0x3E,0x41,0x41,0x41,0x22,;void BuildPrtBuf(uchar line) uchar head, let, vol; uchar t1; ucha
37、r t2; for (head=0; headHEAD; head+) for (let=0; letLET_PER_HEAD; let+) t1 = LetBufheadlet - ASCSTART; t2 = 0x00; for (vol=0; volline) & 0x01); t2 = 1; PrtBufheadlet = t2; void PrintLetLine()/打印一个字符行 uchar head, vol, line, let; for (line = 0; line LINE; line+) BuildPrtBuf(line); while (!P3_3) ; for (
38、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 = 0x10; print = (0x10 | ( (PrtBufheadlet & 0x01) = 1; Delay_us(20); print = 0x10; void Print() uchar head, let, i; print = 0x00; P1_1 = 0; Delay_us(0xc8*0x64); print = 0x10; f
39、or (i = 0; i 5; i+) sprintf(LetBuf, %d Hello World!, (uint)i); PrintLetLine(); print = 0x00; P1_1 = 1; Delay_us(1); print = 0x00;3.1.3 LCD12864驱动部分LCD12864液晶的时序图如图3-1-3所示:图3-1-3 12864液晶串行口时序图12864液晶初始化的流程图如图3-1-4所示:图3-1-4 12864液晶初始化的流程图程序及注释如下:#include sbit LCD_CS = P23;sbit LCD_SID= P22;sbit LCD_CL
40、K= 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 = 0XF8;elseP0 = 0XFA; /写数据P1 = 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
41、 & 0X80)LCD_SID = 1;elseLCD_SID = 0;LCD_CLK= 1;LCD_CLK= 0;Temp = 1;LCD_CS = 0; /拉低CS结束写入数据/*/void LCD12864_init() /初始化LCD_RST = 0;Delay_ms(40);LCD_RST = 1;LCD12864_Write(Com,0X30); Delay_ms(1);LCD12864_Write(Com,0X30); Delay_ms(1);LCD12864_Write(Com,0X0C); Delay_ms(1);LCD12864_Write(Com,0X01); /清除屏幕Delay_ms(1);LCD12864_Write(Com,0X06); Delay_ms(1);LCD12864_Writebits(0,0,Character1); /写入初始化汉字/*/void LCD12864_Writebits(uchar x,uchar y,uchar *s) /指定位置写入指定字符串uchar i,Pos;switch(x)case 0: x = 0X80; break;case 1: x = 0X90; break;case 2: x =0X
限制150内