数理与信息工程学院
课 程 设 计
题
专
班
姓
目:
多功能出租车计价器
业:
计算机科学与技术
级:
名:
学号:
指导老师:
成
绩:
( 2006.6 )
多功能出租车计价器
目 录
第 1 节 引 言·································································· 1
1. 1 出租车计价器概述········································································· 1
1. 2 本设计任务··················································································· 1
1.2.1 设计任务················································································· 1
1.2.2 设计要求················································································· 1
1. 3 系统主要功能··············································································· 2
第 2 节 出租车计价器硬件设计················································· 3
2.1 系统的硬件构成及功能···································································· 3
2. 2 AT89S51 单片机及其引脚说明·························································· 3
AT24C02引脚图及其引脚功能··························································· 6
2.3
2. 4 AT24C02 掉电存储单元的设计························································· 6
2.5 里程计算、计价单元的设计····························································· 7
2.6 数据显示单元设计·········································································· 8
第 3 节 系统软件设计···························································10
3. 1 系统主程序设计············································································10
3. 2 定时中断程序设计········································································ 10
3. 3 里程计数中断服务程序设计····························································10
3.4 中途等待中断服务程序设计····························································10
3. 5 键盘服务程序设计·········································································10
3. 6 显示子程序服务程序设计······························································· 10
第 4 节 系统调试与测试结果分析·············································· 13
4. 1 使用的仪器仪表··········································································· 13
4.2 系统调试····················································································· 13
4.3 测试结果····················································································· 13
4.4 测试结果分析·············································································· 13
第 5 节 结束语································································· 14
附录··········································································· 15
参考文献·······································································40
多功能出租车计价器
多功能出租车计价器
第 1 节 引 言
本次课程设计利用单片机技术来实现一台多功能出租车计价器,具有性能可靠、电路简单、
成本低等特点。
1.1 出租车计价器概述
计价器显示的营运金额是营运里程与价格的函数(等候时间一般折算成一定比例
的里程来计算)。出租车计价器通过传感器与行驶车辆连接。出租汽车的实际里程通
过传感器的脉冲信号在计价器里折算成一定的计价营运里程。目前市场上出租车计价
器功能主要有具有数据的复位功能、白天/晚上转换功能、数据输出功能、计时计价
功能等等,但能够进行语音播报数据信息的出租车计价器还是比较少见的,针对这一
点我们来设计一款多功能出租车计价器,在原有功能的基础上增加单价输出、单价调
整、路程输出、显示当前的系统时间、语音播报数据信息等功能。
1.2 本设计任务
1.2.1 设计任务
设计一款基于 AT89S51 单片机的出租车计价器。
1.2.2 设计要求
1.基本要求
(1) 不同情况具有不同的收费标准。
白天
晚上
途中等待(>10min 开始收费)
(2) 能进行手动修改单价。
(3) 具有数据的复位功能。
(4) IO 口分配的简易要求。
距离检测使用霍尔开关A44E
白天/晚上收费标准的转换开关
数据的清零开关
单价的调整(最好使用+和-按键)
1
多功能出租车计价器
(5) 数据输出(采用 LCM103)。
单价输出 2 位
路程输出 2 位
总金额输出 3 位
(6) 按键。
启动计时开关
数据复位(清零)
白天/晚上转换
2.发挥部分
(1) 能够在掉电的情况下存储单价等数据。
(2) 能够显示当前的系统时间。
(3) 语音播报数据信息。
1.3 系统主要功能
本课程设计所设计的出租车计价器的主要功能有:数据的复位、白天/晚上转换、
数据输出、计时计价、单价输出及调整、路程输出、语音播报数据信息、实现在系统
掉电的时候保存单价和系统时间等信息等功能。输出采用8 段数码显示管。本电路设
计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,
同时在不计价的时候还能作为时钟为司机同志提供方便。
2
多功能出租车计价器
第 2 节 计价器硬件设计
本系统的硬件设计主要包括单片机AT89S51、数据显示部件、A44E霍尔传感器电路、AT24C02
掉电存储单元的设计、里程计算及计价单元的设计。在硬件设计过程中,充分利用各部件的功能,
实现多功能的出租车计价器设计。
2.1 系统的硬件构成及功能
计价器的单片机控制方案图如图 1 所示。它由以下几个部件组成:单片机
AT89S51、总金额及单价显示部件、键盘控制部件,AT24C02 掉电存储控制、里程
计算单元、串中显示驱动电路等。
利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格
调节、时钟显示功能。不但能实现所要求的功能而且能在很大的程度上扩展功能,而
且还可以方便的对系统进行升级。具体电路参见“多功能出租车计价器总体电路图”。
2.2
AT89S51 单片机及其引脚说明
图 1 单片机控制方案图
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4KB的
可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技
术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)
也可用传统方法进行编程及通用 8位微处理器于单片芯片中,具有高性价比。
AT89S51 是一个有 40 个引脚的芯片,引脚配置如图 2 所示。
3
多功能出租车计价器
AT89S51 芯片的 40 个引脚功能为:
图 2 AT89S51 引脚配置
VCC 电源电压。
GND 接地。
RST 复位输入。当 RST 变为高电平并保持 2 个机器周期时,将使单片机复位。
WDT 溢出将使该引脚输出高电平,设置 SFR AUXR 的 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 所示。
4
多功能出租车计价器
表 1
P1 口特殊功能
P1 口引脚
特殊功能
P1.5
P1.6
P1.7
MOSI(用于 ISP 编程)
MOSI(用于 ISP 编程)
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 闪速存储器编程和程序校验期间的控
制信号。
表 2
P3 口特殊功能
P3 口引脚
特殊功能
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RXD(串行输入口)
TXD(串行输出口)
(外部中断 0)
(外部中断 1)
T0(定时器 0 外部输入)
T1(定时器 1 外部输入)
(外部数据存储器写选通)
(外部数据存储器读选通)
PSEN/ 程序储存允许输出是外部程序存储器的读先通信号,当 AT89S51 由外
部程序存储器取指令(或数据)时,每个机器周期两次 PSEN/有效,即输出两个脉
冲。当访问外部数据存储器,没有两次有效的 PSEN/信号。
EA/VPP 外部访问允许。欲使 CPU 仅访问外部程序存储器,EA 端必须保持低电
平,需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。Flash 存
5
多功能出租车计价器
储器编程时,该引脚加上+12V 的编程电压 VPP。
2.3
AT24C02 引脚图及其引脚功能
AT24C02 芯片引脚配置如图 3 所示。
AT24C02 芯片 DIP 封装,共有 8 个引脚,其中:
图 3
AT24C02 引脚配置图
A2~A0 地址引脚;
SDA、SCL
I2C 总线接口;
WP 写保护引脚,WP 接 VSS 时,禁止写入高位地址,WP 接 VDD 时,允许写入
任何地址;
VCC 电源端
GND 接地端
2.4
AT24C02 掉电存储单元的设计
掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02
是ATMEL公司的2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,
电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在
断电的情况下保存40 年以上,而且采用8 脚的DIP 封装,使用方便。其电路如图4
所示。
图 4 掉电存储电路原理图
6