课题:出租车计价器一、预备知识(1)SPCE061A端口设置方法(2)SPCE061A定时器使用方法(3)SPCE061A内部Flash的读写方法(4)凌阳单片机汇编语言或C语言编写基础(5)LED数码管的显示原理(6)微型打印机的使用方法二、课程设计目的单片机学习不仅仅需要掌握单片机本身的用法,其外围器件:显示界面如LED数码管,发光二极管、液晶等,控制器件如键盘等都是需要掌握和灵活应用的。在计程器设计题目中还涉及到了微型打印机设备。本课程设计以凌阳单片机系统板-61板为基础进行设计开发,其基本要求是:1.熟悉单片机系统板基本构成;2.掌握LED数码管显示原理及使用方法;3.掌握单片机系统板的使用方法;4.初步掌握单片机汇编语言一般编程技巧;5.初步掌握单片机系统调试的一般步骤及方法;6.掌握微型打印机的控制方法。三、课程设计任务设计要求:利用SPCE061A单片机配合SPLC501液晶模组,实现基本的出租车计价器功能。具体规格如下:1.里程计量a)单片机对传感器脉冲进行计数(传感器脉冲使用SPCE061A内部PWM输出模拟),并将脉冲数换算成公里数;b)每公里对应的脉冲数PulsePerKM可以调整。2.费用计算)费用计算包括两部分:行驶费用和低速等待费用;b)行驶费用计算如下:白天行驶里程不足StartMilege(三公里)时,费用按照起步价StartPrice(¥10.0元)计算;当超出StartMilege时,行驶费用=StartPrice+(行驶里程-StartMilege)×每公里的单价;夜晚行驶里程不足StartMilege时,费用按照起步价NightStartPrice(¥11.0元)计算;当超出StartMilege时,行驶费用=NightStartPrice+(行驶里程-StartMilete)×每公里的单价;c)每公里的单价根据时间区分为白天和黑夜两种价格。白天每公里价格为PricePerKM(¥2.0元),晚上每公里价格为NightPricePerKM(¥2.4元);d)依靠时间判断白天和黑夜,晚上NightTime1(23点)之后,认为进入夜行状态,早上NightTime2(5点)之后,认为离开夜行状态,进入昼行状态;e)如果行驶里程超过LongWayLimit(十三公里),则超出的里程的单价上涨为原单价的LongWayPrice(1.5)倍,做为空返费用。f)上面提到的StartMilege、StartPrice、NightStartPrice、PricePerKM、NightPricePerKM、LongWayLimit、LongWayPrice、NightTime1、NightTime2等参数要求可以在程序中调整;g)低速等待费用计算如下:i.低速等待时间的计时方法为:当车速低于WaitSpeed1(五公里/时)时开始计时,车速超过WaitSpeed2(十公里/时)时终止计时;ii.如果行驶过程中多次发生低速等待,则等待时间累加;iii.总的等待时间不超过FirstWaitTimeLimit(五分钟),则不计算费用;iv.总的等待时间超过FirstWaitTimeLimit(五分钟),增加WaitPrice(¥2.0)元,同时,超出的时间按照每WaitTimeLimit(三分钟)增加WaitPrice(¥2.0)元计算,不足WaitTimeLimit(三分钟)的部分不增加费用。即,iceWaitmitWaitTimeLiimeLimitFirstWaitTiceWaitPrPr×−+=等待时间等待费用;v.上面提到的WaitSpeed1、WaitSpeed2、FirstWaitTimeLimit、WaitTimeLimit、WaitPrice等参数要求可以在程序中调整;h)要求系统可以在行驶期间实时检测并计算总的费用(包括行驶费用和等待费用)。)用户通过三个按键进行操作,并通过液晶显示器显示当前的行驶状态、行驶公里、时间、费用等信息,参考显示界面如图1.1所示b)空车状态下,液晶显示器可以显示日期、时间等信息;c)按下61板上的Key3键时,进入行驶状态,启动里程计量,并播报欢迎语提示音;d)行驶状态下,液晶显示器显示“行驶”以指示当前出租车的状态,并可以实时显示当前的单价、行驶里程、低速等待时间、总的费用等信息;e)行驶状态下,再次按下Key3时停止里程计量,并播报当前行驶里程及总的费用,此时,液晶显示器保持单价、里程、低速时间、金额等信息,此后,按下Key1键可以将显示信息归零;f)在空车状态下,按下Key2键可以进入日期时间设定状态,通过Key2键切换设置项,Key3和Key1增/减数值,从而实现对日期时间的设定;硬件框图系统以SPCE061A为核心,外扩SPLC501液晶模组,使用PWM模拟传感器脉冲输入,实现里程计量,并按照现行出租车计价系统计算行驶费用。硬件连接图:系统软件设计本系统软件中包括下面程序模块:主程序:初始化系统涉及到的硬件模块,扫描键盘,根据按键启动/停止里程测量,并调用用户界面程序定时更新日期时间显示,实时更新单价、里程、低速时间、费用等信息显示;液晶驱动程序:LCD显示驱动程序,实现文本、图形显示等功能。按键扫描程序:扫描按键,返回扫描结果。语音播放程序:播放提示音,行驶里程、费用等。计价管理程序:完成传感器脉冲计量,然后转换为公里数,并根据规则计算对应的费用,同时,监测行驶速度,统计低速时间,计算低速等待费用,提供液晶显示更新函数,以便主函数可以控制更新用户界面以及行驶里程、费用等信息的显示。该模块包括PWM管理程序、里程计量程序、时间管理程序、费用管理程序、用户界面控制程序等部分。:程序运行后首先初始化各个硬件部件,同时打开1KHz和2Hz时基中断,为键盘扫描和时间管理模块服务。然后,程序进入主循环,不断进行按键扫描,并根据按键启动/停止里程计量,或进入系统设置模式。在主循环中同时还对时间显示进行更新。设计说明1、微型打印机控制原理打印机是人们日常生活、办公时常见的一种外围设备,目前市面上主要有喷墨式、激光式和感热式打印机。激光打印机的速度快,但结构复杂成本高,喷墨式打印机比较适合在办公场合使用,而感热式打印机以其小巧、方便、灵活、打印质量高等方面的优点,在近几年的发展中已成为市场占有率较高的一类打印机,其中在人们日常生活中常见的有货票车、飞机票、登机牌、药检单、商业条码,商业服务业的标签、票据等等。此处我们采用的就是感热式打印机,它的工作原理就是把打印头压在受热后会改变颜色的白色热敏记录纸上,然后在控制电路的控制下,打印头上的发热元件瞬时发热,这些热量很快传导到热敏记录纸上,使记录纸改变颜色从而形成文字或图案。微型打印机与主机连接方式一般有两种,一种是并口连接,一种是串口连接。并口连接优点是速度快,但是占用端口资源;串口连接优点是节省端口资源但是速度慢。此处我们采用的是串口连接方式的热敏打印机。部分微型打印机已经含有字符库和字库,我们只要根据字符所在地址直接调用即可。WH153SA式热敏打印机具体的性能见下表:关于WH153SA微型打印机打印命令见《热敏打印机使用说明书》。2、显示部分原理图及说明LED显示器结构基本的半导体数码管是由七个条状发光二极管芯片按下图排列而成的。可实现0~9的显示用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。关于LED数码管的外围电路一般需要一个限流电阻和加大驱动电流的晶体管。常用的连接方式有如下四种:LED数码管是由发光二级管显示字段组成的显示器,有8段和“米”字段之分,这种显示器有共阳级和共阴极两种。所谓共阳方式是指笔画显示器各段发光管的阳极(即P区)是公共的,而阴极互相隔离。所谓共阴方式是笔画显示器各段发光管的阴极(即N区)是公共的,而阳极是互相隔离的。共阴极共阳极此处采用的是共阳极LED3、系统原理图及说明根据题目要求,系统结构框图如下:、扩展板原理图及说明扩展板只需提供6个LED数码管就可以完成此次设计,微型打印机直接连接SPCE061A板的端口就可以,61板上已经含有三个按键。下图采用的是共阴极的LED数码管。扩展板与61板接口三、课程设计的程序框图1、程序框图有三个按键:KEY1功能:KEY1按键奇数次,为模拟出租车开始行驶,按偶数次为模拟出租车到站,语音播报到站提示,并有微型打印机打印清单。因为是模拟行驶状态,因此里程是根据时间来累加的。每一分钟为100米。KEY2功能:翻屏键,从年月日、时分秒、单价、里程、金额逐屏显示。KEY3功能:查询键,查询历史记录,逐条的进行查询从第一条的年月日、时分秒、单价、里程、金额;第二条年月日、时分秒、单价、里程、金额。系统状态:空闲状态、计程状态、打印状态。系统只有在空闲状态时,可以进行历史记录的查询。打印状态时进行语音播报所有数据并对数据进行保存。计程状态主要是对里程和金额的计算。数据存储到SPCE061A的32K字Flash空间中。存储格式为系统软件设计本系统软件中包括下面程序模块:主程序:初始化系统涉及到的硬件模块,扫描键盘,根据按键启动/停止里程测量,并调用用户界面程序定时更新日期时间显示,实时更新单价、里程、低速时间、费用等信息显示;液晶驱动程序:LCD显示驱动程序,实现文本、图形显示等功能。按键扫描程序:扫描按键,返回扫描结果。语音播放程序:播放提示音,行驶里程、费用等。计价管理程序:完成传感器脉冲计量,然后转换为公里数,并根据规则计算对应的费用,同时,监测行驶速度,统计低速时间,计算低速等待费用,提供液晶显示更新函数,以便主函数可以控制更新用户界面以及行驶里程、费用等信息的显示。该模块包括PWM管理程序、里程计量程序、时间管理程序、费用管理程序、用户界面控制程序等部分。3.1主程序主程序流程如图3.1:程序运行后首先初始化各个硬件部件,同时打开1KHz和2Hz时基中断,为键盘扫描和时间管理模块服务。然后,程序进入主循环,不断进行按键扫描,并根据按键启动/停止里程计量,或进入系统设置模式。在主循环中同时还对时间显示进行更新。四、课程设计总结课程设计使我将理论知识与实际真正结合了起来,经过本次掌握了凌阳单片机的编程方法以及部分外围设备的使用方法,凌阳单片机关键技术也有