出租车计价器的设计与实现大学论文.docx
- 文档编号:27416394
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:35
- 大小:1.03MB
出租车计价器的设计与实现大学论文.docx
《出租车计价器的设计与实现大学论文.docx》由会员分享,可在线阅读,更多相关《出租车计价器的设计与实现大学论文.docx(35页珍藏版)》请在冰豆网上搜索。
出租车计价器的设计与实现大学论文
本科生毕业设计
题目:
出租车计价器的设计与实现
作者:
学号:
所属学院:
信息科学与工程学院
专业年级:
电子信息工程
指导教师:
职称:
完成时间:
出租车计价器的设计与实现
摘要
随着城市交通建设日益加快,出租车行业正加速发展。
自动计价器起着不可忽略的作用。
系统是一个基于单片机STC89C52的出租车自动计价器,由复位电路、时钟电路、键盘电路组成。
复位电路完成单片机的初始化操作。
时钟电路采用12MHz晶振作为系统的时钟源。
键盘电路可以调节单片机的各项数据。
在通电时字符型液晶显示屏1602显示最初的起步价、里程计费、等待时间计费等,按下按键可以调节各项收费价格。
通过按键模拟出租车的运行、暂停、停止。
在显示屏上可以显示运行的时间、运行时暂停的时间,从而得出总费用和总路程。
关键词:
STC89C52;1602;计价器
DesignandImplementationofTaxiMeter
Abstract
Withtheurbantransportconstructionisaccelerating,thetaxiindustryisacceleratingdevelopment.Automaticmeterplaysarolethatcannotbeignored.
ThesystemisataxibasedontheSTC89C52taxiautomaticmeter,bytheresetcircuit,theclockcircuit,thekeyboardcircuit.Resetcircuittocompletetheinitialoperationofthemicrocontroller.Clockcircuitusing12MHzcrystal,asthesystemclocksource.Keyboardcircuitcanadjustthemicrocontrollerdata.
InthepowerwhenthecharacterLCD1602showstheinitialstartingprice,mileagebilling,waitingtimebilling,pressthebuttontoadjustthestartingprice,daytimeprice,thepriceatnight.Throughthebuttontosimulatethetaxioperation,pause,stop.Onthedisplayyoucandisplaythetimeoftherun,thetimewhentheoperationispaused,resultingintotalcostandtotaldistance.
KEYWORDS:
STC89C52;1602;Meter
第1章绪论
1.1课题研究的背景
出租车行业是人们来到一座陌生城市、认识这座城市的第一扇窗,它已逐步成为衡量一个城市是否具备国际化大都市的现代标准和心理标准的标志之一。
在出租车这个行业的迅速发展中会产生很多问题[1],出租司机服务不规范,在经营和管理上有不少漏洞,出租司机对乘客漫天要价的现象频繁显现,而通过安装一个出租车计价器,出租公司就可以硬性规定出租司机必须按照计价器收费,这样不仅可以维护乘客的合法利益,还可以为提高出租车的服务质量和进一步规范出租车服务起到表率的作用。
在出租车刚发展的最初,也是就上世纪七十年代,那时候出租车的计费系统大部分都是要从国外进口,计费系统非但价格昂贵而且计价还不是很准确,后来又产生了国产的计价器,那时候出租车计价器只是显示路程,而且还需要出租车司机自己定价,把计算后的结果用“四舍五入”的方法显示出来,这种计价器误差大,容易引起乘客与出租车司机的矛盾,到又后来发展成了能够自主计费的出租车计价器,到了现在,各个地方的城市化都在一步一步的加快,出租车作为城市面貌的象征,肯定也会随着城市化的推进而发展,现在出租车都已经普及了计价器,一个优良合理的出租车计价器在未来的计价器的市场是非常有潜力的。
现在计算机系统也已经很明显的超巨型化、单片化、网络化三个方向发展[2]。
巨型化发展的目的在于不断提高计算机的运算速度和处理能力,以解决复杂系统计算和高速数据处理,比如系统仿真和模拟、实时运算和处理。
单片化是把计算机系统尽可能集成在一块半导体芯片上,其目的在于计算机微型化和提高系统的可靠性,这种单片计算简称单片机。
单片机的内部硬件结构和指令系统主要是针对自动控制应用而设计的,所以单片机又称微控制器MCU(MicroControllerUnit)。
用它可以很容易的将计算机嵌入到各种仪器和现场控制设备中,因此单片机又叫做嵌入式微控制器(EmbeddedMCU)。
单片机自20世纪70年代问世以来,以其鲜明的特点得到迅猛发展,已广泛应用与家用电器、智能玩具、智能仪器仪表、工业控制、航空航天等领域,经过40年左右的发展,性能不断提高,品种不断丰富,已经形成自动控制的一支中坚力量。
现在单片机运用的是非常的广泛,在计算机的外部设备、智能化仪表和仪器、家中电器产品、工业控制的领域,尤其是在机电一体化的产品之中,都有着非常重要的用途,主要为以下几个方面[3]。
●显示:
将单片机与LED数码管显示屏或者LCD液晶显示屏连接,单片机就可以控制显示屏来显示字符和图形。
●机电控制:
将单片机与机电产品连接,来控制它做定向动作或者定时动作。
●监测:
将单片机和传感器连接,通过这两个器件的相互工作,就可以用来检测工况和产品。
●通信:
通过单片机的I/O口,可以用来传输信号和数据。
●科学计算:
在单片机程序中,设计程序来进行简单的计算。
因此根据单片机的种种特点和用途,可以设计基于单片机的出租车计价器,而基于单片机系统设计的出租车计价器是以单片机作为核心的控制元件,采用灵敏的霍尔开关型,相比以前用的集成电路式的计价器,具有功能强,性能可靠,电路简单,成本低等特点,加之经过优化的程序,使其具有很高的智能化水平。
1.2出租车计价器的发展与意义
步入21世纪,出租车已经广泛地出现在我们周围。
随着人们生活水平的不断提高,出租车的使用频率也越来越高,出租车行业以优质的服务带给人们享受旅行。
但是,由于行业的特殊性,出租车行业总存在买卖的争议,困扰着行业的发展。
解决这个出租车行业矛盾的最好方法就是使用改良计价器,为客人提供更加便捷高效的服务[4]。
30年前,我国出现了出租车,但是由于当时的经济水平,出租车并没有普遍在我们生活中出现。
随着改革开放的深入,出租车行业的发展势头已十分突出。
如今出租车在我国的交通运输中承担着重要的角色,出租车计价器是出租车上必不可少的重要仪器,它是负责出租车营运收费的专用智能化仪表。
随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。
我们都知道,只要出租车开动,随着行驶里程的增加,就会看到汽车前面的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如5KM)计费数字显示开始从起步价(如8元)增加。
当出租车到达某地需要在那里等候时,司机只要按一下“计时”键,每等候一定时间,计费显示就增加一个该收的等候费用。
汽车继续行驶时,停止计算等候费,继续增加里程计费。
到达目的地,便可按显示的数字收费。
采用模拟电路和数字电路[5]设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的转变需要用到机械开关,机械开关用的时间过久就会造成接触不良,功能难以实现。
所以我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性非常强,可以用软件编程来完成较多的附加功能。
1.3项目的设计目标与要求
利用AT89C52单片机,设计简单的出租车计价器。
其中主要的外围功能电路[6]有:
驱动电路,按键控制电路,时钟部分,数码管显示电路等。
通过对以上各功能的设计,制作出的出租车计价器应具有以下功能:
上电时显示全为零,通过按下启动按键来开始计价,显示屏开始显示起步价和里程数;显示屏开始显示所走里程和所应付的金额,并逐渐增加;按下档位键,里程数加速提高,同时金额金额加速增长。
按下停止按键,停止计价,数码管显示所走总里程和用户所需付总金额,按下清零按键,显示屏全显示零,以备下次计价。
1.4论文的组织结构
论文可以分为目录、中英文摘要、绪论、系统工作原理、硬件设计、软件设计、系统调试、结语、参考文献、附录这几个部分。
本文共分为5章,组织结构如下。
1)第1章介绍了课题的背景意义和介绍出租车计价器的发展现状以及论文的设计目标和要求。
2)第2章主要介绍了系统的工作原理,其中包括功能要求和基本原理。
3)第3章主要讲述了出租车计价器的硬件设计,其中包括振荡电路、复位电路设计、键盘接口电路、显示电路、单片机各引脚功能说明。
4)第4章介绍的是出租车计价器的软件设计,详细说明了本次设计的各种程序模块。
5)第5章为项目的调试,其中包括软件测试、系统仿真原理图、硬件电路。
最后部分是论文的总结、参考文献以及附录部分,以及设计心得和项目的不足之处。
第2章系统工作原理
2.1功能要求
出租车计价器是根据乘客乘坐汽车行驶距离和等候时间的多少来计价的,并且在行驶过程中同步[7]显示本次的消费、运行的里程、运行的单价和等待的时间等信息。
从起步开始起,如果汽车行驶的里程没有满3公里时,一切都按起步价计算。
超过3公里后,实现每1公里单价收费,遇到中间暂停时,计程数量不再增加,开始计时收取费用,计程收费以及计时收费的和于是构成了每一位乘客的车费。
同时,白天和夜晚价格不同,可以进行切换。
白天单价、夜晚单价、等待单价和起步价格都可通过独立键盘进行调节。
(默认起步价为5元/3公里,里程单价白天为1.8元/公里,夜晚为2.2元/公里,等待计时三分钟以内不收费,白天等待计时单价为0.5元/1分钟,晚上等待计时单价为1元/1分钟。
)
为提高计时、计价精度,确保乘客对自己消费的知情权,出租车计价器应做到里程数精确到0.1公里,同时为减少司机朋友来回调整单价以及停车后需重设单价的麻烦,计价器应具有掉电保持功能[8],即当重启后维持原有数值(包括总金额、等待时间、行驶里程、单价)不变,直至强制按下清零键,计价器显示起步价(刚起步时对应总金额)、运行单价,为下一次计价做准备。
2.2基本原理
计价器系统主要由五部分组成:
分别为基于多谐振荡发生器的里程检测单元、STC89C52单片机、外扩串行EEPROM-AT24C02、独立键盘和LED显示。
振荡发生器[9]主要用于检测汽车行使的里程数,出租车车轮每旋转一周,多谐振荡发生器便产生一相应的脉冲输出,并把该脉冲交由单片机进行处理,单片机则根据程序设定,通过计算脉冲个数换算出已行驶里程(里程=脉冲个数*出租车车轮周长),然后再根据从EEPROM-AT24C02中读取的单价等相关数据进行总的消费金额的计算:
当里程小于3公里时,总金额=起步价+等待时间*等待单价;当里程大于3公里时,总金额=起步价+(里程-3)*运行单价+等待时间*等待单价;计算好的金额、等待时间、里程和单价等数据信息都可实时地显示在数码管上。
其中,等待时间可根据多谐振荡发生器是否有脉冲输出加以判断[10],如可设定等待时基为5s,即假如按键在5s后仍无脉冲输出便认为进入等待时间,并由单片STC89C52内部计时器对其进行计时。
独立键盘可以调整单价等相关数据,当按下某按键,会给单片机相应端口一低电平信号,单片机会通过循环扫描检测到此信号,并根据预先设置好的程序做出相应的处理;调整好的数据存储到EEPROM中,掉电后可以使该数据不丢失,下次得电后直接从EEPROM-AT24C02中读到单片机,并通过显示屏实时显示[11]。
系统结构图如图1所示。
图1系统结构图
第3章硬件设计
3.1振荡电路
单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(电容一般取20PF)。
这样就构成一个稳定的自激振荡器。
振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE信号,此时得到的信号时机器周期信号。
振荡电路如图2所示。
图2振荡电路
3.2复位电路设计
复位电路操作有两种基本的形式:
一种为上电复位,另外一种就是按键复位。
按键复位除了具有上电复位功能外,如要复位,只要按住图中的RESET键,电源VCC通过电阻R1、R2进行分压,在RESET端能够产生一个复位的高电平。
电源接通上电复位电路后,可以通过外部电容的充电来实现单片机的自动复位操作。
接上电源瞬间RESET引脚就能获得高电平,伴随着电容的充电,RERST引脚的高电平将逐渐下降。
RERST引脚的高电平如果能保持足够多的时间(2个机器周期),单片机便能进行复位操作。
按键复位电路图如图3所示。
图3复位电路
3.3键盘接口电路
独立式键盘:
独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。
I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。
I/O口内部有上拉电阻时,外部可不接上拉电阻。
键盘接口电路如图4所示。
图4键盘接口电路
3.4显示电路
1602LCD显示分为带背光以及不带背光两类,基控制器绝大部分是HD44780,带背光的与不带背光的相比,带背光的要比不带背光的厚,但是这两者在应用中并无什么差别,两者尺寸差别如图5所示。
图5LM016L结构图
LCD1602主要的技术参数:
容量:
16×2个字符
芯片工作的电压:
4.5—5.5V
工作的电流:
2.0mA(5.0V)
模块最佳工作的电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
引脚功能说明:
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示。
表1引脚接口说明表
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
第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液晶显示电路,如图6所示。
图61602液晶显示电路
3.5单片机各引脚功能说明
下面对STC89C52各引脚的功能进行较为详细的介绍:
(1)电源引脚Vcc和Vss
Vcc(40脚):
电源端为+5VVss(20脚):
接地端。
(2)时钟电路引脚XTAL1和XTAL2
XTAL2(18脚):
接微调电容与外部晶体的一端。
在单片机的内部它就成为振荡电路反向放大器的输出端,振荡电路的频率就变成了晶体的固有频率。
如果需要用到外部时针电路时,则该引脚就能够输入外时钟脉冲。
要检查STC89C52的振荡电路能否正常工作,可以使用示波器观察查XTAL2端是否会有具有脉冲信号的输出。
XTAL1(19脚):
改引脚接外部晶体以及微调电容的另一端。
在片内,它为振荡电路反向放大器的输入端。
该引脚接地时,就必须用到外部时钟。
(3)控制信号脚RSTALEPSEN和EA。
RST(9脚):
RST为复位信号的输入端,高电平时有效。
当输入在两个机器周期(24个时钟振荡周期)保持高电平时,就可以完成复位操作。
ALE/PROG(30引脚):
地址锁存允许信号端[9]。
当STC89C52能正常上电工作后,ALE引脚向外不断输出正脉冲信号。
此频率是振荡器频率fosc的1/6,当CPU开始访问片外存储器时,锁存低8位地址的控制信号变为ALE输出的信号。
在CPU访问片外数据存储时,每取值一次(一个机器周期)会丢失一个脉冲。
通常不存取片外存储器,ALE端也是1/6的振荡频率固定输出正脉冲,所以ALE信号可以作为外部输出时钟或定时信号。
如果要看STC89C52芯片是好还是坏,可以用示波器来看ALE端子脉冲信号是否输出,如果是脉冲信号输出,STC89C52基本上是好的。
ALE的负载驱动能力为8个LS型TTL(低功耗高速TTL)。
PSEN(29脚);程序存储允许输出信号引脚,当访问片外程序存储器时,输出负脉冲作为只读存储器的选通信号。
此引脚接ERROM的OE端。
PSEN端有效,即允许读出ERROM/ROM中的指令码。
在从外部ERROM/ROM进行指令取出期间,CPU每周期都处于活动状态。
然而,当访问片外RAM时,会产生较少的PSEN负脉冲信号两次。
要检查STC89C52小型系统电源后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。
表2P3口的第二功能表
引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(定时器0外部中断)
P3.5
T1(定时器1外部中断)
P3.6
WR(外部存储器写选通)
P3.7
RD(外部存储器读写通)
第4章软件设计
4.1单片机资源使用
在本次设计中像电路键盘用到了P2口,其中P2.0到P2.5口作为键盘的输
入,显示电路用到了P1和P3口,P1口为液晶的数据口。
4.2单片机软件模块设计
4.2.1中断子函数
对于单片机的中断程序,只要定时器计数满了就能产生50ms的中断一次,总共20次,秒钟加1,秒钟计满了就会在分钟加上,当分钟变成99的时候就会全部清零。
以下是中断子函数的流程图,如图7所示
图7中断子程序流程图
4.2.2判断子函数
在独立式键盘的判键中,首先要看是否有键按下,如有键按下的话就会延时一会,再判断是否看真的会有键按下,如果是真的会有键按下,再判键释放,最后会执行键功能程序。
判键子函数的流程框图,如图8所示。
图8判键子程序流程图
4.2.3显示子程序
1602液晶是字符型液晶,它的内部自带字符库,它可以写两行的字符,同时每行可以写40个字符,在写显示程序的时候,我们先写命令,再设定字符显示,最后写数据,在每写一次命令或数据都需要判断液晶是否忙。
液晶显示程序流程图如图9所示。
图9显示子程序流程图
4.3总程序流程框图
整体程序的流程框图如图10所示。
图10整体程序的流程框图
第5章系统调试
5.1软件测试
5.1.1protues简介
Protues的ISIS是一款Labcenter出产的用于电路仿真的系统,可以用来仿真IC和各种电路[12],还支持单片机仿真,它的元件库齐全,使用也是很方便,对于学生来说,是一个非常实用的单片机软件仿真系统。
该软件的特点:
(1)符合单片机软件仿真系统的标准[13],并且在同一类的产品中具有很明显的优势。
(2)不仅可以进行键盘和LCD系统仿真、SPI调试器、IC调试器、RS-232动态仿真、单片机系统仿真、数字和模拟电路等等的仿真,还有信号发生器、示波器、逻辑分析仪等各种虚拟仪器。
(3)当前可以支持的单品机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列和很多种外围芯片。
(4)支持很多个外围芯片和存储器同时仿真。
总之,Protues软件是一款功能强大并且集SPICE分析和单片机于一体的单片机仿真软件,可以用来仿真51、AVR、PIC。
5.1.2KeilC51简介
Keil C51是一个编译程序的软件,是单片机C语言的主要编译工具。
KeilC51集成开发环境的主要功能有以下几点:
RTX-51实时操作系统:
使实时应用软件项目的设计变得简化了。
C5交叉编译器:
可以从C源代码中产生目标模块,这个目标模块可以重定位。
LIB51库管理器:
可以从目标模块中生成库文件,这个库文件可以被连接器使用。
BL51链接器/定位器:
通过组合目标模块从而生成绝对的目标模块。
A51宏汇编器:
从89C51汇编源代码之中产生可以重定位的目标模块。
HEX格式的转换器:
可以输出一个Hex文件。
µVision4forWindows:
是一个集成开发环境,它将项目管理、程序调试、源代码编辑等组合在一个功能强大的环境中。
µVision4支持所有的Keil89C51的工具软件,其中包括C51宏汇编器、编译器、链接器/定位器和目标文件至HEX格式转换器,µVision4可以自动地完成编译、汇编、链接程序等基本的操作。
还可以在编译之后进行模拟仿真调试,清楚的显示出每个变量的变化。
5.2系统仿真原理图
本设计的软件都是在 Keil μVision4上进行编写,编译,调试以及运行操作。
单片机仿真软件在线调试—PROTEUS:
1.打开Proteus软件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 出租车 计价器 设计 实现 大学 论文