新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于AVR单片机的自行车行车记录仪,包括软硬件具体

基于AVR单片机的自行车行车记录仪,包括软硬件具体

作者:时间:2016-09-12来源:网络收藏

电机驱动电路如下图3.8所示

图3.8 打印机电机驱动

图3.8 打印机电机驱动

打印机电机驱动如上图3.8所示,信号由AVR_PRINT_ON脚输入,高电平驱动,当产生高电平时,通过三极管Q1驱动打印机打印。

打印针的驱动如下图3.9所示

图3.9 打印针驱动

图3.9 打印针驱动

AVR_PRINT_A为信号输入脚,低电平驱动,当该脚为低电平时,通过三极管Q3和Q4驱动打印针PRINT_A打印。

3.4 其它外围电路

除了以上涉及核心电路外,其它比如时间显示,数据存储,温度显示等,都分别需要不同的硬件模块提供支持。

3.4.1 时钟模块

这里时钟采用了达拉斯的DS1302时钟芯片,时钟模块电路图如图3.10所示

图3.10 DS1302时钟模块

图3.10 DS1302时钟模块

该模块采用串行工作模式,通过SCLK(Signal Clock,信号时钟), I/O(Input And Output,输入输出信号),RST(Reset 复位信号)三线控制芯片工作。

3.4.2 数据储存模块

数据存储采用了ATMEL公司的24LC64 EEPROM(可编程电可擦除存储芯片),模块电路图如图3.11所示

图3.11 EEPROM存储电路

图3.11 EEPROM存储电路

该模块采用的是标准的I2C总线模式,操作简单方便,总容量为64Kbit,8K字节,对于存储记录仪的参数是绰绰有余。

3.4.3 温度传感模块

采用的是达拉斯的DS18B20,单总线模式,模块电路图如图3.12所示

图 3.12 温度传感器模块

图 3.12 模块

温度传感器模块如上图3.1所示,DS18B20采用的是单总线模式,该数字温度传感器最大的的特点是,只需一个IO管脚便可以控制其工作,并且该传感器传感温度精确,最小可以精确到0.0625℃。

3.4.4 独立按键模块

独立按键模块是提供用户来控制和使用UI界面,原理图如下图3.13所示

图3.13 独立按键电路

图3.13 独立按键电路

独立按键电路如上图3.13所示,每个按键按下时都会产生一个中断,在设计嵌入式软件时可以通过在按键中断内判断按键值,并且可以通过定时器去除抖动,这种软件设计可以避免软件延时去抖,从而提高了整套软件的运行效率。

4. 软件系统设计

本套软件主要实现自行车行车记录的智能控制,其实现的功能主要有以下几点:

显示平均行车速度,实时行车速度,时间和温度

记录行车速度、行车总里程、单次行车里程

记录总行车时间,单次行车时间

轮胎圆周设定,总里程初值设定

自动关机,节电保护

行车统计信息打印

贪吃蛇小游戏

时间显示和时间设置

4.1 软件总体框架

软件总体流程图如下图4.1所示

图4.1 嵌入式软件整体流程图

图4.1 嵌入式软件整体流程图

4.2 软件说明

该嵌入式软件设计的思想主要是模块化的程序设计思想,其中需要驱动的模块主要有以下几点:

DS1302时钟模块驱动

DS18B20数字温度传感器模块驱动

24LC64 EEPROM存储模块驱动

12864液晶显示模块驱动

计速模块驱动

EPSON M-150II微型打点打印机驱动

软件主要包含三层结构,分别为应用层,封装层以及驱动层。其软件层次结构如下图4.2所示

图 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及以上的单片机都具有这一功能。



评论


相关推荐

技术专区

关闭