基于单片机的多功能出租车计价器设计定稿 学位论文.docx

上传人:b****6 文档编号:14206497 上传时间:2023-06-21 格式:DOCX 页数:40 大小:660.81KB
下载 相关 举报
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第1页
第1页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第2页
第2页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第3页
第3页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第4页
第4页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第5页
第5页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第6页
第6页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第7页
第7页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第8页
第8页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第9页
第9页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第10页
第10页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第11页
第11页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第12页
第12页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第13页
第13页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第14页
第14页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第15页
第15页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第16页
第16页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第17页
第17页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第18页
第18页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第19页
第19页 / 共40页
基于单片机的多功能出租车计价器设计定稿 学位论文.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的多功能出租车计价器设计定稿 学位论文.docx

《基于单片机的多功能出租车计价器设计定稿 学位论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的多功能出租车计价器设计定稿 学位论文.docx(40页珍藏版)》请在冰点文库上搜索。

基于单片机的多功能出租车计价器设计定稿 学位论文.docx

基于单片机的多功能出租车计价器设计定稿学位论文

本科生毕业设计

 

基于单片机的多功能出租车计价器设计

DesignofDigitalFrequency

MeterBasedonSCM

学生姓名

陈展智

所在专业

电气工程及其自动化

所在班级

12级电气工程及其自动化1班

申请学位

工学学士

指导教师

黄小容

职称

答辩时间

2016年05月28日

 

学位论文原创性声明

本人郑重声明:

所呈交的学位论文(毕业设计),是本人在导师的指导下,独立进行研究工作所取得的成果。

所有数据、图片资料均真实可靠。

除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本毕业论文的知识产权归属于培养单位。

本声明的法律结果由本人承担。

论文作者签名:

日期:

年月日

摘要

随着时间推移,出租车行业的发展势头已十分突出,出租车计价器的功能从刚开始的只显示路程,配合司机自己定价,计算后四舍五入,到现在不仅能够自主计费,还能实现一些人性化的附加功能。

现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展、计价器的普及也是非常迅速的。

本设计的是一个基于单片机STC89C52的出租车自动计费设计,附有复位电路,时钟电路,键盘电路等。

复位电路是单片机的初始化操作,除了正常的初始化外,为摆脱困境,通过复位电路可以重新开始。

时钟电路采用12MHz的晶振,作为系统的时钟源,具有较高的准确性。

在上电时字符型液晶1602显示最初的起步价,里程收费,等待时间收费三种收费,通过按键可以调整起步价,里程收费,等待时间收费。

通过按键模拟出租车的运行,暂停,停止。

在1602液晶上可以显示运行的时间,运行时暂停的时间,通过计算可以得出总共的费用和总的路程。

关键字:

STC89C52;1602液晶;出租车计费器;里程收费

Abstract

Overtime,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

 

基于单片机的多功能出租车计价器设计

电气工程及其自动化,2012103120108陈展智

指导老师:

黄小容

1多功能出租车计价器的设计内容

1.1多功能出租车计价器设计目的

多功能出租车计价器设计的主要目的有两点:

1.对客户计算路程费用;2.对出租车司机计算税费。

在我们看来,出租车计价器只是完成了计算乘车费用这一功能,可是实际上并不是这么简单,除了完成对乘车费用的计算与显示外,它还有五大功能,分别如下:

功能之一是其具有自检功能,在刚刚开机时所有可显示的字符及状态指示灯均显示3s以上以证明其自身处于“健康”状态;功能之二是其具有数据存储功能,可存储至少100次的营业数据;功能之三是其具有失电保护功能,无供电情况下也可对数据起到保护作用;功能之四是其具有打印功能,用于打印乘车票据;功能之五是其可通过对“空车”车牌的翻动来开始或终止计费。

1.2系统主要功能

本出租车自动计费,上电后显示最初的起步价,里程计费单价,等待时间计费单价,通过按键可以调节起步价,里程计费单价,等待时间计费单价。

同时具有运行,暂停,停止等状态,可以显示运行的时间,同时可以显示暂停的时间,具有累加功能,暂停和运行时间在暂停和运行前一次的状态上计时。

出租车停止后能够显示行驶的总费用。

1.3方案论证与比较

方案一:

采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,采用计数芯片对脉冲尽心脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示,一下是该方案的流程框图,方案一如图1-1所示:

图1-1方案一

方案二:

采用EDA技术,根据层次化设计理论,该设计问题自顶向下可分为分频模块,控制模块计量模块、译码和动态扫描显示模块,其系统框图如图1-2所示:

图1-2方案二

 

图1-2方案二

方案三:

采用MCU技术,通过单片机作为主控器,利用1602字符液晶作为显示电路,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案三的系统流程图,本方案成本不高。

方案图如图1-3所示:

 

图1-3方案三

方案总结:

通过各个方案的比较,本次采用方案三,不但控制简单,而且成本低廉,设计电路简单。

 

2出租车计价系统的硬件设计

2.1晶振电路部分

本设计中使用的振荡电路,由12MHZ晶体振荡器和两个约20PF的电容组成,在XTAL1和XTAL2两端跨接晶体,电容的大小不会影响振荡频率的高低。

在整个系统中为系统各个部分提供基准频率,以防因其工作频率不稳定而造成相关设备的工作频率不稳定,晶振可以在电路中产生振荡电流,发出时钟信号。

晶振电路如图2-1所示:

图2-1晶振电路

2.2按键复位电路

单片机的复位是由外部的复位电路实现的,复位电路通常采用上电自动复位和按钮复位两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的。

除了上电复位外还需要按键手动复位(图2-2)。

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

其中电平复位是通过RST端经电阻与电源VCC接通而实现的。

单片机的复位速度比外围I/O接口电路快为能够保证系统可靠的复位,在初始化程序中应安排一定的复位延迟时间。

按键复位电路图如图2-2所示。

图2-2按键复位电路

2.3蜂鸣器电路

本次设计采用蜂鸣器。

蜂鸣器俗称喇叭,是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

是广泛运用于各种电子产品的一种元器件,它用于提示、报警、音乐等许多运用场合。

其结构图如图2-3所示:

图2-3蜂鸣器结构图

蜂鸣器与家用电气上的喇叭在用法上也有相似的地方,通常工作电流比较大,电路上的TTL点评基本上驱动不了蜂鸣器,需要增加一个电流放大的电路才可以,即此一个管脚很难驱动蜂鸣器发出声音,所以增加了一个三极管来增加通过蜂鸣器的电流。

三极管主要是做驱动用的。

因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,你要是输出高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。

2.4独立式键盘接口电路

独立式键盘:

独立式键盘中,每个按键占用一根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个字符

芯片工作电压:

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脚:

背光源负极。

2.5.21602液晶显示接口电路

图2-6显示电路

2.6路程测量设计部分

出租车中需要一个能准确的获得车轮转动即路量信号的装置,以得到标准的脉冲信号送入单片机的定时/计数器T1即P3.5引脚,利用单片机的T1的计数功能完成100次的计数后产生一中断来完成路程的测量。

(设车轮周长为1m,则霍尔传感器每产生100个脉冲便表示车已行程0.1km,为了演示方便本设计中采用按键了模拟增加里程。

每按一个按键增加0.5公里的里程。

如果按两次就是1公里,以此类推不断的增加来模拟车的不断前进。

图2-7路程测量系统图

2.7单片机各引脚功能说明

下面对AT89C51各引脚的功能进行较为详细的介绍:

1)电源引脚Vcc和Vss

Vcc(40脚):

电源端为+5VVss(20脚):

接地端。

2)时钟电路引脚XTAL1和XTAL2

XTAL2(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口的第二功能表

引脚

第二功能

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(外部存储器读写通)

控制器接口说明(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)

STA7

D7

STA6

D6

STA5

D5

STA4

D4

STA3

D3

STA2

D2

STA1

D1

STA0

D0

表2-3状态字说明(b)

STA0--6

当前数据地址指针的数值

STA7

读写操作使能

1:

禁止0:

允许

注:

对控制器进行读写操作之前,都必须进行读写检测,确保STA7为0

RAM地址映射图

控制器内部带有80*8位的RAM缓冲区,对应关系如下图2-5所示:

表2-4RAM地址映射图LCD16字*2行

00

01

02

03

04

05

06

07

08

09

0A

0B

0C

0D

0E

0F

10

27

40

41

42

43

44

45

46

47

48

49

4A

4B

4C

4D

4E

4F

50

67

显示模式设置如表2-5所示:

表2-5显示模式设置

指令码

功能

0

0

1

1

1

0

0

0

设置16*2显示,5*7点阵,8位数据接口

显示开关及光标设置如表2-6所示:

表2-6显示开关及光标设置

指令码

功能

0

0

0

0

1

D

C

B

D=1开显示;D=0关显示

C=1显示光标;C=0不显示光标

B=1光标闪烁;B=0光标不显示

0

0

0

0

0

1

N

S

N=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口为液晶的数据口。

3.1中断子函数

对于中断程序,只要定时器计数满就会产生中断50ms中断一次,共计20次,秒钟加1,秒钟计满再分钟加,当分钟加到99时全部清零。

以下是中断子函数的流程图如图3-1所示:

图3-1中断子程序流程图

 

中断子程序如下:

voidtime0_int()interrupt1

staticucharvalue;

TH0=0x3c;

TL0=0xb0;//50ms

value++;

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++;

else

if((key_io&0x3f)!

=0x3f)//按键按下

key_value++;

else

key_value=0;

if(key_value>=5)//按键按下消抖key_value=0;

key_new=0;//按键松开后进入等待松开按键状态

3.4显示子程序

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单片机仿真软件在线调试—PROTEUS

1.打开Proteus软件。

2.选择file菜单下的opendesign选项,找到所需的元器件,元器件上单击右键选中,再单击左键对其进行命名和赋值,接着在编辑器左边的一栏中,找出并绘制设计所要的各种元器件,按照电路图连接后并保存。

3.将用keil编译产生的hex文件下载到单片机中:

双击51单片机,在对话框中把保存过的hex文件打开,再单击确定。

4.单击左下角运行按钮,进行软件仿真调试,直到出现正确的结果。

下图3-4是在PROTEUS中仿真通过的整体硬件原理图。

图4-1PROTEUS仿真原理图

4.2出租车计价器硬件调试

功能介绍:

出租车计价器采用at89c51存储芯片+LCD1602液晶显示等设计而成。

3公里内为起步价,3公里以外为每公里多少钱1公里,白天默认是1.8元,晚上默认是2.2元,这个价格用户可以设定,等待3分钟以内不计价,3分钟以外每分钟多少元,白天默认是0.5元,晚上默认是1元,这个价格用户可以设定。

能进行白天/晚上转换、途中等待时间和单价、总金额和单价所有数据输出采用LCD1602显示。

设置好的参数保存在AT24C02存储芯片内,掉电不需要重新再设置。

总价=3公里内路程的价+3公里外的路程*单价+等待的时间*单价。

按键说明:

第一排:

左边第一个键,清

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2