51单片机出租车计价器课程设计.docx

上传人:b****1 文档编号:1150938 上传时间:2022-10-18 格式:DOCX 页数:19 大小:332.75KB
下载 相关 举报
51单片机出租车计价器课程设计.docx_第1页
第1页 / 共19页
51单片机出租车计价器课程设计.docx_第2页
第2页 / 共19页
51单片机出租车计价器课程设计.docx_第3页
第3页 / 共19页
51单片机出租车计价器课程设计.docx_第4页
第4页 / 共19页
51单片机出租车计价器课程设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

51单片机出租车计价器课程设计.docx

《51单片机出租车计价器课程设计.docx》由会员分享,可在线阅读,更多相关《51单片机出租车计价器课程设计.docx(19页珍藏版)》请在冰豆网上搜索。

51单片机出租车计价器课程设计.docx

51单片机出租车计价器课程设计

第一章出租车计价系统的设计要求与设计方案

1.1出租车计价器设计要求

设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三部分,用七段数码管显示总金额,单价,运行里程,起步价为6元,超过6元,每一公里增加1元或2元,等待时间单价为每30秒钟1元,

计费功能:

费用的计算是按行驶里程收费。

设起步价为6元。

1、当总金额<6元时,按起价计算费用

2、当总金额>6元时,每公里按1元或2元计费

3、等待累计时间>30s时,按1元/30s计费

4、S1为启动按钮、S2转换单价按钮、S3复位按钮。

显示功能:

1、显示行驶里程:

用三位数字显示,显示方式为“XX.X”,单位为km。

计程范围0-99.9km,精确到0.1km。

2、显示单价:

用两位数字显示,显示方式为“X.X”,单位为元。

3、显示总费用:

用三位数字显示,显示方式为“XX.X”,单位为元。

计价范围0-99.9元,精确到0.1元。

1.2系统主要功能

本出租车自动计费,上电后显示最初的起步价,里程计费单价。

同时具有运行,复位,转换等状态,可以切换白天与晚上不同计费单价,可以实现每等待30s收1元功能。

出租车显示行驶的总费用,里程,单价。

1.3方案论证与比较

方案一:

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

 

图1-1方案一

方案二:

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

 

图1-2方案二

方案三:

采用MCU技术,通过单片机作为主控器,采用外部晶振作为时钟脉冲,通过按键可以方便调节,以下是方案三的系统流程图,本方案主要是必须对于数字电路比较熟悉,成本又不高。

方案图如图1-3所示:

 

图1-3方案三

方案总结:

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

第二章出租车计价系统的硬件设计

2.1AT89C51单片机介绍

 

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集合输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控器,为很多嵌入式控制系统提供了一种灵活性且廉价的方案

单片机各引脚功能说明:

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行。

校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89S52的一些特殊功能口,P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间选择外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

2.2里程计算、计价单元的设计

里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。

其原理如图2-1所示

 

图2-1

由于A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的I/O端口上,而且其最高检测频率可达到1MHZ。

如图2-2,A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成。

 

图2-2路程测量电路

在输入端输入电压CCV,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差HV输出,该HV信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。

当施加的磁场达到工作点”(即OPB)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为“开”。

当施加的磁场达到“释放点”(即rPB)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为“关”。

这样两次电压变换,使霍耳开关完成了一次开关动作。

我们选择了P3.5口作为信号的输入端,内部采用计数的方式,车轮每转一圈(我们设车轮的周长是10米),霍尔开关就检测并输出信号,引起单片机对脉冲计数,当计数达到10次时,也就是0.1公里,单片机就控制将金额自动的加增加,其计算公式:

当前单价×公里数=金额。

2.3数据显示单元的设计

由于设计要求有单价(2位)、路程(3位)、总金额(3位)显示输出,我们采用8个7段数码管动态显示。

如图2-3:

 

图2-3数据显示硬件电路图

2.4按键单元的设计

电路共采用了四个按键,S1、S2、S3、S4,其功能分别是:

S1启动计价开关、S2白天/晚上转换开关、S3数据复位清零开关、S4闭合表示出租车正常运行,计价器也正常计价;若打开S4则表示出租车在暂停,转入判断是否收费程序,闭合超过30秒,开始计价。

如图2-4:

 

图2-4按键单元电路图

2.5振荡电路

单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。

通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(电容和一般取33pF)。

这样就构成一个稳定的自激振荡器。

振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE信号,此时得到的信号时机器周期信号。

振荡电路如图2-5所示:

 

图2-5振荡电路

2.6复位电路

复位操作有两种基本形式:

一种是上电复位,另一种是按键复位。

按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。

上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。

上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。

RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。

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

 

图2-6复位电路

总电路图

 

 

第三章出租车计价系统的软件设计

3.1主程序流程图记描述

由于用到了外部中断0,所以,按中断系统的编程结构在0000H处放置一条长跳转指令LJMPSTART跳转到主程序入口,在外部中断0的中断入口地址0003H处放置一条长跳转指令LJMPEXT0跳转到外部中断0服务程序处。

主程序进行程序中用到的一些存储单元的初始化,T0,T1的初始化。

首先,进行存储器单元初始化,将71H-79H单元赋值。

然后进行定时器的设置。

设置T1的工作方式为模式2,计数状态,自启动。

T0的工作方式,模式1,定时状态,自启动,对输入的脉冲进行计数,给T0、T1赋初值。

之后调用计数脉冲子程序,及等待子程序,数码管动态显示子程序,最后进入键盘扫描子程序进行扫描。

主程序不断进行调用数码管显示子程序及键盘扫描子程序循环操作,等待中断。

如图3-1:

 

图3-1主程序流程图

3.2计费子程序流程图

72H存储总金额小数位,73H存储器总金额个位,78H存储器总金额十位,77H存储单价元。

将72H中值放入A中,再将A与77H相加,即小数位与单价相加,结果存入A,再进行十进制调整,将结果存于R6,将高四位与低四位交换并屏蔽高四位,保留低四位与个位相加得到总金额个位。

若总金额超过10则清零,并且总金额十位加1。

将R6中数值取出,屏蔽高四位,输出总金额小数位。

如图3-2:

 

图3-2计费子程序流程图

3.3等待是否收费子程序

在出租车的计价系统中,出租车在等待的时候也要计价,本设计体现了这点。

程序判断了出租车是否停止,若停止30秒以上是,开始计价。

55H中赋初值20,56H中赋初值10,总共30秒延时。

超过30秒时,调用计费子程序。

如图3-3

 

图3-3等待是否收费子程序流程图

 

3.4按键子程序流程图

 

图3-4等待收费子程序流程图

3.5外部中断0流程图

 

图3-5外部中断0子程序流程图

程序

ORG0000H

LJMPMAIN

ORG0003H;外部中断入口地址

LJMPREST

ORG030H

MAIN:

MOV71H,#00H;脉冲计数每10个脉冲里程数加0.1显示缓冲单元

MOV72H,#00H;存储总金额小数位

MOV73H,#00H;存储总金额个位

MOV74H,#00H;存储里程数小数位

MOV75H,#00H;存储里程数个位

MOV76H,#00H;存储单价角位

MOV77H,#01H;存储单价元位

MOV78H,#00H;存储总金额十位

MOV79H,#00H;存储里程数十位

MOV55H,#20;给定等待初值20*50ms

MOV56H,#10;10秒等待时间初值

SETBEA;开总中断

SETBEX0;开外部中断0

MOVTCON,#04H;外部中断0低电平

MOVTMOD,#61H;设置使用定时器1,模式2,计数状态,自启动,定时器0,模式1,定时状态,自启动

MOVTL0,#0B0H;50ms初值设定C350H

MOVTH0,#03CH

MOVTL1,#0FFH;设置定时器低八位初值为FF

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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