单片机设计报告-汽车自动收费系统_第1页
单片机设计报告-汽车自动收费系统_第2页
单片机设计报告-汽车自动收费系统_第3页
单片机设计报告-汽车自动收费系统_第4页
单片机设计报告-汽车自动收费系统_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、 单片机原理与应用 课程设计报告书 课题名称:基于单片机的出租车收费计费系统设计 姓 名: 学 号: 班 级: 专 业: 指导老师: 一、 系统的实现功能与设计分析1 1.1设计目的1 1.2设计分析1 1.3实现功能1二、 系统方案的设计与验证2 2.1设计方案2 2.2方案的可行性与优缺点分析2三、 单元电路的设计3 3.1数据显示单元的设计3 3.2按键单元的设计3 3.3振荡电路的设计3 3.4复位电路的设计4 四、 出租车计价系统的软件设计4 4.1主程序流程图4 4.2计费子程序流程图5 4.3等待是否收费子程序5 4.4按键子程序流程图6五、 系统设计与仿真调试7 5.1根据设要

2、求编译程序8 5.2运行及调试程序并8六、 进行仿真实验 9七、 心得体会14八、 附录15一 系统的实现功能与设计分析 设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三部分,用七段数码管显示总金额,单价,运行里程,起步价为6元,超过6元,每一公里增加1元或2元1.1设计目的出租车是城市的明信片,一个简单合理的计费系统是必须的,对乘客和出租车司机都是有好处的,文辞我尝试用单片机设计出租车系统1.2设计分析费用的计算是按行驶里程收费。设起步价为6元当总金额<6元时,按起价计算费用。当总金额>6元时,每公里按1元或2元计费。等待累计时间>30s时,按0.1元

3、/30s计费。S1为启动按钮、S2转换单价按钮、S3复位按钮。1.3显示功能显示单价:用前两位数字显示,显示方式为“X.X”,单位为元。显示总费用:用中间三位数字显示,显示方式为“XX.X”,单位为元。计价范围0-99.9元,精确到0.1元。后三位显示行驶里程:用三位数字显示,显示方式为“XX.X”,单位为km。计程范围0-99.9km,精确到0.1km。二、系统方案的设计与验证2.1方案一 采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示,以下是该方

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

5、计由于设计要求有单价(2 位)、总金额(3位)、路程(3位)、显示输出,采用8个7段数码管动态显示。如图3-1:图3-1 数据显示硬件电路图3.2 按键单元的设计电路共采用了四个按键,S1、S2、S3、S4,其功能分别是:S1 启动计价开关、S2 白天/晚上转换开关、S3 数据复位清零开关、 S4闭合表示出租车正常运行,计价器也正常计价;若打开S4则表示出租车在暂停,转入判断是否收费程序,断开超过30秒,开始计价。如图3-2:图3-2 按键单元电路图3.3 振荡电路的设计单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶

6、体振荡器和两只电容(电容取30pF)。这样就构成一个稳定的自激振荡器。振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE信号,此时得到的信号是机器周期信号。振荡电路如图3-3所示:图3-3 振荡电路3.4 复位电路的设计复位操作有两种基本形式:一种是上电复位,另一种是按键复位。按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST

7、引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。按键复位电路图如图3-4所示:图3-4复位电路四 出租车计价系统的软件设计4.1 主程序流程图 由于用到了外部中断0,所以,按中断系统的编程结构在0000H处放置一条长跳转指令LJMP START跳转到主程序入口,在外部中断0的中断入口地址0003H处放置一条长跳转指令LJMP EXT0跳转到外部中断0服务程序处。主程序进行程序中用到的一些存储单元的初始化,T0,T1的初始化。首先,进行存储器单元初始化,将71H-79H单元赋值。然后进行定时器的设置。设置T1的工作方式为模式2,计数状态,自启动。T0的工作方式,模式1

8、,定时状态,自启动,对输入的脉冲进行计数,给T0、T1赋初值。之后调用计数脉冲子程序,及等待子程序,数码管动态显示子程序,最后进入键盘扫描子程序进行扫描。主程序不断进行调用数码管显示子程序及键盘扫描子程序循环操作,等待中断。如图4-1: 图4-1 主程序流程图4.2 计费子程序流程图72H存储总金额小数位,73H存储器总金额个位,78H存储器总金额十位,77H存储单价元。将72H中值放入A中,再将A与77H相加,即小数位与单价相加,结果存入A,再进行十进制调整,将结果存于R6,将高四位与低四位交换并屏蔽高四位,保留低四位与个位相加得到总金额个位。若总金额超过10则清零,并且总金额十位加1。将R

9、6中数值取出,屏蔽高四位,输出总金额小数位。如图4-2:图4-2 计费子程序流程图 4.3 等待是否收费子程序在出租车的计价系统中,出租车在等待的时候也要计价,本设计体现了这点。程序判断了出租车是否停止,若停止30秒以上是,开始计价。55H中赋初值20,56H中赋初值10,总共30秒延时。超过30秒时,调用计费子程序,如图4-3:图4-3 等待是否收费子程序流程图4.4 按键子程序流程图图4-4 等待收费子程序流程图4.5 外部中断0流程图 图4-5 外部中断0子程序流程图五 仿真与调试5.1 根据设计任务与要求编译程序启动单片机开发系统调试软件Keil C51编译器进行编译。在使用Keil

10、C51编译器时,对工程成功地进行编译(汇编)、连接以后,在主菜单中打开“调试”栏,点击“开始/停止调试模式”,即可进入软件模拟仿真调试状态。进入调试状态后,调试程序看是否能仿真,如果运行正常再将在Keil C51编译器中调试好的程序输出生成.hex文件拷写至单片机。5.2运行及调试程序(1)通过protel软件绘制出pcb图进行仿真,接上电源运行程序,观察实验板上数码管的显示数据(2)先按下按键S1,启动计费系统,观察数码管的显示数据,再按下按键S2 观察数码管的单价显示数据。(3)再按下按键S3, 观察数码管的显示数据是否清零。(4)断开按键S4, 等待30秒后,观察数码管的显示数据中的总价

11、是否会发生变化。(5)可根据电路的运行情况推测出程序出错的部分,修改程序后再经过Keil C51编译器调试后输入到单片机,反复检测直到能工作完全正常。5.3启动仿真启动仿真,电路图如图6-1所示。图6-1 出租车计费系统启动初始电路图(单价为1元每千米)按下转换开关S2,单价由1元变为2元,由图6-1转变为图6-2.图6-2出租车计费系统单价转换电路图(单价为2元每千米)按下启动开关S1,计费系统开始工作,如图6-3所示。在单价为2元每千米时,所走过的路程不大于3Km时(单价为1元每千米时,所走过的路程不大于6Km),出租车总价始终为6元。图6-3出租车计费系统计费电路图(路程小于3千米)当走

12、过的路程总价超过6元时,总价不再为6元,按每公里1元或者2元计费,如图6-4为每公里按1元计算的总价,当路程为6.1Km时,在起步价的基础上走了0.1Km,总价应当增加0.1元,所以总价为6.1元。图6-4出租车计费系统计费电路图(单价为1元每千米路程大于6千米)按下价格转换开关,变为每公里2元,路程由6.2到6.4走了0.2公里,总价应增加0.4元,所以总价由6.2变为6.6公里,如图6-5,6-6所示。图6-5出租车计费系统计费电路图(单价为2元每千米路程大于6千米)图6-6出租车计费系统计费电路图(路程大于6千米单价为2元每千米)按下复位开关S3,路程清零,如图6-7所示。图6-7出租车

13、计费系统清零电路图断开开关S4,系统转入等待过程,若等待时间超过30秒,则系统开始收费,如图6-8,6-9所示,路程为3.3Km保持不变,30秒过后,总价增加0.1元。图6-8出租车计费系统等待收费电路图图6-9出租车计费系统等待收费电路图七 心得体会单片机课程结束了,但对单片机的学习还没有结束,这次单片机设计就是对所学知识的一次检验。要做的第一件事情就是选课题。老师给了丰富的课题选择,大家都兴致勃勃的选题,经过对所给课题的认真研究和分析,最终选择了“基于单片机的出租车计费系统的设计”这个题目。首先说一下选这个课题的初衷。出租车是日常生活中经常涉及的交通工具,大家对出租车的计费标准也一定很熟悉

14、,所以想通过自己所学的知识来实现一些虽然简单但却很重要的设计。选课题简单,但是做起来就没那么容易了。万事开头难,做设计的第一件事就是要通过编写程序来实现自己所想要实现的功能。对于一个刚刚掌握单片机原理的学生来说确实有点困难,但是不能畏惧困难。在慢慢的掌握了编程软件Keil C51之后开始编写程序,有碰到不懂的,不会的,就去咨询老师,向班上学习好的同学请教,老师和同学都很耐心,很认真的讲解,给了很大的帮助。程序编写好之后还要调试,这更是一个巨大的挑战,由于掌握不牢靠很多同学都找不到解决错误的方法,一边去请教老师,一边去上网查找资料,去找课本,去图书馆借相关方面的书籍,经过不懈努力最后终于编译好了

15、程序。程序编译完全正确之后,紧接着就是利用protel软件绘制PCB图,老师首先给大家讲解了protel软件的应用方法,在老师讲解的时候认真的做了笔记,了解了各个元器件的电气符号以及英文代号,然后在老师的指导下终于完成了电路图的绘制。接着把编好的程序生成.hex文件输入至单片机,然后接通电源进行调试,直至能够得到预先设计的实验结果。这次的单片机课程设计时间虽然短暂,但是收获却是蛮大的。通过这次单片机的设计,得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。在单片机的基本原理以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面得到了很大的提高,同时在编程以及绘制电路图的时候,锻炼了发

16、现问题,改正问题的能力,最后,此次课程设计还锻炼了耐心,增强了做事的信心。 附录1 电路图2 程序清单ORG 0000HLJMP MAINORG 0003H ;外部中断入口地址LJMP RESTORG 030HMAIN:MOV 71H,#00H ;脉冲计数每10个脉冲里程数加0.1显示缓冲单元MOV 72H,#00H ;存储总金额小数位MOV 73H,#00H ;存储总金额个位MOV 74H,#00H ;存储里程数小数位MOV 75H,#00H ;存储里程数个位MOV 76H,#00H ;存储单价角位MOV 77H,#01H ;存储单价元位MOV 78H,#00H ;存储总金额十位MOV 79

17、H,#00H ;存储里程数十位MOV 55H,#20 ;给定等待初值20*50msMOV 56H,#10 ;10秒等待时间初值SETB EA ;开总中断SETB EX0 ;开外部中断0MOV TCON,#04H ;外部中断0低电平MOV TMOD,#61H ;设置使用定时器1,模式2,计数状态,自启动,定时器0,模式1,定时状态,自启动MOV TL0,#0B0H ;50ms初值设定C350HMOV TH0,#03CHMOV TL1,#0FFH ;设置定时器低八位初值为FFH,即有一脉冲输入就溢出MOV TH1,#0FFH ;设置定时器高八位初值为FFH,用于重装低八位START:LCALL P

18、ULSE ;调用计数脉冲子程序LCALL WAIT ;调用等待子程序LCALL DISPLAY;调用显示程序进行显示LCALL KEY ;调用键盘扫描程序SJMP START ;返回START处继续循环执行REST:PUSH ACCMOV 71H,#00H ;脉冲计数每10个脉冲里程数加1显示缓存单元MOV 72H,#00H ;存储总金额个位MOV 73H,#00H ;存储总金额十位MOV 74H,#00H ;存储里程数个位MOV 75H,#00H ;存储里程数十位MOV 78H,#00H ;存储总金额百位MOV 79H,#00H ;存储里程数百位MOV 55H,#20MOV 56H,#10P

19、OP ACCRETIPULSE:JBC TF1,PTO1 ;TF1为1则转PT01LJMP PSOUTPTO1: MOV 55H,#20MOV 56H,#10INC 71HMOV R1,71HCJNE R1,#0AH,PSOUT ;脉冲调整,改变立即数即可;里程数个位74H,R1不等于0AH则转PSOUTMOV 71H,#00HINC 74HLCALL MONEYMOV R1,74HCJNE R1,#0AH,PSOUT ;里程数十位75HMOV 74H,#00HINC 75HMOV R1,75HCJNE R1,#0AH,PSOUTMOV 75H,#00HINC 79HMOV R1,79HCJN

20、E R1,#0AH,PSOUTMOV 79H,#00HPSOUT:RETWAIT:JBC TF0,PTO2LJMP CHU0PTO2:MOV TL0,#0B0HMOV TH0,#03CHDJNZ 55H,CHU0 ;不为0则转MOV 55H,#20DJNZ 56H,CHU0MOV 56H,#10 ;30秒等待计时INC 72HMOV A,72HLCALL MONEY1CHU0:RETMONEY:MOV A,72HADD A,77HMONEY1:DA AMOV R6,ASWAP AANL A,#0FHADD A,73HMOV 73H,ACJNE A,#0AH,MONEY2MOV 73H,#00H

21、INC 78HMOV A,78HCJNE A,#0AH,MONEY2MOV 78H,#00HMONEY2:MOV A,R6ANL A,#0FHMOV 72H,ARETDISPLAY:MOV A,78HCJNE A,#00H,L2MOV A,73HCJNE A,#06H,L1L1:JNC L2MOV A,#82H ADD A,#80H MOV P0,AMOV P2,#02HLCALL DELAYMOV P2,#00HMOV A,#0C0HMOV P0,AMOV P2,#01HLCALL DELAYMOV P2,#00HMOV A,#0C0HMOV P0,AMOV P2,#40HLCALL DEL

22、AYMOV P2,#00HLJMP L3L2:MOV A,73HMOV DPTR,#TABMOVC A,A+DPTRADD A,#80HMOV P0,AMOV P2,#02HLCALL DELAYMOV P2,#00HMOV A,72HMOVC A,A+DPTRMOV P0,AMOV P2,#01HLCALL DELAYMOV P2,#00HMOV A,78HMOVC A,A+DPTRMOV P0,AMOV P2,#40HLCALL DELAYMOV P2,#00HL3:MOV A,75HMOV DPTR,#TABMOVC A,A+DPTR ADD A,#80HMOV P0,AMOV P2,#08HLCALL DELAYMOV P2,#00HMOV A,74HMOVC A,A+DPT

温馨提示

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

评论

0/150

提交评论