当前位置:文档之家› 出租车计价器设计与实现

出租车计价器设计与实现

沈阳航空航天大学课程设计报告课程设计名称:微机系统综合课程设计 课程设计题目: 出租车计价器的设计与实现 院(系): 计算机学院 专 业: 计算机科学与技术 班 级: 24010104 学 号: 2012040101037 姓 名: 程里 指导教师: 罗振说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要 求;数据不实 ,不予通过。

报告和电子数据必须作为实验现象重复的关键依据。

学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。

尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。

与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。

报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。

本人签名: 日期:年月沈阳航空航天大学课程设计任务书课程设计总结:目录1 引言 01.1出租车计价器概述 01.2计价器整体功能描述结构 01.3各部分电路功能描述 (1)2计价器硬件设计 (1)2.1系统的硬件构成及功能 (1)2.2MCS-51系列单片机内部结构及功能部件 (3)2.2.1MCS-51系列单片机的内部结构框图 (3)2.2.2单片机外部引脚说明 (4)2.2.3并行输入/输出接口 (6)3系统的软件设计 (6)3.1软件总体设计 (6)3.2系统主程序设计 (8)3.3显示子程序服务程序 (9)3.4按键服务程序 (9)4系统调试与测试结果分析 (10)4.1系统调试 (10)4.1.1硬件调试 (10)4.1.2软件调试 (10)4.1.3软硬件联调 (10)4.2 电路图 (11)参考文献 (10)附录(关键部分程序清单) (13)1引言1.1出租车计价器概述计价器显示的营运金额是营运里程与价格的函数(等候时间一般折算成一定比例的里程来计算)。

出租车计价器通过传感器与行驶车辆连接。

出租汽车的实际里程通过传感器的脉冲信号在计价器里折算成一定的计价营运里程。

目前市场上出租车计价器功能主要有具有数据的复位功能、白天/ 晚上转换功能、数据输出功能、计时计价功能等等,但能够进行语音播报数据信息的出租车计价器还是比较少见的,针对这一点,我来设计一款多功能出租车计价器,在原有功能的基础上增加单价输出、单价调整、路程输出、显示当前的系统时间、语音播报数据信息等功能。

1.2计价器整体功能描述结构设计出租车计价器方案并进行仿真,完成不同方式转换计价,显示路程、单价、总金额。

1.3各部分电路功能描述1不同情况具有不同的收费标准。

(a)前两公里(b)后两公里2具有数据的复位功能(a) 数据清零开关3数据输出4按键(a) 启动计时开关(b) 数据复位(清零)(c)前两公里/ 后两公里2 计价器硬件设计2.1 系统的硬件构成及功能计价器的单片机控制方案图如图 1 单片机控制方案图所示。

它由以下几个部 件组成:单片机 MCS-51、总金额及单价显示部件、 键盘控制部件、 里程计算单元、 串中显示驱动电路等。

利用单片机丰富的 IO 端口,及其控制的灵活性,实现基本的里程计价功能和 价格调节、时钟显示功能。

不但能实现所要求的功能而且能在很大的程度上扩展 功能,而且还可以方便的对系统进行升级。

图 1 单片机控制方案图MCS-51单片机2.2 MCS-51 系列单片机内部结构及功能部件2.2.1 MCS-51系列单片机的内部结构框图分析图2,并按其功能部件划分可以看出,MCS-51系列单片机是由8 大部分组成的。

图3 为按功能划分的MCS-51系列单片机内部结构简化框图。

这8 大部分是:·一个8 位中央处理机CPU。

·128 个字节的片内数据存储器RAM。

·4 KB 的片内程序只读存储器ROM 或EPRO。

M·18 个特殊功能寄存器SFR。

·4 个8位并行输入输出I/O 接口:P0口、P1 口、P2 口、P3 口(共32 线),用于并行输入或输出数据。

·1 个串行I/O 接口。

·2 个16 位定时器/ 计数器。

1 个具有5 个中断源,可编程为2 个优先级的中断系统。

它可以接收外部中断申请,定时器/ 计数器中断申请和串行口中断申请。

图 2 MCS-51 系列单片机内部结构框图2.2.2 单片机外部引脚说明MCS-51系列单片机芯片均为 40 个引脚, HMOS 工艺制造的芯片采用双列直插DIP )方式封装, 其引脚示意及功能分类如图 4 所示。

CMOS 工艺制造的低功 耗芯片也有采用方型封装的, 但为 44个引脚, 其中 4 个引脚是不使用的图4 MCS — 51系列单片机引脚及总线结构(a) 管脚图; (b) 引脚功能分类(1)主电源引脚 Vcc 和 VssVCC ( 40脚):接+5 V 电源正端;VSS (20脚):接+5 V 电源地端。

(2)外接晶体引脚 XTAL1和XTAL2图 3 MCS-51 系列单片机内部结构简化XTAL1(19 脚):接外部石英晶体的一端。

在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。

当采用外部时钟时,对于HMOS 单片机,该引脚接地;对于CHMO单S 片机,该引脚作为外部振荡信号的输入端。

XTAL2(18 脚):接外部晶体的另一端。

在单片机内部,接至片内振荡器的反相放大器的输出端。

当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端;对于CHMO芯S 片,该引脚悬空不接。

(3)控制信号或与其它电源复用引脚。

控制信号或与其它电源复用引脚有:RST/VPD、 ALE/ PROG 、 PSEN和EA/Vpp等4种形式。

A 、RST/VPD(9脚):RST即为RESE,T VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。

B、 ALE/ PROG (30 脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低8 位地址。

C、 PSEN (29脚):片外程序存储器读选通信号输出端,低电平有效。

D 、EA /Vpp(31脚):EA为访问外部程序存储器控制信号,低电平有效。

(4)输入/输出(I/O ):引脚P0口、P1 口、P2 口及P3口A、P0 口(39 脚~32 脚):P0.0~P0.7 统称为P0 口。

P0口是一个三态双向口,可作为地址/ 数据分时复用口,也可作为通用I/O 接口。

B 、P1 口(1脚~8脚):P1.0~P1.7 统称为P1口,可作为准双向I/O 接口使用。

C 、P2 口(21 脚~28脚):P2.0~P2.7 统称为P2口,一般可作为准双向I/O 接口。

它具有通用I/O 接口或高8 位地址总线输出两种功能.D、P3 口(10脚~17脚):P3.0~P3.7 统称为P3口。

P3口除了可作为通用准双向I/O 接口外,每1 根线还具有第2 功能。

(见图5)图 5 P3 口第 2 功能表2.2.3并行输入 /输出接口对于四个并行输入 / 输出接口前面已经简单介绍过了。

本设计中主要用到了 P1 口现在着重介绍,一下 P1 口。

其 1 位的内部结构如图 6 所示。

它在结构上与 P0 口的 其输出驱动部分由场效应管 V1 与内部上拉电阻组成。

可以提供拉电流负载, 不必像 P0口那样需要外接电阻。

从功能上来看 P1只有一种功能(对 MCS-51子系列),即通用输入输出 I/O 接口, 具有输入、输出、 端口操作 3 种工作方式, 每 1 位口线能独立地用作输入或输出线。

P1口为准双向口区别在于输出驱动部分, 图 6 P1 口的结构原理图3系统的软件设计3.1 软件总体设计51 单片机的程序设计语言主要有两种:一是汇编程序设计;二是C语言编程设计。

两种程序设计语言都有各自的优点。

用汇编语言编写和高级语言(C 语言)比较起来节省空间,这样对于存储空间仅4Kb的芯片来说是极之有利的,51 单片机能更高速的运行。

C 语言编写的程序,虽然不象汇编那样速度快、但程序简单易行、并且需要较小的存储空间。

C 语言作为一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。

此外,C 语言程序还具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。

因此,使用C语言进行程序设计已成为软件开发的主流。

本设计就是采用C语言编写的,由于采用模块化操作,使得程序在修改,执行的时候显得方便易行。

3.2 系统主程序设计在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。

因为系统主程序的设计是一个十分重要的一个步骤,系统主程序设计的好与坏直接关系着这整个程序的有用与否,所以在系统主程序之中,一定要好好的仔细的完成完善。

另外,在主程序模块中还需要设置启动/ 清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。

然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。

主程序流程图如图7 所示。

当按下启动键时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。

若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。

当到达目的地的时候,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。

图7 主程序流程图3.3显示子程序服务程序由于是分屏显示数据,所以就要用到3个显示子程序,分别是:时分秒显示子程序、金额单价显示子程序、路程单价显示子程序。

3.4 按键服务程序本程序中所设计的按键程序在主程序之中,该程序在主程序当中时,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。

4系统调试与测试结果分析4.1 系统调试根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。

流程图如图8。

由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试。

利用Keil 软件对其进行编译、仿真,得出比较满意的效果。

在调试过程中,对其要求显示价格进行观察,比较理想地显示了价格。

4.1.1 硬件调试在硬件调试中,首先仔细检查自己所连电路是否正确,各电路线与电路板接口的连接是否正确,在正确的基础上,在仔细检查电路线与电路板的接口是否接触良好,是否有松动,如果有所松动,则及时的将接触不好的接口好好地加以紧固,再者,仔细看看电源是否插上。

相关主题