出租车计价器设计——毕业论文.doc

上传人:小小飞 文档编号:3913129 上传时间:2019-10-10 格式:DOC 页数:26 大小:226.02KB
返回 下载 相关 举报
出租车计价器设计——毕业论文.doc_第1页
第1页 / 共26页
出租车计价器设计——毕业论文.doc_第2页
第2页 / 共26页
出租车计价器设计——毕业论文.doc_第3页
第3页 / 共26页
出租车计价器设计——毕业论文.doc_第4页
第4页 / 共26页
出租车计价器设计——毕业论文.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《出租车计价器设计——毕业论文.doc》由会员分享,可在线阅读,更多相关《出租车计价器设计——毕业论文.doc(26页珍藏版)》请在三一文库上搜索。

1、出租车计价器摘要 随着北京奥运会的临近,越来越多游客的旅行问题以及怎样到现场观看比赛,那么出租车就成了首选。在交通发展迅速的今天,出租车是我们交通中不可缺少的工具。同时出租车中的计价器是必不可少的一种设备。这次专业课程设计就是通过模拟设计出租车计价器,使同学们对单片机硬件设计有一些了解。这样一来理论得到了实践。这说明单片机的应用已深入国民经济和日常生活的各个领域。 该设计的主要内容是通过C51单片机上的数码显示器来模拟出租车计价器的路程显示表,通过单片机上的键盘上的某些键来表示开始、暂停、复位等功能。步骤如下:首先,程序开始做一些必要的初始化工作,等待键盘输入。然后,启动键按下(0)后LED数

2、码管开始记录路程并显示。最后,当需要停止是可按相应的键(F)对路程计数器进行暂停。而且还可以复位(E)更应该学习和掌握专业及计算机知识,利用实习机会掌握课程设计精髓,为日后实习和工作打下牢固的基础等等。 关键字 C51单片机 8255 出租车计价器 LED数码管目录前言 -3第一章 设计内容及要求-41.1 设计内容及要求-41.2 框图 -4第二章 系统组成及工作原理-5 2.1 控制单元设计-52.1.1 按键名称-52.1.2 按键工作操作说明-52.2 输出单元设计-52.3 定时器的功能和使用方法-5第三章 电路方案设计-63.1 方案比较-63.2 总设计框图-73.3 单位电路设

3、计-8 3.3.1 复位电路设计-8 3.3.2 时钟电路设计-9 3.3.3 单片机最小系统-103.4 8255A键盘显示电路设计-11第四章 程序设计-124.1 主程序模块-124.2 定时中断服务程-124.3 里程计数程序-12第五章 实验调试及测试结果与分析-14第六章 总结与体会-15参考文献-16附录一-17附录二-25附录三-26前言随着社会的进步以及人们生活水平的日益提高都促使交通工具的不断变化,无论是在大城市或是中小城市越来越多的出租车公司不断的出现。出租车的出现方便了人们的生活,对于现在快节奏生活方式的人们来说出租车无疑是最好的交通工具。那么其收费的方式自然而然就被给

4、予关注,比如收费标准以及行驶里程等。 通过设计实际的出租车计价器应用课题,我们也熟悉了单片机系统以及其他硬件操作技术,提高了分析问题和解决问题的能力。本次报告共分为6章:第一章介绍设计内容和要求;第二章介绍系统组成及工作原理;第三、四章介绍电路方案和程序设计;第五至六章结合实验和个人体会阐述结果并得出相应结论。在此谢谢老师的悉心教导和同学们的互助! 编者 2008-7-3第一章 设计内容及要求1.1 设计内容及要求(1) 出租车里程测量:采用信号源产生脉冲模拟出租车计价传感器产生脉冲,设每产生100个脉冲出租车行驶1公里信号源脉冲频率=1KHZ;(2) 里程显示为:*.*公里;(3) 采用82

5、55芯片管理键盘显示。1.2 框图:单片机显示器变换电路信号源第二章 系统组成及工作原理2.1 控制单元设计 2.1.1 按键名称 0键表示开始计算路程;F键表示暂停;E键表示复位。 2.1.2 按键功能操作说明 当程序开始运行后,按下0键则表示开始计算路程,并由数码管显示出来;按下F键则路程记数器暂停,并显示当前路程,当按下E键2.2 输出单元设计 通过六个8段LED数码管来显示路程。前四个分别表示千位、百位、十位、个位,而后两个表示十分位和百分位。2.3 定时器的功能和使用方法 首先选择方式1为16位的定时器,其初始化具体如下: s 其中 fosc为晶振频率, 定时时间 。第三章 电路方案

6、设计3.1 方案比较方案一使用数字电路和模拟电路来完成设计要求。显示器件有:LED显示,VFD显示,分段式数码管等等,针对显示单元电路这里可以使用分段式数码管来显示,分段式数码管分为共阳极和共阴极两种,对数码管的驱动针对不同的类型采用不同的芯片,共阴极数码管通常采用TTL系列的74LS48驱动,而共阳极数码管通常采用CMOS系列的CD4543来驱动;仅时钟显示电路框图和实际电路就非常复杂,整体电路将更加烦琐。而且对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现;整体电路的规模较大,用到的器件多,造成故障率高,难调试。方案二使用单片机来完成设计要求。单片机功能强大,用

7、较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻容易的实现。避免了机械开关带来的不稳定因素。方案确定经过上面的两种方案的比较,显然第二种方案具有更大的优越性、灵活性,所以我们采用第二种设计方案进行设计。本电路以C51单片机为中心,实现对出租车路程的统计,输出采用8段数码显示管。3.2 总设计框图 3.2.1 工作原理框图 路程显示显示电路 设置电路 单 片系统开始 机系统暂停存储电路系统复位 图1 工作原理框图 3.2.2 单片机单元框图 CPU数码管显示功能按键8255并行编程时钟电路 图2 单

8、片机单元框图3.3 单元电路设计3.3.1 复位电路设计在单片机的应用系统中,除单片机本身需复位以外,外部扩展的I/O接口电路等也需要复位,因此需要一个系统的同步复位信号:即单片机复位后,CPU开始工作时,外部的电路一定要复位好,以保证CPU有效的对外部电路进行初始化编程。51系列单片机的复位端RST是一个施密特触发输入,高电平有效。复位电路产生的复位信号经施密特电路整形后作为系统复位信号,加到51系列单片机和外部I/O接口电路的复位端.其电路图如图3.1所示,其中R1=47K,R2=100,C=10uF。 图3.1 复位电路3.3.2 时钟电路设计89C51系列单片机内部有一个可控制的反相放

9、大器,引脚XTAL1、XTAL2为反相放大器的输入端和输出端,在XTAL1、XTAL2上外接晶振(或陶瓷谐振器)和电容便组成振荡器。具体的时钟电路如图3.2所示。电容1、2的典型值为30pF+10pF(晶振)或40pF+10pF(陶瓷谐振器)。振荡器频率主要取决与晶振(或陶瓷谐振器)的频率,但必须小于器件所允许的最高频率。振荡器的工作受控制,复位后0(1)振荡器工作,可由软件置1,使振荡器停止振荡,从而使整个单片机停止工作,以达到节电的目的。图3.2 时钟电路图3.2 时钟电路3.3.3 单片机最小系统主控机系统采用了Atmel 公司生产的89C51 单片机,它含有128 字节数据存储器,内置

10、4K 的电可擦除FLASH ROM,可重复编程,大小满足主控机软件系统设计,所以不必再扩展程序存储器。复位电路和晶振电路是89C51 工作所需的最简外围电路。单片机最小系统电路图如图3.3所示。图3.3 单片机最小系统电路图89C51 的复位端是一个史密特触发输入,高电平有效,而系统中的时钟接口和CAN 总线接口的复位信号都是低电平有效。在复位电路中,按一下复位开关就使在RS端出现一段时间的高电平,经过74LS14 的一次反相整形,提供给单片机复位端。再经过一次反相整形,通过I/ORST 端提供给外部接口电路。外接12M 晶振和两个20P 电容组成系统的内部时钟电路。3.4 8255A键盘显示

11、电路设计8255的数据线片选信号线、地址线、读写控制线等分别与系统总线相连,其A、B、C三个端口以排针形式引出,供8255实验使用,如图3.4所示。 图3.4 系统中的8255线路8255端口地址 信 号 线 寄 存 器 编 址IOY3 A口0FF20H B口0FF21H C口0FF22H 控制寄存器0FF23H第四章 程序设计4.1 主程序模块在主程序模块中,需要完成对各接口芯片的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程等不同的操作。4.

12、2 定时中断服务程序在定时中断服务程序中,每1ms产生一次中断,当产生1000次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。4.3 里程计数程序 如下流程图所示开始8255LED显示监听键盘开始等待进入中断接受键盘Run程序P1为0P10为0显示百分位显示十分位YY Y显示个位P100为00按下F按下E按下循环显示各位复位P1000为0显示十位P10000为0显示百位P100000为0显示千位 图4.1 里程计数程序流程图里程计数程序见附录第五章 实验调试及测试结果与分析 通过这两周的专业课程设计,所完成的软件教务管理信息系统基本能达到课程设计的要求,但是,

13、还是存在不少的漏洞,经过老师指导和调试后,修复了错误和漏洞。通过用单片机来模拟出租车计价器, 并且使用了单片机上的键盘和数码显示管来模拟。硬件各方面相对吻合安全性高、耦合度高,能够对键盘上的0键进行启动、F键进行停止、E键进行复位的操作。程序首先进行初始化设置(包括数码管、字型表、定时中断设置);然后对键盘进行扫描,判断是否有功能键被按下;最后根据哪个功能键被按下,执行相应的程序以实现功能。 第六章 总结与体会 经过两周有关于通过模拟出租车计价器的课程设计,使同学们对单片机的应用有了更深的了解。在课程设计的过程中,还是碰到了许多的问题。比如,对于单片机的一些基本代码及程序还有一些不清楚的地方;

14、对于代码的前后顺序及调用掌握的还不够好。通过请教老师和同学,最终把问题解决了。此外,去图书馆和网上查相关资料也是一种学习的途径。通过这次课程设计,我们充分体会到了自己设计东西的乐趣和学习交流的重要性,在动手的过程中,不但增强了实践能力,而且在理论上有了更深的认识;懂得了实践与知识结合的重要性,并在以后的学习中不段的提高自己,通过不断的摸索和实践来弥补自己在硬件方面的差距。我相信,这次实习将使我受益匪浅,我更相信,我会以更热忱的态度去学习并研究这门重要的实践性课程。参考文献1 吴开志 等.单片机技术指导.南昌航空出版社,2007.82 张友德 赵志英 涂时亮 .单片微型机原理、应用与实验 .复旦

15、大学出版社,2006.63 孙涵芳.MCS-51系列单片机原理及应用.北京航空航天大学出版社,1996.4附录ORG 0000HSJMP START;定义程序起始位置ORG 000BHSJMP DS0;定时器T0入口地址START:CLR TR0;关闭T0中断MOV A,#81H;将立即数81H放入A中MOV DPTR,#0FF23H;定义DPTR外部数据指针为0FF23H,指向8255的控制字口MOVX DPTR,A ;把81H放入8255控制字口,让8255以PA、PB口0状态输出工作,PC口0状态输入MOV TMOD,#01H;定义T0为16位计数器MOV TH0,#0FCH;定义中断延

16、时MOV TL0,#24H;定义中断延时;1MS = 1000US ,假设晶振频率为12MHZ,延时常数=(2的16次方 - 1000)将其转换到16进制MOV IE,#82H;定义中断允许控制字,开CPU中断,开T0中断MOV 71H,#00H;MOV 72H,#00HMOV 73H,#00HMOV 74H,#00HMOV 75H,#00HMOV 76H,#00HMOV 40H,#50;延时用MOV 00H,#00H;标志MOV 01H,#00HMOV 02H,#00HMOV 03H,#00HMOV 04H,#00HMOV R1,#00H;用来检测键盘开始键MOV R3,#00H;用来检测停

17、止键MOV R4,#00H;用来监听复位键 MOV 50H,#10;循环次数MOV 51H,#10;循环次数MOV 52H,#10MOV 53H,#10MOV 54H,#10MOV 55H,#10SETB TR0;允许T0计数CLR C;清空CYSJMP $;等待中断来临DS0:;中断处理子程序MOV TH0,#0FCH;把中断延时还给T0MOV TL0,#24HLCALL KEY_STATE;调用键盘扫描子程序,获取当前的键盘状态,1MS扫描一次CJNE R1,#0,RUN;如果“0”被按下,就跳转到运行子程序,计算里程数CJNE R3,#0,STOP;如果“F”被按下,就跳转到停止子程序C

18、JNE R4,#0,RESET;如果“E”被按下,就跳转到复位子程序RETI;如果3个键都没有被按下,不做处理,直接返回中断,等待下一次中断来临RESET:;复位的子程序MOV 71H,#00H;初始化查表单元数据MOV 72H,#00HMOV 73H,#00HMOV 74H,#00HMOV 75H,#00HMOV 76H,#00HMOV 51H,#10;初始化循环次数MOV 52H,#10MOV 53H,#10MOV 54H,#10MOV 55H,#10LJMP XIANSHI;跳转到显示子程序RETI;返回中断STOP:;停止子程序LJMP XIANSHI;跳转到显示子程序KEY_STAT

19、E:;键盘行扫描处理子程序KEY_0:;检查0MOV R2,#0FDH;定义8255对第2个LED数码管进行键盘扫描MOV DPTR,#0FF20HMOV A,R2MOVX DPTR,AMOV DPTR,#0FF22H;将DPTR指向8255的PC口MOVX A,DPTR;从PC口获取键盘状态JB ACC.1,KEY_F;判断第1列是否为0,如果为0,证明0被按下SJMP KEY_DOWN0;按下了就跳转到0被按下的子程序RETI;返回中断KEY_F:;检查FMOV R2,#0F7HMOV DPTR,#0FF20HMOV A,R2MOVX DPTR,AMOV DPTR,#0FF22HMOVX

20、A,DPTRJB ACC.1,KEY_ESJMP KEY_DOWNFRETIKEY_E:;检查EMOV R2,#0DFHMOV DPTR,#0FF20HMOV A,R2MOVX DPTR,AMOV DPTR,#0FF22HMOVX A,DPTRJB ACC.1,RETURN2SJMPKEY_DOWNERETURN2:;返回中断RETIKEY_DOWN0:;0被按下MOV R1,#1;把标志R1设置为1MOV R3,#0;其他标志设置为0MOV R4,#0RETI;返回中断KEY_DOWNF:;F被按下MOV R3,#1;把R3设置为1MOV R1,#0;其他标志设置为0MOV R4,#0RET

21、I;返回中断KEY_DOWNE:;E被按下MOV R4,#1;把R4设置为1MOV R3,#0;其他标志设置为0MOV R1,#0RETI;返回中断RUN:;运行子程序DJNZ 40H,XIANSHI;延时显示MOV 40H,#50INC 71H;百分位查表单元+1DJNZ 50H,XIANSHI;循环10次MOV 50H,#10;如果百分位循环了10次,那么十分位上应该得到进位INC 72H;十分位查表单元+1MOV 71H,#00HDJNZ 51H,XIANSHIMOV 51H,#10INC 73HMOV 71H,#00HMOV 72H,#00HDJNZ 52H,XIANSHIMOV 52

22、H,#10INC 74HMOV 71H,#00HMOV 72H,#00HMOV 73H,#00HDJNZ 53H,XIANSHIMOV 53H,#10INC 75HMOV 71H,#00HMOV 72H,#00HMOV 73H,#00HMOV 74H,#00HDJNZ 54H,XIANSHIMOV 54H,#10INC 76HMOV 71H,#00HMOV 72H,#00HMOV 73H,#00HMOV 74H,#00HMOV 75H,#00HDJNZ 55H,XIANSHIAJMPSTARTXIANSHI:;显示百分位JB 00H,P10;作为标志判断当前应该去显示哪个数码管JB 01H,P

23、100JB 02H,P1000JB 03H,P10000JB 04H,P100000MOV DPTR,#0FF20H;定义显示最右边的数码管MOV A,#0FEHMOVX DPTR,AMOV A,71H;把百分位查表单元的数据送到A中MOV DPTR,#TAB1;查表MOVC A,A+DPTR;把字型码送到8255的PB口MOV DPTR,#0FF21HMOVX DPTR,ACPL 00H;取反标志,能够让数码管循环点亮CPL 01HCPL 02HCPL 03HCPL 04HLJMP RETURN;返回中断P10: ;显示十分位MOV DPTR,#0FF20HMOV A,#0FDHMOVX D

24、PTR,AMOV A,72HMOV DPTR,#TAB1MOVC A,A+DPTRMOV DPTR,#0FF21HMOVX DPTR,ACPL 00HLJMP RETURNP100: ;显示个位MOV DPTR,#0FF20HMOV A,#0FBHMOVX DPTR,AMOV A,73HMOV DPTR,#TAB1MOVC A,A+DPTRMOV DPTR,#0FF21HMOVX DPTR,ACPL 01HLJMP RETURNP1000: ;显示十位MOV DPTR,#0FF20HMOV A,#0F7HMOVX DPTR,AMOV A,74HMOV DPTR,#TAB1MOVC A,A+DP

25、TRMOV DPTR,#0FF21HMOVX DPTR,ACPL 02HLJMP RETURNP10000: ;显示百位MOV DPTR,#0FF20HMOV A,#0EFHMOVX DPTR,AMOV A,75HMOV DPTR,#TAB1MOVC A,A+DPTRMOV DPTR,#0FF21HMOVX DPTR,ACPL 03HLJMP RETURNP100000: ;显示千位MOV DPTR,#0FF20HMOV A,#0DFHMOVX DPTR,AMOV A,76HMOV DPTR,#TAB1MOVC A,A+DPTRMOV DPTR,#0FF21HMOVX DPTR,ACPL 04

26、HLJMP RETURNRETURN:RETI;返回中断TAB1:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;0,1,2,3,4,5,6,7,8,9END附录二 8255芯片管脚图附录三 字型字位表代码D7D6D5D4D3D2D1D0字型HHGFEDCBAC0110000000F9111110101A4101001002B0101100003991001100149210010010582100000106F811111000780100000008901001000098810001000A8310000011BC611000110CA110100001D8610000110E8E10001110FFF111111110C00001100P.8910001001H7F01111111.BF10111111-字位表LED5LED4LED3LED2LED1LED0DFEFF7FBFDFE26

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

当前位置:首页 > 其他


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