《出租车计价器系统设计方案.docx》由会员分享,可在线阅读,更多相关《出租车计价器系统设计方案.docx(34页珍藏版)》请在课桌文档上搜索。
1、出租车计价器系统设计方案第一章出租车计价器系统功能描述1.1 计价器整体功能描述结构设计出租车计价器方案并进行仿真,完成白天晚上转换计价,显示路程、单价、总金额.1.2 各部分电路功能描述1不同情况具有不同的收燹标准.a)白天b)晚上2具有数据的更位功能3IO1.1.分配的简易要求a)布禽检测使用布尔开关A44Eb)白天/晚上收费标准的转换开关c)数据清零开关4数据输出5按键a)启动计时开关b)数据复位(清零)c)白天/晚上转换第二章方案论证本系统可分4个模块构成:主控电路、掉电保护模块、信号采集模块和显示模块。2.1 主控电路选择方案-使用数字电路和模拟电路来完成设计要求。显示器件有:1.E
2、D显示,VFD显示,分段式数码管等等,针对显示单元电路这里可以使用分段式数码管显示,分段式数码管分为共阳极和共阴极两种,对数码管的驱动针对不同的类型采用不同的芯片,共阴极数码管通常采用TT1.系列的741.S48驱动,而英阳极数码管通常采用CMO系列的CD4543来骗动:仅时钟显示电路框图和实际电路就非常复杂,整体电路将更加烦项。而I1.对于模式的切换需要用到机械开美,机械开关时间久了会造成接触不奥,功能不易实现:整体电路的规模较大,用到的器件多.造成故障率高,难调试。方案二使用单片机来完成设计要求。单片机功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,I1.灵活性强,可以
3、通过软件编程来完成更多的附加功能.针对计费模式的切换.通过软件编程就可以容易的实现.避免了机械开关带来的不稳定因素。确定方案经过上面的两种方案的比较,显然第二种方案具有更大的优越性、灵活性,所以我们采用第二种设计方案进行设计.2.2 显示电路选择方案:采用液晶显示器(1.CD品示。液晶屏显示功能强大,可显示各种字体的数字、汉字、图像,还可以自定义品示内容.品示内容较丰富;方便操作者读取信息及一些扩展功能的实现“占用系统IO口较少,有效地节约系统资源,使整个系统更加人性化。方案::采用1.ED数码管显示。数码管具有编程简单,夜间显示效果好,但只能品示有限的符号和数码字,而且显示内容有限。能完成题
4、目中的基本要求.如果还要增加具体功能的提示,则比较难实现。确定方案经过上面的两种方案的比较,第一种方案具有更大的优越性、灵活性.所以我们采用第种设计方案进行设计第三章计价器系统电路功能单元设计本系统的功能实现具体可分下几个单元实现,总体电路图参见附录13.1电源模块设计由于出租于提供的电源是12V的直流电源,所以我们要设计一个DCDC专换模块给系统电路提供一个5V电源,开关电源控制芯片采用MC34063MC34063是一单片双极型线性集成电路,专用于直流一直流变换器控制部分.它能使用最少的外接元件构成开关式升压变换器、降压式变换器和电源反向除输出电压V0=1.25(1+RB/RA).RBRA为
5、反馈电阻。本电路中外接打印机驱动电流为3A所以要对MC34063进行扩流,除外接元器件外再加上BU508A-NP型大功率三极管构成降压式变换器输出5V3A.为防止电源反接在输入端添加一个保护二极管.电路如图31所示.里.程计党是通过安装在乍轮上的霍尔传感据A44E检测到的信号,送到单片机,经过单片机处理计算,输送给显示单元.犬基本思路原理如图32所示.图3-2出租车计价器传感器测距示意图由于A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5-18V),M输出的信号符合TT1.电平标准,可以直接接到单片机的10端口上,而且其最高检测频率可达到IMHZ图3-3集成开关型低可传感2号原理图A
6、44E集成霍耳开关(图3-3)由稳压器A、霍耳电势发生SS(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成。在输入端输入电压CCV,经稳压器稳压后加在霍耳电势发生的两端,根据霍耳效应原理,当很耳片处在磁场中时,在垂江于慰场的方向通以电流,则与这二者相垂直的方向上将会产生很耳电势差HV输出,该HV信号经放大播放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场达到工作点(BPOPB)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为开”当施加的破场达到释放点(BPrPB)时,触发器输出低电压,三极管截止,
7、使OC门输出高电压,这种状态为关.这样两次电压变换,使霍耳开关完成了一次开关动作.其集成霍耳开关外形及接线如图3-4所示。图3-4集成隹耳开关接线我们选择了P3.2口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1米),IE尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到100o次时,也就是1公里,单片机就控制将金额门动的加增加.其计算公式:当前单价X公里数=金额,3.3数据品示单元的设计图tv.n八庙院KH1.AK03339I1.1.1.1.1.1.1.j33Q3233N1.9h1.prce=2usit30:1.Coe1=0
8、607Di?-6609虫用Itaid3.4按键及数据显示单元的设计V:根据要求我们设计了一个包括时间调整、车轮长度调整的功能健,还有单价上调和下调,复位,计价,液晶背光灯亮度控制等按健.按下对应按健时调用对应的程序执行功能,其中复位按键还包含,个空军指示灯进行辅助显示。显示部分要求显示单价、里程、总金额和另外扩展的时钟显示等各种信息.采用1.CDH示很容易满足要求第四章主要元器件选择及介绍4.1 单片机选择89C51和89S51内核相同.但89S51针对89C51的明显的几个升级如下:1 .程序存储涔写入方式:二者的写入程序的方式不同,89C51只支持并行写入,同时需要VPP烧写高压。89S5
9、1则支持ISP在线可编程写入技术。中行用入、速度更快、稳定性更好,烧写电压也仅仅需要4s5V即可.2 .电源范围:89S51电源范围宽达45.5V.而89C51系列在低于4.8V和高于5.3V的时候则无法正常工作。3 .工作频率:目前89S11的性能远高于89C51.89S51系列支持最岛高达33MHZ的工作频率.而89C51工作频率范用最高只支持到24M4 .市场价格:由于89C51已经全面停产,所以在市场方面,库存的89C51的批发价格要比89S51贵。5 .兼容型:89S51向下施容89C51,就是说用89S51可以替代89C51使用,问.的程序,运行绪果相同。6 .加密功能:89S51
10、系列全新的加密克法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。7 .抗干扰性:内部柒成看门狗计时器,不再需要像89C51那样外接石门狗计时器单元电路.4.2 MCS-51系列单片机内部结构及功能部件4.2.1 MCS-51系列单片机的内部结构框图分析图4-1,并按其功能部件划分可以存出MCS-51系列单片机是由8大部分组成的.图4-2为按功能划分的MCS51系列单片机内部结构简化框图.这8大部分是: 一个8位中央处理机CPU 128个字节的片内数据存储器RAM-4KB的片内程序只读存储器ROM或EPROM 18个特殊功能寄存涔SFF1.
11、4个8位并行输入输出I/O接口:Po口、P1口、P2口、P3口(共32线),用于并行输入或输出数据。 1个串行I/O接口. 2个16位定时器/计数器. 1个具有5个中惭源,可编程为2个优先锹的中断系统。它可以接收外部中断申请,定时器/计数器中断申请和串行口中断申请三三三WfP2.0jnrtJTR特残功能(SFH图4-2MCS-51系列单片机内部结构简化框图422单片机外部引脚说明MCS-51系列单片机芯片均为40个引脚,HMOST艺牺造的芯片采用双列直插DIP)方式封装,其引脚示意及功能分类如图4.3所示。CMoST艺制造的低功耗芯片也有采用但为44个引脚,火中4个引脚是不使用的.一QRJU)
12、H-wTXO.P11ieP.MUA,e-UWU1T1.te-18TFTIB-I1.HE-PwItNW出笫片一”一三三二二三-F=k三二三三W匕一匕J三图4-3MCS51系列单片机引脚及总线结构引脚功能分类 1)主电源引脚VCC和VSSVCC(40脚):接+5V电源正端;VSS20脚:接+5V电源地端. 2)外接晶体引脚XTA1.1和XTA1.2XTA1.1(19):接外部石英晶体的一端.在单片机内部,它是一个反相放大涔的输入端,这个放大曙构成了片内振荡冷,当采用外部时钟时,对于HMOS的片机,该引脚接地;对于CHMo附片机,该引脚作为外部振荡信号的输入端。XTA1.2(18脚):接外部晶体的另
13、一端”在照片机内部,接至片内振着器的反相放人器的输出端,当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端;对于CHMo芯片,该引脚悬空不接。 3)控制佶号或与其它电源复用引脚。控制怡号或与其它电源更用引脚有:RST/VPD,A1.E/PROG、PSEN和EA,VPP等4种形式.A、RST/VPD(9脚):RST即为RESETVPD为备用电源,所以该引脚为垠片机的上电第位或掉电保护端.B. A1.E/PROG(30脚):当访问外部存储器时.A1.E(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在PO口的低8位地址。C. PSEN(29脚):片外程序存储器读选通信
14、号输出端,低电平有效D. EA/Vpp(31脚:EA为访问外部程序存储器控制信号,低电平有效.(4)输入/输出(I/O):引脚PO口、P1口、P2及P3UA,PO0(39脚32脚):PooSPo.7统称为PO口,PO口是一个三态双向口,可作为地址/数据分时受用口,也可作为通用O接口.B、PI1.J(I脚一8脚):P1.0sP1.7统称为P1.口,可作为准双向I/O接口使用.C、P2(21脚一28脚):P2.0sP2.7统称为P2口,一般可作为准双向I/O接口。它具有通用I/O接口或商8位地址总战输出两种功能.DP3U(10脚s17脚):P3QsP3.7统称为P3口。P31.1.除了可作为通用准
15、双向I/O接1.1.外,部1根线还具有第2功能“(见图4.49IN第2功爱P3QRXD(卡行口W1.入蜡)P3ATXD(字行口,出姨)P3.2INTO(外部中断Q谪未峭人站.低电平有效)P3,3INTI外部中Oi1读求依人瑞.低电平有效)P1.4TO:宜时计恋器O计数稣月蛤入瑞P强5T1.:孟时济,计数源1H敷脉冲”人瑞PX6WR(外部坟如辑储器与遗通但号抬出病,假电甲右效)P3.7RD(外部数娓年储务读选通辑号输出端低电甲有效)图4-4P3口第2功能表423并行输入做出接口对于四个并行输入/输出接I前面已经简单介绍过了。本段计中主要用到了P11.1.现在著重介绍,一下P1.口.P1.1.I为
16、准双向U其1位的内部结构如图4-5所示,它在结构上与PO1.I的区别在于输出驱动部分,其输出驱动部分由场效应管VI与内部上拉电阻组成”当其某位输出高电平时,可以提供拉电流负载,不必象PO口那样需要外接电阻。从功能上来看P1.只有种功能(对MCS-5仔系列),即通用输入输出I/O接口,具有输入、输出、端口掾作3种工作方式,越1位口线能独立地用作输入或输出线.图45P1口的结构原理图4.31602字符液晶显示简介工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)注:为了表示的方便,后文皆以1表示高电平,。表示低电平管脚功能及引脚说明1602字符型1.CD通常有14条引脚线或16条引
17、脚线的1.CD多出来的2条线是背光电源线VCC(15脚)和地线GND(16卿),其控制原理与14脚的1.CD完全一样,其中:引脚符号功能说明1VSS一般接地2VDD接电源(+5V3VO液晶显示器时比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个IOK的电位器调整对比度).4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器.5RWRM/为读写信号线,高电平(1)时进行读探作,低电平(0)时进行写操作。6EE(或EN)端为使能(enab1.e)端,下降沿使能。7DBO&4位二态、双向数据总线0位(最低位)8DB1由4位二
18、态、双向数据总统1位9DB2底4位二态、双向数据总线2位10DB3底4位二态、双向数据总线3位DB4局4位二态、双向数据总线4位12DB5阳4位二态、双向数据总线5位13DB6岛4位二态、双向数掂总线6位DB7局4位二态、双向数据总线7位(最图位)(也是busyf1.ang)15B1.A背光电源正极B1.K背光电源负极寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01都busyf1.agDB7,以及读取位址计数器(DBODB)值10与人数据寄存器(星小各字型等)11从数据寄存器读取数据注:关于六歙冲开始时初始化E为O然后就,、为/,再清O.busyf1.ag1602液晶模块内
19、部的字符发生存储器(CGROM)经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等.彩一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是010001B.S=I且N=1(当写入一个字符后,整屏显示左移)S=O当写入一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设跖01H(显示消屏,数据指针=0.所有显示=0):02H(显示回车,数据指针=0通常推荐勺初始化过程:延时15ms写指令38H延时5ms写指令38H延时5ms写指令38H延时5ms(以上都不检测忙信号)(
20、以下都要检测忙信号)写指令38H写指令08H关闭显示写指令O1.H显示清屏写指令06H光标移动设置.写指令OcH显示开及光标设巴第五章程序设计本系统的软件设计主要可分为主程序模块、定时计数中断程序、里程计数中断服务程序、中途等待中断服务程序、显示子程序服务程序、键盘服务程序六大模块,下面对各部分模块作介绍,5.1 系统主程序设计在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和削价的初始化、中断向量的设计以及升中断、循环等待等工作.另外,花主程序模块中还需要设置肩动/清除标志寄存器、电程寄存器和价格寄存器,并对它们进行初始化,然后,主程序将根据各标志许存涔的内容.分别完成启动、清除、计
21、程和计价等不同的操作。当按下S1时.就启动计价,将根据里程寄存器中的内容H以和判断出行荻里程是否已超过起价公里数.若已超过,则根据里程值、每公里的单价数和起价数来计算由当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来.当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零.井业新进行初始化过程。5.2 定时中断服务程序暇设中断计数一次代表车轮转动10圈.每当霍尔传感器输出一个低电平信号就使单片机中断一次,计数值加一,程序根据计数值和车轮周长计算出单.程数,然后程序乂根据里程数和单
22、价计算出总价,最后将结果送1.CD显示。5.3 里程计数中断服务程序林当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计数满100O次时,使微机进入里.程计数中断服务程序中,在该程序中,猫要完成当前行驶里.程数和总额的索加探作,并将结果存入里程和总额寄存器中.5.4 中途等待中断服务程序当在计数状态下布尔开关没有输出信号,片内的T1定时器便被启动.标当计时到达10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。5.5 显示子程序服务程序由于品示部分采用液晶品示,所以只耍将液晶进行初始化,在需要显
23、示时调用显示函数对相应的字符及数据在液晶屏的具体位置进行显示。5.6 键盘服务程序键盘来用查询的方式放在主程序中.当没有按透按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返P1.5.7程序流程图主程序初始化变量设置定时器TI的叁数电子钟按德妇描图57主程序流程图图52里程计数中断服务流程图第六章设计总结及致谢6.1 设计总结由于使用的是单片机作为核心的控刷元件,以及灵敏的浅尔开关型器件,是木山租车计价器具电路简单、成本低的特点.加上经过优化的程序,使其有很高的智能化水平但是在我们设计和调试的过程中,也发现了一些问题,曾如计价的金额位数有限,实际的里程可能会很远
24、,会超出我们的显示范围。计价器的设计还不翎人性化,比如加上语音的提示功能.可能会更有生命力。6.2 致谢本设计是对我们所学知识的用在实践中种考照与拓展,并培养我们的独立思考、设计和创新能力、解决遇到问题的能力和团队合作能力,以及我们在走向工作岗位后能更好的发挥学以致用.在碰到困难时不急不燥.在白主斛决的前提下,结合团队力崎,解决问题并有所创新,在老仲的亲切关怀和悉心指导下,我们的设计从无到有,再到基本完成。老师在设计思路上给予我们精心的指导和启迪,他引导我们积极思考,独立解决问题,令我们茅塞顿开,受益匪浅.在设计中学会了一段蒙难问题的探讨和工作中的林同性,汲取知识的方式和途径。为今后的工作典定
25、了坚实的范础。在设计的整个过程中,使我学习到很多宝诳的知识.参考文献1张俊谀.唯片机中线教程一原理与用应M.北京寒天出版社.2006.62余锡存曹国华.单片机原理及接口技术M.陕西:西安电子科技大学出版社2000.7(3)雷明文等.微机原理与接口技术M.北京:电子工业出侬社.1997.24张毅坤.圆片微型计算机Ki理及应用IM1.西安电子科技大学出版社.1998.10附件附录12WaH=39!+1.000015:ATXS1PO11FVWPDJI3HPD1.SPWPPMUPZJA1.1FWAGZ三JM附录2#incude#defineucharunSignedchar#defineuintuns
26、ignedintday_cost(void);ight_cost(void);uintday_price,night_price;ucharcodetab1.e1.=Dayprice:2Wait=30:+1;ucharcodetab1.e2eNightprice:3VJaiI-30:+ucharcodetab1.e3(=Cost:0000Dis:0000;ucharcodetab1.e4(=00:00:00ucharnum,distace.count1.,wait;ucharshi,fen,miao,s5num,unt2:uintM500,date.waitcost;sbitIcden=P3P
27、;Sbits=P3a1;SbitS仁P2A2:sbits2-P2A3;Sbits3=P2A4;sbits5=P2A5;SbitS6=P2A6;sbits7=P2A7;Sbits8=P2A0:sbits4=P3A2;voidde1.ay(uintz);voidwrite_com(ucharcom)rs-O;Icden-O;P0=com;de1.ay;Icden=1;de1.ay(5);Icden=O;rs-1;Icden=O;P0=date;de1.ay;1.cden=1;de1.ay(5);1.cden三0;voidinit()waitcost-O;day_price=2:night_pric
28、e=3;wait=0;count1=0;count2=0;M500三0:date三OOOO;distace=0000;EA=1;EXO=I;TCN=0x05;TMOD-OxIO:TH1-(65536-50000)/256;T1.1=(65536-50000)%256;ET1=1;TR1=1;Icden=O;write_com(0x38);write_com(0x0c);Wrrte_com(OXO6);write_com(0x01);write_com(0x80);write_com(0x80+0x40);for(num=0;num32;num+)Iwrite-date(tab1.e4(num)
29、;de1.ay(5);/=voidwritesfm(ucharadd,uchardate)(ucharshi,ge;shi=date1.;date=date%10;ge=date;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);=voidwrite_price(ucharadd,uintdate)(ucharqian,bai,shi.ge:qian=date1000;date=date%1000;bai=date100;date=date%1.OO;shi=date1.;ge=date%;write_com(0
30、x80+0x40+add):write_date(0x30+qian);writedate(030+bai);write-date(0x30+shi);write_date(0x30+ge);=voidWrite_1.UCheng(UCharadd.uintdistance)(uchargewei,shiwei,baiwei;baivei三distance100;dis1.ance三distace%100;shiwei=distance1.0;gewei=distace%10;writecom(080+040+add);writedate(0x30+baiwei);write_date(0x3
31、0+shiwei);write_date(0x30+gewei);/电=子钟键盘扫描voiddzz_keyscan()(if(s5=0)Ide1.ay;if(s5=0)s5num+;whie(!s5);if(s5um=1)(TRO=O;write_com(0x80+0x40+32);write_com(0x0f);if(s5num=2)(write-m(0x80+0x40+29);)if(s5num=3)write_com(0x80+0x40+26);s5num=0;write_com(OxOc);TRO-1;if(s5um!=O)if(s=O)Ide1.ay;if(s6=0)whi1.e(!
32、s6);if(s5num=1)jmiao+;if(miao-三60)miao=0;write_sfm(31.miao);writeCorn(OX80+0x40+32);1.if(s5num=2)fen+;if(fen=60)fen=O;write_sfm(28,fen);write_com(0x80+0x40+29);if(s5num=3)shi+;if(shi=24)shi=O;write-sfm(24,shi);writeCOm(OX80+0x40+25);if(s7=0)de1.ay:if(s7=0)whi1.e(7);if(s5num=1)miao-:if(miao=-1)miao=5
33、9;write_sfm(31,miao);write_com(0x80+0x40+32);fen-;if(fen-三-1)fen=59;write_sfm(28.fen);writecom(0x80+040+29);if(s5num三三3)shi-;if(shi=-1)shi=23;write-sfm(25,shi);write-m(0x80+0x40+26);/”333”延时函数.voidde1.ay(uintz)0;x-)for(y=110;y0;y-);)U=选=择黑白天=H选择黑夜the_night(void)write_com(0x01);for(num-0;num24:num+)w
34、rite_date(tab1.e2(num);de1.ay;writecom(080+0x40);for(num-0;num26:num+),write_date(1.ab1.e3num);de1.ay(5);/选择白天=the_day(void)write_com(0x01);for(num=0;num24;num+)(writedate(tab1.e1num);de1.ay;write-m(0x80+0x40);for(num=0;num26;num+)Write_date(Iabte3num);de1.ay(5);位fuwei(void)(if(s3=0)Idistance=0000:d
35、ate=OOOO:I1.=wa1.st(void)if(wait=30)wait=0:waitst=waitst+1;)day-st(void)if(distance3)date=5;e1.sedate=5+(distance-3)*dayprice+waitcost;returndate;night_cost(void)if(distance-3)(M500=0;distance+;I)/=定时1=voidHmer10inteaupt3JTH1=(65536-50000)/256;T1.1=(65536-50000)%256;count1+;if(count1=18)count1-0;cou
36、nt2+;wait+:miao+;if(miao=60)miao=0;fen+;if(fen=60)fen=O;shi+;if(shi-24)Ishi-O;)write_sfm(25.shi);)write_sfm(28,fen);)write_sfm(31,miao);if(s8-0)if(count2=1)cout2=0;if(s1O)白天the_day();wai1.st();day_cost();writepric(5,date);WriteJucheng(19.distance);e1.seif(s2=0)U晚上the_night();wait-st();nightst();Write_PriCe(5,date);writeIuch11g(1.9,distance);)