毕业设计论文出租车计费系统之电路的设计与实现.doc

上传人:sccc 文档编号:4856992 上传时间:2023-05-20 格式:DOC 页数:36 大小:587.02KB
返回 下载 相关 举报
毕业设计论文出租车计费系统之电路的设计与实现.doc_第1页
第1页 / 共36页
毕业设计论文出租车计费系统之电路的设计与实现.doc_第2页
第2页 / 共36页
毕业设计论文出租车计费系统之电路的设计与实现.doc_第3页
第3页 / 共36页
毕业设计论文出租车计费系统之电路的设计与实现.doc_第4页
第4页 / 共36页
毕业设计论文出租车计费系统之电路的设计与实现.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《毕业设计论文出租车计费系统之电路的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计论文出租车计费系统之电路的设计与实现.doc(36页珍藏版)》请在三一办公上搜索。

1、长春师范学院毕业论文摘要长春师范学院毕业设计(论文)题目 出租车计费系统之电路的设计与实现 院系名称 计算机科学与技术 班 级 06级计算机科学与技术 学生姓名 学号 0611240112 指导教师 评阅教师 时 间 II摘要现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。本文介绍了利用 SPCE061A 作为主控制器,配合 SPLC501 液晶模组设计出租车计价器的过程。该系统可以接受里程传感器的脉冲输入(在本方

2、案中使用 PWM 模拟替代传感器脉冲),并对脉冲进行计量,继而实现转换成里程的过程;采用现行出租车计价系统的计算方法,对行驶里程进行计费;并具有友好的语音提示界面。关键词:SPCE061A SPLC501 液晶模组 出租车 计价器长春师范学院毕业论文AbstractAbstractIt is now the major cities in the taxi industry have universal automatic meter, meter technology development is a foregone conclusion. And some small cities no

3、t yet universal, but with increasing speed up urban construction, a symbol of urban landscape taxi industry will also accelerate development, and the popularity meter is no doubt, therefore, the future of the automobile market valuation is still potential .describes SPCE061A as the main controller,

4、with SPLC501 taximeter LCD module design process. The system can accept the mileage sensor pulse input (in this program using alternative sensors analog PWM pulse), and pulse measurement, then the process of realization into mileage; use of the existing taxi pricing system is calculated on the milea

5、ge to billing; and have a friendly voice prompts interface.Key words: SPCE061A SPLC501 LCD module Taximeter长春师范学院毕业论文目录1 引言3 1.1 开发背景.31.2 开发方案.4 1.3 功能简介.42 系统硬件设计.52.1 SPCE061A芯片简介.6 2.1.1 SPCE061A 特性.62.1.2SPCE061A接口说明 .72.2 SPLC501芯片. 82.2.1 SPLC501简介.82.2.2 SPLC501功能.92.2.3 SPLC501 液晶模组特性.92.3

6、硬件电路.102.3.1 SPCE061A最小系统.102.3.2 LCD显示器.103 系统软件设计.123.1 主程序. 123.2 液晶驱动程序.133.3 按键扫描程序.153.4 计价管理程序.213.4.1 PWM管理程序.213.4.2 里程计量程序.213.4.3 时间管理程序.223.4.4 费用管理程序.223.4.5 用户界面控制程序.254 调试及检测.26 4.1在线调试. 26 4.1.1在线调试器(PROBE)和EZ-PROBE简介.264.2 SPCE061A的检测.274.2.1程序下载. .274.2.2检测.285 设计时应注意的问题.296 计价器发展前

7、景.297 结语语.308 参考文献.31长春师范学院毕业论文第一章 1引言1引言本方案在深入了解在出租车上计价系统的工作原理基础上,充分发挥人性化的特点,利用 SPCE061A 的语音功能,配合 SPLC501 液晶模组,模拟实现带语音提示功能的出租车计价系统。1.1开发背景汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。 随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注。

8、于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。用更加精良的计价器来为乘客提供更加方便快捷的服务。现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。 计价器作为出租车的一个重要组成部分,关系着出租车司机和乘客双方利益,起着重要的作用,因此,具有良好性能的计价器对广大出租车司机朋友来说是很必要的。 我国在70年代开始出现

9、出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打一发票和语音提示、按时间自主变动单价等功能。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。 1.2开发方案 采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。为此我们采用了单片机进行设计,

10、相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。单片机的基本知识和部分应用,进行的汽车计价器设计。然后详细介绍了系统硬件设计和软件设计,以及单片机相关技术知识,对程序中用到的系统函数也做了简单介绍。出租

11、车计价器显示的营运金额是营运里程与价格的函数(等候时间一般折算成一定比例的里程来计算)。出租车计价器通过传感器与行驶车辆连接。出租汽车的实际里程通过传感器的脉冲信号在计价器里折算成一定的计价营运里程。1.3功能简介本方案可以通过里程传感器的脉冲输入实现里程的转换和行驶里程计费过程,并提供了有好的用户界面和语音提示功能。2 系统硬件设计图 2.1 为出租车计价器的系统框图,采用 SPCE061A 作为主控制器,通过 IOB2 接收传感器的脉冲输入(在本方案中使用 IOB9输出的 PWM 模拟传感器的脉冲),对脉冲进行计数,然后换算成里程数,并按照现行的出租车计价系统的标准进行计费。 图 2.1

12、出租车计价器系统框图图 2.2 为出租车计价器的硬件连接图。 图 2.2 出租车计价器硬件连接图2.1 SPCE061A 芯片简介61 板是 SPCE061A EMU BOARD 的简称,是以凌阳 16 位单片机 SPCE061A为核心的精简开发仿真实验板,大小相当于一张扑克牌,是“凌阳科技大学计划”专为大学生、电子爱好者等进行电子实习、课程设计、毕业设计、电子制作及电子竞赛所设计的,也可作为单片机项目初期研发使用。61 板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含 MIC 输入部分和 DAC 音频输出部分)、复位电路等,并采用电池供电,方便随身携带。2.1.1 SPCE06

13、1A 特性其芯片特性如下: 1、工作电压:内核工作电压 VDD为 3.03.6V(CPU),I/O口工作电压 VDDH 为 VDD5.5V; 2、CPU时钟:0.32MHz49.152MHz;3、内置 2K字 SRAM 和 32K字闪存 ROM; 4、系统处于备用状态下(时钟处于停止状态),耗电小于 2A3.6V; 5、具备触键唤醒的功能; 6、32 位通用可编程输入/输出端口; 7、2 个16 位可编程定时器/计数器(可自动预置初始计数值); 8、7 通道10 位电压模-数转换器(ADC)和单通道声音模-数转换器; 9、2 个10位 DAC(数-模转换)输出通道; 10、14 个中断源可来自

14、定时器 A / B,时基,2 个外部时钟源输入,键唤醒; 11、具备串行设备接口; 12、低电压复位(LVR)功和低电压监测(LVD)功能; 13、内置在线仿真(ICE,In- Circuit Emulator)接口。2.1.2 SPCE061A接口说明 1、电源接口电源输入端口,是61板的能源供应中心,整块板子的电源都由此提供进去,可采用电池或稳压电源提供5V输入,并且必需至少保证电流在50mA以上,否则会造成系统无法倍频和下载出错。2、IO电压选择接口IO电压参考电压可选择5V或3.3V,选择5V时为TTL电平;选择3.3V时为LVTTL电平,输出:3.3V LVTTL (可直接驱动5V

15、TTL) ,输入:3.3V LVTTL或5V TTL 。3、音频输出接口音频输出接口是为输出语音准备的,主要包括两个DAC接口和一个喇叭接口,可用来进行语音提示和运算结果的播报。4、MIC输入口MIC是语音输入接口,可用于语音数据的采集,在做语音录入和语音识别都离不开它。5、IO接口IO接口是微处理器最重要的接口,可以通过IO进行外部数据的采集和外挂芯片的操作。6、AD外部参考电压输入口和2V参考电压输出口通过调整AD外部参考电压可调整低于3.3V输入模拟电压的精度,以适合不同应用的需求。 通过2V参考电压输出口,我们可以查看ADC工作状态是否满足我们的需求。7、在线调试器(PROBE)、EZ

16、-PROBE接口和选择跳线SPCE061A的内部结构框图如图 2.3 所示。图 2.3 SPCE061A 内部结构图SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且内置在线仿真电路ICE接口,较高的处理速度使其能够快速的处理复杂的数字信号。2.2 SPLC501芯片2.2.1 SPLC501简介SPLC501 液晶显示模组采用的驱动控制芯片为凌阳科技的 SPLC501A芯片,SPLC501A为液晶显示控制驱动器,集行、列驱动器和控制器于一体,广泛应用于小规模液晶显示模块。 SPLC501A单芯片液晶

17、驱动,可以直接与其他微控制器接口总线相连。微控制器可以将显示数据通过 8 位数据总线或者串行接口写到 SPLC501A的显存中。下列是 SPLC501A的特点:1、内置 8580 位显示 RAM。RAM 中的一位数据控制液晶屏上的一个象素点的亮、暗状态。“1”亮“0”暗。 2、具有 65 行驱动输出和 132 列驱动输出(注:模组中的液晶显示面板仅为 64 行、128 列) 。3、可以直接与 80 系列和 68 系列微处理器相连。 4、内置晶振电路,也可以外接晶振 。5、工作温度范围为40 摄氏度85 摄氏度。2.2.2 SPLC501功能SPLC501 液晶显示模组为 128X64 点阵,面

18、板采用 STN(Super Twisted Nematic)超扭曲向列技术制成并且由 128 Segment 和 64 Common 组成,LCM 非常容易通过接口被访问。 模组上的液晶显示器采用凌阳科技的 SPLC501 芯片作为 LCD驱动和控制器,为 128X64 点阵图形液晶显示器。2.2.3 SPLC501 液晶模组特性SPLC501 液晶模组具有以下特性:1、显示模式:黄色模式 STN 液晶; 2、显示格式:12864 点阵的图形液晶; 3、输入数据:兼容 68/80 系列 MPU 时序。2.3 硬件电路2.3.1 SPCE061A最小系统本方案使用 61 板作为单片机最小系统。6

19、1 板包括 SPCE061A芯片及其外围的基本模块,外围模块包括:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等,如图 2.4所示。 图 2.4 SPCE061A 最小系统 2.3.2 LCD显示器SPLC501 液晶显示模组采用 GPG12063YS3 LCD模块,此模块内嵌 SPLC501A芯片,采用先进的COG技术,将芯片嵌在 LCD玻璃上,图 2.5 为此液晶显示器系统框图。图 2.5 液晶显示器系统框图SPLC501 液晶模组提供点阵分辨率为 12864。SPCE061A与 SPLC501 液晶模组的硬件连接如图 2.6 所示。图 2.6

20、 SPCE061A 与 SPLC501 液晶模组的硬件连接3系统软件设计本系统软件中包括下面程序模块: 主 程 序:初始化系统涉及到的硬件模块,扫描键盘,根据按键启动/停止里程测量,并调用用户界面程序定时更新日期时间显示,实时更新单价、里程、低速时间、费用等信息显示。 液晶驱动程序:LCD显示驱动程序,实现文本、图形显示等功能。 按键扫描程序:扫描按键,返回扫描结果。 语音播放程序:播放提示音,行驶里程、费用等。 计价管理程序:完成传感器脉冲计量,然后转换为公里数,并根据规则计算对应的费用,同时,监测行驶速度,统计低速时间,计算低速等待费用,提供液晶显示更新函数,以便主函数可以控制更新用户界面

21、以及行驶里程、费用等信息的显示。该模块包括 PWM 管理程序、里程计量程序、时间管理程序、费用管理程序、用户界面控制程序等部分。3.1主程序主程序流程如图 3.1:程序运行后首先初始化各个硬件部件,同时打开 1KHz 和 2Hz 时基中断,为键盘扫描和时间管理模块服务。然后,程序进入主循环,不断进行按键扫描,并根据按键启动/停止里程计量,或进入系统设置模式。在主循环中同时还对时间显示进行更新。图 3.1 主程序流程图3.2液晶驱动程序LCD显示部分采用 SPLC501 液晶模组附带的驱动程序。该驱动程序的架构如图 3.2所示。图 3.2 LCD驱动程序架构驱动程序由 5 个文件组成,分别为:底

22、层驱动程序文件 SPLC501Driver_IO.inc、SPLC501Driver_IO.asm;用户 API 功能接口函数文件 SPLC501User.h、SPLC501User.c、DataOSforLCD.asm。 SPLC501Driver_IO.inc:该文件为底层驱动程序的头文件,主要对使用到的寄存器(如端口控制寄存器等)进行定义,还对 SPCE061A 与 SPLC501 液晶显示模组的接口进行配置;用户可以根据自已的需求来配置此文件,但要使端口的分配符合实际硬件的接线。 SPLC501Driver_IO.asm:该文件为底层驱动程序,负责与 SPLC501 液晶显示模组进行数

23、据传输的任务,主要包括端口初始化、写控制指令、写数据、读数据等函数;这些函数仅供 SPLC501User.c 调用,不建议用户在应用程序中调用这些函数。 SPLC501User.h:该文件为用户 API 功能函数文件的头文件,主要对一些记住符进行定义,以及配置LCD 的一些设置,另外该文件里还对 SPLC501User.c 中的函数作了外部声明,用户需要使用 LCD 的 API功能函数时,需要把该文件包含在用户的 C 文件中。 SPLC501User.c:文件中定义了针对 LCD显示的各种 API 功能函数。 DataOSforLCD.asm:该文件中提供了一些供 API 功能函数调用的数据处

24、理子程序,主要完成显示效果的叠加、画圆偏差量的计算等。3.3按键扫描程序系统使用 1024Hz 时基中断对 IOA口低八位进行扫描,并进行去抖、长短按键判断等工作按键扫描程序提供如下三个 API 函数以供用户使用按键功能:语法格式:void KeyScan_Init(void);入口参数:无出口参数:无返回值:无功 能:按键扫描初始化。调用该函数将同时初始化按键扫描使用的 I/O口。void KeyScan_Init(void)ui_KeyScanState = C_KeyStateFirst;ui_KeyState = C_NullKey;ui_KeyCount = 0;ui_KeyCoun

25、tBK = 0;ui_KeyID = C_Null;ui_RepeatEvent = 0;ui_RepeatCount = 0;DrvKeyInit();语法格式:void KeyScan_ServiceLoop();入口参数:无 出口参数:无 返回值:无功 能:按键扫描后台服务程序。该函数一般被安置在 1KHz 时基中断中。void KeyScan_ServiceLoop(void)switch(ui_KeyScanState)case C_KeyStateFirst:if(C_Null != DrvGetKeyID()ui_KeyID = DrvGetKeyID();ui_KeyScanS

26、tate = C_KeyStateDebounce;ui_KeyCount = 0;ui_RepeatEvent = 0;ui_RepeatCount = 0;break;case C_KeyStateDebounce:if(ui_KeyCount C_DebounceLimit)if(C_Null != DrvGetKeyID()if(DrvGetKeyID() = ui_KeyID)ui_KeyState = C_SKeyState;ui_KeyScanState = C_KeyStateRepeat;elseui_KeyScanState = C_KeyStateFirst;elseui

27、_KeyScanState = C_KeyStateFirst;/ui_KeyCount = 0;elseui_KeyCount+;break;case C_KeyStateRepeat:if(C_Null != DrvGetKeyID()if(DrvGetKeyID() = ui_KeyID)/if(ui_KeyCount C_FirstRepeatTim - C_RepeatTim)/if(+ui_RepeatCount = C_RepeatTim)/ui_RepeatCount = 0;/ui_RepeatEvent = 1;/if(ui_KeyCount C_LKeyLimit)ui_

28、KeyScanState = C_KeyStateAfterLKey;ui_KeyState = C_LKeyState;elseui_KeyCount+;elseui_KeyScanState = C_KeyStateFirst;elseui_KeyScanState = C_KeyStateReleaseDebounce;ui_KeyCountBK = ui_KeyCount;ui_KeyCount = 0;break;case C_KeyStateReleaseDebounce:if(ui_KeyCount C_DebounceLimit)if(C_Null = DrvGetKeyID(

29、)ui_KeyScanState = C_KeyStateFirst;if(C_SKeyState = ui_KeyState)ui_KeyState = C_SReleaseKeyState;else if(C_LKeyState = ui_KeyState)ui_KeyState = C_LReleaseKeyState;elseui_KeyCount = ui_KeyCountBK;ui_KeyScanState = C_KeyStateRepeat;elseui_KeyCount+;break;case C_KeyStateAfterLKey:if(+ui_RepeatCount =

30、C_RepeatTim)ui_RepeatCount = 0;ui_RepeatEvent = 1;if(C_Null = DrvGetKeyID()ui_KeyScanState = C_KeyStateReleaseDebounce;else if(DrvGetKeyID() != ui_KeyID)ui_KeyScanState = C_KeyStateFirst;break;default:break;unsigned int KeyScan_GetKey(unsigned int *KeyType);语法格式:入口参数:按键类型 出口参数:键值 返回值:键值功 能:该函数将返回当前按

31、键的键值,并通过入口参数 KeyType 返回该按键的类型。unsigned int KeyScan_GetKey(unsigned int *KeyType)unsigned int Key;if(C_NullKey = ui_KeyState)Key = C_Null;elseKey = ui_KeyID;*KeyType = ui_KeyState;if(C_KeyStateFirst = ui_KeyScanState)ui_KeyID = C_Null;ui_KeyState = C_NullKey;return(Key);3.4 计价管理程序本系统的核心是对传感器脉冲进行计数,并转

32、换为公里数,进而根据规则计算行驶费用,同时,还需要对行驶速度进行监测,判断当前车辆是否处于低速运行状态,以实现对低速运行状态的计时,计算等待费用。 3.4.1 PWM 管理程序计价管理程序包括如下几个组成部分:PWM 管理程序、里程计量程序、时间管理程序、费用管理程序、用户界面控制程序等,各部分共同协调工作,完成计价管理的核心工作以及用户界面的管理工作。3.4.1 PWM 管理程序本系统中,使用了 TimerB 产生 PWM 波,模拟实际的出租车上的里程传感器脉冲。改变 PWM 的频率,就相当于改变了车速,对 PWM 波的脉冲进行计数,等同于对里程传感器的脉冲进行计数。 对 PWM 的管理包括

33、:启动 PWM、增大 PWM 频率、减小 PWM 频率、停止 PWM 等。 系统中为 TimerB 设置了 96K的时钟源,以产生一定频率范围的 PWM 波,改变 TimerB 的计数初值,将会改变 PWM 的频率,从而达到管理 PWM 频率的目的。3.4.2 里程计量程序本系统中使用了外部中断 1 来实时检测由 IOB2 输入的脉冲。在外部中断服务程序中对中断次数进行计数,便可以统计输入脉冲的数量。 一般情况下,运行一段时间后输入单片机的脉冲数量会比较大,容易导致计数结果溢出。故程序中使用了两个变量对脉冲进行计数。uiPulseNum 变量用来记录中断次数(脉冲个数),当达到一公里对应的脉冲数量后,使另外一个记录公里数的变量 uiDistance 加一,并使 uiPulseNum归零重新计数。这样,便将公里数的整数部分和小数部分分开统计,使结果不容易溢出,也便于结果转换。 另外,程序中使用了 2Hz 时基中断用来计算车辆的行驶速度。统计 0.5s内的脉冲数量,即可以得到车辆的行驶速度。这一速度将提供给费用管理程序用来判断是否处于低速等待状态。3.4.3 时间管理程序系统使用 2Hz 时基中断实现计时。中断服务程序流程如图 3.3 所示。其中,2Hz 计数器 ulTimer 用来为其他模块提供两个 2Hz 的计数器以方便的实现计时等操作。图 3.3 时

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号