汽车计价器设计 毕业设计论文.doc_第1页
汽车计价器设计 毕业设计论文.doc_第2页
汽车计价器设计 毕业设计论文.doc_第3页
汽车计价器设计 毕业设计论文.doc_第4页
汽车计价器设计 毕业设计论文.doc_第5页
免费预览已结束,剩余57页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东理工大学 毕业设计(论文) 汽车计价器设计 学 院: 计 算 机 科 学 与 技 术 专 业: 计 算 机 科 学 与 技 术 学 生 姓 名 : 指 导 教 师 : 毕 业 设 计 ( 论 文 ) 时 间 : 二 七 年 四 月 二 日 六 月 二 十 二 日 共 十 二 周 摘 要 i 摘 要 随着城市改革开放的进一步深化,出租车行业迅速发展,出租车计价器的 市场需求量也越来越大。现在许多公司生产的计价器已经很完善,但由于它在 使用中还存在着一些问题,很多出租车计价器还是使用传统的软轴。造成了计 价不准确性。 本文是一篇介绍基于 msp430f449 芯片的汽车计价器的设计论文。该设计 主要由五个模块组成,即键盘扫描模块、显示模块、数据采集模块、打印模块、 核心模块、电源模块等,通过这五大模块的结合,可以依次实现下列功能:按 键开始计价,采集传感器数据,显示行驶时间,所有里程数,计费,等待计费 等功能。通过这些功能的实现以达到实际汽车计价器的完整功能,并能投入商 业使用。其所使用的里程传感器克服了以往的软轴驱动容易变形而造成数据不 准确的弱点,加之 msp430 芯片功耗极低的优点,可以说以 msp430 为核心的 汽车计价器的设计具有极大的发展空间。 关键字:模块 数据采集 msp430 芯片 传感器 计价器 abstact ii abstract with the further reform and opening development of the taxi industry, the demand of taxi market is also growing. now many companies of the valuation of taxi is very perfect, but, there are still some problems, many taxies still use traditional flexible shaft. pricing is not very accurate. this paper is a design thesis of vehicle valuation which is based on a chip msp430f449. the design consists of five main modules, namely: the keyboard scanning module, display module, data acquisition modules, print module, the core module, power module. through this combination of the five modules,it can achieve the following functions: start pricing while press, acquite data from the sensor, show the driving time, all mileage, billing, accounting while awaiting and other functions. through these functions, we can achieve the realization of the actual vehicle valuation of the full function, and put into commercial use. they use the mileage sensors to overcome past flexible driven which can result in inaccurate data, because of the advantages of low power consumption of msp430 chips, the valuation of vehicle design which is based on msp430 has plenty of room for the future development. key words:module data acquisition msp430 chips sensor valuation of vehicle 目 录 iii 目 录 摘 要 i abstract ii 目 录 iii 第一章 引 言 1 1.1 课题的背景和意义 1 1.2 今年来国内外研究现状 1 1.3 设计方案的可行性 2 1.4 设计方案的预期目标 2 1.5 汽车计价器介绍 3 1.6 本论文各章节安排 3 第二章 msp430 简介 . 4 2.1 msp430f449 概况 4 2.2 msp430f449 存储组织 5 2.3 msp430f449 中断向量区 5 2.4 msp430f449 端口 5 2.4.1 中断口 p1 和 p2 6 2.4.2 非中断口 p0,p3p6 . 7 2.5 看门狗定时器 7 2.6 16 位定时器 a 8 2.6.1 捕获/比较模块 . 8 2.7 串行通讯 9 2.7.1 msp430f449 的 usart 通讯模块 . 9 2.7.2 spi 通讯模块 . 10 第三章 计价器硬件设计 . 11 3.1 基于 msp430f449 的汽车计价器框图 11 3.2 键盘扫描模块 11 3.3 数据采集模块 13 目 录 iv 3.4 液晶显示模块 13 3.5 存储模块 eeprom 24lc014b 15 3.6 打印模块 18 3.6 电源及复位模块 19 3.7 核心模块 19 第四章 计价器软件设计 20 4.1 出租车计价标准 20 4.2 出租车计价流程图 20 4.3 初始化 20 4.4 中断处理 21 4.5 键盘扫描程序 24 4.6 显示程序 25 4.7 主程序 26 第五章 系统测试与数据分析 28 5.1 iar embedded workbench 的使用 . 28 5.2 计价器 c 程序的调试 . 29 5.3 数据分析 30 总结篇 . 32 参考文献 . 33 致谢 . 34 使用说明书 . 35 附录 . 36 第一章 引 言 - 1 - 第一章 引 言 1.1 课题背景与意义 在我国,经济尚处于发展中阶段,由于人民的生活水平以及道路交通的限 制,私人汽车的拥有率在短期内不会有较大提高,因此出租汽车在我国交通运 输中承担着重要角色。出租车计价器则是出租汽车上必不可少的重要仪器,它 是负责出租车营运收费的专用智能化仪表.由于出租车数量的快速增长,出租 车的行业管理也就产生了一系列问题。 近年来,我国出租汽车行业迅猛发展,出租汽车已经成为我国城市公共交 通的重要组成部分和现代化城市必备的基础设施,成为人们工作、生活中不可 缺少的交通工具。出租汽车服务行业和出租汽车计价器紧密相关,因为出租汽 车必须安装出租汽车计价器才能投入营运。出租汽车计价器是一种能根据乘客 乘坐汽车行驶距离和等候时间的多少进行计价,并直接显示车费值的计量器具。 计价器是出租汽车的经营者和乘坐出租汽车的消费者之间用于公平贸易结算的 工具,因而计价器计价准确与否,直接关系到经营者和消费者的经济利益。 计价器作为出租车的一个重要组成部分,关系着出租车司机和乘客双方利 益,起着重要的作用,因此,具有良好性能的计价器对广大出租车司机朋友来 说是很必要的。 我国在70年代开始出现出租车,但那时的计费系统大都是国 外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业 的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器 的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入) ,到能 够自主计费,以及现在的能够打一发票和语音提示、按时间自主变动单价等功 能。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市 的文明程度。 现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成 定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的 出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价 器的市场还是十分有潜力的。 随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受 到越来越多人的关注。于是,出租车行业以低价高质的服务给人们带来了出行 第一章 引 言 - 2 - 的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这 一矛盾的最好方法就是改良计价器。用更加精良的计价器来为乘客提供更加方 便快捷的服务。 1.2 近年来国内外研究现状 近几年来,微电子技术的不断发展极大地推动了 mcu、embedded system(嵌入式系统)的普及和迅猛发展。目前 mcu 国际上比较流行的技术有 jtag 和 flash 在线编程技术、超低功耗以及大量的片内集成模块等,这使得设 计者在设计工业产品和日常电子用品时具有极大的方便性和可靠性,并且使用 户系统的设计变得越来越简单,开发成本越来越低,系统的整体技术性能越来 越好。 在国内,单片机大多是 51 单片机,它在过去的日常生活中发挥了巨大的 作用。但是其存在功耗大,价格较高,体积大,外扩电路多,驱动能力差等缺点, 而新型 16 位 msp430 单片机的出现恰好弥补了这些缺陷,其设计应用了目前嵌 入式系统中的一些流行技术。但目前市场上基于 msp430 单片机的综合性应用 设备较少,如果将该高性能单片机应用到工业和日常生活相关的一些领域中, 设计出具有低功耗、体积小、功能多、人机界面友好的测控设备,将具有非常 的应用前景。本项设计使用超低功耗 16 位微控制器 msp430 研制汽车器计价器, 能够准确的计量出租车里程费用,并能够对结果进行显示和打印。 1.3 设计方案的可行性 该系统软件主要由主程序模块、中断服务程序、里程计数中断服务程序、 中途等待中断服务程序、键盘服务程序、显示子程序服务程序等六大模块组成, 因为 c 语言变成效率高,容易实现,容易理解,编译后它与机器语言指令是一 一对应的,所以我们 c 语言来写此程序。 在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的 初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块 中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进 行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、 计程和计价等不同的操作。 当按下计价键时,就启动计价,将根据里程寄存器中的内容计算和判断出 第一章 引 言 - 3 - 行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数 和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间 和当前累计价格送显示电路显示出来。 当到达目的地的时候,由于里程表没有送来脉冲信号,就停止计价,显示当前 所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并 重新进行初始化过程。 1.4 设计方案的预期目标 1. 对 led 显示器进行设计,主要用于显示单价、里程数、总价及标识文字 提示。 2.msp430 电路的设计,用于完成里程表发来的脉冲信号的检测计数,并通过 检测电路传送到接口进行处理。 3. 该系统主要用来自动计算租金,自动存储和显示单价,计价里程,计时时 间(即等候时间)和相应租金,自动打印发票。 4.msp430 微处理器的处理程序的编写,用于完成对接收到的脉冲信号进行处 理。 1.5 汽车计价器介绍 一般来说,传统的汽车计价器主要是与汽车车速里程表结合在一起用的。 里程表每转动一圈,就像计价器传送一个信号,计价器接收信号,并记录汽车 所行使里程数,并进行相应的计价。但由于传统的车速里程表是使用软轴驱动 的,软轴在高速旋转的过程中,由于受到力的作用而极易断裂,同时软轴的布 置过长会出现变形或运动迟钝现象,所以传统的通过与里程表结合的汽车计价 器,完全有可能被电子式的采用非接触式的传感器来实现的计价器来代替,从 而能够很好的克服传统的传感器的不足。 电子式的汽车计价器可以采用霍尔型的非接触式传感器来进行里程的测量, 传感器每发出一个脉冲,单片机就进行接收,可以定义接收一个脉冲,汽车行 使 1m 等等,通过行驶的距离乘以每公里的价格,就可以得到顾客所花钱数。 1.6 本论文各章节安排 本论文共有五章,第一章是引言,介绍了课题的背景与意义、近年来的发 展现状、设计方案的可行性及预期目标等。第二章是系统的硬件设计,介绍了 第一章 引 言 - 4 - 基于 msp430 单片机的键盘扫描电路、数据采集电路、显示电路、核心电路等 的设计。第三章是系统的软件设计,介绍了该系统的总体规划,各功能模块的 设计,包括键盘扫描模块、数据采集模块、显示模块、主程序模块的设计,以 及相关的软件实现,重点进行了主程序模块的设计。第四章是系统测试和数据 分析,主要是对系统进行测试,对测试得到的数据进行分析并处理,最后校验 系统的准确性。 第一章 引 言 - 5 - 第二章 msp430f449 简介 - 5 - 第二章 msp430f449 简介 2.1 msp430f449 概况 1、特点 低工作电压:1.83.6v 超低功耗: 活动模式 280 ua 1mhz,2.2v 待机模式 1.1 ua; 掉电模式(ram数据保持) 0.1 ua。 五种节电模式。 从待机到唤醒不到 6us。 12 位 a/d 转换器带有内部参电源、采样保持、自动扫描特性。 16 位精简指令结构(risc) ,150ns 指令周期。 带有三个捕获/比较器的 16 位定时器有:定时器 a 和定时器 b。 2 个串行通信模块 usart0/1,可软件选择 uast/spi 模式。 片内比较器配合其他器件可构成单斜边 a/d 转换器。 可编程电压检测器。 可在线串行编程,不需要外部编程电压。 驱动液晶能力可达 160 段。 可编程的保险熔丝可保护设计者代码。 flash 存储器多达 60kb,ram 多达 2kb。 2、结构图 msp430 的结构框图如图 2-1 第二章 msp430f449 简介 - 6 - 图 2-1 msp430 结构框图 2.2 msp430f449 存储组织 msp430 的存储空间采用“冯诺依曼”结构,rom 和 ram 在同一地址 空间,使用一组地址数据总线。存储空间的组织又分为小模式和大模式。而目 前的器件都设计成小模式,最大的存储空间为 60k,msp430f449 试验板的存 储空就是 60k。因此,在编写程序的过程中要注意编写代码的精简程度,防止 编写的程序过度冗余,以致于程序的大小超过其内部存储器的大小。 2.3 msp430f449 中断向量区 程序 rom 区为 0ffffh 以下一定数量的存储空间,可存放指令代码和数 据表格。程序代码必须为偶地址。程序代码分可分为三种情况:中断向量区、 用户程序代码及系统引导程序。现介绍中断向量区。 中断向量区用来说明相应中断的中断服务程序的首地址。不同的器件中断 向量的含义不同。表 2-2 为 msp430x44x 系列单片机的中断向量表。 中断源 中断标志 系统中断 地址 优先级 上电、外部复位、 看门狗、flash wdtifg 复位 0fffeh 15,最高 nmi、振荡器故障、 flash 访问出错 nmifg, ofifg, accvifg 非屏蔽/可屏蔽 0fffch 14 定时器 b bccifg0 可屏蔽 0fffah 13 定时器 b bccifg16,tbi fg 可屏蔽 0fff8h 12 第二章 msp430f449 简介 - 7 - 比较器 a cmpaifg 可屏蔽 0fff6h 11 看门狗定时器 wdtifg 可屏蔽 0fff4h 10 串口 0 接收 urxifg0 可屏蔽 0fff2h 9 串口 0 发送 utxifg0 可屏蔽 0fff0h 8 adc adcifg 可屏蔽 0ffeeh 7 定时器 a ccifg0 可屏蔽 0fff2h 6 定时器 a cifg12,taifg 可屏蔽 0fffah 5 p1 p1ifg,07 可屏蔽 0fff8h 4 串口 1 接收 urxifg1 可屏蔽 0ffe6h 3 串口 1 发送 utxifg1 可屏蔽 0ffe4h 2 p2 p2ifg,07 可屏蔽 0ffe2h 1 基本定时器 btifg 可屏蔽 0ffe0h 0 表 2-2 中断向量表 2.4 msp430f449 端口 msp430f449 实验板有丰富的端口可供用户使用。其各种端口都具有丰富 的功能和大量的寄存器供用户操作。在 msp430f449 试验板中,其中只有 p1,p2 口具有中断能力。 2.4.1 中断口 p1 和 p2 p1 和 p2 这两个口为 8 位,都能用作输入和输出,同时都具有中断能力, 每个信号都可以用作一个中断源。下面具体介绍。 1. p1dir 和 p2dir p1 和 p2 端口方向选择寄存器 0:i/o 引脚被切换成输入模式; 1:i/o 引脚被切换成输出模式; 2. p1in 和 p2in p1 和 p2 端口输入寄存器 输入寄存器是 cpu 扫描 i/o 引脚信号的只读寄存器。用户不能对他写入, 只能通过读取该寄存器中内容知道 i/o 端口的输入信号。此时,引脚的方向必 须选定为输入。 3. p1out 和 p2out p1 和 p2 端口输出寄存器 输出寄存器是 i/o 端口的输出缓冲寄存器。可用包含所有操作数的指令修 改,以达到改变 i/o 口状态的目的。在读取该寄存器中内容时与引脚方向定义 无关,改变方向寄存器的内容,输出缓冲寄存器的内容不受影响。 4. p1ie 和 p2ie p1 和 p2 端口中断使能寄存器 第二章 msp430f449 简介 - 8 - 改口的 8 个引脚都可能引起中断的发生,每一个引脚都有一位用以控制该 引脚中断与否。p1ie 和 p2ie 各位定义如下: 7 6 5 4 3 2 1 0 pnie.7 pnie.6 pnie.5 pnie.4 pnie.3 pnie.2 pnie.1 pnie.0 0:禁止该位中断; 1:允许该位中断; 5. p1ies 和 p2ies p1 和 p2 端口中断触发沿选择寄存器 如果允许 pn 口的某个引脚中断,还必须定义该引脚的中断触发沿。该寄 存器的 8 位分别定义了该口的 8 个引脚的中断触发沿。 0:对应的引脚由低到高的电平跳变(上升沿)使相应的标志置位; 1:对应的引脚由高到低的电平跳变(下降沿)使相应的标志置位; 6. p1ifg 和 p2ifg p1 和 p2 端口中断标志寄存器 如果 p1 和 p2 允许中断,同时选择上升沿,则当该引脚发生电平由低到高 跳变时,p1ifg 和 p2ifg 的相应位就会置位,表明该引脚有中断发生。 8 个标 志位分别对应 8 位,如下: 7 6 5 4 3 2 1 0 pnifg.7 pnifg.6 pnifg.5 pnifg.4 pnifg.3 pnifg.2 pnifg.1 pnifg.0 0:没有中断发生; 1:有中断发生; 7. p1sel 和 p2sel p1 和 p2 端口功能选择寄存器 p1 和 p2 两个端口还有其他片内外设功能,考虑减少引脚,将这些功能与 芯片外的联系通过复用 p1 和 p2 引脚的方式来实现。 0:选择引脚为 i/o 端口; 1:选择引脚为外围模块功能; 2.4.2 非中断口 p0,p3,p4,p5 和 p6 这些端口除没有中断能力之外,其余功能与 p1 和 p2 一样,能实现输入/输 出和外围模块功能。每个端口有四个寄存器供用户使用。用户可通过这 4 个寄 存器对他们访问和控制。其功能特点参照 p1 和 p2 口,这里不做介绍。 2.5 看门狗定时器 第二章 msp430f449 简介 - 9 - 看门狗定时器(wdt)实质上是一个定时器,其主要功能是:当程序发生 故障时能使受控系统重新启动。如果 wdt 超过其所规定的时间,即发生系统 复位。如果系统不需要看门狗可以当定时器用,本计价器中所用即为其定时器 功能。wdt 其主体是一个 16 位计数器,需要口令才能对其操作。wdt 有一 个专门的控制寄存器,下面是 wdtctl 寄存器各位的定义: 158 7 6 5 4 3 2 1 0 口令 hold nmies nmi tmsel cntcl ssel is1 is0 is0,is1 选择 wdtcnt 的 4 个输出之一。 ssel 选择 edtctl 的时钟源。 0:选择 smclk 作为 wdtcnt 的时钟源; 1:选择 aclk 作为 wdtcnt 的时钟源; cntcl 清除 wdtcnt。 tmsel 工作模式选择。 0:工作在看门狗模式; 1:工作在定时器模式; nmi 选择rst /nmi 引脚功能,在 puc 后复位。 0:rst /nm 引脚为复位端; 1:rst /nm 引脚为边缘触发的非中断输入; nmies 在选择rst/nmi 引脚为非屏蔽中断输入时,该位选择电平的调变沿。 0:由低向高的上升沿触发 nmi 中断; 1:由高向低的下降沿触发 nmi 中断; hold 停止看门狗定时器工作。 0:wdt 功能激活; 1:时钟禁止输入计数停止; 2.6 16 位定时器 a 16 位定时器 a 是一个用途非常广泛地通用 16 位定时器 /计数器。它有以 下特点: 16 位计数器,4 种工作模式; 第二章 msp430f449 简介 - 10 - 多种可选的计数器时钟源; 具有多个可配置输入端的捕获/比较寄存器; 有 8 种输出模式的多个可配置的输出单元; 下面为 ta 的结构原理图,如图 2-3 图 2-3 timer_a 结构原理图 2.6.1 捕获/比较模块 ta 有三个相同的捕获/比较模块,每个模块都可用于捕获事件的发生的时 间或产生一定时的时间间隔,它为实时处理提供了灵活的手段。当发生捕获事 件或定时时间到都将引起中断,该模块可用于捕获模式,也可用于比较模式, 用 cctlx 中的 capx 选择模式,用 ccmx1 和 ccmx0 选择捕获条件。捕获比 较模块的结构图如图 2-4 第二章 msp430f449 简介 - 11 - 图 2-4 捕获/比较模块结构图 2.7 串行通讯 msp430f449 电路板集成了丰富的通讯模块,有常用的 232,spi,还有工 业总线 485,更有当今的仪表总线 mbus。 2.7.1 msp430f449 的 usart 通讯模块 其原理图如图 2-5: 图 2-5 usart 模块硬件框图 第二章 msp430f449 简介 - 12 - 它包括这样一部分:波特率部分、接收部分、发送部分和接口部分等。 2.7.2 spi 通讯模块 msp430f449 的 spi 通讯模块采用其集成的 usart 通讯模块 spi 方式。其 原理图如图 2-6 图 2-6 spi 通讯电路 spi 通讯采用了 449 内部集成的通用串行通信模块,您使用时时将外部的 spi 通讯线路与 j-spi 插座相连即可。 第三章 计价器硬件设计 - 13 - 第三章 计价器硬件设计 3.1 基于 msp430f449 的汽车计价器框图 如图 3-1 图 3-1 计价器总框图 3.2 键盘扫描模块 键盘在单片机系统中是一个很重要的部分。输入数据、查询和控制系统的 工作状态,都要用到键盘。键盘是单片微机最简单的输入设备,是人工干预计 算机的主要手段,与显示器同属人机通信部分。msp430按键一般为非编码按 键,非编码键盘仅提供按键开关t作状态,其它工作由软件完成,这种键盘键 数较少,硬件简单,但占用中央处理器较多时间,一般在单片机应用系统中广 泛使用。非编 码 式 键盘可分独立式键盘和行列式键盘两种。 msp430f449 为 3*4 行列矩阵键盘,该键盘电路主要是利用 msp430 单片 机的一般 i/o 口来进行扩展设计。矩阵键盘由行线和列线组成。矩阵键盘通过 扫描来实现捕获键盘的输入。所谓扫描就是单片机不断的对行线依次设置低电 平,然后检查列线的输入状态,从而确定键盘是否有输入。 第三章 计价器硬件设计 - 14 - 键盘接口采用复合模式,是将行列式按键、独立按键以及比较器欠压检测 电路集成,共用一个端口。 由原理图如图 3-2 可知,电路图功能的选通与否是通过 dip 开关 p17 来实 现的。 1. 当 dip 开关断开 此时,电路为纯粹的 4*3 行列式键盘,p1.1p1.7 分别为键盘的行线和列 线。 2. 当 8-5、9-4、10-3 合上 此时,电路为独立式按键,inc、dec、fun 分别与 p1.3、p1.2 、p1.0 连 接,可以利用 449 端口的中断功能,作为中断源或中断按键。 3. 当 11-2 合上 此时,p1.6 作为比较器欠压检测电路的输入。 在 msp430f449 单片机中, p1.4、p1.5、p1.6、p1.7 分别是键盘的列线, p1.1、p1.2、p1.3 分别是键盘的行线。列线为输入口,行线为输出口。当往行 线上输出低电平时,如果键盘中的某个键被按下,则该列线就是低电平,单片 机读取该列线上的状态就可以判断那个键被按下,这就是键盘扫描原理。 如图,当p17 的8、9、10 为off 时,dec、inc、fun 与端口无关,此 时,键盘模块为单纯的行列式扫描键盘。键盘为3*4 格局,p1.0,p1.1 ,p1.2 为行线,p1.3 ,p1.4 ,p14.5,p1.6 为列线。列线分别由上拉电阻上拉到 vcc, 在行线与列线的每一个交界处有个按键,按键的a 、b 端分别接在行线和列线 上。 下面分析在行列键盘上实现键盘的3 个步骤 1) 判断有无按键按下的判键 如果有键按下,则与之相连的行线与列线被连通,在检测是否有键按下时, 先使3 条行线p1.0 p1.2 输出低电平,读列线.p1.3p1.6。如果有按键按下, 则列线读进来的数据非全1。如果没有按键按下,则因所有列线被上拉,读入 mcu 的数据为全1。由此,可判断是否有按键被按下。 按键抖动的消除使用软件延时的办法,当检测到有按键按下时,等待10ms,再 重新检测是否有按键按下,如果有,则已经是键的稳定期了。 第三章 计价器硬件设计 - 15 - 2) 按键识别,得到键码 对于行列式矩阵键盘常使用扫描的方法识别按键。通过使条行线 p1.0 p1.2 输电平,读列线 p1.3p1.6 的办法来得知是否有按键被按下。那么可以 用同样的办法来确认究竟是哪个按键被按下。 假定“1”键被按下,那么下面的办法能找到被按下的键 使输出 p1.1 为低电平,其余为高高电平 读入列线,此时如果 p1.4 为低电平,则#键被按下,但因为没有被按下, 所以电平被上拉;再测试 p1.5,直至测试完 p1.6。 然后再使输出 p1.2 为低电平,其余为高电平 读入列线,此时如果 p1.4 为低电平,则 0 号键被按下,但因为没有被按下, 所以电平被上拉;在测试 p1.5,直至测试到 p1.6。 然后再输出 p1.3 为低电平,其余为高电平 读列线,这时会发现 p1.6 为低电平,则说明 1 号键被按下。通过上面的方 法找到了被按下案件的确切位置,但十倍案件最终要送出一个表示案件位 置的键值。观察发现,每一条行线上都通过 4 个按键于 4 条列线相连,那 么第一条列线上的 4 个案件编码为 03,则最后一条行线上的 4 个按键编 码为前一条行线上按键值加 4 就可以了,行内相邻两键值为加 1 递增,行 间每列上相邻的为加 4 递增。这样便实现了按键键值的自然顺序编码。 图 3-2 键盘电路原理图 3.3 数据采集模块 在本系统中,数据采集占有很重要的位置,它主要是通过传感器采集得到 第三章 计价器硬件设计 - 16 - 数据,然后 msp430f449 作为 cpu 从传感器读取数据,将得到的数据进行判 断然后作出相应的处理,比如接收到传感器传来的上升沿脉冲后,假设每个脉 冲代表 1m,那么每接收到一个脉冲,发生一次中断,相应作里程数就加 1 的 处理,然后在根据当前出租车起价价格及超出起价公里数以后每公里的价格, 计算所花钱数。 本系统的数据采集相对来说比较简单,由于里程传感器价格昂贵,应此在 模拟的时候采用信号发生器作为模拟前端,通过设置 p2.0 为中断口,每发来一 脉冲信号,p2.0 就中断一次,转入中断处理程序进行处理,转化为里程数。 3.4 液晶显示模块 在单片机中,需要显示系统显示工作状态活着运行结果等参数。因此,显 示是一个必不可少的部分。 led 数码管有两种,即共阴极数码管和共阳极数码管。共阳极数码管就是 公共管脚接电源,其他管脚与单片机相连接,如果单片机在这些管脚上输出高 电平 led 就会显示相应的值。共阴极数码管就是公共管脚接地,其他管脚与单 片机相连接,如果单片机在这些管脚上输出低电平 led 就会显示相应的值。 msp430f449 采用共阴极,也就是公共管脚接低电平,这样只要在阳极输 入高电平,阴极输入低电平,该段就被点亮,并显示相应的数值。 为了节约管脚,采用移位电路来实 led 的静态显示。snj74ahc373j 一个 移位寄存器,该芯片的工作电压是 23 伏左右,能够和 msp430 单片机直接 进行接口。改片有 16 个管脚,如图 3-3 所示为芯片的原理图。 图 3-2 led 引脚图 由图可知,a 、b、c 、d、 e、f、g、dp 为 led 的显示段引脚,h、m 、l 为 led 的位选引脚,低电平有效,依次对应 d2、d1 、d0 (从左到右为 d0d2) 。 第三章 计价器硬件设计 - 17 - 试验板的硬件 led 电路如图 3-4: 图 3-4 led 显示原理图 由图可知,试验板的 led 显示由 2 个 e3036-l0(共阴极) ,通过 74hc373 锁存器,用 p3.0p3.7 分别来控制 led 的显示段码与位选。 p3.0p3.7 分别对应 led 的 e、d、dp、c、g、b、f、a 。当 p4.1 为高时, u5 选通,p3 口的数据经过 u5 输出到 led。当 p4.1 为低电平时,u5 处于数据 锁存状态。此时不管 p3 口如何变化 1q8q 数据保持不变。 位选的输出 p3.0p3.5 为 led 的位选信号,分别对应 d0d5 ,其工作原理与显示代 码的输出一样,下面就可以在 d4 显示 5 为例,来说明 led 是如何工作的。 1. p4.1 为高电平 2. 输出 5 的显示代码 3dh 3. p4.1 为低电平 4. p4.0 为高电平 5. 输出 d5 的位选信号 20h 6. p4.0 为高电平 7. 输出 d5 的位选信号 20h 8. p4.0 为低电平 第三章 计价器硬件设计 - 18 - 下面给出 led 数码管的七段显示代码: 07bh 112h 24fh 37fh 436h 53dh 67dh 71bh 87fh 93fh msp430f449 通过 snj74ahc373j 的串行输出管脚来实现两个芯片的串行 级联。当显示一个数位的时候,首先应先把该位的要显示数的 7 段码送 p3 口, 然后打通 p4.1 所对应的锁存器 snj74ahc373j(1),将 p3 口中的数据送入,并 锁存。相应的将位码送入 p3 口, 然后打通 p4.0 所对应的锁存器 snj74ahc373j(2),将 p3 口中的数据送入,并锁存。这样就显示了一个数据。 多个数字可以通过循环移位显示,由于每一位显示所隔时间很短,因此,我们 看到的时一系列连续的数字。 3.5 存储模块 eeprom 24lc01b 在单片机的应用中,很多时候需要记录一些配置信息或者运行者参数,在 这种情况下,单片机需要串行存储器进行接口。单片机系统可以在开机将初始 化信息从串行存储器里读出,在程序运行的过程中,也可以记录系统运行的一 些参数。 串行存储器的硬件系统相对很简单,主要有串行存储器电路和单片机电路, 这里使用的穿行存储器为 24lc01b eeprom。首先对 24lc01b 作一下介绍: 24lc01b 与 1mii 总线兼容 低功耗 cmos 技术,电源电压 1.85.5v 128*8 位存储空间 硬件写保护功能 可进行 10 万次编程与擦写,数据可长期保存不丢失,适于数据存储和 24lc01b 共有 8 个引脚,其引脚图如图 3-5: 第三章 计价器硬件设计 - 19 - 图 3-5 24lc01b wp 写保护引脚,当他为高电平时,内部数据被硬件写保护了,不能再写 a0、a1 器件地址输入引脚。可同时连 4 个器件 scl 串行时钟输入引脚,用于产生器件收发数据所需的时钟信号 sda 双向数据引脚,用于输入输出数据,开漏输出,需上拉 24lc01b 的内部结构如图 3-6: 图 3-6 24lc01b 结构图 24lc01b 必须遵循 iic 总线协议,iic 总线协议规定如下: 只有在总线空闲时,才允许启动数据传送 再数据传送过程中,当时钟线为高电平时,数据位必须在数据线上保持稳 定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被 看作是总线的启动或停止信号 24lc01b 的操作 1)总线的启动与停止 在时钟线保持高电平时,当数据有下降沿时,总线被启动; 在时钟线保持高电平时,当数据有上升沿时,总线被停止; 2)器件寻址 24lc01b 在应用系统中被作为从器件被主器件寻址。主器件通过发送启动信 第三章 计价器硬件设计 - 20 - 号启动发送过程,然后发送它要寻址的从器件的地址。8 位从器件地址的高 5 位被固定位 10100,接下来 2 位(a1、a0)为从器件引脚的连接信息,最 低位为读写控制位。1 表示读,2 表示写。 3)应答信号 iic 总线在每成功的传送一个字节的数据后,接收器都必须产生一个应答信 号,答应的器件在第 9 个时钟周期将 sda 线拉低,表示已收到 8 位数据。 4)写操作 24lc01b 的写操作分为字节写和页写两种方式。 5)读操作 24lc01b 的读操作分为 3 种方式,分别位立即/当前地址读,随机/选择读及 连续读。 随机读不用操作器件的内部地址,要操作的地址为上次操作的地址加 1。 随即/选择读允许主器件从任意地址读出数据。 连续读可由前两种方式启动,当读到 127 时,又从 0 开始。 24lc01b 的接口电路如图 3-7: 图 3-7 24lc01b 接口电路 3.6 打印模块 在新型出租车计价器中增加的一个主要功能是打印功能。若要完成这一功 能,首先要根据计价器的特点从市场上众多类型的微型打印机中挑选出合适的 型号;其次应分析所选型号打印机的工作原理,根据它的工作原理设计并制作 第三章 计价器硬件设计 - 21 - 出打印机的硬件电路及驱动程序。 打印机是微型计算机中系统中最基本的也是最主要的输出设备。随着单片 机在自动控制领域中越来越广泛的应用,打印功能以及打印机的需求也随之增 长起来。将打印机功能应用于出租车计价器上,统一出租车行业行业使用的发 票是新型计价器发展的趋势。 打印机的种类很多,根据印字原理,可分为击打式打印机和非击打式打印 机两大类。击打式打印机就是利用机械能将字符击打在打印纸上;而非击打式 打印机则是通过非机械能,如热能、静电等方式将字符印在打印纸上。 (1) 点阵针式打印机,击打式打印机以点阵式打印机为主,这种打印机结构非 常简单,性能可靠。 在软件中加入汉字字库,则它既可打印英文字符又可 打印汉字字符。日常使用消耗低。缺点是它的价格较贵,且打印噪音声大。 (2) 字符式打印机属于击打式打印机的一种。它是将数字字符,英文字符及常 用的字符刻在一个滚筒上,通过机械方式在将需打印的字符印在打印纸上。 缺点是不能打印汉字字符。 (3) 热敏式打印机,热敏式打印机属于非击打式打印机。它的特点是无噪声, 打印出的字符质量优于针式打印机。但它的缺点是需要专门的热敏打印纸, 热敏色带,日常消耗大。 综上所述,3 种打印机各自有各自的优缺点,考虑到计价器本身的特点, 我们可以选择针式打印机。它既可以打印汉字,同时又不会在原来的基础上增 加太多的成本,比较符合实际需求。 打印机选择好以后,下一步就是关于打印机的硬件电路设计问题。首先要 取决于控制打印机的单片机。由于 msp430f449 外围模块相当丰富,因此,打 印机可用它控制。这里有一种控制方案,就是将打印程序和现有的计价程序同 时放入一个单片机,因为 msp430f449 flash 容量为 60k,因此,这里 60k 的容量足以放下所有的程序,利用 msp430f449 强大的 i/o 功能,就可以实现 与打印机的连接了。 在使用打印机打印发票前,出租车计价器的各项营运数据根据行使里程而 变动,这样在打印之前,必须要随时随地保存数据。且应该考虑到在即使是突 第三章 计价器硬件设计 - 22 - 然断电的情况下,数据也不能丢失。因此,可以利用我们的 24lc01b eeprom 作为存储器,来保存数据。 3.7 电源及复位模块 在单片机应用中必须提供复位信号,以保证单片机能够进行正确的复位, 从而进入正确的工作状态。此外,单片机也需要稳定的电压信号,因此,必须 提供电源电路。电源电路如图 3-8: 图 3-8 电源管理电路 3.8 核心模块 单片机电路作为系统处理的核心,主要完成与显示电路、键盘扫描电路、 数据采集电路、打印电路的连接,并且进行电源的管理等。对于 msp430f449 来说,p1,p2 口都具有中断功能,因此,采集霍尔型非接触式传感器信号发出 的脉冲时,可食用管脚的中断功能,这样也非常便于软件设计。本系统使用 p2.0 口的管脚来采集脉冲信号,并采用上升沿触发方式。单片机的 p3 口,p4.1,p4.0 口用来作为液晶数码管显示专用管脚,p1 口作为键盘扫描电路的行列线管脚。 第三章 计价器硬件设计 - 23 - 第四章 计价器软件设计 - 23 - 第四章 计价器软件设计 4.1 出租车计价标准 在做系统之前,我对当前淄博出租车计费标准进行了一次全面的调查。3 公里起价,价格为 6 元;在 3 至 6 公里之间,每公里 1.5 元;在 6 公里至 20 公 里之间, 每公里 1.8 元;20 公里外,每公里 2.2 元。另外每等待三分钟加 0.5 元。 4.2 出租车计价流程图 图 4-1 计价器总流程图 4.3 初始化 初始化主要是设置键盘扫描电路、显示电路、数据采集电路的端口管脚及 看门狗定时器。下面为具体程序代码: 第四章 计价器软件设计 - 24 - void initkeyport(void) p1dir=0; /设为输入方式 p1sel=0; /设为一般 i/o 端口 p2dir|=bit1; /设 p1.1,p1.2,p1.3 为输出口 p2dir|=bit2; p2dir|=bit3; p1out=0x00; /输出 00 return; 上面的程序中,设置 p1 口为输入方向 ,设置 p1.1,p1.2,p1.3 为输出口这样 就可以通过键盘的列线来判断按下了那个键。 void initledport(void) p3dir=0; /设置 p3 口方向为输出 p3sel=0; /设置 p3 为一般 i/o 端口 p3out=0x00; /清空输出寄存器 p4dir=0; /设置 p4 口方向为输入 p4sel=0; /设置 p4 为一般 i/o 端口 p4out|=0x03; /p4.0p4.1 输出 1 return; 上面的程序为 led 显示电路的管脚设置代码 ,设置了 p3 口为输出, p4.1、p4.0 为字型和字位选择口。 void initpulsport(void) p2dir=0; /p2 口设置为输入方式 p2sel=0; /选择 p2 口为一般 i/o 端口 p2ie=0; /禁止 p2 口中断 p2ies=0; /选择上升沿有效 p2ifg=0; /中断寄存器清 0 p2ie|=bit0; /p2.0 开中断 p2ies /改变为下降沿有效 return; 上面的程序中,设置 p2.0 口为中断方式,并且设置了低电平到高电平的上 升沿触发方式,这样就可以利用中断来处理脉冲的采集计数了。 4.4 中断处理 第四章 计价器软件设计 - 25 - 以中断处理包括 p2.0 的管脚处理和看门狗定时器的中断处理。p2.0 管脚中 断处理用于脉冲计数。看门狗定时器中断处理流程: 图 4-2 看门狗定时器流程图 下面为看门狗定时器中断程序具体的代码: interrupt wdt_vector void wdt_isr(void) /看门狗中断向量处理程序 counttime+; /定义以全局的 counttime 变量,来计时 second+; /每中断一次,秒加 1 if(second=60) /判断是否到 60 秒,到 60 秒后秒清零, /分加 1,然后在判断分是否到 60, second=0; /分到 60 后,进位到时,小时加 1 min=min+1; if(min=60) min=0; hour=hour+1; sendbuf(hour,4); 第四章 计价器软件设计 - 26 - sendbuf(min,2); sendbuf(second,0); 上面的程序为看门狗中断处理程序,每个 1s 看么狗中断一次,调用一次此 程序,然后 counttime 变量加 1,来计数秒数,并判断是否到 60 秒,每到 60 秒,秒清零,分钟加 1,依次到 60 分时,小时加 1,分钟数清零。 脉冲接收端口 p2.0 中断处理流程: 图 4-3 接收脉冲中断流程图 下面为看门狗定时器中断程序具体的代码: interrupt port1_vector void input_isr(void) 第四章 计价器软件设计 - 27 - if (p2ifg /计数脉冲 if (inputcount=10) /出现一个脉冲表示汽车行驶 1m s+; if(s3 /移位,准备下次打通下一个数码管 return; 上面的程序为显示程序,分为送段码和送位码。先送段码,锁存,然后送位 码,这样就显示了一位数字。然后通过移位码,显示一组数字。由于显示相隔 的时间很短,因此,看起来是连续显示的。 4.7 主程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论