版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要出租车在现代城市交通系统中起着举足轻重的作用,为城市人民的生活出行带来了极大的方便,出租车计费系统的稳定、准确以及可靠直接关系到人民群众的切身利益。因此设计一套计费准确可靠的计费系统显得非常重要。同时,本系统涉及的知识面比拟广,能够锻炼学生的各方面的专业知识,能够使学生把理论知识与实践相结合,对学生所学知识进行一次总结和审核。设计一个基于单片机的出租车计费系统可以利用AT89C51单片机作为中心处理单元,结合霍尔传感器A44E来测量计算路程,以及使用数据掉电保护芯片AT24C02来存储数据。该出租车计费系统能够实现数据的复位、白天/晚上转换、数据输出、计时计价、单价输出与调整、路程输出、超
2、速报警等功能。本设计不仅要完成计价器的根本功能,还能根据白天、黑夜、中途等待来调节单价。关键词 单片机;霍尔传感器;AT89C51;AT24C02AbstractA taxi in modern urban transportation system plays an important role for the life of the urban people, brought great convenience to travel.The stable and accurate and reliable of the taximeter relates directly to the vi
3、tal interests of the people. Therefore designing a set of accurate and reliable billing system becomes very important.Meanwhile, the system involves wide knowledge, students can exercise every aspect of professional knowledge and enable students to put theory knowledge combining with practice.It is
4、a summary and audit of knowledge for the students. Designing a taxi billing system based on SCM can use AT89C51 as the central processing unit,combining with sensor of pressureA44E to measure and calculate distances, and to use the data off electricity AT24C02 to store data protection chip. The taxi
5、 billing system can realize the data reduction, day/night translation, data output, timing valuation, unit price output and adjustment, journey output, speeding alarm functions. This design not only want to complete the basic function of the meter, can also according to the day and the night, midway
6、 waiting to adjust the price.Keywords SCM sensor of pressure AT89C51 AT24C02 目 录 TOC o 1-3 h z u HYPERLINK l _Toc6043 1 绪论 PAGEREF _Toc6043 1 HYPERLINK l _Toc19055 PAGEREF _Toc19055 1 HYPERLINK l _Toc7658 1.2 系统研究意义 PAGEREF _Toc7658 1 HYPERLINK l _Toc16902 PAGEREF _Toc16902 1 HYPERLINK l _Toc4792 1.
7、4 论文主要内容 PAGEREF _Toc4792 2 HYPERLINK l _Toc24452 2 霍尔传感器 PAGEREF _Toc24452 3 HYPERLINK l _Toc6826 2.1 霍尔传感器A44E结构及工作原理 PAGEREF _Toc6826 3 HYPERLINK l _Toc10761 2.2 霍尔传感器A44E芯片的引脚及功能 PAGEREF _Toc10761 4 HYPERLINK l _Toc2347 2.3 脉冲计数法测速 PAGEREF _Toc2347 4 HYPERLINK l _Toc5365 3 系统硬件设计 PAGEREF _Toc536
8、5 6 HYPERLINK l _Toc17204 3.1 单片机简介 PAGEREF _Toc17204 6 HYPERLINK l _Toc7190 3.1.1 AT89C51单片机简介 PAGEREF _Toc7190 7 HYPERLINK l _Toc7493 3.1.2 AT89C51单片机引脚介绍 PAGEREF _Toc7493 7 HYPERLINK l _Toc4643 3.2 AT24C02简介 PAGEREF _Toc4643 9 HYPERLINK l _Toc13938 3.2.1 管脚配置 PAGEREF _Toc13938 9 HYPERLINK l _Toc8
9、288 PAGEREF _Toc8288 9 HYPERLINK l _Toc27219 3.2.3 功能描述 PAGEREF _Toc27219 10 HYPERLINK l _Toc25770 PAGEREF _Toc25770 10 HYPERLINK l _Toc31618 3.3 LCD1602液晶显示模块 PAGEREF _Toc31618 11 HYPERLINK l _Toc14866 3.3.1 LCD1602的结构及功能 PAGEREF _Toc14866 11 HYPERLINK l _Toc30476 3.3.2 LCD1602液晶显示指令集 PAGEREF _Toc3
10、0476 12 HYPERLINK l _Toc4179 3.4 系统硬件具体设计 PAGEREF _Toc4179 13 HYPERLINK l _Toc25931 3.4.1 霍尔传感器电路设计 PAGEREF _Toc25931 13 HYPERLINK l _Toc4006 3.4.2 LCD显示电路设计 PAGEREF _Toc4006 13 HYPERLINK l _Toc12735 3.4.3 AT24C02掉电保护电路设计 PAGEREF _Toc12735 14 HYPERLINK l _Toc20776 3.4.4 直流电机电路设计 PAGEREF _Toc20776 14
11、 HYPERLINK l _Toc26171 3.4.5 键盘电路设计 PAGEREF _Toc26171 15 HYPERLINK l _Toc32716 4 系统软件设计 PAGEREF _Toc32716 17 HYPERLINK l _Toc20654 4.1 Keil C51语言软件开发系统简介17 HYPERLINK l _Toc7629 4.2 系统软件具体设计 PAGEREF _Toc7629 17 HYPERLINK l _Toc8037 PAGEREF _Toc8037 17 HYPERLINK l _Toc7560 4.2.2 键盘效劳程序 PAGEREF _Toc756
12、0 18 HYPERLINK l _Toc10318 4.2.3 显示子程序效劳程序 PAGEREF _Toc10318 19 HYPERLINK l _Toc3739 4.2.4 霍尔传感器A44E软件的设计 PAGEREF _Toc3739 20 HYPERLINK l _Toc17731 4.2.5 中途等待中断效劳程序设计 PAGEREF _Toc17731 23 HYPERLINK l _Toc11345 4.2.6 AT24C02掉电保护软件设计 PAGEREF _Toc11345 23 HYPERLINK l _Toc16133 4.2.7 直流电机的软件设计 PAGEREF _
13、Toc16133 23 HYPERLINK l _Toc13434 5 系统调试 PAGEREF _Toc13434 25 HYPERLINK l _Toc31703 5.1 KEIL C调试 PAGEREF _Toc31703 25 HYPERLINK l _Toc23869 5.2 PROTEUS的调试 PAGEREF _Toc23869 27 HYPERLINK l _Toc18055 5.3 硬件调试 PAGEREF _Toc18055 29 HYPERLINK l _Toc1639 5.4 测试结果分析 PAGEREF _Toc1639 30 HYPERLINK l _Toc9982
14、 结论 PAGEREF _Toc9982 31 HYPERLINK l _Toc27206 致谢 PAGEREF _Toc27206 32 HYPERLINK l _Toc8241 参考文献 PAGEREF _Toc8241 33 HYPERLINK l _Toc29272 附录 PAGEREF _Toc29272 34 HYPERLINK l _Toc13895 附录1 硬件整体仿真图 PAGEREF _Toc13895 34 HYPERLINK l _Toc31685 附录2 源代码 PAGEREF _Toc31685 351 绪论步入21世纪,出租车已经广泛地出现在我们周围。随着人们生活
15、水平的不断提高,出租车的使用频率也越来越高,出租车行业也以高质量的效劳给人们带来了出行的享受。但是由于行业的特殊性,出租车行业总存在着买纠纷,困扰着行业的开展。而在出租车行业中解决这一矛盾的最好方法就是改进计价器,用更加精良的计价器来为乘客提供更加方便快捷的效劳。 30年前,我国出现了出租车,但是由于当时的经济水平,出租车并没有普遍在我们生活中出现。随着改革开放的深入,出租车行业的开展势头已十分突出。如今出租车在我国的交通运输中承当着重要的角色,出租车计价器是出租车上必不可少的重要仪器,它是负责出租车营运收费的专用智能化仪表。随着城市旅游业的开展,出租车行业已成为城市的窗口,象征着一个城市的文
16、明程度。 我们都知道,只要出租车开动,随着行驶里程的增加,就会看到汽车前面的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时如5KM计费数字显示开始从起步价如10元增加。当出租车到达某地需要在那里等候时,司机只要按一下“计时键,每等候一定时间,计费显示就增加一个该收的等候费用。汽车继续行驶时,停止计算等候费,继续增加里程计费。到达目的地,便可按显示的数字收费。 采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件
17、和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。1.2 系统研究意义出租车是人们出行的重要交通工具,随着人们生活水平的提高,乘坐出租车的人越来越多,可以说,出租车已经普及了我国城乡,为了方便司乘人员计算车费,在出租车上都装有计费器,其功能是能自动计算里程和车费,还要能更改起步价,单价等。因此,出租车计费器必定是智能化仪表,由于受到计费器价格和体积的限制,不可能将普通的计算机装入计费器中,而单片机作为智能工具,具有价格低廉,功能强大,体积小的优点,能很容易嵌入计费器中,实现计费器的各种功能要求。可以断言,单片机计费器在出租车上的应用必将越来越广泛。
18、1.3 本系统设计要求及指标设计要求:1.分析设计要求,明确性能指标。必须仔细分析课题要求、性能、指标及应用环境等,广开思路,构思出各种总体方案,绘制结构框图。2.设计各单元电路。总体方案化整为零,分解成假设干子系统或单元电路,逐个设计。3.组成系统。在一定幅面的图纸上合理布局,通常是按信号的流向,采用左进右出的规律摆放各电路,并标出必要的说明。设计指标:1.不同情况具有不同的收费标准。白天、晚上、途中等待10min开始收费2.能进行手动修改单价3.具有数据的复位功能4.掉电保护措施5.按键:数据复位清零,屏幕显示切换,电机调速等6.超速报警模块1.4 论文主要内容 本论文主要内容:第一章绪论
19、,简单介绍了出租车计价器研究背景和意义,并明确了本次毕业设计的主要任务。第二章霍尔传感器相关简介,重点阐述了A44E传感器的原理以及功能。第三章系统硬件设计,先给出了整个硬件的电路框图,然后详细描述了各个硬件的工作原理,并对每个子电路模块进行了分解。第四章系统软件设计,给出了各个子模块的流程图及片段代码。第五章系统的调试和运行结果分析。2 霍尔传感器霍尔器件是一种磁性传感器。用它们可以检测磁场及其变化,可在各种与磁场有关的场合中使用。霍尔器件以霍尔效应位其工作根底。霍尔器件具有许多优点,它们的结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高可达1MHZ,耐震动,不怕灰尘,油污,水汽及
20、盐雾等的污染或腐蚀。霍尔线性器件的精度高,线性度好;霍尔开关器件无接触点,无磨损,输出波形清晰,无抖动,无回调,位置重复精度高。取用了各种补偿和保护措施的霍尔器件的工作温度范围宽,可达-55-150。按照霍尔器件的功能可将它们分为:霍尔线性器件和霍尔开关器件。前者输出模拟量,后者输出输出数字量。按被检测的对象的性质可将它们的应用分为:直接应用和间接应用。前者是直接检测出受检测对象本身的磁场或磁特性,后者是检测受检测对象上人为设置的磁场,用这个磁场来作被检测的信息的载体,通过它,将许多非电,非磁的物理量,例如力,力矩,压力,应力,位置,位移,速度,加速度,角度,角速度,转数,转速以及工作状态发生
21、变化的时间等,转变成电量来进行检测和控制。本论文设计的数据采集系统通过传感器采集数据,对数据传输的可靠性要求较高。综合考虑以上因素,采用A44E作为测速传感器。2.1 霍尔传感器A44E结构及工作原理由于A44E属于开关型的霍尔器件,其工作电压范围比拟宽18V,其输出的信号符合TTL 电平标准,可以直接接到单片机的I/O端口上,而且其最高检测频率可到达1MHZ。集成开关型霍尔传感器原理如图2-1所示。图2-1 集成开关型霍耳传感器原理图A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个根本局部组成。在输入端输入电压Vcc,经稳压器稳压
22、后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,那么与这二者相垂直的方向上将会产生霍耳电势差Vh输出,该Vh信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场到达工作点(即Bop)时,触发器输出高电压(相对于地电位)使三极管导通,此时OC门输出端输出低电压,通常称这种状态为“开。当施加的磁场到达释放点(即Brp)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为“关。这样两次电压变换,使霍耳开关完成了一次开关动作3。2.2 霍尔传感器A44E芯片的引脚及功能霍尔传感器A44E的引脚接线图见2-2所示。
23、典型应用于无触点开关,汽车点火器,刹车电路,位置转速检测与控制,平安报警装置和纺织控制系统。霍尔传感器是一个3端器件,外形与三极管相似,是要接上电源,地,即可工作,输出通常是集电极开路OC门输出,工作电压范围宽,使用非常方便。图2-2 A44E芯片引脚接线图引脚1是电源Vcc,引脚2是地GND,引脚3是输出OUT。霍尔器件的工作电压不得超过规定的Vcc,大局部霍尔开关均为OC输出。因此,输出应接负载电阻,其数值取决于负载电流的大小,不得超负载使用。2.3 脉冲计数法测速脉冲计数法是智能测速系统中常用的方法。只要转轮每旋转一周,产生一个或固定的多个脉冲,并将脉冲送人微处理器中进行计数,即可获得转
24、速的信息。可以有多种方式获得脉冲信号。将光电传感器安装在转轴上,当扇叶经过时,可产生脉冲信号。但是光电对灰尘,油污等比拟敏感,因此不适宜安装在车轮上。光电编码器和霍尔传感器都不怕油污和灰尘,且都广泛应用于工业现场。但是光电编码器价格昂贵,霍尔传感器价格廉价且具有体积小,灵敏度高,相应速度快等,温度性能好,精确度高,可靠性高等特点,能很好满足车轮测速系统设计的需求。如下图为使用霍尔传感器测量车轮行驶路程及旋转速度。 图2-3 传感器测距示意图如图,我们选择了P3.2 口作为信号的输入端,内部采用外部中断0这样可以减少程序设计的麻烦,车轮每转一圈我们设车轮的周长是1米,霍尔开关就检测并输出信号,引
25、起单片机的中断,对脉冲计数,当计数到达1000 次时,也就是1公里,从而实现距离的计算。3 系统硬件设计本课题主要是设计一套基于单片机的出租车计费系统,通过单片机能够计算处理脉冲信号,并能够在液晶面板上分别显示金额,路程和单价信息等,同时利用PROTEUS这个强大的仿真工具,完成对计价系统的仿真。具体实现是运用霍尔传感器来检测电机带动车轮上的小磁铁,每当传感器与磁铁接触时无点接触,霍尔传感器的信号输出端便会产生一个脉冲,单片机通过外部中断计算脉冲个数,利用脉冲个数算出金额和路程,并将这些数据显示在LCD液晶上。为了增强该出租车计价器的实用性,添加了掉电保护模块。系统设计整体框图见图3-1。图3
26、-1 系统原理框图3.1 单片机简介现代计算机技术的产业革命,将世界经济从资本经济带入到知识经济时代。在电子世界领域,从20世纪中的无线电时代也进入到21世纪以计算机技术为中心的智能化现代电子系统时代。现代电子系统的根本核心是嵌入式计算机系统简称嵌入式系统,而单片机是最典型、最广泛、最普及的嵌入式系统。嵌入式系统源于计算机的嵌入式应用,早期嵌入式系统为通用计算机经改装后嵌入到对象体系中的各种电子系统,如舰船的自动驾驶仪,轮机监测系统等。嵌入式系统首先是一个计算机系统,其次它被嵌入到对象体系中、在对象体系中实现对象要求的数据采集、处理、状态显示、输出控制等功能,由于嵌入在对象体系中,嵌入式系统的
27、计算机没有计算机的独立形式及功能。单片机完全是按照嵌入式系统要求设计的,因此单片机是最典型的嵌入式系统。早期的单片机只是按嵌入式应用技术要求设计的计算机单芯片集成,故名单片机。随后,单片机为满足嵌入式应用要求不断增强其控制功能与外围接口功能,尤其是突出控制功能,因此国际上已将单片机正名为微控制器MCU,Microcontroller Unit。世界电子元器件在嵌入式系统带动下,沿着充分满足嵌入式应用的现代电子系统要求开展。这就使原来经典电子系统的天地愈来愈小。电子系统中的各类从业人员应尽早转向现代电子系统的康庄大道8。3.1.1 AT89C51单片机简介AT89C51是一种带4K字节FLASH
28、存储器FPEROMFlash Programmable and Erasable Read Only Memory的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本,其外形及引脚见图3-2。图3-2 AT89C51外形及引脚图3.1.2 AT89C51单
29、片机引脚介绍其各自引脚功能如下:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作
30、为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能存放器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口
31、写入“1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流ILL这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示: P3.0 RXD串行输入口 P3.1 TXD串行输出口 P3.2 /INT0外部中断0 P3.3 /INT1外部中断1 P3.4 T0记时器0外部输入 P3.5 T1记时器1外部输入 P3.6 /WR外部数据存储器写选通 P3.7 /RD外部数据存储器读选通 P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部
32、存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两
33、次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,那么在此期间外部程序存储器0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一
34、个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的上下电平要求的宽度9。3.2 AT24C02简介AT24C02是一个2K位串行CMOSE2PROM,内含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗,AT24C02有一个16字节页写缓冲器,该器件通过IC总线接口进行操作,有一个专门写保护功能。3.2.1 管脚配置管脚封装如图3-3所示。A0 VccA1 WpA2 sclGND sdl 图3-3 AT24C02引脚3.2.2 极限参数工作温度工业级-55+125商业级0+75贮存温度-65+150各管脚承受电压-2V+2V封装功率损耗Ta=2
35、5焊接温度10秒300输出短路电流100mA表3-1 可靠性参数符号 参数最小最大单位参考测试模式NEND耐久性1000000周期/字节MIL-STD-883测试方法1033TDR数据保存时间100年MIL-STD-883测试方法1008VZAPESD2000VMIL-STD-883测试方法3015ILTH上拉电流100mAJEDE标准173.2.3 功能描述AT24C02支持IC总线数据传送协议,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线收数据的器件为接收器。数据传送是有由产生串行时钟和所有起始停止信号的主器件控制。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送
36、数据发送或接收的模式,通过器件地址输入端A0,A1和A2可以实现将最多8个AT24C02器件连接到总线。3.2.4 管脚描述表3-2 管脚描述管脚名称功能A0 A1 A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护VccVss地SCL 串行时钟AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。SDA 串行数据/地址AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或wire-OR。A0,A1,A2器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默
37、认值为0.当使用AT24C02时最大可级联8个器件。如果只有一个AT24C02被总线寻找,这三个地址输入脚A0,A1,A2可悬空或连接到Vss,如果只有一个AT24C02被总线寻找,这三个地址输入脚A0,A1,A2必须连接到Vss。WP 写保护如果WP管脚连接到Vcc,所有的内容都被写保护只能读。当WP管脚连接到Vss或悬空,允许器件进行正常的读写操作5。3.3 LCD1602液晶显示模块LCD1602液晶模块采用HD44780控制器。HD44780具有简单而功能较强的指令集,可以实现字符移动、闪烁等功能。LM016L与单片机MCUMicrocontroller Unit通讯可采用8位或者4位
38、并行传输两种方式。HD44780 控制器由两个8位存放器、指令存放器IR和数据存放器DR、忙标志BF、显示数据RAMDDRAM、字符发生器ROMCGROM、字符发生器RAMCGRAM、地址计数器AC。IR 用于存放指令码,只能写入不能读出;DR用于存放数据,数据由内部操作自动写入DDRAM 和CGRAM,或者暂存从DDRAM和CGRAM 读出的数据。BF为1时,液晶模块处于内部处理模式,不响应外部操作指令和接受数据。DDRAM用来存储显示的字符,能存储80个字符码。CGROM由8位字符码生成5*7点阵字符160种和5*10点阵字符32种,CGRAM是为用户编写特殊字符留用的,它的容量仅64字节
39、。可以自定义8个5*7点阵字符或者4个5*10点阵字符。AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,那么IR自动把地址码装入AC,同时选择DDRAM或者CGRAM单元13。3.3.1 LCD1602的结构及功能LCD1602液晶模块的引脚见图3-4。图3-4 LCD1602LCD1602液晶模块的引脚功能见表3-3。表3-3 LCD1602引脚说明引脚符号功能说明1VSS一般接地2VDD接电源+5V3VEE液晶显示器比照度调整端,接正电源时比照度最弱,接地电源时比照度最高4RSRS为存放器选择,高电平1时选择数据存放器、低电平0时选择指令存放器。5RWR/W为读写信号线
40、,高电平1时进行读操作,低电平0时进行写操作。6EE或EN端为使能enable端,下降沿使能。续表3-37D0底4位三态、 双向数据总线 0位最低位8D1底4位三态、 双向数据总线 1位9D2底4位三态、 双向数据总线 2位10D3底4位三态、 双向数据总线 3位11D4高4位三态、 双向数据总线 4位12D5高4位三态、 双向数据总线 5位13D6高4位三态、 双向数据总线 6位14D7高4位三态、 双向数据总线 7位最高位也是busy flag存放器选择控制见表3-4。表3-4 存放器选择控制表RSR/W操作说明00写入指令存放器去除屏等01读busy flagDB7,以及读取位址计数器D
41、B0DB6值10写入数据存放器显示各字型等11从数据存放器读取数据注:关于E=H脉冲开始时初始化E为0,然后置E为1,再清0。busy flagDB7:在此位为被去除为0时,LCD将无法再处理其他的指令要求。3.3.2 LCD1602液晶显示指令集它的读写操作、屏幕和光标的操作都是通过指令编程来实现的说明:1为高电平,0为低电平。 指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平那么无效。指令4:显示开关控制。D:控
42、制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符有些模块是 DL:高电平时为8位总线,低电平时为4位总线。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块
43、不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。使用PROTEUS仿真LCD1602即LM016L,依照数据手册说明可能遇到困难,可以尝试采用以下方案解决:1数据手册中可能介绍LM016L内部D0D7已有上拉,可以使用P0口直接驱动。在PROTEUS里LM016L内部可能没有,应该人为加上拉电阻。建议不要使用排阻,使用普通电阻一个一个拉应该可以解决问题。2可能碰到不能检测忙信号的问题,尝试使用延时把忙信号拖过去。LM016L通过D0D7的8位数据端传输数据和指令。3.4 系统硬件具体设计系统的整体硬件设计可以分为五个模块:键盘输入模块、传感器模块、掉电保护模块、
44、显示电路模块和电机控速模块。3.4.1 霍尔传感器电路设计霍尔传感器A44E在测速系统中的主要作用是车轮转速采集。车轮每转一周,磁铁经过A44E一次。A44E的第三脚就输出一个脉冲信号作为单片机AT89C51的外部中断信号,从P3.2口输入。单片机测量脉冲信号的个数和脉冲周期。根据脉冲信号的个数计算出里程,根据脉冲信号的周期计算出速度显示。A44E与单片机的硬件电路连接如图3-5所示。图3-5 单片机和A44E的硬件连接图3.4.2 LCD显示电路设计本设计选用AT89C51的P3.4、P3.6、P3.7端给,LCD1602采用8位数据线工作方式。AT89C51的P0与LCD1602的8位数据
45、线连接,AT89C51的P3.7、P3.6、P3.4端口分别与LCD1602的使能端口、读写选择端口、数据命令选择端口连接。由于P0端口无上拉电阻,所以我们需外接8个2k的上拉电阻,其与LCD液晶显示器的连线原理图如图3-6所示。 图3-6 LCD与单片机连线图3.4.3 AT24C02掉电保护电路设计由于只用一片AT24C02,所以a0,a1,a2都接地。AT24C02 的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL移位脉冲和SDA数据/地址与单片机传送数据。将芯片的SCL和SDA管脚接到单片机的P1.5和P1.6。接线如图3-7所示。 图3-7 AT24C02与单片
46、机连线图每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内。当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。3.4.4 直流电机电路设计在本系统中,为了模拟出租车的车轮,已到达配合霍尔传感器的使用,我们利用用电机来来实现车轮转动,通过AT89C51提供的PWM功能来驱动电机。我们可以通过控制PWM的占空比,来控制电机的平均转速,从而控制电机的行进速度。由于单片机的I/O端口缺乏以驱动电机,所以我们利用三极管的选通特性,将直流电机接在三级管的集电极,见图3-8所示。 图3-8 直流电机与单片机的接线图当P3.1=0,集电极与发射极电
47、压小于管压降,三极管截止,电机不导通。当P3.1=1,集电极与发射极电压大于管压降,三极管导通,电机导通旋转。所以控制P3.1口信号的PWM,便可控制电机的旋转速度。3.4.5 键盘电路设计键盘就是在人机交互系统中用来输入控制信号或数据的接口。其中,人机交互系统是一个完整的单片机系统的组成局部,用来使单片机识别不同的输入信号,并做出不同的响应。对于一个优秀的人机键盘接口设计,需要占用合理的单片机资源,并能够及时、准确地响应用户的输入信息。在本系统中,终端输入采用了独立式键盘,当按下和释放按键时,输入到I/O端口的电平是不一样的,单片机程序根据不同端口电平的变化判断是否有按键按下以及是哪一个按键
48、被按下,并执行相应的程序段。键盘连线见图3-9。 图3-9 单片机与键盘连线图电路共采用了八个按键,D1、D2、D3、D4、D5、D6、D7、D8,其功能分别是:单价上调,单价下调,屏幕显示切换,白天/夜间切换,加速,减速,电机启动,电机关闭。4 系统软件设计本设计通过Keil C51进行编译并形成HEX文件,并将HEX文件导入到PROTEUS的系统仿真图中进行系统的仿真。在编写软件之前,首先确定一些常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。当某器件的连线设计好后,就可以确定其地址和控制字。然后用文本编辑器如EDIT、CCED等编写软件,编写好后,用编译器对源程序文
49、件编译,查错,直到没有语法错误,除了极简单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,就可以写片将程序固化在EPROM中。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可写片。4.1 Keil C51语言软件开发系统简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断开展,从
50、普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断开展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。4.2 系统软件具体设计在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设
51、计以及开中断、循环等待等工作。当按下D5时,电机转动,就启动计价,将根据脉冲个数判断出行驶里程是否已超过起价公里数。假设已超过,那么根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果送显示电路显示出来。 当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价。到下次启动计价器时,系统自动对显示清零,并重新进行初始化过程。下列图为出租车计费系统的主程序流程图。 图4-1 主程序流程图4.2.2 键盘效劳程序 键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右键按下,便转向相应的子程序处理,处理结束再返回。4-
52、2 键盘扫描流程图键盘扫描程序描述void delay1ms/延时函数,用于消抖ifP0.X=0执行功能;delay1ms(500);/X可取0至7特别注意,在计算总金额时,我们必须要知道起步价格,由于白天与夜间的起步价不同,所以在设计时我们通过一个按钮来切换白天与黑夜,例如现在显示的是白天起步价,当按下该键,进入夜间起步价,在按下该键,又进入白天起步价。对于这样的按键设计,我们需要设置一个参数来统计按键次数,假设为偶数那么为白天,假设为奇数那么为黑夜,所这样就可以在白天与夜间方便的进行切换。下列图为切换流程图。图4-3 白天与夜间切换流程图4.2.3 显示子程序效劳程序为了方便读/写控制,
53、在程序中作了如下定义sbit RS=P34; sbit RW=P36;sbit E=P37;这样方便对LCD液晶显示器的控制。根本操作状态如表 4-1所示。表4-1 根本操作状态读状态输入RS=L,R/W=H,E=H输出=状态字写指令输入RS=L,R/W=L,=状态字,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出=数据写数据输入RS=H,R/W=L,=状数据,E=高脉冲输出无 此外,用到每个功能模块函数已在程序中定义,如下:void LCD_w_dat(char dat) / 写数据void LCD_w_com(unsigned com) / 写指令void init_LCD(v
54、oid) / 初始化lcdvoid display_LCD_string(char *p ) /字符串输出函数void gotoxy(unsigned x,unsigned y) /字符输出位置程序流程图如图4-4所示。LCD初始化清屏显示字符返回图4-4 LCD1602程序流程图4.2.4 霍尔传感器A44E软件的设计4.2.4.1 里程数设计假设轮子的周长位0.25(m),当磁铁经过A44E时,产生霍尔效应,使P3.2出现一个下降沿,触发中断,通过累积脉冲个数gl,从而计算出里程数S=0.25*gl。程序流程图如图4-5所示。初始化等待外部中断0N是否产生?Ygl+LCD输出S图4-5里程
55、数设计流程图4.2.4.2 总金额设计 假设起步价为10元,起步距离为250m,超过250m之后,单价为2元/50m(由于该设计只是模拟计费系统,所以一些参数取值只是方便该系统的计算)。于是对于金额的计费,便会出现两种情况:一种是路程在起步之内,另一种是超过起步距离。程序流程图如图4-6所示。图4-6 金额计算流程图程序设计如下: void count(float m)/LCD显示数值m disdata0=(int)m/1000+0 x30;/千位数 disdata1=(int)m%1000/100+0 x30;/百位数 disdata2=(int)m%100/10+0 x30;/十位数 di
56、sdata3=(int)m%100%10+0 x30;/个数位 disdata4=(int)(m*10)%10+0 x30;/小数位 LCD_w_dat(disdata0);/显示千位 LCD_w_dat(disdata1);/显示百位 LCD_w_dat(disdata2);/显示十位 LCD_w_dat(disdata3);/显示个位 LCD_w_dat(0 x2e);/显示小数点 LCD_w_dat(disdata4);/显示小数位 display_LCD_string(Price:);/总金额显示if(gl=100) b=0; if (b=a1) =0; else =1;/a1为占空比
57、在主函数中只要改变a1占空比的值,就可以调节电机的转动速度 。5 系统调试5.1 KEIL C调试硬件电路完成以后,进行系统的软件设计,首先要分析系统对软件的要求,然后进行软件的总体设计,包括程序总体结构设计和对程序进行模块化设计。按照整体功能分成多个不同模块,单独设计、编程、调试然后将各个模块装配调试,组成完整的软件。在编程语言方面,选择的是C语言进行编程。C语言是近年来国内外普遍使用的一种编程语言,C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,而且能直接对计算机硬件进行操作。既有高级语言的特点,又有汇编语言的特点。设计使用的软件开发工具是KEIL uVIS
58、ION2,KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分看好。KeilC51交叉编译器是一个针对8051系列单片机的C编译器。生成的可执行代码快速紧凑,在运行效率和速度上可以和汇编程序得到的代码相媲美。和汇编语言相比用C语言这样的高级语言有很多优势比方: 1对处理器的指令集不必了解8051 CPU的根
59、本结构可以了解但不是必须的; 2存放器的分配以及各种变量和数据的寻址都由编译器完成; 3程序拥有了正式的结构由C语言带来的并且能被分成多个单独的子函数这使整个应用系统的结构变得清晰同时让源代码变得可重复使用; 4选择特定的操作符来操作变量的能力提高了源代码的可读性; 5可以运用和人的思维很接近的词汇和算法表达式; 6编写程序和调试程序的时间得到很大程度的缩短; 7C运行连接库包含一些标准的子程序如格式化输出数字转换浮点运算; 8由于程序的模块结构技术使得现有的程序段可以很容易的包含到新的程序中去; 9ANSI 标准的C语言是一种非常方便的获得广泛应用的在绝大局部系统中都能够很容易得到的语言。虽
60、然C51是一个兼容ANSI的编译器但为了支持8051系列MCU还是参加了一些扩展的内容C51编译器的扩展内容包括数据类型、存储器类型、指针、重入函数、中断效劳程序、实时操作系统和PL/M及A51源程序的接口。当使用KEIL Software工具时工程开发流程和其它软件开发工程的流程极其相似,其步骤如下: 1 工程文件的建立选择Project菜单下的New Project命令,在出现的Great New Project对话框中选择新建工程文件的位置,输入新建工程文件的名字,单击“保存按钮弹出Select Device Target. Target1对话框,选择所需的单片机型号,见图5-1。图5-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年内蒙古化工职业学院单招职业适应性考试题库及1套参考答案详解
- 2026年兰州资源环境职业技术大学单招职业适应性考试题库附答案详解(研优卷)
- 2026年北京北大方正软件职业技术学院单招职业适应性测试题库附答案详解(典型题)
- 2026年内蒙古美术职业学院单招职业倾向性考试题库有答案详解
- 2026年兰州职业技术学院单招职业倾向性考试题库及答案详解(典优)
- 2026年南昌理工学院单招职业技能考试题库附参考答案详解(b卷)
- 2026年内江职业技术学院单招职业倾向性考试题库及答案详解(各地真题)
- 2026年南昌影视传播职业学院单招职业倾向性考试题库附答案详解(能力提升)
- 2026年兰州石化职业技术学院单招职业技能考试题库附答案详解(巩固)
- 2026年包头钢铁职业技术学院单招职业技能测试题库完整答案详解
- 2026四川成都市简阳市招聘四级城乡社区工作者65人考试备考题库及答案解析
- (2026春新版本) 苏教版科学三年级下册全册教学设计
- 2026年1月浙江省高考(首考)化学试题(含标准答案及解析)
- 2025年河北省公务员考试行测试卷真题附答案详解
- 中国移动社会招聘在线笔试题
- 全屋定制讲解方案
- 上海市奉贤区2026届初三一模英语试题(含答案)
- 《电力系统继电保护及应用》课件-110kv线路保护配置-双语
- 餐饮厨房消防安全培训
- 天津市和平区天津一中2026届高二上数学期末学业水平测试试题含解析
- GB/T 19275-2025材料在特定微生物作用下潜在生物分解和崩解能力的评价
评论
0/150
提交评论