河南理工大学本科课程设计报告
摘要
本设计是基于STC89C52单片机的控制并利用霍尔传感器测速的出租车计价器。随着国民经济的不断发展和人们生活水平的日益提高,出租车已成为了城市交通中必不可少的一部分。而出租车计价器在出租车的运营中起着至关重要的作用,它是司机与乘客间公平交易的依据,与双方的利益都息息相关,是所有出租车的必备仪表。因此,对出租车计价器的研究具有十分现实的意义,而且精确度高,操作简便,故障率低的计价器也是市场不断追求的目标,具有良好的发展前景。
该计价器可通过按键切换显示里程、金额与等待时间,可按键设置单程和往返价格,可按键实现暂停和清零,还能通过传感器感测车速大小来选择等待模式或计价模式。
总的来说,本设计的硬件电路可分为五个单元:单片机最小系统单元,数码管显示单元,按键单元,指示灯单元及霍尔测速单元。该计价器用STC89C52单片机作为控制核心,由LED数码管来显示行驶里程、车价及等待时间,由按键来进行暂停、切换、清零等操作,由发光二极管作为指示灯,由霍尔传感器来测车速。本设计具有电路相对简单,功能比较齐全,精确度较高等特点,是一款经济实用型的出租车计价器,可以满足出租车司机和乘客的基本需求。
软件部分,本设计采用简洁明了的C语言来编写源程序。其中,键盘扫描和数码管显示采用查询方式,转速信号接收和等待计时采用中断方式,而指示灯由按键标志位控制。程序完全符合设计目标,与硬件配合良好,能够稳定、准确地实现所有的要求,结果令人满意。
关键字:出租车计价器;STC89C52单片机;霍尔测速;切换显示
- 1 -
河南理工大学本科课程设计报告
目录
1 概述??????????????????????????????3 1.1 功能要求??????????????????????????3 1.2 系统原理??????????????????????????3 1.3 系统组成??????????????????????????3 2 系统总体方案及硬件设计?????????????????????4 2.1系统总体方案 ????????????????????????4 2.2单片机最小系统单元 ?????????????????????4 2.3霍尔测速单元 ????????????????????????6 2.4数码管显示单元 ???????????????????????7 2.5按键单元 ??????????????????????????7 2.6二极管指示灯单元 ??????????????????????8 3 软件设计????????????????????????????9 3.1总体流程 ??????????????????????????9 3.2初始化模块 ?????????????????????????9 3.3按键扫描模块 ????????????????????????9 3.4中断与定时模块???????????????????????10 3.5数据计算模块????????????????????????10 3.6数码管显示模块???????????????????????10 4 Proteus软件仿真????????????????????????11 4.1 Proteus软件仿真电路????????????????????11 4.2 Proteus仿真结果??????????????????????11 5 课程设计体会 ?????????????????????????13
参考文献 ????????????????????????????13
附1:源程序代码 ????????????????????????14 附2:系统原理图 ????????????????????????25
- 2 -
河南理工大学本科课程设计报告
1 概述
1.1 功能要求
该出租车计价器设计的基本要求是:
(1)能显示里程,单位为公里,最后一位为小数位。 (2)能显示金额数,单位为元,最后一位为小数位。
(3)可设定单程价格和往返价格,单程价格为2元/公里,往返价格为1.5元/公里。
(4)车速<5公里/小时的时间累积为总等待时间,每5分钟等待时间相当于里程数增加1公里。
(5)起步公里数为3公里,价格为5元,若实际距离大于3公里,按规则3计算价格。
(6)按暂停键,计价器可暂停计价,按查询键,可显示总等待时间。
1.2 系统原理
本设计是基于STC89C52单片机的控制,利用霍尔传感器测速的出租车计价器。STC89C52单片机作为控制核心,由霍尔传感器通过感应车轮上磁铁的磁场向单片机输入脉冲信号,单片机系统通过接收到的脉冲数来计算车速、金额及等待时间等,由四位共阴极数码管来显示车速、金额和时间,由按键来进行往返和单程设置以及启动、暂停、清零等操作,另外由发光二极管来指示工作状态。
最核心的程序方面,本设计采用简洁明了的C语言来编写源程序。其中,键盘扫描和数码管显示采用查询方式,转速信号接收和等待计时采用中断方式,而指示灯由按键标志位控制。通过程序来控制单片机系统的工作,从而实现计价器的各项功能。
1.3系统组成
本设计硬件系统组成可分为五个单元:单片机最小系统单元,数码管显示单元,按键单元,指示灯单元及霍尔测速单元。
软件系统也可以大致分为五个大模块:初始化模块,按键扫描模块,中断与定时模块,数据计算模块及数码管显示模块。
- 3 -
河南理工大学本科课程设计报告
2 系统总体方案及硬件设计
2.1系统总体方案
系统的总体设计方案如图2-1所示,分为五个部分:单片机最小系统单元、霍尔测速电路、路程时间与金额显示单元电路、按键输入单元电路及指示电路。
按键输入电路 M 霍尔测速电路 单片机 最小系 统单元 数码管显示电路 二极管指示电路
图2-1 系统总体设计方案
2.2单片机最小系统单元
单片机的最小系统单元如图2-2所示。
- 4 -
河南理工大学本科课程设计报告
图2-2 单片机最小系统单元
STC89C52芯片的40个引脚功能分别为: VCC:电源电压。 GND:接地。
RST:复位输入。当RST变为高电平并保持2个机器周期时,将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。DISKRTO位缺省为RESET输出高电平打开状态。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡放大器的输出。
P1口:一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash编程和程序校验期间,P1接收低8位地址。
P2口:一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址
- 5 -