基于51单片机的简易出租车计价器设计Word文档格式.docx

上传人:b****3 文档编号:17895235 上传时间:2022-12-11 格式:DOCX 页数:14 大小:82.14KB
下载 相关 举报
基于51单片机的简易出租车计价器设计Word文档格式.docx_第1页
第1页 / 共14页
基于51单片机的简易出租车计价器设计Word文档格式.docx_第2页
第2页 / 共14页
基于51单片机的简易出租车计价器设计Word文档格式.docx_第3页
第3页 / 共14页
基于51单片机的简易出租车计价器设计Word文档格式.docx_第4页
第4页 / 共14页
基于51单片机的简易出租车计价器设计Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于51单片机的简易出租车计价器设计Word文档格式.docx

《基于51单片机的简易出租车计价器设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的简易出租车计价器设计Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

基于51单片机的简易出租车计价器设计Word文档格式.docx

多年来国内普遍使用的计价器只具备单一的计量功能。

目前全世界的计价器中有90%为台湾所生产。

现今我国生产计价器的企业有上百家,主要是集中在北京,上海,沈阳和广州等地。

我国第一家生产计价器的是重庆市起重机厂,最早的计价器全部采用机械齿轮构,只能完成简单的计程功能,可以说,早期的计价器就是个里程表。

随着科学技术的发展,产生了第二代计价器。

它采用了手摇计算机与机械结构相结合的方式,实现了半机械半电子化。

此时它在计程的同时还可完成计价的工作。

大规模集成电路的发展又产生了第三代计价器,也就是全电子化的计价器。

它的功能也在不断完善。

出租汽车计价器是一种专用的计量仪器,它安装在出租汽车上,能连续累加,并指示出行程中任一时刻乘客应付费用的总数,其金额值是计程和计时时间的函数。

出租车计价器在最初使用时具备的主要功能是根据行驶里程计价,要求精度高,可靠性好。

随着电子技术的发展以及对计价器的不断改进和完善,便产生了诸多的附加功能。

例如:

(1)LED显示功能,数码管的使用让计价器实现多屏显示的功能,可同时显示各项营运数据,使乘客一目了然;

(2)永久时钟功能,在非营运状态下,日历时钟芯片的使用使计价器可以显示永久时钟;

(3)存储功能,可存储多项营运数据,便于查询。

新型数据存储器的应用使得计价器的营运数据在掉电情况下还可以保存10年。

1.设计背景

1.1课题背景

在出租车是城市交通的重要组成部分,行业健康和发展也获得越来越多的关注。

汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。

具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。

1.2设计内容

本设计主要是介绍了单片机控制下的出租车计价器设计,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下:

(1)启动/清除数据

(2)键盘输入

(3)掉电保护

(4)LED显示

(5)里程采集

2出租车计价器系统简介

设计的整体电路框图如图所示,整个系统由单片机AT89C51控制电路,配合六个数码管组成的显示模块;

以A44E霍尔传感器测距,实现对出租车的多功能的计价设计;

采用掉电存储单元AT24C02来实现在系统掉电的时候保存单价和系统时间等信息;

按键键盘电路、LED驱动显示电路及电源电路组成。

单片机采集并判断空车灯信号及路程检测传感器信号,当出租车启动时,单片机检测到霍尔传感器的脉冲信号并进行里程计算。

当无乘客时,单片机调用实时时间芯片8563程序和8255串口显示驱动程序,用4只LED进行时钟显示;

当空车灯掰下乘客上车时,通过8563获取时间信息分辨白天/晚上,然后调用AT24C02程序获取白天/晚上的单价及起始价,便开始计价并显示时间、里程和金额等信息;

当空车灯打上乘客下车时,打印好票据,单片机将营运数据信息存储到AT24C02中,等待出租车再次启动后单次金额与里程等信息清零复位,就此完成一次计价。

3系统硬件设计

3.1主控制器选择

对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。

AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚。

它集Flash程序存储器既可在线编程(ISP),也可用传统方法进行编程,所以低价位

AT89C51单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。

单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。

图3-1AT89C51引脚图

3.2LED显示模块

本设计是用六个七段数码管动态扫描来实现的时钟与计价的显示。

图3-2LED管脚配置图

LED显示块是由发光二极管显示字段的显示器件。

在单片机应用系统中通常使用的是七段LED。

这种显示块有共阴极和共阳极两种,如上图所示,共阴极LED显示块的发光二极管阴极共地,如图中所示,当某个发光二极管的阳极为高电平时,发光二极管点亮。

共阳极LED显示块的发光二极管阳极并接,当某个二极管的阴极为低电平时,该二极管点亮。

通常的七段LED显示块中有八个发光二极管,故也称为八段显示器。

其中七个二极管构成七笔字型“8”,一个发光二极管构成小数点。

控制不同组合的二极管导通,就能显示各种字符。

设8位控制器按低到高的次序依次控制LED显示块的a~f和小数点dp,我们称控制器输出的控制LED显示块显示字符的8位字节数据为段选码。

共阳极与共阴极的段选码互为反码。

在单片机应用系统中使用LED还可构成任意位的LED显示器。

如8位LED显示器有8根位选线和8χ8根段选线。

每根位选线控制该位的LED的8根段选线控制该位LED显示什么字符。

段选线控制显示字符的字型,而位选线控制显示位的亮、暗。

显然,多位LED控制线占用太多。

在多位LED显示时,为了简化电路,降低成本,将所有位LED的段选线并接在一起,在某一刻时,将要显示的字符段码同时送到每一个显示器的各段,但是只让这一位LED显示。

下一时刻又送下一位LED要显示字符的段码,并只让下一位LED显示…….如此轮流,使每位显示该为的字符,这样不断的循环送出响应的段选码﹑位选码,就可以获得视觉稳定的显示状态。

用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。

静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。

动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。

这两种显示方式各有利弊;

静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;

动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间,更重要的是能节省成本。

硬件译码就是显示的段码完全由硬件完成,CPU只要送出标准的BCD码即可,硬件接线有一定标准。

软件译码是用软件来完成硬件的功能,硬件简单,接线灵活,显示段码完全由软件来处理,是目前常用的显示驱动方式。

3.3掉电保护模块

利用I2C总线原理接线,采用掉电保护单元AT24C02。

数据存储部分的作用是在电源断开时,存储当前设定的单价信息。

掉电储存电路原理图:

图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。

每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;

当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。

存储程序,将数据信息保存在芯片内;

当系统重新上电时,自动调用读存储器程序,将存储器内的数据信息,读到缓存单元中,供主程序使用,保存在AT24C02中的数据是不能随意进行改动的,此外出租车营运过程中的一些营运数据,如:

单次出租的营运额和营运里程、一段时间内的营运总额和总路程等,也存储在AT24C02中,以便出租车公司及司机查询,使出租车司机更方便的管理营运数据,出租车行业得到更有效的管理。

3.4里程采集模块

根据在霍尔电势发生器的两端加上电压VCC后,根据物理学中的霍耳效应原理,当霍耳片处在磁场中时,霍尔传感器A44E的输出端输出低电平。

当车轮转动一圈时小磁铁提供一个磁场,则霍尔传感器A44E输出一次低电平完成一次数据采集。

我们选择了P3.2口作为信号的输入端,内部采用外部中断0,车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数。

通过计算将脉冲增加体现在金额和里程上。

本设计中用IPULSE来代替霍尔传感器。

3.5按键输入模块

矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。

如一个3*3的行、列结构可以构成一个有9个按键的键盘。

在按键数量较多的场合,矩阵键盘与独立式键盘相比,要节省很多I/O口。

矩阵式键盘的工作原理:

按键设置在行、列线交点上,行、列分别连接到按键开关的两端。

行线通过上拉电阻接到+5V上。

平时无按键动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。

列线如果此时电平为低,则行线电平为低;

列线电平如果为高,则行线电平亦为高。

这一点是识别矩阵式键盘是否被按下的关键。

由于矩阵键盘中行、列线为多键共用,名按键均影响该键所在行和列的电平。

因此各按键彼此相互发生影响,所以必须将行、列信号配合起来并做适当的处理,才能确定闭合键的位置。

本设计采用了以8255作4*4键盘的接口。

键盘分为行线和列线,本键盘共有4条行线4条列线。

在行线和列线的交点处有一个键,由于行线和列线分别与键的不同端相连,平时键处于断开状态,所以行线和列线互不相通。

接口时,行线一端接输入口,另一端悬空;

而列线一端经电阻接+5V电源,另一端接输入口。

由于列线通过电阻与+5V相连,所以列线的状态始终为高电平。

3.6晶振系统

本设计采用PCF8563作为芯片。

它在系统中的作用是设定,例如:

可以设定时、分、秒。

计价器在出租车空车行驶时需要显示实时时钟,因为它的时钟是作为白天/晚上单价自动转换的一个基准,而且计价器的时钟显示能为司机和乘客提供方便,所以选择一个好的时钟芯片对计价器很重要。

时钟可提供秒、分、时,通过设置8563的控制/状态寄存器选择,时钟方式经过初始校准后即可工作使用。

PCF8563是PHILIPS公司推出的一款工业级内含I2C总线接口功能的具有极低功耗的多功能时钟/日历芯片I2C总线通讯方式不但使外围电路及其简洁而且也增加了芯片的可靠性同时每次读写数据后内嵌的字地址寄存器会自动产生增量当然作为时钟芯片。

PCF8563是一款性价比极高的时钟芯片它已被广泛用于电表水表气表电话传真机便携式仪器以及电池供电的仪器仪表等产品领域。

图3-3晶振电路

3.7复位电路

单片机在启动运行时都需要进行复位操作,以便使CPU和系统中的其它部件都处于某一确定的初始状态,并从这个状态开始工作。

AT89C51单片机有一个引脚RST,它是施密特触发器的输入端,其输出端接复位电路的输入。

复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期(即二个机器周期)以上,若使用频率为6MHz的晶振,则复位信号持续时间应超过4μs才能完成复位操作。

复位之后,使ALE、PSEN、P0、P1、P2口的输出均为高电平(即为输入状态),复位后,内部寄存器的状态如表3、1所示。

RST变为低电平后,便又退出复位状态。

CPU从初始化工作,由状态表可知,复位后:

程序寄存器为0000H开始执行程序,内部RAM不受复位影响。

复位有电复位和按键手动复位两种。

按键手动复有电平方式和脉冲方式两种。

本次设计中,为方便人的操作,采用按键手动复位的按键电平复位。

其复位电路如下表示:

PC

0000H

TCON

00H

ACC

TL0

PSW

TH0

SP

07H

TL1

DPTR

TH1

P0-P3

0FFH

SCON

IP

XX000000H

SBUF

IE

0X000000H

PCON

不定

TMOD

0XXX0000B

图3-4复位电路

3.8时钟模块

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才能为单片机的时钟脉冲信号。

一般电容C3和C4取30uF左右。

晶体振荡频率范围是1.2MHz—12MHz。

晶体振荡频率高,则系统的时钟频率也高,单片机运行也就快,但反过来运行速度快对存储器的速度要求就高,对印刷电路板的工艺要求也高(线间寄生电容要小)。

在本次设计中,我们选取晶振频率为6MHz,C1和C2的值均为30uF。

图3-5时钟电路

4软件设计简介

4.1汇编语言简介

汇编语言是直接面向处理器(Processor)的程序设计语言。

处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。

每一种处理器都有自己可以识别的一整套指令,称为指令集。

处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态。

人类最容易接受自己每天都使用的自然语言。

为了使机器指令的书写和理解变得容易,需要借鉴自然语言的优点,为此就引入了汇编语言。

汇编语言使用符号来代表不同的机器指令,而这些符号非常接近于自然语言的要素。

基本上,汇编语言里的每一条指令,都对应着处理器的一条机器指令。

汇编语言包括两个部分:

语法部分和编译器。

语法部分提供与机器指令相对应的助记符,方便指令的书写和阅读。

当然,汇编语言的符号可以被人类接受,但不能被处理器识别,为此,还要由汇编语言编译器将这些助记符转换成机器指令。

根据应用领域的不同,处理器的种类繁多,比如用于工业控制和嵌入式计算的Z80、MC68000和MCS-51、广泛应用于个人计算机的INTELx86系列,以及基于ARM体系结构的处理器,包括苹果公司在内的大企业都是ARM的客户。

事实上,今天的ARM是最受欢迎的32位嵌入式处理器,而且,今天的ARM处理器比INTEL奔腾系列卖得还多,基本上是3:

1的比例。

不同的处理器有不同的指令集。

正是因为这个原因,每一种处理器都会有自己专属的汇编语言语法规则和编译器。

即使是同一种类型的处理器,也可能拥有不同的汇编语言编译器。

一个明显的例子是INTELx86系列的处理器,围绕它就开发出好多种编译器来,如MASM、NASM、FASM、TASM和AT&

T等。

而且,这每一种编译器,都使用不同的语法。

4.2程序设计

计价部分原理程序如下:

起步价10元,3公里内10元,超出3公里部分,每公里1.6元,车暂停时,2分钟内不加价,超出2分钟部分,每分钟2.5元。

feipin:

process(clk_240,start)

begin

ifclk_240'

eventandclk_240='

1'

then

ifstart='

0'

thenq_15<

=0;

q_16<

f_15<

='

;

f_16<

f_1<

f<

else

ifq_15=15thenq_15<

--此IF语句得到频率为15Hz的信号

elseq_15<

=q_15+1;

endif;

ifq_16=14thenq_16<

--此IF语句得到频率为16Hz的信号

elseq_16<

=q_16+1;

ifq_1=239thenq_1<

--此IF语句得到频率为1Hz的信号

elseq_1<

=q_1+1;

ifen1='

thenf<

=f_15;

--此IF语句得到计费脉冲f

elsifen0='

=f_16;

elsef<

endprocess;

process(f_1)

iff_1'

eventandf_1='

then

w<

en1<

en0<

m1<

="

000"

m0<

0000"

k1<

k0<

elsifstop='

ifw=59thenw<

--此IF语句完成等待计时

ifm0="

1001"

thenm0<

--此IF语句完成分计数

ifm1<

101"

thenm1<

elsem1<

=m1+1;

elsem0<

=m0+1;

ifm1&

m0>

"

0000001"

thenen1<

--此IF语句得到en1使能信号

elseen1<

elsew<

=w+1;

elsiffin='

ifk0="

thenk0<

--此IF语句完成公里脉冲计数

ifk1="

thenk1<

elsek1<

=k1+1;

elsek0<

=k0+1;

ifk1&

k0>

00000010"

thenen0<

--此IF语句得到en0使能信号

elseen0<

cha3<

=c3;

cha2<

=c2;

cha1<

=c1;

cha0<

=c0;

--费用数据输出

km1<

=k1;

km0<

=k0;

min1<

&

m1;

min0<

=m0;

--公里数据、分钟数据输出

process(f,start)

thenc3<

c2<

0001"

c1<

c0<

elsiff'

eventandf='

ifc0="

thenc0<

--此IF语句完成对费用的计数

ifc1="

thenc1<

ifc2="

thenc2<

ifc3<

elsec3<

=c3+1;

elsec2<

=c2+1;

elsec1<

=c1+1;

elsec0<

=c0+1;

endbehav;

5电路仿真

5.1Proteus软件介绍

Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,它组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。

此系统受益于15年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品—“TheRoutetoPCBCAD”。

Proteus产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。

用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。

其功能模块:

—个易用而又功能强大的ISIS原理布图工具;

PROSPICE混合模型SPICE仿真;

ARESPCB设计。

PROSPICE仿真器的一个扩展PROTEUSVSM:

便于包括所有相关的器件的基于微处理器设计的协同仿真。

此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型。

支持许多通用的微控制器,如PIC,AVR,HC11以及8051。

最新支持ARM。

交互的装置模型包括:

LED和LCD显示,RS232终端,通用键盘,I2C,SPI器件。

强大的调试工具,包括寄存器和存储器,断点和单步模式。

IARC-SPY和KeiluVision2等开发工具的源层调试。

应用特殊模型的DLL界面-提供有关元件库的全部文件。

5.2出租车计价器proteus仿真

在Proteus中完成连接,芯片导入程序后,仿真图如下:

5总结

经过这次基于MCS-51芯片的出租车计价器的课程设计,我收益非浅,从中我学到了很多东西,通过这次设计使我明白了自己原来知识还比较欠缺,自己要学习的东西还太多,课本上的东西终究是“纸上得来终觉浅”,投入实践,自己设计,才知道难度比想象中的大。

我还要在这里感谢老师在本学期给与我们的指导。

姜老师追求真理的作风,治学严谨的态度及平易近人的品德使我受益匪浅,终身难忘,并且也是对我永远的鞭策和激励。

参考文献

[1]孙育才.《单片微型计算机及其应用》.南京:

东南大学出版社.2004

[2]潘新民王燕芳.《微型计算机控制技术》.北京:

电子工业出版社2003

[4]李群芳.《单片机原理及接口技术》.北京:

电子工业出版社,2008

[5]李光飞.《单片机课程设计实例指导》.北京:

北京航空航天大学出版社,2004

源程序代码

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1