自行车里程计(5)

2019-04-16 16:11

且有着直接的倍数关系。

作为一种非易失性存储器(NVM),24系列EEPROM使用的很普遍,一般作为数据量不太大的数据存储器。下面总结一下其应用的一些要点。从命名上看,24CXX中XX的单位是kbit,如24C08,其存储容量为8k bit,即1k Byte=1024 Byte。 一、工作条件 1.工作电压(VCC) 24CXX: 4.5V-5.5V 24CXX-W:2.5V-5.5V 24CXX-R: 1.8V-5.5V 2. 输入电平定义(VIH,VIL) VIH:0.7VCC-VCC+1 VIL:-0.45V-0.3VCC 二、硬件连接

1.上拉电阻RP的取值

由于I2C总线电容要满足小于400pf的条件。从以下波形可以看出,上拉电阻越大,总线的电容越小,可以实现的数据传输率就越大,可达400khz。 2.写保护脚

芯片写保护脚是高电平有效,即WP接高电平时禁止写入

三、读写时序

EEPROM一般在电路中做存储器件,以下的发送和接收都是针对主器件说明的,开始和结束条件也是由主器件发出。 1、单字节写操作

START->发送器件地址->ack->发送字节地址->ack->发送数据->ack-> STOP 2、按“页”写操作,“页”是指高位地址一样一组数据,对于24C01/02/04/08/16,一页数据为16字节,一页指高四位地址一样的一组数据。对于24C32/24C64,一页数据为32字节,一页指高11位地址一样的一组数据。

START->发送器件地址->ack->发送页首地址->ack->发送数据->ack.........-> 发送数据->ack -> STOP 3、随机单字节读操作

START->发送器件地址(写)->ack->发送字节地址->ack->START->发送器件地

20

址(读)->ack->接收数据->noack->STOP

4、当前单字节读操作,“当前”指的是前面进行过读操作,但是没有STOP,芯片内部“指针”指的字节即为“当前”字节。

START->发送器件地址(读)->ack->接收数据->noack->STOP 2.3.5 报警电路的设计

如图2.17所示为单片机控制的声光报警电路。

C3+5VQ4R94.7K100pR88.2KPNPRSTTXDD3LS1R12330GND 图2.17 声光报警电路

工作原理:在通电状态下RST引脚一直保持高电平,使AT89C52一直保持复位状态。电容C3的作用是,一旦VCC电位突然降低或断电,能保护片内RAM中的信息不丢失,恢复电后能正常工作。三极管PNP在此电路中相当于开关作用,当TXD端输出为高电平时,PNP处于截止区(相当于断路);当TXD端输出为低电平时,三级管处于饱和区(相当于短路),所以喇叭和LED就处于导通状态。

21

第三章 软件设计

3.1 软件实现的功能

1. 利用霍尔传感器产生里程数的脉冲信号

2. 利用单片机自带的计数器T1对霍尔传感器脉冲信号进行计数 3. 对数据进行处理,要求用LED显示里程总数和即时速度 4. 自行车超速,系统发出报警信号,指示灯闪烁

3.2 系统主要程序的设计

1.初始化程序

主要工作:将T1设为外部控制定时器方式;外中断0及外中断1设为边沿触发方式;将部分内存单元清零;设置轮子周长;开中断及定时器;将EEPROM中的数据调入内存等。 2.轮圈设置出错处理程序

P1.2、P1.3、P1.6、P1.7端口的开关用于设定轮子的周长,当没有设定时(至少让一个开关闭合),能从P3.1口输出一个周期为0.5s的方波信号,用作发光管闪烁及信号响器提醒。 3.主程序

主程序根据P3.0口的开关状态选择里程显示或速度显示。 图3.1所示为主程序框图。

开始 初始化 P3.0=1? Y 显示里程 N 显示速度 图3.1 主程序框图

22

4、里程计数程序

外中断0服务程序用于对12脚输入的圈脉冲进行计数,为十六进制计数器。60H为低位,62H为高位。每计数一次后,对里程数据进行一次存储操作。

图3.2所示为里程处理子程序框图。

关速度指示灯,开里程指示灯 调圈数转换为公里数 显示公里数 返回 图3.2 里程处理子程序框图

5、外中断1服务程序

外中断1服务程序用于处理轮子转动一圈后的计时数据。当标志位(00H)为1时,说明计数器溢出,放入最大时间值(为#0FFH);当标志位为0时,将计H、数单元(TL1、TH1、6CH、6DH)的值放入68H~6BH单元。

图3.3所示为速度处理子程序框图。

关里程指示灯,开速度指示灯 调每圈时间转换为速度 是否超速 Y 报警 N 关报警 显示速度 返回 图3.3 速度处理子程序框图

6、EEPROM存取程序

23

本系统使用归一化I2C串口存取子程序,使用一条数据线和时钟线,采用ATMEL公司的24C01串口存储器,应用简单方便。 7、显示子程序

当显示里程时,先要将圈数计数器中的数据进行运算,求出总里程。当要显示速度时,要将轮子的周长和转一圈的时间数相除,然后换算成km/h单位。最后放入70H~73H,进行数据的显示。

3.3 源程序

ORG 0000H

LJMP START ORG 0003H LJMP INTEX0 ORG 000BH RETI ORG 0013H LJMP INTEX1 ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH RETI CLEARMEN: MOV TMOD,#90H MOV SB,#75H SETB PX0 SETB IT0 SETB IT1 CLR A MOV 20H,A MOV 6CH,A

24


自行车里程计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015湖南省公务员面试高分必备临危不乱是一种能力

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: