基于单片机的多功能出租车计价器设计定稿_第1页
基于单片机的多功能出租车计价器设计定稿_第2页
基于单片机的多功能出租车计价器设计定稿_第3页
基于单片机的多功能出租车计价器设计定稿_第4页
基于单片机的多功能出租车计价器设计定稿_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业设计基于单片机的多功能出租车计价器设计DesignofDigitalFrequencyMeterBasedonSCM学生姓名陈展智所在专业电气工程及其自动化所在班级12级电气工程及其自动化1班申请学位工学学士指导教师黄小容职称答辩时间2016年05月28日学位论文原创性声明本人郑重声明:所呈交的学位论文(毕业设计),是本人在导师的指导下,独立进行研究工作所取得的成果。所有数据、图片资料均真实可靠。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本毕业论文的知识产权归属于培养单位。本声明的法律结果由本人承担。论文作者签名:日期:年月日目录TOC\o摘要 ArabicIIAbstract ArabicIII1多功能出租车计价器的设计内容 Arabic1多功能出租车计价器设计目的 Arabic1系统主要功能 Arabic1方案论证与比较 Arabic12出租车计价系统的硬件设计 Arabic3晶振电路部分 Arabic3按键复位电路 Arabic3蜂鸣器电路 Arabic4独立式键盘接口电路 Arabic52.51602LCD液晶显示电路 Arabic52.5.11602LCD的基本参数及引脚功能 Arabic51602液晶显示接口电路 Arabic7路程测量设计部分 Arabic72.7单片机各引脚功能说明 Arabic93出租车计价系统的软件设计 123.1中断子函数 Arabic133.2判键子函数 Arabic153.3显示子程序 163.4总程序流程框图 164系统调试 174.1单片机仿真软件在线调试—PROTEUS 17出租车计价器硬件调试 185设计体会与展望 21鸣谢 22参考文献 23附录 24源程序 26摘要随着时间推移,出租车行业的发展势头已十分突出,出租车计价器的功能从刚开始的只显示路程,配合司机自己定价,计算后四舍五入,到现在不仅能够自主计费,还能实现一些人性化的附加功能。现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展、计价器的普及也是非常迅速的。本设计的是一个基于单片机STC89C52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。在上电时字符型液晶1602显示最初的起步价,里程收费,等待时间收费三种收费,通过按键可以调整起步价,里程收费,等待时间收费。通过按键模拟出租车的运行,暂停,停止。在1602液晶上可以显示运行的时间,运行时暂停的时间,通过计算可以得出总共的费用和总的路程。关键字:STC89C52;1602液晶;出租车计费器;里程收费AbstractOvertime,thedevelopmentmomentumofthetaxiindustryhasbeenveryprominent,taximeterfunctionfromthebeginningoftheshowonlywalk,withdriversthemselvespricing,calculatedafterrounding,andnownotonlyself-billing,butalsotoachievesomehumaneadditionalfeatures.Majorcitiesinthetaxiindustrynowhaveuniversalautomaticmeter,themetersothedevelopmentoftechnology,thepopularitymeterisveryrapid.ThisdesignisataxibillingdesignbasedonsinglechipAT89S51,aresetcircuit,clockcircuit,keyboardcircuit.Theresetcircuitisasinglechipinitializationoperation,inadditiontothenormalinitialization,toshakeoffthedilemma,theresetcircuitcanstartagain.Theclockcircuitusinga12MHzcrystal,asthesystemclocksource,withhigheraccuracy.Inpowerincharactertypeliquidcrystaldisplay1602startingprice,theinitialmileage,waitingtimechargethreefee,buttonscanbeadjustedbythestartingprice,mileage,waitingtimecharge.Throughthesimulationofthetaxioperationbutton,pause,stop.Inthe1602LCDcandisplaytherunningtime,runtimepausetime,canbeobtainedbythecomputationofthetotalcostandthetotaldistance.Keywords:singlechipmicrocomputerAt89c51devices,1602liquidcrystaldisplay(LCD),Thetaxifareregister,theinitialmileage基于单片机的多功能出租车计价器设计指导老师:黄小容1多功能出租车计价器的设计内容多功能出租车计价器设计的主要目的有两点:1.对客户计算路程费用;2.对出租车司机计算税费。在我们看来,出租车计价器只是完成了计算乘车费用这一功能,可是实际上并不是这么简单,除了完成对乘车费用的计算与显示外,它还有五大功能,分别如下:功能之一是其具有自检功能,在刚刚开机时所有可显示的字符及状态指示灯均显示3s以上以证明其自身处于“健康”状态;功能之二是其具有数据存储功能,可存储至少100次的营业数据;功能之三是其具有失电保护功能,无供电情况下也可对数据起到保护作用;功能之四是其具有打印功能,用于打印乘车票据;功能之五是其可通过对“空车”车牌的翻动来开始或终止计费。本出租车自动计费,上电后显示最初的起步价,里程计费单价,等待时间计费单价,通过按键可以调节起步价,里程计费单价,等待时间计费单价。同时具有运行,暂停,停止等状态,可以显示运行的时间,同时可以显示暂停的时间,具有累加功能,暂停和运行时间在暂停和运行前一次的状态上计时。出租车停止后能够显示行驶的总费用。方案一:采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示,一下是该方案的流程框图,方案一如图1-1所示:图1-1方案一时钟信号等待信号时钟信号等待信号公里脉冲计费/复位分频器控制器计费计时计程译码显示图1-2方案二图1-2方案二方案三:采用MCU技术,通过单片机作为主控器,利用1602字符液晶作为显示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案三的系统流程图,本方案成本不高。方案图如图1-3所示:STC89C52STC89C521602液晶LED灯电源电路按键电路复位电路图1-3方案三方案总结:通过各个方案的比较,本次采用方案三,不但控制简单,而且成本低廉,设计电路简单。2出租车计价系统的硬件设计晶振电路部分本设计中使用的振荡电路,由12MHZ晶体振荡器和两个约20PF的电容组成,在XTAL1和XTAL2两端跨接晶体,电容的大小不会影响振荡频率的高低。在整个系统中为系统各个部分提供基准频率,以防因其工作频率不稳定而造成相关设备的工作频率不稳定,晶振可以在电路中产生振荡电流,发出时钟信号。晶振电路如图2-1所示:图2-1晶振电路复位电路单片机的复位是由外部的复位电路实现的,复位电路通常采用上电自动复位和按钮复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。除了上电复位外还需要按键手动复位(图2-2)。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源VCC接通而实现的。单片机的复位速度比外围I/O接口电路快为能够保证系统可靠的复位,在初始化程序中应安排一定的复位延迟时间。按键复位电路图如图2-2所示。图2-2按键复位电路本次设计采用蜂鸣器。蜂鸣器俗称喇叭,是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、机、定时器等电子产品中作发声器件。是广泛运用于各种电子产品的一种元器件,它用于提示、报警、音乐等许多运用场合。其结构图如图2-3所示:图2-3蜂鸣器结构图蜂鸣器与家用电气上的喇叭在用法上也有相似的地方,通常工作电流比较大,电路上的TTL点评基本上驱动不了蜂鸣器,需要增加一个电流放大的电路才可以,即此一个管脚很难驱动蜂鸣器发出声音,所以增加了一个三极管来增加通过蜂鸣器的电流。三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,你要是输出高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。I/O口内部有上拉电阻时,外部可不接上拉电阻。键盘接口电路如图2-3所示:图2-4键盘接口电路2.51602LCD液晶显示电路2.5.11602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图2-5.1所示。图2-5LM016L结构图LCD1602主要技术参数:

容量:16×2个字符工作电流:2.0mA(5.0V)字符尺寸:2.95×4.35(W×H)mm引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示:表1引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。1602液晶显示接口电路图2-6显示电路出租车中需要一个能准确的获得车轮转动即路量信号的装置,以得到标准的脉冲信号送入单片机的定时/计数器T1即P3.5引脚,利用单片机的T1的计数功能完成100次的计数后产生一中断来完成路程的测量。(设车轮周长为1m,则霍尔传感器每产生100个脉冲便表示车已行程0.1km,为了演示方便本设计中采用按键了模拟增加里程。每按一个按键增加0.5公里的里程。如果按两次就是1公里,以此类推不断的增加来模拟车的不断前进。图2-7路程测量系统图2.7单片机各引脚功能说明下面对AT89C51各引脚的功能进行较为详细的介绍:1)电源引脚Vcc和VssVcc(40脚):电源端为+5VVss(20脚):接地端。2)时钟电路引脚XTAL1和XTAL2XTAL2(18脚):接外部晶体和微调电容的一端。在单片机内部它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时针电路时,该引脚输入外时钟脉冲。要检查89C51的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。XTAL1(19脚):接外部晶体和微调电容的另一端。在片内,它是振荡电路反向放大器的输入端。在采用外部时钟时,该引脚必须接地。3)控制信号脚RSTALEPSEN和EA。RST(9脚):RST是复位信号输入端,高电平有效。在此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。ALE/PROG(30引脚):地址锁存允许信号端。当AT89C51上电正常工作后,ALE引脚不断向外输出正脉冲信号。此频率为振荡器频率fosc的1/6,当CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。在CPU访问片外数据存储时,每取值一次(一个机器周期)会丢失一个脉冲。平时不访问片外存储时,ALE端也以1/6的振荡频率固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。如果你想看一下AT89C51芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出,如有脉冲信号输出,则AT89C51基本上是好的。ALE的负载驱动能力为8个LS型TTL(低功耗高速TTL)。PSEN(29脚);程序存储允许输出信号引脚,在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引脚接ERROM的OE端。PSEN端有效,即允许读出ERROM/ROM中的指令码。CPU在从外部ERROM/ROM取指令期间,每个周期PSEN两次有效。不过,在访问片外RAM时,要少产生两次PSEN负脉冲信号。要检查一个AT89C51小系统上电后CPU能否正常到ERROM/ROM中读取指令码,也可用于示波器看PSEN端有无脉冲输出。如有,说明基本上工作正常。EA/VPP(31脚):外部程序存储器地址允许输入端/固化编程电压输入端。当EA引脚接高电平时,CPU只访问片内ERROM/ROM并执行内部程序存储器中的指令。但在PC(程序计数器)的值超过OFFFH(对8751/8051为4k)时,将自动转向执行片外存储器的程序。当出入信号EA引脚接低电平(接地)时,CPU只访问外部ERROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无芯片内的ROM的8031或8032,须外扩ERROM,此时必须将EA引脚接地。如果使用有片内ROM的STC89C52,外扩ERROM也是可以的,但也要使EA接地。4)I/O(输入/输出端口,P0,P1,P2,P3)P0口:P0口是一个漏极开路的8位准双向I/O端口。P1口:8位准双向I/O端口。P2口:即可以做地址总线输出地址高8位,也可以做普通I/O用,(此时为准双向口)。P3口:双功能口,即可以做普通I/O口用(此时为准向口,也可以按每位定义实现第二功能操作)。见表2-1。表2-1P3口的第二功能表引脚第二功能RXD(串行输入口)TXD(串行输出口)INT0(外部中断0)INT1(外部中断1)T0(定时器0外部中断)T1(定时器1外部中断)WR(外部存储器写选通)RD(外部存储器读写通)控制器接口说明(HD44780及兼容芯片)1、基本操作时序a读状态:输入:Rs=L,Rw=H,E=H输出:D0—D7=状态字b写指令:输入:Rs=L,Rw=L,D0—D7=指令码输出:无E=高脉冲C读数据:输入:Rs=H,Rw=L,E=H输出:D0—D7=数据d写数据:输入:Rs=H,Rw=L,D0—D7=数据输出:无E=高脉冲状态字说明如表2-2所示:表2-2状态字说明(a)STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0表2-3状态字说明(b)STA0--6当前数据地址指针的数值STA7读写操作使能1:禁止0:允许注:对控制器进行读写操作之前,都必须进行读写检测,确保STA7为0RAM地址映射图控制器内部带有80*8位的RAM缓冲区,对应关系如下图2-5所示:表2-4RAM地址映射图LCD16字*2行000102030405060708090A0B0C0D0E0F10…27404142434445464748494A4B4C4D4E4F50…67显示模式设置如表2-5所示:表2-5显示模式设置指令码功能00111000设置16*2显示,5*7点阵,8位数据接口显示开关及光标设置如表2-6所示:表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当写一个字符,整屏显示不移动数据控制控制器内部没有一个数据地址指针,用户可通过它们来访问内部的全部80字节RAM。3出租车计价系统的软件设计在设计中采用单片机的P1口控制键盘在本次设计中像电路键盘,其中P1.0到P1.4口作为键盘的输入,直流电机电路的控制线用了P2口线,P3.0、P3.1、P3.2分别为led信号控制脚。显示电路用到了P0和P2口,P0口为液晶的数据口。对于中断程序,只要定时器计数满就会产生中断50ms中断一次,共计20次,秒钟加1,秒钟计满再分钟加,当分钟加到99时全部清零。以下是中断子函数的流程图如图3-1所示:图3-1中断子程序流程图中断子程序如下:voidtime0_int()interrupt1staticucharvalue;TH0=0x3c;TL0=0xb0;//50msvalue++;if(value%6==0)flag_300ms=1;if(value>=20)flag_1s=1;value=0;3.2判键子函数(按键子程序)对于独立式键盘判键,首先看有键按下不,如果有键按下则延时一会儿,在判断是否真的有键按下,如果确实有键按下,在判键释放,最后执行键功能程序。判键子函数的流程框图如图3-2所示:图3-2判键子程序流程图判键子程序如下:voidkey()staticucharkey_new=0,key_old=0,key_value=0;key_io|=0x3f;if(key_new==0) //按键松开if((key_io&0x3f)==0x3f)key_value++;elseif((key_io&0x3f)!=0x3f) //按键按下key_value++;elsekey_value=0;if(key_value>=5) //按键按下消抖key_value=0;key_new=0; //按键松开后进入等待松开按键状态1602液晶是字符型液晶,它的内部自带字符库,它可以写两行的字符,同时每行可以写40个字符,在写显示程序的时候,我们先写命令,再设定字符显示,最后写数据,在每写一次命令或数据都需要判断液晶是否忙。液晶显示程序流程图如图3-3所示:图3-3液晶显示程序流程图液晶显示程序如下:voidjishu_chashu()if((flag_1s==1)&&(flag_time_en==1))flag_1s=0;miao++if(miao>=60)miao=0;fen++;if(fen>=60)fen=0;shi++;if(shi>=24)shi=0; 3.5总程序流程框图图3-4整体程序流程图具体程序见附录源程序4系统调试4.1单片机仿真软件在线调试—PROTEUS1.打开Proteus软件。2.选择file菜单下的opendesign选项,找到所需的元器件,元器件上单击右键选中,再单击左键对其进行命名和赋值,接着在编辑器左边的一栏中,找出并绘制设计所要的各种元器件,按照电路图连接后并保存。3.将用keil编译产生的hex文件下载到单片机中:双击51单片机,在对话框中把保存过的hex文件打开,再单击确定。4.单击左下角运行按钮,进行软件仿真调试,直到出现正确的结果。下图3-4是在PROTEUS中仿真通过的整体硬件原理图。图4-1PROTEUS仿真原理图功能介绍:出租车计价器采用at89c51存储芯片+LCD1602液晶显示等设计而成。3公里内为起步价,3公里以外为每公里多少钱1公里,白天默认是1.8元,晚上默认是2.2元,这个价格用户可以设定,等待3分钟以内不计价,3分钟以外每分钟多少元,白天默认是0.5元,晚上默认是1元,这个价格用户可以设定。能进行白天/晚上转换、途中等待时间和单价、总金额和单价所有数据输出采用LCD1602显示。设置好的参数保存在AT24C02存储芯片内,掉电不需要重新再设置。总价=3公里内路程的价+3公里外的路程*单价+等待的时间*单价。按键说明:第一排:左边第一个键,清零键,从新计价。第二个键,模拟里程数增加,按一下距离就加0.1KM。第二排:左边第一个键:确定键,进入菜单设计参数。第二个键:加键,在设置参数时加变量的。第三个键:减键/等待时间开始、暂停键第四个键:退出菜单设置键。在正常显示界面下第二排第三个键为“等待时间开始和暂停键”按一下时间走,再按下时间暂停。在参数设置界面下第二排第三个键为“减键”。参数设置:按下“确定键”进入设计界面进行参数设置:会有3个不同的选项,在此界面按“加、减键”可选择不再的选项并有光标会在对应的选项上闪烁,再按下“确定键”可进入相对应的参数设置界面。第1项:白天和晚上的模式设置第2项:白天行驶的参数设置第3项:晚上行驶的参数设置按下“确定键”进入第1项白天和晚上模式设置:会有2个不同的选项,在此界面按“加、减键”可选择白天模式和晚上模式并光标会在对应的选项上闪烁。设置好后按“退出键”可返回上一级设置菜单界面。bai-t:表示是白天的模式wan-s:表示是晚上的模式按下“确定键”进入第2项白天行驶的参数设置:会有3个不同的选项,在此界面按“确定键”可选择不同的选项并光标会在对应的选项上闪烁,再按“加、减键”对应该的单价会加、减。设置好后按“退出键”可返回上一级设置菜单界面。第1项3L:白天3公里内的单价设置(元)第2项3W:白天3公里外的单价设置(元/公里)第3项dd:白天等待的时间单价设置(元/分钟)按下“确定键”进入第3项晚上行驶的参数设置:会有3个不同的选项,在此界面按“确定键”可选择不同的选项并光标会在对应的选项上闪烁,再按“加、减键”对应该的单价会加、减。设置好后按“退出键”可返回上一级设置菜单界面。第1项3L:晚上3公里内的单价设置(元)第2项3W:晚上3公里外的单价设置(元/公里)第3项dd:晚上等待的时间单价设置(元/分钟)5设计体会与展望出租车计费器系统的设计已经全部完成,能按预期的效果进行模拟汽车启动,停止,暂停等功能,并能够通过LCD显示车费数目。本款出租车计价器包括单价输出、单价调整、显示当前的系统时间等功能。另外,多功能出租车计价器还具有性能可靠、电路简单、成本低、实用性强等特点,加上经过优化的程序,使其有很高的智能化水平。几个月来,经过自己努力,基本上完成了设计要求的内容,在系统可行性分析、原理图设计等方面都作了许多实际工作,取得了一些成绩,同时也遇到了一些问题,存在一些不足。经过这几个月的学习和工作,我觉得自己不论是在理论知识方面还是在动手能力方面都有了不小的进步,自己从中受益匪浅。这次设计很好的把以前学到的理论知识应用于实践,使我认识到理论知识与实践之间有一定的差距,只有通过不断的努力学习和实践才能很好的把理论知识应用到实践当中,也只有通过不断的实践才能对理论知识的理解。通过这次设计不仅学会了如何去查找相关资料,更重要的是通过查找资料和翻阅书籍学到了不少知识,扩大了知识面,提高了知识水平。经过单元设计和系统设计巩固了以前所学的专业知识,自己真正认识到理论联系实际的重要性,为以后的学习和工作提供了很多有价值的经验。通过这次设计不仅增强了自己的动脑能力和动手能力,也提高了我思考问题、分析问题、解决问题的能力,更重要的是学会用工程化的思想来解决问题。这在以前的学习过程中是不曾学到的。在短短的三个月时间内完成设计内容,在很大程度上得益于老师的帮助。这次设计是我认真认识到完整、严谨、科学分析问题、解决问题的思想是多么的重要,只有拥有了科学的态度才能设计出有用的产品。另外通过本次设计,是我认识到自己理论知识的应用能力有很大的欠缺,需要在以后的学习中进一步提高。鸣谢时间飞逝,转瞬间为期数月的毕业设计结束了,在这个过程当中学到了很多东西,能力得到了提升,不仅仅是知识方面,更重要的是为人处事,如何去面对压力和挑战。这最后的一年是是学到的最多,懂得的最多的一年。这次毕业设计能够顺利完成,首先我要感谢指导老师黄小容老师,黄小容老师治学严谨、学识渊博,在毕业设计的过程中,从各个方面给予我诸多帮助。黄小容老师严谨细致、一丝不苟的作风,精益求精、注重培养学生独立自主精神态度,在这里向黄小容老师表示衷心的感谢。参考文献[1]张毅刚,刘杰.MCS-51单片机原理及应用[M].哈尔滨:哈尔滨工业大学出版社,2004.[2]李萍.AT89S51单片机原理、开发月应用实例[M].北京:中国电力出版社,2008.[3]魏宋扬.出租汽车计价器常见故障及分析处理[J].中国测试,2009,35(5):126-127.[4]万福君,潘松峰,刘芳.MCS-51单片机原理、系统设计及应用[M].北京:清华大学出版社,2008.[5]马忠梅,籍顺心等.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2005.[6]黄遵熹.单片机原理接口与应用[M].西安:西北工业大学出版社,2000.[7]杨世品,陈林.基于proteus的单片机出租车计价器的设计[J].中文核心期,2007,(23):4-2.[8]张小虎,刘洁.基于单片机的出租车计价器编码传感器的设计[J].自动化技术与应用,2005,(24):10.[9]张鑫,华臻陈书谦.单片机原理及应用[M].北京工业出版社.2005.[10]张齐.单片机原理与应用系统设计[M].北京:电子工业出版社,2010.[11]李广弟,朱月秀,冷祖祁.单片机基础[M].第3版.北京航空航天大学出版社,2007年1月[12]李华.MCS-51系列单片机实用接口技术[M].北京航空航天大学出版社,1996单片机原理及应用[M].北京航空航天大学出版社,2010.[14]胡辉,单片机原理及应用设计—21世纪高等院校规划教材[M],水利水电出版社,2005.7;[15]刘守义,单片机应用技术[M],西安:西安电子科技大学出版社,1996.8;[16]Chirs

J.Georgopoulos.Interface

Fundamentals

In

Microcessor--Controlled

System[M].D.Reidel

Publishing

Company,1985附录I:系统原理图附录II:实物图附录III:源程序#include<reg52.h> //调用单片机头文件#defineucharunsignedchar//无符号字符型宏定义 变量范围0~255#defineuintunsignedint //无符号整型宏定义 变量范围0~65535ucharmiao,fen=0,shi;ucharflag_bai_hei;//白天的晚上的标志位ucharvalue;uintbai_3l_price=70;//白天3千米内的单价7元uintbai_3w_price=18;//白天3千米外的单价/千米 uintbai_wait_price=5;//白天等待时的单价/分钟 uintwan_3l_price=80;//晚上3千米内的单价/千米 8元uintwan_3w_price=22;//晚上3千米外的单价/千米 uintwan_wait_price=10;//晚上等待时的单价/分钟 1元uintdistance=0;//行使的距离uintzong_jia;//总的价bitflag_300ms=0;bitflag_1s;bitflag_time_en=0;#include"lcd1602.h"/***********************1ms延时函数*****************************/voiddelay_1ms(uintq)uinti,j;for(i=0;i<q;i++)for(j=0;j<120;j++);/****************自动初始化保存的数据*******************/ voidzidong_chushifa_iic()value=read_24c02(200);value=read_24c02(200);if(value!=0x91) //新的单片机初始单片机内问EEPOMvalue=0x91;write_iic_data();write_24c02(200,value);//保存数据delay_1ms(300); /****************读出来保存的数据**********************/ voidread_iic_data(){ flag_bai_hei=read_24c02(0); bai_3l_price=read_24c02(2); bai_3l_price=bai_3l_price*256+read_24c02(1); bai_3w_price=read_24c02(4); bai_3w_price=bai_3w_price*256+read_24c02(3); bai_wait_price=read_24c02(6); bai_wait_price=bai_wait_price*256+read_24c02(5); wan_3l_price=read_24c02(8); wan_3l_price=wan_3l_price*256+read_24c02(7); wan_3w_price=read_24c02(10); wan_3w_price=wan_3w_price*256+read_24c02(9); wan_wait_price=read_24c02(12); wan_wait_price=wan_wait_price*256+read_24c02(11);}/****************独立按键处理函数************************/ #definekey_ioP2ucharkey_can;voidkey()staticucharkey_new=0,key_old=0,key_value=0;key_io|=0x3f;if(key_new==0) //按键松开if((key_io&0x3f)==0x3f)key_value++;elsekey_value=0;if(key_value>=5) //按键松开松手检测key_value=0; key_new=1; //按键松开后进入等待按键状态 else if((key_io&0x3f)!=0x3f) //按键按下 key_value++; else key_value=0; if(key_value>=5) //按键按下消抖 key_value=0; key_new=0; //按键松开后进入等待松开按键状态 key_can=20; if((key_new==0)&&(key_old==1)) switch(key_io&0x3f) case0x3e:key_can=1;break; //得到按键值 case0x3d:key_can=2;break; //得到按键值 case0x3b:key_can=3;break; //得到按键值 case0x37:key_can=4;break; //得到按键值 case0x1f:key_can=5;break; //得到按键值 case0x2f:key_can=6;break; //得到按键值 // write_sfm2(2,0,key_can);//按键按下显示按键值 key_old=key_new; #include"menu.h"/*********************对应菜单内的处理函数******************/voidmenu_dis()if(menu_1==0) if(key_can==6) dis

温馨提示

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

评论

0/150

提交评论