基于单片机控制的出租车计价器的课程设计.docx
- 文档编号:3313436
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:33
- 大小:156.41KB
基于单片机控制的出租车计价器的课程设计.docx
《基于单片机控制的出租车计价器的课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的出租车计价器的课程设计.docx(33页珍藏版)》请在冰豆网上搜索。
基于单片机控制的出租车计价器的课程设计
摘要:
智能仪器仪表技术是一门集电子技术、单片机技术,自动化仪表、自动控制技术、计算机应用等一体的跨学科的专业技术。
自20世纪90年代初以来,这项技术已逐步引入到国内工科专业中的电子信息、通讯、自动化、计算机应用等信息类专业中。
随着微电子技术和计算机技术的飞速发展,测控仪器仪表的智能化、总线化、网络化发展已在各个相关行业呈现出广阔的发展前景,同时也日益成为工程界和科技界人士所关注的重要问题之一。
因此,了解和熟悉智能仪器仪表的特点功能,发展趋向及其应用前景是十分重要和必要的。
出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。
它关系着交易双方的利益。
具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。
因此,汽车计价器的研究也是十分有一个应用价值的。
而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。
而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。
针对计费模式的切换,通过软件编程就可以轻易而举的实现。
避免了机械开关带来的不稳定因素。
本设计主要了解应用单片机的定时器/计数器,以及中断。
这是一个比较小的系统,故采用汇编语言来编辑。
汇编语言是一种编译型程序设计语言,它具有编译速度快,占用系统空间小,具有一定的助记可读性等特点。
本系统假设速度恒定60Km/h(1Km/min),单价一定1.3元/Km,起步价5.0元,超过三公里开始计费,每公里加1.3元。
关键词:
出租车计费器;AT89S51;霍尔传感器
1.引言:
本课程设计所设计的出租车计价器的主要功能有:
数据的复位、白天/晚上转换、数据输出、计时计价、单价输出及调整、路程输出、语音播报数据信息、实现在系统掉电的时候保存单价和系统时间等信息等功能。
输出采用8段数码显示管。
本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,同时在不计价的时候还能作为时钟为司机同志提供方便。
2.总体设计方案
2.1设计思路
方案一:
采用数字电路控制。
采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。
方案二:
采用单片机控制。
利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。
通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
2.2设计方框图
计价器的单片机控制方案图如图1所示。
它由以下几个部件组成:
单片机AT89S51、总金额及单价显示部件、键盘控制部件,AT24C02掉电存储控制、里程计算单元、串中显示驱动电路等。
利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。
不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。
具体电路参见“多功能出租车计价器总体电路图”。
图1设计方框图
3.设计原理分析
3.1AT89S51单片机及其引脚说明
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4KB的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,具有高性价比。
AT89S51是一个有40个引脚的芯片,引脚配置如图2所示。
图2AT89S51引脚配置
AT89S51芯片的40个引脚功能为:
VCC电源电压。
GND接地。
RST复位输入。
当RST变为高电平并保持2个机器周期时,将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。
DISKRTO位缺省为RESET输出高电平打开状态。
XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2来自反向振荡放大器的输出。
P0口一组8位漏极开路型双向I/O口。
也即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
Flash编程和程序校验期间,P1接收低8位地址。
P1口部分端口引脚及功能如表1所示。
表1P1口特殊功能
P1口引脚
特殊功能
P1.5
MOSI(用于ISP编程)
P1.6
MOSI(用于ISP编程)
P1.7
SCK(用于ISP编程)
P2口一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变。
Flash编程和程序校验期间,P2亦接收低8位地址。
P3口一个带内部上拉电阻的8位双向I/O口。
P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写“1”时,它们被内部的上拉电阻把拉到高电并可作输入端口。
作输入端口使用时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2所示。
P3口还接收一些用于Flash闪速存储器编程和程序校验期间的控制信号。
表2P3口特殊功能
P3口引脚
特殊功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
PSEN/程序储存允许输出是外部程序存储器的读先通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN/有效,即输出两个脉冲。
当访问外部数据存储器,没有两次有效的PSEN/信号。
EA/VPP外部访问允许。
欲使CPU仅访问外部程序存储器,EA端必须保持低电平,需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
Flash存储器编程时,该引脚加上+12V的编程电压VPP。
2.2里程计算、计价单元的设计
里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。
其原理如图3所示。
图3传感器测距示意图
由于A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到1MHZ。
A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成。
在输入端输入电压CCV,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差HV输出,该HV信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。
当施加的磁场达到“工作点”(即OPB)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为“开”。
当施加的磁场达到“释放点”(即rPB)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为“关”。
这样两次电压变换,使霍耳开关完成了一次开关动作。
我们选择了P3.2口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1米),霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到1000次时,也就是1公里,单片机就控制将金额自动的加增加,其计算公式:
当前单价×公里数=金额。
3.3数据显示单元设计
由于设计要求有单价(2位)、路程(2位)、总金额(3位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),采用LCD液晶段码显示,在距离屏幕1米之外就无法看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此我们采用6位LED数码管的分屏显示数据的分屏的显示是通过按键S1来实现切换的在出租车不走的时候,按下S1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S1切换到里程和单价显示屏,供客户查询。
图4数据显示单元设计
4.结束语
本款出租车计价器比目前市场现在的增加了不少功能,其中包括单价输出、单价调整、路程输出、显示当前的系统时间等功能。
另外,多功能出租车计价器还具有性能可靠、电路简单、成本低、实用性强等特点,加上经过优化的程序,使其有很高的智能化水平。
通过本次课程设计,又使我学到了许多书本上无法学到的知识,也使也深该体会到单片机技术应用领域的广泛,不仅使我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。
参考文献
[1]张鑫、华臻、陈书谦.《单片机原理及应用》[M].电子工业出版社,2005.P110~136.
[2]丁元杰、吴大伟.《单片微机实题集与实验指导书》[M].机械工业出版社,2004.P124~125.
[3] 阎石.数字电子技术基础(第三版)[M].北京:
高等教育出版社,1989
附录
该出租车计价器的系统软件设计源程序如下:
DAY_PRICEEQU6FH
NIGHT_PRICEEQU6EH
MIDWAY_PRICEEQU6DH
START_PRICEEQU6CH
COUNTLEQU6BH
COUNTHEQU6AH
M100EQU69H;外部中断次数
DISTANCEEQU68H;行车距离
MS100EQU67H
SECEQU66H
MINEQU65H
HOUREQU64H
LEDSLEQU63H;时分钞显示缓冲区
LEDSHEQU62H
LEDMLEQU61H
LEDMHEQU60H
LEDHLEQU5FH
LEDHHEQU5EH
LEDDANJIALEQU5DH;总额,单价显示缓冲区
LEDDANJIAHEQU5CH
LINE_EQU5BH
LEDCOUNT1EQU5AH
LEDCOUNT2EQU59H
LEDCOUNT3EQU58H
LEDDANJIA2LEQU57H;路程,单价显示缓冲区
LEDDANJIA2HEQU56H
LINE__EQU55H
LINE___EQU54H
LEDDISTANCELEQU53H
LEDDISTANCEHEQU52H
LEDDAY_PLEQU51H;中途,晚上,白天显示缓冲区
LEDDAY_PHEQU50H
LEDNIG_PLEQU4FH
LEDNIG_PHEQU4EH
LEDW_PLEQU4DH
LEDW_PHEQU4CH
S1BITP1.0
S2BITP1.1
S3BITP1.2
S4BITP1.3
S11EQU4BH
S22EQU4AH
S33EQU49H
S44EQU48H
M1EQU47H
H1EQU46H
M2EQU45H
H2EQU44H
PRICEEQU43H
ORG0000H
AJMPMAIN
ORG0003H
AJMPTO
ORG000BH
AJMPTOTIME
ORG001BH
AJMPTOSTART
ORG0030H
MAIN:
MOVSP,#70H
MOVTMOD,#11H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVTH1,#3CH
MOVTL1,#0B0H
MOV22H,#0AH
SETBEA
SETBTR0
SETBEX0
SETBIT0
SETBET0
SETBET1
MOVR7,#34
MOVR0,#69H
LOOPL:
MOV@R0,#0
DECR0
DJNZR7,LOOPL
MOVCOUNTL,#00H;起步价
MOVCOUNTH,#05H
MOVDAY_PRICE,#25H;白天价格初始化
MOVNIGHT_PRICE,#30H;晚上价格初始化
MOVMIDWAY_PRICE,#10H;中途等待初始化
MOVSTART_PRICE,#50H;起步价初始化
MOVS11,#0
MOVS22,#0
MOVS33,#0
MOVS44,#0
MOVDISTANCE,#02H
MOVHOUR,#12H
KEY_MAIN:
SETBTR0
ACALLHMS_DIS
ACALLT100MSD
ACALLT100MSD
ACALLT100MSD
JBS1,KEY_MAIN
ACALLT10MSD
JBS1,KEY_MAIN
JNBS1,$
SJMPWAI1
WA1:
JBS1,K1
ACALLT10MSD
JBS1,K1
WAIT1:
JNBS1,WAIT1
MOVR0,#LEDDANJIAL
MOVR2,#6
CLRA
MOVCOUNTL,A
MOVCOUNTH,A
MOVM100,A
MOVDISTANCE,A
BK1:
MOV@R0,A
DECR0
DJNZR2,BK1
MOVPRICE,DAY_PRICE;起动初始化
MOVCOUNTL,#00H;起步价
MOVCOUNTH,#05H
LCALLCP_DIS;总金额和单价显示
K1:
JBS2,K2
ACALLT10MSD
JBS2,K2
WAIT2:
JNBS2,WAIT2
INCS22
MOVA,S22
CJNEA,#1,NEXT1
LCALLPA_DIS
LJMPKEY_DJ
NEXT1:
CJNEA,#2,NEXT2
CLRTR0
LCALLHMS_DIS
LJMPKEY_SJ
NEXT2:
CJNEA,#3,K2
MOVS22,#0
K2:
JBS3,K3
ACALLT10MSD
JBS3,K3
WAIT3:
JNBS3,WAIT3
INCS33
MOVA,S33
CJNEA,#1,NXT1
LCALLDP_DIS
NXT1:
CJNEA,#2,NXT2
CLRC
MOVA,M2
SUBBA,M1
MOVM1,A
MOVA,H2
SUBBA,H1
MOVH1,A
NXT2:
CJNEA,#3,K3
MOVS33,#0
LCALLCP_DIS
K3:
JBS4,BK_KEY_MAIN
ACALLT10MSD
JBS4,BK_KEY_MAIN
WAIT4:
JNBS4,WAIT4
INCS44
MOVA,S44
CJNEA,#1,NT1
MOVPRICE,DAY_PRICE
LCALLCP_DIS
NT1:
CJNEA,#2,NT2
MOVPRICE,NIGHT_PRICE
LCALLCP_DIS
NT2:
CJNEA,#3,NT3
MOVPRICE,MIDWAY_PRICE
SETBTR1
LCALLCP_DIS
NT3:
CJNEA,#4,BK_KEY_MAIN
MOVS44,#0
LJMPKEY_MAIN
BK_KEY_MAIN:
LJMPWA1
KEY_DJ:
JBS1,KY1
ACALLT10MSD
JBS1,KY1
WAIT5:
JNBS1,WAIT5
INCS11
MOVA,S11
CJNEA,#1,NEXT11
LJMPDAY_P
NEXT11:
CJNEA,#2,
NEXT12
LCALLNIG_P
NEXT12:
CJNEA,#3,KY1
LCALLMID_P
MOVS11,#0
LJMPKEY_MAIN
KY1:
JBS2,KY2
ACALLT10MSD
JBS2,KY2
WAIT6:
JNBS2,WAIT6
INCS22
MOVA,S22
CJNEA,#1,NEXT13
LCALLPA_DIS
LJMPKEY_DJ
NEXT13:
CJNEA,#2,NEXT14
CLRTR0
LCALLHMS_DIS
LCALLKEY_SJ
NEXT14:
CJNEA,#3,KY2
MOVS22,#0
LJMPKEY_MAIN
KY2:
AJMPKEY_DJ
KEY_SJ:
JBS1,KEY1
ACALLT10MSD
JBS1,KEY1
WAIT7:
JNBS1,WAIT7
INCS11
MOVA,S11
CJNEA,#1,NEXT21
LCALLHOU_T
NEXT21:
CJNEA,#2,NEXT22
LCALLMIN_T
NEXT22:
CJNEA,#3,KEY1
MOVS11,#0
LJMPKEY_MAIN
KEY1:
JBS2,KEY2
ACALLT10MSD
JBS2,KEY2
WAIT8:
JNBS2,WAIT8
INCS22
MOVA,S22
CJNEA,#1,NEXT23
LCALLPA_DIS
LJMPKEY_DJ
NEXT23:
CJNEA,#2,NEXT24
CLRTR0
LCALLHMS_DIS
NEXT24:
CJNEA,#3,KEY2
MOVS22,#0
LCALLKEY_SJ
LJMPKEY_MAIN
KEY2:
AJMPKEY_SJ
DAY_P:
SETBF0
LCALLT100MSD
LCALLT100MSD
MOVLEDDAY_PL,#0AH
MOVLEDDAY_PH,#0AH
LCALLPA_DIS1
LCALLT100MSD
LCALLT100MSD
LCALLPA_DIS
LP1:
JBS3,KEY11
MOVA,#1
ADDA,DAY_PRICE
DAA
MOVDAY_PRICE,A
MOVA,DAY_PRICE
CJNEA,#99H,KEY11
MOVDAY_PRICE,#0
KEY11:
JBS4,KEY12
LCALLT10MSD
JBS4,KEY12
MOVA,DAY_PRICE
ADDA,#99H
DAA
MOVDAY_PRICE,A
CJNEA,#00H,KEY12
MOVA,#99H
KEY12:
JBS1,KEY13
ACALLT10MSD
JBS1,KEY13
WAIT11:
JNBS1,WAIT11
INCS11
MOVA,S11
CJNEA,#1,
NEXT31
LCALLDAY_P
NEXT31:
CJNEA,#2,NEXT32
LCALLNIG_P
NEXT32:
CJNEA,#3,NEXT33
LCALLMID_P
NEXT33:
CJNEA,#4,KEY13
MOVS11,#0
KEY13:
JBS2,KEY14
LCALLT10MSD
JBS2,KEY14
WAIT12:
JNBS2,WAIT12
LJMPKEY_MAIN
KEY14:
AJMPDAY_P
NIG_P:
SETBF0;调用定时延时标志位
LCALLT100MSD
LCALLT100MSD
MOVLEDNIG_PL,#0AH
MOVLEDNIG_PH,#0AH
LCALLPA_DIS1
LCALLT100MSD
LCALLT100MSD
LCALLPA_DIS
JBS3,KEY21
LCALLT10MSD
JBS3,KEY21
MOVA,#1
ADDA,NIGHT_PRICE
DAA
MOVNIGHT_PRICE,A
CJNEA,#99H,KEY21
MOVNIGHT_PRICE,#0
KEY21:
JBS4,KEY22
LCALLT10MSD
JBS4,KEY22
MOVA,NIGHT_PRICE
ADDA,#99H
DAA
MOVNIGHT_PRICE,A
CJNEA,#00H,KEY22
MOVNIGHT_PRICE,#99H
KEY22:
JBS1,KEY23
ACALLT10MSD
JBS1,KEY23
WAIT15:
JNBS1,WAIT15
INCS11
MOVA,S11
CJNEA,#1,
NEXT41
LCALLDAY_P
NEXT41:
CJNEA,#2,NEXT42
LCALLNIG_P
NEXT42:
CJNEA,#3,NEXT43
LCALLMID_P
NEXT43:
CJNEA,#4,KEY23
MOVS11,#0
LJMPKEY_DJ
KEY23:
JBS2,KEY24
LCALLT10MSD
JBS2,KEY24
WAIT30:
JNBS2,WAIT30
LJMPKEY_MAIN
KEY24:
AJMPNIG_P
MID_P:
SETBF0;调用定时延时标志位
LCALLT100MSD
MOVLEDW_PL,#0AH
MOVLEDW_PH,#0AH
LCALLPA_DIS1
LCALLT100MSD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 出租车 计价器 课程设计