基于51单片机的出租车计价器带仿真及程序毕业论文.doc

上传人:小小飞 文档编号:3919432 上传时间:2019-10-10 格式:DOC 页数:30 大小:369KB
返回 下载 相关 举报
基于51单片机的出租车计价器带仿真及程序毕业论文.doc_第1页
第1页 / 共30页
基于51单片机的出租车计价器带仿真及程序毕业论文.doc_第2页
第2页 / 共30页
基于51单片机的出租车计价器带仿真及程序毕业论文.doc_第3页
第3页 / 共30页
基于51单片机的出租车计价器带仿真及程序毕业论文.doc_第4页
第4页 / 共30页
基于51单片机的出租车计价器带仿真及程序毕业论文.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于51单片机的出租车计价器带仿真及程序毕业论文.doc》由会员分享,可在线阅读,更多相关《基于51单片机的出租车计价器带仿真及程序毕业论文.doc(30页珍藏版)》请在三一文库上搜索。

1、毕业论文基于51单片机的出租车计价器带仿真及程序引 言 现在各个城市出租车行业都已普及,因此出租车计价器的技术已经成熟,但是出租车计价器的市场还具有广阔的前景。随着城市建设的日益完善,关乎城市面貌的出租车行业也将迅速发展,出租车计价器的的大批量需求也是毫无疑问的,所以未来出租车计价器的市场还是有相当大的潜力的。 本次出租车计价器设计以AT89S52单片机为中心,采用U18霍尔传感器对轮胎转数进行计数,实现对出租车里程的测量,并最终计算出结果。其中采用寄存器芯片AT24C02使系统在掉电的时候对单价、里程、车轮长度等信息进行存储,采用时钟芯片DS1302来显示时间和在系统需要时进行计时。输出采用

2、两个4段数码显示管,而且根据按键有空车指示灯、等待查询指示灯、单程指示灯进行指示。 汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是有一定的应用价值的。 1 绪论1.1 出租车计价器概述我国在70年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五

3、入),到能够自主计费,以及现在的能够打一发票和语音提示、按时间自主变动单价等功能。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。本次设计的目的在于现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。1.2 单片机的概述计算机系统已明显地朝巨型化、单片化、网络化三个方向发展。巨型化发展的目的在于不断提高计算机的运算速度和处理能力,以解决复杂系统计算和高速数据处理,比如系统仿真和模拟、实时运算

4、和处理。单片化是把计算机系统尽可能集成在一块半导体芯片上,其目的在于计算机微型化和提高系统的可靠性,这种单片计算简称单片机。单片机的内部硬件结构和指令系统主要是针对自动控制应用而设计的所以单片机又称微控制器MCU(Micro Controller Unit)。用它可以很容易地将计算机嵌入到各种仪器和现场控制设备中,因此单片机又叫做嵌入式微控制器(Embedded MCU)。单片机自20世纪70年代问世以来,以其鲜明的特点得到迅猛发展,已广泛应用于家用电器、智能玩具、智能仪器仪表、工业控制、航空航天等领域,经过30多年的发展,性能不断提高,品种不断丰富,已经形成自动控制的一支中坚力量。据统计,我

5、国的单片机年容量已达13亿片,且每年以大约16的速度增长,但相对于国际市场我国的占有率还不到1。这说明单片机应用在我国有着广阔的前景。对于从事自动控制的技术人员来讲,掌握单片机原理及其应用已经成为必不可少的学习任务。 单片机的应用十分广泛,在工业控制领域、家电产品、智能化仪器仪表、计算机外部设备,特别是机电一体化产品中,都有重要的用途。其主要的用途可以分为以下方面。单片机的应用十分广泛,在工业控制领域、家电产品、智能化仪器仪表、计算机外部设备,特别是机电一体化产品中,都有重要的用途。其主要的用途可以分为以下方面。l 显示:通过单片机控制发光二极管或是液晶,显示特定的图形和字符。l 机电控制:用

6、单片机控制机电产品做定时或定向的动作。l 检测:通过单片机和传感器的联合使用,用来检测产品或者工况的意外发生。l 通信:通过RS-232串行通信或者是USB通信,传输数据和信号。l 科学计算:用来实现简单的算法。那么单片机是不是解决上述应用的唯一选择呢?当然不是!单片机最明显的优点是价格便宜,从几元人民币到几十元人民币。这是因为这类芯片的生产量很大,技术也很成熟。其次,单片机的体积也远小于其他两种方案。单片机本身一般用40引脚封装,当然功能多一些的单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只有8只引脚。当然,单片机无论在速度还是容量方面都小于其他两种方案,

7、但是在实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能。例如,控制电冰箱的控制器就不需要使用嵌入式系统,用一片51就可以轻松实现。所以应用的关键是看能否够用,是否有很好的性能价格比。51系列的单片机已经面世十多年,依然没有被淘汰,还在不断发展中,这就说明是它有广阔的应用前景。2 总体方案设计本次设计是使用单片机技术来实现一个出租车的数字计价器,利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和单双程价格调整、时钟显示功能等等。具有性能可靠,电路简单、成本低、扩展空间大等特点。 2.1 设计任务要求2.1.1 设计任务设计一款基于AT89S52单片机的出租车数字计价

8、器,通过对传感器的检测,对数值进行处理和显示。 2.1.2 设计要求一、基本要求(1)能显示里程,单位为公里,最后一位为小数位。(2)能显示金额数,单位为元,最后一位为小数位。(3)可设定单程价格和往返价格,单程价格为2元/公里,往返价格为1.5元/公里。 (4)起步公里数为3公里,价格为5元,若实际距离大于3公里,按规则3计算价格。(5)按暂停键,计价器可暂停计价,按查询键,可显示总等待时间。二、发挥部分(1)增加了空车指示功能,当无客人时,按下功能切换按键,空车指示灯亮。(2)增加实时时间显示,无论计价器工作或者空车,都能显示实时时间,便于时间提醒。(3)增加信息储存功能。可以储存等待时间

9、,里程和金额。2.2 设计的主要功能 本设计所设计的出租车数字计价器的主要功能有:金额输出、路程输出、数据复位、计时计价、空车显示等。输出采用LCD12864液晶显示屏显示。2.3 方案的选取本设计是由软件设计和硬件设计两部分组成的。软件设计要进行程序的编写和软件仿真;硬件设计要设计电路、硬件仿真和制作电路板。2.3.1 硬件设计方案本系统的硬件设计主要包括单片机AT89S52、数据显示部件、U18霍尔传感器电路、里程计算及计价单元的设计。在硬件设计过程中,充分利用各部件的功能,实现多功能的出租车计价器设计。计价器的单片机系统框图如图2-1所示。它由以下几个部件组成:霍尔传感器单元、AT89S

10、52单片机、金额显示、里程显示、电源。利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程和价格的计算及显示功能。图2-1计价器系统框图2.3.2 软件设计方案本设计程序的采取C语言进行编写,使用Keil uVision4编译和Proteus7.4a仿真软件进行仿真调试。其中的里程计算和费用计算方案如下。1、里程计算(1)霍尔传感器对车轮进行信号检测,产生并输出脉冲信号到单片机;(2)单片机对传感器输出的脉冲信号进行计数,并进行km计算:每一个信号代表轮胎旋转一周,设轮胎的周长为2m ;每km产生的信号数为500,里程显示为N 2m = 2N(km)2、费用计算(1)出租车的起步费为5元

11、,并且3km内不需额外计价;(2)出租车行驶3km后,单程2元/km,双程1.5元/km。(3)等待收费的标准为5分钟算一公里;(4)暂停时计价器暂停计价,不收费用。3 硬件设计本设计的硬件设计包括单片机AT89S52单元、测距单元、显示单元(数码管显示金额、等待时间和里程,指示灯对单双程切换指示、空车指示、等待计时指示)、按键单元、时钟单元和储存单元。3.1 AT 89S52单片机及最小系统1、AT89S52单片机AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器, 256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,3个16

12、位可编程定时计数器,全双工串行口,看门狗(WDT)电路,片内时钟振荡器。图3-1 AT89S52引脚图P0口有二个功能:1、外部扩展存储器时,当做数据/地址总线。2、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。P1口只做I/O口使用:其内部有上拉电阻。 P2口有两个功能:1、 扩展外部存储器时,当作地址总线使用。 2、做一般I/O口使用,其内部有上拉电阻。 P3口有两个功能:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。设计中用到的单片机各管脚(图3-1)功能以及与其他模块连接介绍如下:VCC:接+5V电源。VSS:接

13、地。时钟引脚:XTAL1和XTAL2两端接晶振和30PF的电容,构成时钟电路。它可以使单片机稳定可靠的运行。RST:复位信号输入端,高电平有效。当在此引脚加两个机器周期的高电平时,就可以完成复位操作。P1.0:接功能按键。P1.2:接空车指示灯。P0口接显示屏数据口,P2口接显示屏控制口。P3.4:接霍尔传感器的输出口。 P3.5:接时钟电路DS1302的RST口。P3.6:接DS1302的SCLK口。P3.7:接DS1302的I/O口。2、单片机最小系统复位电路和晶振电路是AT89S52工作所需的最简外围电路。单片机最小系统电路图如图3-2所示。图3-2单片机最小系统AT89S52 的复位端

14、是一个史密特触发输入,高电平有效。RST端若由低电平上升到高电平并持续2个周期,系统将实现一次复位操作。在复位电路中,按一下复位开关就使在RST端出现一段时间的高电平,外接11.0592M 晶振和两个30pF 电容组成系统的内部时钟电路。3.2 测距单元本次设计我们选取了霍尔传感器来进行里程测量。霍尔器件是一种磁传感器。用它们可以检测磁场及其变化,可在各种与磁场有关的场合中使用。霍尔器件以霍尔效应为其工作基础。霍尔器件具有许多优点,它们的结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高,耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀。霍尔器件分为:霍尔元件和霍尔集成电路两大类,前者

15、是一个简单的霍尔片,使用时常常需要将获得的霍尔电压进行放大。后者将霍尔片和它的信号处理电路集成在同一个芯片上。本次设计选取了霍尔集成电路来测量里程。里程测量是通过将霍尔传感器的集成电路安装在车轮上方的铁板上,将磁铁安装在车轮上,旋转的车轮将磁铁对准集成电路时,霍尔传感器会输出一个脉冲信号,送到单片机,经过单片机的计算处理,将行驶的里程送到显示单元并显示出来。其原理示意图如下:图3-3 传感器测距示意图U18是一种利用霍尔效应做成的半导体集成电路器件,它被设计在交变磁场中运行,特别是能在低电源电压和长时间运行温度范围可达到125。这种霍尔IC可用作各种类型的传感器(速度传感器、位移传感器、转速传

16、感器等等),接触开关以及相类似的应用场合。其工作电压比较宽(2.520V),可运行在较大的温度范围内(-20125), 其输出的信号符合TTL电平标准,可以直接接到单片机的IO 端口上,而且其最高检测频率可达到1MHZ。霍尔传感器的特性如图3-4所示,其中BOP为工作点“开”的磁感应强度,BRP为释放点“关”的磁感应强度。当外加的磁感应强度超过动作点BOP时,传感器输出低电平,当磁感应强度降到动作点BOP以下时,传感器输出电平不变,一直要降到释放点BRP时,传感器才由低电平跃变为高电平。BOP与BRP之间的滞后使开关动作更为可靠。U18集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差

17、分放大器C、施密特触发器D和OC门输出E五个基本部分组成。在输入端输入电压VCC,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场达到工作点(即Bop)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,三极管截止,使OC门输出高电压,这种状态为关。这样两次电压变换,使霍尔开关完成了一次开关动作。图3-4 U18霍尔传感器和其输出特性U18霍尔传感器有3个外接口,2个是

18、电源的正负极接口,最后一个是脉冲信号输出口,只要将霍尔传感器的信号输出端接到单片机的端口上便可以实现距离检测。其中,单片机的P3.2(INT0)引脚作为信号的输入端,采用外部中断0进行计数。车轮每转一圈,霍尔传感器就产生一个脉冲信号,根据霍尔效应原理,当霍尔片处在磁场中时,霍尔传感器的输出端输出低电平。当车轮转动一圈时小磁铁提供一个磁场,则霍尔传感器输出一次低电平完成一次数据采集,从而产生信号。霍尔传感器检测并输出信号到单片机的INT0或INT1计算脉冲输入端,引起单片机的中断,对脉冲计数,当计数达到特定的次数时,里程就会增加,单片机对里程进行计算后,通过接口电路将计算好的结果传送到数码管并显

19、示出来。3.3 按键单元 本设计的按键单元电路(如图3-5)仅有一个功能按键,也就是是否计价控制键,其功能是开启计价模式,并控制空车指示灯的亮灭。3.4 时钟单元本设计采用基于DS1302的时钟电路(如图3-6)对时间进行实时显示,单片机掉电对其没有影响。用数码管表现出来,当出租车空车时就显示时间,给人时间提示。图3-6 时钟电路单元3.5 显示单元 本次课程设计采用的是LCD12864液晶显示屏,其功能十分强大,液晶显示屏(LCD)用于数字型钟表和许多便携式计算机的一种显示器类型。1、液晶和液晶显示LCD显示使用了两片极化材料,在它们之间是液体水晶溶液。电流通过该液体时会使水晶重新排列,以使

20、光线无法透过它们。因此,每个水晶就像百叶窗,既能允许光线穿过又能挡住光线。液晶显示器(LCD)目前科技信息产品都朝着轻、薄、短、小的目标发展,在计算机周边中拥有悠久历史的显示器产品当然也不例外。在便于携带与搬运为前题之下,传统的显示方式如CRT映像管显示器及LED显示板等等,皆受制于体积过大或耗电量甚巨等因素,无法达成使用者的实际需求。而液晶显示技术的发展正好切合目前信息产品的潮流,无论是直角显示、低耗电量、体积小、还是零辐射点,都能让使用者享受最佳的视觉环境。这种显示器件的最大特点是:(1) 微功耗,每个显示字符只有几个毫安。是所有显示器件中功耗最小的。(2) 低压驱动,一般扭曲向列型(TN

21、)器件阀值电压仅1.52V,可以直接与大规模集成电路直接匹配。(3) 平板形结构,尺寸可以很大,也可以很小。显示的有效面积相对来说也是比较大的。显示图案的自由度也相当大 (4)液晶显示器件属于被动型,不发光,靠调制外界光达到显示目的。因此,在阳光下也能看的很清楚,既没有刺目感,也不会引起视觉疲劳,更没有射线辐射,伤害视力。所以它是高信息量信息显示的理想器件。(5) 液晶显示器件虽然所需材料都有特殊、较高的要求,但是其结构简单,而且工艺非常适应现代化规模生产。所以其生产成本不高。正因为它具有这些特点,所以在一切小型、便携、数字、智能化仪表中具有最大竞争力;在大信息量、彩色化、微型及巨型显示领域,

22、液晶显示器件也具有很大的潜力。2、液晶显示器各种图形的显示原理(1)线段的显示 点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH

23、)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。(2)字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。汉字的显示汉字的显示一般采用图形的方式,事先从微

24、机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD上得到一个完整汉字。4 软件设计本系统的软件设计主要分为系统主程序、数据处理子程序、和键盘扫描子程序四个模块,下面对每一块进行介绍。4.1 系统主程序本设计中,软件设计采用模块化操作,利用各个模块之间的相互联系,在设计中采用主程序调用各个子程序的方法,使程序通俗易懂,我们设计了整体程

25、序流程图。在main函数编写开始,要进行初始化,包括对系统初始化和对硬件设备进行初始化,并使硬件处于就绪状态。在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。系统流程图如下图4-1。图4-1系统主程序流程图4.2 数据处理子程序 每当霍尔传感器输出一个低电平信号就使单片机中断一次,在计数中断服务程序,里程和金额都相应变化,当然等待时间也换算成里程(当速度小于5km/h时5分钟想当于1公里)。计算程序根据里程数分别进入不同的计算公式。如果里程大于3公里,则执行公式:金额=(里程-3)*单价+5;否则,执行公式:总金额=起步价。程序

26、流程图如图4-2所示。4.3 键盘扫描子程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。5 Proteus软件仿真本设计需要用Keil uVision4对C51程序进行编译,生成“.hex”文件,如图5-1 :图5-1 Keil uVision4编译在Proteus软件中画出仿真电路(如图5-2),把Keil uVision3编译后生成的“.hex”导入到单片机中,按“运行仿真”键进行仿真。图5-2Proteus仿真总结总结在本次设计中,我们采用AT89S52芯片为核心器件,设计出了简单的出租车计价器,能够实

27、现显示时间、等待时间、金额和里程,按键控制,空车指示。选题后,我们便开始复习单片机方面的知识,也查阅、搜索了很多相关资料,进行总体设计与具体设计,同时也学习仿真软件Proteus和编程软件Keil uVision3。由于以前都采用汇编语言实现编程,对用C语言来实现单片机的编程不太习惯,花费了一些时间来熟悉C语言的编程。在设计开始,要形成流程图,它可以使设计有一定的逻辑性与严密性,使得设计思路明确。采用模块化的设计思想很重要,它方便编写、修改与调试,另外加上必要的注释,便于交流与理解。这次课程设计设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。通过自

28、身的努力以及相关图书资料的帮助,逐渐熟悉了Keil uVision3、PROTEUS和C语言等软件的使用以及硬件焊接与检测过程中的一些小技巧。本次设计我学习到不少单片机的知识,但由于自己的理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题。所焊实物尚有许多不足,个别功能还不能很好的实现,主要原因是考虑问题不周全,电路设计经验少,实际动手能力不足。恳请各位老师批评指正,以使我在以后的学习和实践中加以改进和提高。致谢毕业设计即将结束,在老师的指导和同学的帮助之下,学生对于出租车计价器设计有了更多新的认知,对出租车计价器设计有了更深一步的认识,对出租车计价器综合设计的整体脉络了解

29、得更加的清晰透彻。通过毕业设计,学生对自己三年以来所学的知识有更多的认识。 毕业设计,帮助我们总结大学的收获、认清自我。同时,还帮助我们改变一些处理事情时懒散的习惯。从最开始时的搜集资料,整理资料,到方案比选,确定方案,再到着手开始设计,每一步都是环环相扣,衔接紧密,其中任何一个步骤产生遗漏或者疏忽,就会对以后的设计带来很多的不便。本次作者的毕业设计是由徐老师指导的,在他的悉心指导下,我开阔了眼界,明确了思路。在整个的设计过程中,徐老师提出了许多宝贵的建议和指导,使我能够顺利的完成整个设计,在此,谨向徐老师表示由衷的感谢。在即将离开学校之际,我要感谢在大学生活中任课的众多老师,正是在他们的谆谆

30、教诲下使我顺利完成了大学的基础知识和专业知识的学习。在此,还要感谢陪伴我共同走过大学时代并给予我帮助的同学和朋友们,感谢你们,祝福你们在以后的日子里开开心心的度过每一天!参考文献1贺哲荣.AT89S51单片机硬件设计与编程实例.北京:中国电力出版社.2012 2李泉溪.单片机原理与应用实例仿真.北京:北京航空航天大学出版社,2012.3王平.单片机应用设计与制作.北京:清华大学出版社, 2012.4彭为等.单片机典型系统设计实例精讲. 北京:电子工业出版社,20075王庆利等.单片机设计案例实践教程.北京:北京邮电大学出版社,20086韩志军等.单片机应用系统设计入门向导与设计实例.北京:机械

31、工业出版社,20057皮大能等. 单片机课程设计指导书. 北京:北京理工大学出版社,2010附1、源程序#include#include#includelcd12864.c#includecode.h#includeds1302.c#includedisplay.csbit P10=P10;sbit P12=P12;float distance_km,money;void timer0isr(void)interrupt 1 using 1distance_km+=0.1;if(distance_km=3)money=5;else money=5+(distance_km-3)*1.5;voi

32、d main(void) init_lcd();clearscreen(0);setline(0);TMOD=0x06;distance_km=0;TH0=0xCE;TL0=0xCE;EA=1;TR0=1;Init_DS1302(); while(1)if(P10=0)ET0=1;P12=0;display(distance_km);display1(money);else ET0=0; P12=1;distance_km=0;money=0;display(distance_km);display1(money);displayc(1,0,0*16,li);displayc(1,0,1*16

33、,chen);displayc(1,0,2*16,shu);displaye(1,0,6*8,num,14);displayc(1,3,0*16,jin);displayc(1,3,1*16,e);displaye(1,3,5*8,num,14);display2();lcd12864.c#include#include#define uchar unsigned char #define uint unsigned int sbit cs1=P20; sbit cs2=P21; sbit EN=P22; sbit RW=P23; sbit RS=P24; void delay(uchar i

34、) while(i-); void readbusy()P0=0x00;RS=0;RW=1;EN=1;while(P0&0x80);EN=0; void lcd_wcmd(uchar cmd)readbusy();RS=0;RW=0;P0=cmd;EN=1;_nop_();_nop_();EN=0;void lcd_wdat(uchar dat)readbusy();RS=1;RW=0;P0=dat;EN=1;_nop_();_nop_();EN=0;void setpage(uchar page)page=0xb8|page;/起始页lcd_wcmd(page);void setline(u

35、char line)line = line & 0x07;line=line|0xc0;/起始行lcd_wcmd(line);void setcolumn(uchar column)column=column&0x3f;/最终列column=column|0x40;/起始列lcd_wcmd(column);void setonoff(uchar onoff)onoff=0x3e|onoff;lcd_wcmd(onoff);void selectscreen(uchar screen)switch(screen) case 0:cs1=0;delay(2);cs2=0;delay(2);brea

36、k; case 1:cs1=0;delay(2);cs2=1;delay(2);break; case 2:cs1=1;delay(2);cs2=0;delay(2);break; default:break;void clearscreen(uchar screen) uchar i,j; selectscreen(screen); for(i=0;i8;i+) setpage(i); setcolumn(0); for(j=0;j64;j+) lcd_wdat(0x00); void init_lcd()readbusy();selectscreen(0);setonoff(0);sele

37、ctscreen(0);setonoff(1);selectscreen(0);clearscreen(0);setline(0);code.hUchar code li = 0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0xFE,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00, 0x40,0x40,0x44,0x44,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00; uchar code chen = 0x24,0x24,0xA4,0xFE,0x23,0x22,0x

38、00,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x00,0x00, 0x08,0x06,0x01,0xFF,0x01,0x06,0x40,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00; uchar code shu = 0x90,0x52,0x34,0x10,0xFF,0x10,0x34,0x52,0x80,0x70,0x8F,0x08,0x08,0xF8,0x08,0x00, 0x82,0x9A,0x56,0x63,0x22,0x52,0x8E,0x00,0x80,0x40,0x33,0x0C,0x33,0x40,0x

39、80,0x00; uchar code jin = 0x00,0x80,0x80,0x40,0x20,0x50,0x48,0x44,0xC3,0x44,0x48,0x50,0x20,0x40,0x80,0x80,0x00,0x40,0x40,0x42,0x4A,0x72,0x42,0x42,0x7F,0x42,0x42,0x62,0x5A,0x42,0x40,0x40; uchar code e = 0x00,0x00,0x8C,0x44,0xB5,0x26,0xA4,0x64,0x0C,0x02,0xF2,0x1A,0xD6,0x12,0xF2,0x02,0x00,0x10,0x08,0xF

40、C,0x4A,0x49,0x4A,0xFC,0x08,0x80,0x4F,0x30,0x0F,0x10,0x2F,0xC0; uchar code gong = 0x00,0x00,0x80,0x40,0x20,0x18,0x06,0x80,0x00,0x07,0x18,0x20,0x40,0x80,0x00,0x00,0x00,0x01,0x00,0x20,0x70,0x28,0x26,0x21,0x20,0x20,0x24,0x38,0x60,0x00,0x01,0x01; uchar code yuan = 0x00,0x20,0x20,0x22,0x22,0x22,0xE2,0x22,

41、0x22,0x22,0xE2,0x22,0x22,0x22,0x20,0x20,0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x78; uchar code num1516= 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00, 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x0

42、0, 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00, 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00, 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00, 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21

43、,0x20,0x20,0x11,0x0E,0x00, 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00, 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00, 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, 0x00,0xE0,0x10,0x08,0x08,0x10,

44、0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00, 0x00,0x10,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x7F,0x48,0x0C,0x53,0x61,0x41, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x7F,0x41,0x01,0x7F,0x41,0x01,0x7E, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x61,0x00,0x00,0x00

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1