ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:256.75KB ,
资源ID:11775950      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11775950.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计出租车计价器就.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计出租车计价器就.docx

1、单片机课程设计出租车计价器就河南理工大学单片机应用与仿真训练设计报告基于单片机的出租车计价器的设计2012年7月1日摘要 出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。本设计的是一个基于单片机AT89S52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。复位

2、电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。在上电时四位共阴极5461AS数码管显示最初的起步价,里程收费,等待时间收费三种收费,通过按键可以调整起步价,里程收费,等待时间收费。通过按键模拟出租车的运行,暂停,停止。在5461AS液晶上可以显示运行的时间,运行时暂停的时间,通过计算可以得出总共的费用和总的路程。在这里主要是以AT89S52单片机为核心控制器,P0口接5461AS液晶显示模块,P1口接按键的,通过按键输入。第一章 概述1.1 出租车计价器设计要求设计一个出租车自动计费器,计费

3、包括起步价、行车里程计费、二部分,用5461AS液晶 显示总金额,运行时间,暂停时间,最大值为99.9元,起步价为5.0元,3Km之内起步价计费,超过3Km,增加2.0元即1KM增加2.0元,用液晶显示总里程,同时用液晶显示等待时间和运行花费时间。、计费功能费用的计算是按行驶里程收费。设起步价为5.00元。1、当里程3km时,按起价计算费用、显示功能1、显示行驶里程:用四位数字显示,显示方式为“XXXX”,单位为km。计程范围0-99km,精确到1km。2、显示等候时间:用两位数字显示,显示方式为“XX”,单位为min。计时范围0-59min,精确到1min。3、显示总费用:用四位数字显示,显

4、示方式为“”,单位为元。计价范围0-999.9元,精确到0.1元。1.2 系统主要功能本出租车自动计费,上电后显示最初的起步价,里程计费单价,等待时间计费单价,通过按键可以调节起步价,里程计费单价,等待时间计费单价。同时具有运行,暂停,停止等状态,可以显示运行的时间,同时可以显示暂停的时间,具有累加功能,暂停和运行时间在暂停和运行前一次的状态上计时。出租车停止后能够显示行驶的总费用。1.3 方案论证与比较方案一:采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数

5、码管显示,一下是该方案的流程框图,方案一如图1-1所示:图1-1方案一案二:采用EDA技术,根据层次化设计理论,该设计问题自顶向下可分为分频模块,控制模块 计量模块、译码和动态扫描显示模块,其系统框图如图1-2所示:图1-2方案二方案三:采用MCU技术,通过单片机作为主控器,利用1602字符液晶作为显示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案三的系统流程图,本方案主要是必须对于数字电路比较熟悉,成本又不高。方案图如图1-3所示:图1-3方案三方案总结:通过各个方案的比较,本次采用方案三,不但控制简单,而且成本低廉,设计电路简单。第二章 出租车计价系统的硬件设计2.1 振

6、荡电路单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容电容和一般取33pF。这样就构成一个稳定的自激振荡器。 振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE信号,此时得到的信号时机器周期信号。振荡电路如图2-1所示:图2-1振荡电路2.2 复位电路设计复位操作有两种基本形式:一种是上电复位,另一种是按键复位。按键复位具有上电复位功能外,假设要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。上电复位电路要求接通电源后,通过

7、外部电容充电来实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间2个机器周期,单片机就可以进行复位操作。按键复位电路图如图2-2所示。图2-2 AT89C52引脚配置2.3 键盘接口电路独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。I/O口内部有上拉电阻时,外部可不接上拉电阻。键盘接口电路如图2-3所示:图2-3键盘接口电路2.4 显示电路对于现实电路我们可以采用数

8、码管,也可以采用液晶显示,液晶又分字符型和点阵型,我们使用的液晶是字符型液晶,并且带字符库的,不需要查找代码。英文字符就可。液晶电路使用时,如果发现液晶不亮可以调节连接液晶的点位器,改变液晶的亮度。显示电路如图2-4所示:图2-4 数码管封装图及数据线与数码管管脚关系2.5 路程测量部分出租车中需要一个能准确获得车轮转动即路量信号的装置,以得到标准的脉冲信号送入单片机的定时/ 计数器T1 即P3. 5 引脚,利用单片机的T1 的计数功能完成100 次的计数后产生一中断来完成路程的测量。(设车轮周长为1 m ,则霍尔传感器每产生100 个脉冲便表示车已行程0. 1 km ,根据际情况在程序中进行

9、设置) 。汽车联轴器按圆周间隔嵌入磁钢,用霍传感器集成芯片A44E 测并输出脉冲,其工作原理如图4 所示,霍尔传感器集成芯片A44E 有信号转换、电压放大、等功能,为增加其抗干扰的能力,经过74L S14 对信号整形后再通过光偶送入P3. 5 引脚。图2-5路程测量电路2.6 单片机各引脚功能说明AT89S52电路图如图2-6所示: VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FI

10、ASH进行 图2-6校验时,P0输出原码,此时P0外部必须被拉高。 图2-6 AT89S52 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。 P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于

11、外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流ILL这是由于上拉的缘故。P3口也可作为AT89S52的一些特殊功能口,P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持

12、RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每

13、个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.7 5461AS液晶的简介5461AS共阴四位数码管主要技术参数如表2-1所示:显示容量:16*2个字符芯片工作电压:工作电流:2.0mA(5.0V

14、)模块最正确工作电压:字符尺寸:2.95*4.35W*Hmm表2-1 5461AS共阴四位数码管主要技术参数接口信号说明如图2-6所示:图2-5 5461AS共阴四位数码管接口信号说明控制器接口说明HD44780及兼容芯片1、 基本操作时序a 读状态:输入:Rs=L, Rw=H, E=H 输出:D0D7=状态字b 写指令:输入:Rs=L, Rw=L, D0D7=指令码 输出:无 E=高脉冲C 读数据:输入:Rs=H, Rw=L, E=H 输出:D0D7=数据d 写数据:输入:Rs=H, Rw=L, D0D7=数据 输出:无 E=高脉冲状态字说明如表2-2所示:STA7D7STA6D6STA5

15、D5STA4 D4STA3 D3STA2 D2STA1 D1STA0 D0表2-2状态字说明aSTA0-6当前数据地址指针的数值STA7读写操作使能1:禁止 0:允许表2-3 状态字说明b注:对控制器进行读写操作之前,都必须进行读写检测,确保STA7为0RAM地址映射图控制器内部带有80*8位的RAM缓冲区,对应关系如下列图2-5所示:表2-4 RAM地址映射图LCD16字*2行000102030405060708090A0B0C0D0E0F1027404142434445464748494A4B4C4D4E4F5067显示模式设置如表2-5所示:指令码功能00111000设置16*2显示,5

16、*7点阵,8位数据接口表2-5 显示模式设置显示开关及光标设置如表2-6所示:指令码功能00001DCBD=1 开显示; D=0 关显示C=1 显示光标; C=0 不显示光标B=1 光标闪烁; B=0 光标不显示000001NSN=1 当读或写一个字符后地址指针加一,且光标加一N=0 当读或写一个字后地址指针减一,且光标减一S=1 当写一个字符后,整屏显示左移(N=1)或右移N=0,以得到光标不移动而屏幕移动的效果S=0 当写一个字符,整屏显示不移动表2-4 显示开关及光标设置数据控制控制器内部没有一个数据地址指针,用户可通过它们来访问内部的全部80字节RAM。第三章 出租车计价系统的软件设计

17、3.1 单片机资源使用入,直流电机电路的控制线用了P2口线,P3.0、P3.1、P3.2分别为led信号控制脚。显示电路用到了P0和P2口,P0口为液晶的数据口。3.2 中断子函数对于中断程序,只要定时器计数满就会产生中断50ms中断一次,共计20次,秒钟加1,秒钟计满再分钟加,当分钟加到99时全部清零。以下是中断子函数的流程图如图3-1所示:图3-1 中断子程序流程图3.3 判键子函数对于独立式键盘判键,首先看有键按下不,如果有键按下则延时一会儿,在判断是否真的有键按下,如果确实有键按下,在判键释放,最后执行键功能程序。判键子函数的流程框图如图3-2所示: 图3-2判键子程序流程图3.4 显

18、示子程序1602液晶是字符型液晶,它的内部自带字符库,它可以写两行的字符,同时每行可以写40个字符,在写显示程序的时候,我们先写命令,再设定字符显示,最后写数据,在每写一次命令或数据都需要判断液晶是否忙。液晶显示程序流程图如图3-3所示: 图3-3 显示子程序流程图3.5 总程序流程框图图3-4整体程序流程图第四章proteus软件仿真4.1 Proteus介绍Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,它组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。此系统受益于15年来的持续开发,被电子世界在其

19、对PCB设计系统的比较文章中评为最好产品“The Route to PCB CAD”。Proteus 产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。 其功能模块:个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真;ARES PCB设计。PROSPICE 仿真器的一个扩展PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD

20、显示CPU模型。支持许多通用的微控制器,如PIC,AVR,HC11以及8051。最新支持ARM。交互的装置模型包括:LED和LCD显示,RS232终端,通用键盘,I2C,SPI器件。强大的调试工具,包括寄存器和存储器,断点和单步模式。IAR C-SPY 和Keil uVision2等开发工具的源层调试。应用特殊模型的DLL界面-提供有关元件库的全部文件。4.2 调试与测试采用KeilC51编译器进行源程序编译及仿真调试,同时进行硬件电路板的设计制作。硬件电路制作完毕,用万用表检测有无短路开路等现象,确定硬件电路没有问题后,用仿真头与硬件电路相连,运行程序进行调试。假设调试不成功,则可再单独调试

21、程序和硬件电路。程序用软件仿真运行,硬件电路再次检查有无焊错,或者元件与插座接触不良等方面问题;确认均无问题后,再次把软件和硬件联机调试,直至功能正常。把程序烧录进单片机STC89C52结束调试。4.3 里程计价测试由于实验条件的限制,我们采用霍尔传感器产生外部中断,设定中断间隔为10ms,假定1500个脉冲为1公里,则此时车速为1km/h=5圈/S。整个系统以此为基础,通过计费程序完成中金额的计算。表4.1的测试条件是:假设单程的单价是2元,起步价为5元包含3公里,分别不公里程测试得数据如表:4km6km7km9km 总 金额理论 7元 11元13元 17元实际 7元11元13元17元行驶里

22、程理论4km6km7km9km实际4km6km7km9km表4.1 实际金额和里程数表4.2的测试条件是:假设在单程运行中的单价2元的情况下行驶了6km,进行中途等待,分别等待不同的时间每5分钟相当于增加1公里,起步价为5元包含3km。5min10min15min20min总金额理论 13元15元17元19元实际13元15元17元19元表4.2 总金额比照第五章 设计体会与小结 出租车计费器系统的设计已经全部完成,能按预期的效果进行模拟汽车启动,停止,暂停等功能并能够通过LCD显示车费数目。本款出租车计价器包括单价输出、单价调整、显示当前的系统时间等功能。另外,多功能出租车计价器还具有性能可靠

23、、电路简单、成本低、实用性强等特点,加上经过优化的程序,使其有很高的智能化水平。一个月来,经过自己努力,基本上完成了设计要求的内容,在系统可行性分析、原理图设计等方面都作了许多实际工作,取得了一些成绩,同时也遇到了一些问题,存在一些不足。经过这一个月的学习,我觉得自己不管是在理论知识方面还是在动手能力方面都有了不小的进步,自己从中受益匪浅。这次设计很好的把以前学到的理论知识应用于实践,使我认识到理论知识与实践之间有一定的差距,只有通过不断的努力学习和实践才能很好的把理论知识应用到实践当中,也只有通过不断的实践才能对理论知识的理解。通过这次设计不仅学会了如何去查找相关资料,更重要的是通过查找资料

24、和翻阅书籍学到了不少知识,扩大了知识面,提高了知识水平。经过单元设计和系统设计稳固了以前所学的专业知识,自己真正认识到理论联系实际的重要性,为以后的学习和工作提供了很多有价值的经验。通过这次设计不仅增强了自己的动脑能力和动手能力,也提高了我思考问题、分析问题、解决问题的能力,更重要的是学会用工程化的思想来解决问题。这在以前的学习过程中是不曾学到的。这次设计是我认真认识到完整、严谨、科学分析问题、解决问题的思想是多么的重要,只有拥有了科学的态度才能设计出有用的产品。另外通过本次设计,是我认识到自己理论知识的应用能力有很大的欠缺,需要在以后的学习中进一步提高。参考文献1.李广弟,朱月秀,冷祖祁.单

25、片机基础M.第3版.北京航空航天大学出版社,20072.李华.MCS-51系列单片机实用接口技术M.北京航空航天大学出版社,19963.李群芳,肖看.单片机原理接口与应用.北京:清华大学出版社,20054.M.北京:高等教育出版社,19905.高峰.单片微型应用系统设计及实用技术.北京:机械工业出版社,20046.胡辉,单片机原理及应用设计7.刘守义,单片机应用技术M,西安:西安电子科技大学出版社,1996附 录一源程序#include #define uchar unsigned char #define uint unsigned int uchar qianwei,baiwei,shiw

26、ei,gewei; /显示数据各个位置数字的临时变量 char led_seg_code10=0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /段码表示0-9 uint tt,aa,pulse,distance,cost,danjia,wait,way; /定义路程、价钱、等待时间及一些全局的变量等; uchar dengdai,second,minute;/按键的定义,所有按键按下去为低电平sbit key0=P10; /清零sbit key1=P11; /切换路程与等待时间sbit key2=P12; /单程还是往返设置sbit k

27、ey3=P13; /暂停按钮sbit led1=P14; / 指示 sbit led2=P15;sbit led3=P16;sbit led4=P17; bit key1_flag; /由于按键会自动复位,这个为标志位bit key2_flag; bit key3_flag;bit flag; /初始化函数void initial_data(void) distance=0; cost=0; second=0; minute=0; way=0; key1_flag=1; / key2_flag=0; /单程or往返,接指示灯; key3_flag=1; /暂停,接指示灯; flag=0; pu

28、lse=0; dengdai=0; led1=1; /双程指示 led2=1; /暂停指示 led3=1; /堵车指示 led4=1; / 等待时间切换标志 /暂停程序void zanting(void) if(key3_flag) EX0=0; /关闭中断 定时器 TR0=0; else EX0=1; TR0=1; key3_flag=!key3_flag; /计算数据处理 void jisuan() if(pulse180) distance=pulse/6+way/3000; cost=danjia*(distance-30)/10+50; wait=minute*100+second;

29、 /显示的辅助程序,别离一个数的各个数字 void fenli(uint temp) /数据的别离处理 if(temp9999) temp=9999; qianwei=temp/1000; baiwei=temp/100%10; shiwei=temp%100/10; gewei=temp%10; /延时约1ms,数码管显示时使用void diplay_delay(void) uchar i; for(i=0;i240;i+); /显示程序;void led_show() /-显示路程或者等待时间- if(key1_flag) fenli(distance); else fenli(wait)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1