毕业设计(论文)-基于单片机的出租车计费器设计.doc_第1页
毕业设计(论文)-基于单片机的出租车计费器设计.doc_第2页
毕业设计(论文)-基于单片机的出租车计费器设计.doc_第3页
毕业设计(论文)-基于单片机的出租车计费器设计.doc_第4页
毕业设计(论文)-基于单片机的出租车计费器设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1基于单片机的出租车计费器设计福建师范大学协和学院信息技术系电子信息工程124132007040指导老师【摘要】根据出租车行业的需求,传统的出租车计费器发展使用了十几年,在稳定性、成本、以及使用习惯上都具有一些优势。而使用单片机实现该系统,是深化单片机应用的良好途径。本系统由单片机AT89S52和一些外围器件组成,具有操作简单,显示明了,功能强大的特点。使用1602液晶模组作为显示器,可以显示数字、字母、中文、图片等,使系统信息一目了然。本方案充分发挥人性化的特点。本系统涉及到的理论知识有:PIC单片机知识、LCD液晶显示器的工作原理和使用方法,出租车计费系统的原理和实现方法、PROTEUS仿真原理及实际应用。【关键词】1062液晶模组;LCD液晶显示器;AT89S52;PROTEUS2目录1.绪论.31.1课题背景和意义.31.2单片机发展概况.32.设计方案.42.1主控芯片的设计.43.硬件模块简介.43.1AT89S52单片机简介.43.2液晶简介.53.3光遮断器简介.83.3.1光遮断器.83.3.2光反射器.93.3.3光反射器的构造与特性.104.硬件电路设计.124.1总体方案与框图.124.2单片机最小系统.124.2.1电源稳压电路.134.2.2复位电路.144.2.3振荡时钟电路.154.3液晶电路.164.4光遮断器电路.164.5电源电路.174.6按键电路.174.7指示灯电路.185.软件程序设计.185.1系统的模式功能设计.185.2系统的主程序设计.195.2.1主程序流程图.195.2.3主程序仿真图.215.3系统的各个子程序设计.216.制作系统实物并测试.226.1制作硬件实物.226.2烧写软件.226.3测试功能.227.总结.23参考文献.24附录一:各个子程序代码.25附录二:电路pcb图.2931.绪论1.1课题背景和意义出租车计费器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可言很容易的实现设计要求,且灵活性强,可以通过软件编程来完成跟多的附加功能。针对模式的切换,通过软件编程就可以轻而易举的实现。避免了机械开关带来的不稳定因素。随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多的关注。于是,出租车行业以低价高质的服务给人们带来了出行的享受。1.2单片机发展概况单片微机(Single-ChipMicrocomputer)简称单片机,有的也叫做微处理(Micro-Processor简写P)或微控制器(Micro-Controller简写C),通常统称微型处理部件(MicroControllerUnit简写MCU)。一般的说,单片机就是在一块硅片上集成CPU、RAM、ROM、定时器/计数器、和多种I/O的完整的数字处理系统。单片机的结构与组成目前,单片机的系统结构有两种类型:一种是将程序和数据存储器分开使用,即哈佛(Harvard)结构,当前的单片机大都是这种结构。另一种是采用和PC机的冯.诺依曼(VonNeumann)类似的原理,对程序和数据存储器不作逻辑上的区分。EPROM型存储器编程后其内容可用紫外线擦除,用户可反复使用,所以特别适用于开发过程,但EPROM型单片机价格很高。单片机编程语言介绍对于51系列单片机,一个新变量名定义之后可在程序中作变量使用,非常易学,根据解释的行可以找到错误而不是当程序执行完才能显现出来。BASIC由于逐行解释自然很慢,每一行必须在执行时转换成机器代码,需要花费许多时间,不能做到实时性。BASIC为简化使用变量,所以,所有变量都用浮点值。BASIC是用于要求编程简单而且对编程效率和运行速度要求不高的场合。PL/M是Intel从8080微处理器开始为其系列产品开发的编程语言。它很像PASCAL,是一种结构化语言,它使用关键字去定义的结构。PL/M编译器好像汇编器一样可产生紧凑代码,总的来说PL/M是高级汇编语言,可详细控制着代码的生成。但对51系列,PL/M不支持复杂的算术运算、浮点变量而无丰富的库函数支持,学习PL/M无异于学习一种新语言。C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码。C可以进行许多机器级函数控制而不用汇编语言。与汇编相比,有如下优点:对单片机的指令系统不要求了解,仅要求对51的存储器结构有初步了解寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理程序有规范的结构,可分为不同的函数。这种方式可使程序结构化将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性编程及程序调试时间显著缩短,从而提高效率提供的库包含许多标准子程序,具有较强的数据处理能将已编好程序可容易的植入新程序,因为它具有方便的模块化编程技术。C语言作为一种非常方便的语言而得到广泛的支持,C语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片机不同较快地移植过来。微控制器的抗干扰软件编程方法微控制器越来越多地用于各种电子应用之中,例如自动化、工业控制和用户产品市场中。随着金属氧化物半导体的硅晶体管几何尺寸的不断下降,系统设计中的电磁兼容性(EMC)问题,成为采用小尺寸器件进行应用设计时必须考虑的主要问题。42.设计方案2.1主控芯片的设计本设计以单片机为主控芯片,采用AT89S52单片机。AT89S52是一个低功耗高性能的单片机,具有8kB的闪存、128BRAM、32个I/O口、2个定时/计数器、六个中断源、一个全双工的串行口,可反复擦写,支持ISP(在系统编程),可以有效地缩短开发时间和降低开发成本。考虑到本次设计要控制的灯、数码管会占用较多的I/O口,在今后系统发展上也多了很大的扩展空间,所以本设计选用89S52作为主控芯片。3.硬件模块简介3.1AT89S52单片机简介在本设计中,用到的是AT89C51的升级版AT89S52。AT89S52是ATMEL公司生产的CMOS八位高性能微控制器,硬件方面,是40脚DIP封装,其中有32个外部双向I/O(输入/输出)端口,同时内含2个16位可编程定时/计数器和1个全双工串行通信口,允许六个中断源进行两级中断,自带片内振荡放大器和时钟电路,又具有低功耗的闲置和掉电模式;软件方面,兼容标准MCS-51指令系统,不管是通过汇编语言还是C语言都可以对其进行方便的编程。综上可知,51系列单片机可谓功能强大,可适用于许多控制领域,为嵌入式控制系统提供了灵活高效且廉价的处理方案。而相比我们学习的最为基础的AT89C51,AT89S52具有性能上的优势。C51只有4kB闪存的只读存储器,而S52有8Kb,有更为充足的存储空间可用于程序设计。尤为重要的是,S52系统内核内已经固化了ISP监控程序,支持ISP(在系统编程),这样就可以有效地缩短开发时间并降低开发成本。图3-1AT89S52单片机53.2液晶简介1602采用标准的16脚接口,其中:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第1516脚:空脚1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。如图3-2:图3-2CGROM和CGRAM中字符代码与字符图形对应关系6DM-162液晶显示模块可以和单片机AT89C51直接接口,电路如图3-2所示。图3-3DM-162液晶显示模块与单片机AT89C51直接接口1602液晶模块内部的控制器共有11条控制指令。它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。7指令10:写数据。指令11:读数据。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图3-3是DM-162的内部显示地址。如图3-3:图3-4DM-162的内部显示地址比如第二行第一个字符的地址是40H,那么直接写入40H将不能光标定位在第二行第一个字符的位置,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。以下程序是在液晶模块的第二行第一个字符的位置显示字母“A”的程序:ORG0000HRSEQUP3.7/确定具体硬件的连接方式。RWEQUP3.6/确定具体硬件的连接方式。EEQUP3.5/确定具体硬件的连接方式。MOVP1,#00000001B/清屏并光标复位。ACALLENABLE/调用写入命令子程序。MOVP1,#00111000B/设置显示模式:8位2行

温馨提示

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

最新文档

评论

0/150

提交评论