基于AVR单片机的自行车行车记录仪,软硬件协同
示平均行车速度,实时行车速度,时间和温度
记录行车速度、行车总里程、单次行车里程
记录总行车时间,单次行车时间
轮胎圆周设定,总里程初值设定
自动关机,节电保护
行车统计信息打印
贪吃蛇小游戏
时间显示和时间设置
4.1 软件总体框架
软件总体流程图如下图4.1所示
图4.1 嵌入式软件整体流程图
4.2 软件说明
该嵌入式软件设计的思想主要是模块化的程序设计思想,其中需要驱动的模块主要有以下几点:
DS1302时钟模块驱动
DS18B20数字温度传感器模块驱动
24LC64 EEPROM存储模块驱动
12864液晶显示模块驱动
霍尔传感器计速模块驱动
EPSON M-150II微型打点打印机驱动
软件主要包含三层结构,分别为应用层,封装层以及驱动层。其软件层次结构如下图4.2所示
图 4.2 嵌入式软件层次结构
这种软件设计的好处是便于移植,当更换某一芯片时,只需要改变相应芯片的驱动层,而不用修改封装和应用层,便可以使软件继续正常运转。
而如果更换单片机这一核心元件,也只需更改所有的驱动层便可以把软件移植到其它单片机平台,在编写涉及到硬件的代码时,可以尽量使用宏定义或者编写多层结构,使底层硬件操作的代码达到最少,从而方便移植。
4.3 各个模块实现原理
4.3.1 处理器模块
首先在选择CPU(Central Processing Unit,计算机中央处理器)之前,必须先分析完成这个作品所选的CPU必须具备的功能,如果CPU选的功能太过简单就不能达到预期的效果,很多东西不能实现,而如果选择很先进的CPU或者32位的高级单片机,首先第一个是不能充分利用这个单片机,第二是在成本上也会大幅上升,所以在选择单片机时必须对所需要的功能进行合理的分析。
分析情况:
在显示方面使用的是12864液晶的带字库液晶,该液晶操作简单,只需普通的IO端口操作便可以解决控制,所以它对单片机没有特殊的要求。
在存储方面,使用的是ATMEL公司的AT24LC64 EEPROM存储器,该存储器走的是IIC(ATMEL公司开发的两线串行总线)总线模式,虽然可以用一般的单片机模拟IIC总线,但是为了提高效率则必须选择具有IIC总线接口的单片机,这个一般的51单片机已经不能满足,所以需考虑其它单片机。
时钟模块,用的是达拉斯的DS1302芯片,只需普通的端口操作就能完成。
打印机模块,有下面的打印机实现原理(图4.5)可知,我们必须选择具有双边沿触发的单片机,有这个功能的单片机ATMEL的AVR系列的中高端单片机能满足,比如Atmega64及以上的单片机都具有这一功能。
霍尔传感器,霍尔传感器测速必须具有两个内置外设,一个是外部下降沿中断,一个是内部定时器。
内存空间要求:在做用户界面以及制作贪吃蛇等游戏时都必须开很大的缓存,所以必须具备一定的内存容量,初步估计需要2K内存以上。
由以上6点分析,这里我选择了ATMEL公司的AVR系列单片机Atmega64,该款单片机价格便宜,功能强大,能满足上面7点的全部要求。其资源如下:
工作于16M时性能高达16MIPS,速度快
64K flash程序代码空间
4K 的内部SRAM,足够满足UI界面以及其他的缓存
内置IIC和SPI总线接口
8路外部中断,有4路能实现双边沿中断
3路定时急速器(2路8位,1路16位)
两个串行USART口
53个普通IO端口(大部分复用)
由以上八点可以看出,该款单片机完全能够满足这个产品需要的功能,并且Atmega64为基于RSIC结构的8位低功耗CMOS微处理器,降低功耗,是做行车记录仪的首选单片机。
结论:最终选择的单片机为ATMEL公司的Atmega64八位高性能单片机。
4.3.2 用户UI界面原理
在这个嵌入式软件中,最关键也是最富有挑战的便是用户界面,即菜单系统,如果只是用简单的switch,case语句,那在三层菜单的基础上,那将会是一个非常庞大的代码,并且可读性差,维护十分困难,当需要增加或则删减菜单时都是一件非常痛苦的事情。
通过各种资料的搜索与整理,并且通过自己的改良,用了一种基于节点编号的方法实现了这个菜单系统。
首先、菜单是有层次的,并且每一层菜单都有不同的不同的条数,比如第一层菜单有四条,第一层菜单第一条的子菜单都3条,而第一层菜单第二条的子菜单有2条。
加入以个十百来标识菜单所在的层次,以每一位的大小来标识当前菜单再当前层次的条数,则可以推断出每条菜单都有一个唯一的ID,我们称之为节点。
基于节点编号的菜单系统的结构如下图4.3所示
图4.3 基于节点编号的菜单系统结构
结构分析:菜单系统结构图如上图4.3所示,可见很明显,菜单为3层菜单结构,第一层总共有两条菜单,其编号分别是1和2,在例如在第三层中节点编号为133的菜单,由该节点知,该条菜单再当前层次的第三条,并且位于上层菜单的第三
行车记录仪 ATmega64 打印机 液晶 Prote 霍尔传感器 相关文章:
- 基于AVR单片机的自行车行车记录仪,包括软硬件具体方案(06-03)
- 基于AVR单片机的自行车行车记录仪,包括软硬件具体(09-12)
- DIY智能家居:基于AVR的智能节能插排的系统解决方案(04-16)
- 基于AVR的智能信息记录仪设计(03-25)
- 能不能好好搬砖了?这机器人效率太高(12-13)
- 步进电机在打印机驱动器的应用(12-13)