ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:1.19MB ,
资源ID:22259567      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22259567.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式课程设计课程设计报告高志付解读Word下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式课程设计课程设计报告高志付解读Word下载.docx

1、3.3.1 定时器配置 133.3.2 中断服务 153.4无线数据收发模块 153.4.1 NRF905 介绍 153.4.2 NRF905 SPI总线接口协议 163.4.3 NRF905 发送数据 163.4.4 NRF905 接收数据 17四、结束语 18五、附件(产品实物图) 20一、前言随着时代发展,社会对能源特别是电能的需求越来越大,如何节能成为了研究的重点之一。蓄电池作为电能的存储介质,广泛应用于各种场合,因此有效的对蓄电池进行监控不仅可以节约能源,还能延长电池使用寿命。目前设计便携式设备,为了满足移动性和轻便性的要求,通常采用电池供电。在使用电池供电时,电池的当前状态是用户所

2、关心的,如 MP3 播放器、手机、笔记本电脑等都实时显示电池的当前状态。为此在设计本产品时,智能电池监测系统被充分考虑。本设计的电池监测系统由 DS2438 智能电池监测片、51 单片机、液晶显示模块组成,其中核心功能是由 DS2438 智能电池监测芯片完成的。二、产品设计功能要求和结构原理图2.1 产品设计功能要求产品由 DS2438 智能电池监测芯片、51 单片机、液晶显示模块、NRF905无线收发信息模块组成。DS243 芯片完成对电池当前各种状态的监测,包括当前电池的充/ 放电状态、电压、电流、温度、剩余电量、消逝时间等参数的监测。DS2438 芯片能够自动采集这些参数,并将其放在 S

3、RAM /EEPROM 中。51 单片机根据需要发出命令读取这些参数,然后处理这些参数,显示电池状态。由于存放这些参数的 EEPROM 具有非易失性,所以本系统具有掉电保护的功能。51 单片机按照用户需要对电池状态的相应参数读取和处理,经由NRF905发射模块发送,再由用户端的NFR905接收模块接收并处理,然后送往液晶显示模块显示。单片机是整个系统的控制、处理中心。由于大量工作由单片机的软件完成,明显地降低了系统硬件复杂度。液晶显示模块显示用户需要了解的电池当前状态信息,仅仅接受单片机的控制和访问。2.2 产品总设计流程图为了满足监测的实时性,本系统单片机采用定时中断的方式访问 DS2438

4、,进行电池参数采集。首先设置单片机的计数器为定时方式,开启计数器,定时长短可随需要灵活设定。然后单片机运行其它程序,等待定时中断的到来。定时中断发生之后进入中断服务程序,调用 DS2438 的控制操作程序,进行数据采集,并将采集来的数据进行处理和显示,最后重新初始化定时中断,返回。图1 是系统总体流程图 图2 是中断服务程序流程图DS2438 与单片机进行数据通讯时仅用一根数据线,因此必须严格按照芯片的读写时序要求来编写程序,这样才能保证数据的正确读写。三、子模块程序设计3.1 电池参数采集模块3.1.1 DS2438 芯片功能介绍DS2438 芯片是 DALLAS 公司推出的新一代智能电池监

5、测芯片,具有功能强大、体积小、硬件接线简单等优点。3.1.1.1 DS2438芯片特性(1) 仅有一根双向数据线,故单片机仅需一个端口与之连接。(2) 内含数字温度传感器(免去在电池块内设装热敏电阻)。(3) 片内模数转换器可进行电池电压监测,从而可判定充电和放电的结束。(4) 片内的积分电流累加器可实时记录电池流入、流出电流的总量,便于统计电量。(5) 内含二进制格式的消逝时间表。(6) 内含 40 字节可用于存放电池特殊参数的掉电保护的用户访问存储器。3.1.1.2 芯片外围电路图3 DS2438外围电路3.1.1.3 DS2438芯片存储空间DS2438 的存储空间有 8 页,每页 8

6、个字节,共 64 个字节,每一页都有对应的高速暂存页,因此存储器包括 RAM 高速暂存器和 SRAM/EEPROM (掉电保护)两部分,这两部分是镜像关系。高速暂存器可确保在用一线通讯时数据能够保持一致性(数据写入 DS2438 时先写入高速暂存器,仅当数据被确认后,才能用暂存器复制命令将暂存页的数据写入相应的掉电保护空间中),单片机对 DS2438 进行数据读/写时只能对高速暂存器进行操作。存储空间内包括一些特殊功能寄存器和用户可使用的存储单元。下面仅对存储空间中与我们设计的实际系统有关的特殊寄存器做一下说明。(1) 状态/标志寄存器状态/标志寄存器决定了 DS2438 的工作状态,单片机通

7、过对特殊功能寄存器进行读/ 写操作,可实现 DS2438 的各种功能,因此在对其进行操作之前,必须对这一寄存器进行初始化,即对相应的控制位进行写操作。如图图4 状态/标志寄存器(2) 电流寄存器DS2438 内含一个可有效测量流入、流出电池块电流的模数转换器,电流的测量是通过测量外部传感电阻两端的电压来实现的。测量的结果存放于电流寄存器中。如图5图5 电流寄存器实际上电流寄存器存的是电压值,要得到流入、流出电池的电流可用公式 (1)行计算。 (1)(3) 电流积分累加寄存器DS2438 对电池剩余电量的测量是借助其内部的电流积分累加器( ICA )实现的。ICA 存放的是流入、流出电池总电流的

8、净累加值,因此,存储在这个寄存器内的值可用于计算电池的剩余电量。如图6图6 电流积分累加寄存器(4) 电压寄存器存放采集的电压值。DS2438 的电压输入范围是 010V ,且电压 ADC 的输入,可通过状态 / 结构寄存器的 AD 位来选择由 VDD 输入或由 VAD 输入。电压 A/D 转换的结果放在 2 字节电压寄存器中, 单位为 mV 。如图7图7 电压寄存器(5) 温度寄存器存放采集的电池温度值。DS2438 可在 -55 +125 范围内以 0.031 25的分辨率测量温度值,温度值以 2 的码形式通过 2 字节温度寄存器输出。其中符号位 S 指示温度值为正或负:S=0 ,温度值为

9、正;S=1 ,温度值为负。如图8图8 温度寄存器(6) 消逝时间记录寄存器消逝时间记录寄存器记录相对于内部基准时间的电池充电完毕、其脱离系统的精确时刻,便于用户了解电池的使用情况,正确地使用和维护电池。如图9图9消逝时间记录寄存器3.1.1.4 DS2438 单总线协议 DS2438 是 Dallas 公司基于单总线的器件。该器件的操作完全遵循单总线协议, 其 ROM 命令有 4 个。(1) 读 ROM 33H ;(2) 匹配 ROM 55H ;(3) 跳过 ROM CCH ;(4) 搜索 ROM F0H。主机在操作 DS2438 之前,必须先发送上述 4 个 ROM命令中的一个。 在 DS2

10、438 成功执行上述命令之后, 主机可使用下面的内存命令操作 DS2438 。由于 DS2438 的内存分为 7 页,故其内存操作命令和其它的单总线器件略有不同。 DS2438 的内存操作命令如下 :(1) 写高速暂存存储器 4EHXXH ;(2) 读高速暂存存储器 BEHXXH ;(3) 复制高速暂存存储器 48HXX ;(4) 恢复存储器 B8HXXH ;(5) 温度转换命令 44H ;(6) 电压转换命令 B4H。上述内存命令中的 XXH 为高速暂存存储器的页地址,有效的页码地址为 0007H 。DS2438 对高速暂存存储器的操作中,除了基本的命令外, 还必须将待操作的高速暂存存储器的

11、页地址送出去。DS2438 允许 1 次读 / 写 1 页内的全部 8 个字节,且读写字节操作可使用复位命令在任何瞬间终止。3.1.2 DS2438 初始化配置当主设备将数据线从高电平拉到低电平时(一个下降沿),写时间槽被初始化了。有两种形式的写时间槽:写 0 时间槽和写 1 时间槽。所有的写时间槽必须持续至少 60us,在此期间独立的写周期间必须有至少 1us 的恢复时间。DS2438将在 I/O 电平下降后的 15us 到 60us 这个时间窗内采样 I/O 口线。如果总线为高,则写 1,如果总线为低,则写 0。为主设备产生一个写 1 时间槽,数据线必须被拉成低电平,然后释放数据总线,在写

12、时间槽开始 15us 内,允许数据总线拉成高电平。为主设备产生一个写 0 的时间槽,数据总线必须被拉成低电平,并且在写时间槽期间保持低电平。/* 功能:配置函数* 返回值:无*/void ds2438_init( void ) reset(); /初始化 DS2438,使其准备好 WriteByte(0xcc); /跳过 ROM 匹配命令 WriteByte(0x4e); /写高速暂存命令 WriteByte(0x00); /写高速暂存地址 WriteByte(0x07); /写高速暂存数据 /初始化 DS2438,使其准备好 WriteByte(0x48); /复制高速暂存存储器 /将高速暂

13、存存储器数据复制到 SRAM Page0页 while(!DQ); /等待数据发送完成/ds2438_init3.1.3 温度参数的采集DS2438通过片上温度测量技术测量温度。能读取13位二进制补码格式的温度数据,分辨率为0.03125C。表1 描述了温度测量输出数据的确切关系。数据在单总线接口上串行传输。 DS2438 可以测量温度的范围从 -55C 到+ 125C,以 0.03125C 的增量。/*温度采样控制函数*/void ConvertT(void) /初始化芯片 WriteByte(0x44); /温度转换命令/ ConvertT3.1.4 电压参数的采集DS2438 的模数转换

14、器(ADC)有10位的分辨率,当 DS2438 收到指示它转换电压的命令时,执行转换。这个测量的结果放在 2 字节电压寄存器中。DS2438的模数转换范围是 0V 到 10V。这个范围对于六节镍镉电池或镍氢电池组或两节锂电池组来说是合适的。模数转换的满量程值是 10.23V,分辨率为10mV。电压采样控制函数void ConvertV(void) WriteByte(0xb4); /电压转换命令/ ConvertV3.1.5 电流参数的采集DS2438模数转换器以通过测量外部检测电阻两端的电压,来有效地检测流入和流出电池组的电流为特点。模数转换器将在后台以每秒 36.41 次的频率采样,因此不

15、需要命令启动电流测量。然而,DS2438 只会在状态配置寄存器中 IAD 位置 1 的时候才启动电流模数转换。3.2 电池信息显示模块3.2.1 液晶 12864 介绍带中文字库的 12864 是一种具有 4 位 /8位并行、2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864,内置 8192 个 16*16 点汉字,和 128 个 16*8 点 ASCII字符集。3.2.2 液晶 12864 协议3.2.3 液晶 12864 初始化* 函 数 名 : LCD12864_Init* 描 述 : 初始化LCD12864.* 输 入

16、: 无.* 返 回 :void LCD12864_Init() LCD_PSB = 1; /并口模式 DelayMs( 10 ); LCD_RST = 0; /复位液晶 DelayMs( 20 ); LCD_RST = 1; DelayMs( 40 );LCD12864_WriteCommand( 0x30 ); /功能设定:8位模式 DelayMs( 5 ); LCD12864_WriteCommand( 0x01 ); /清屏 DelayMs( 5 ); LCD12864_WriteCommand( 0x06 ); /位址计数器自加 LCD12864_WriteCommand( 0x0C

17、); /开显示 3.2.4 液晶 12864 写操作8位并行写时序图 LCD12864_WriteCommand。 向LCD12864写入命令。* RS = 0,RW = 0,EN下降沿将P0端口命令* 写入LCD12864。 UINT8 Cmd* 要写入的命令码。 无。void LCD12864_WriteCommand( UINT8 Cmd ) LCD12864_CheckBusy( ); /检查LCD12864是否忙 LCD_RS = 0; LCD_RW = 0; LCD_EN = 1; DATA_PORT = Cmd; DelayUs( ); /等待命令写完 LCD_EN = 0; L

18、CD12864_WriteData 向LCD12864写入数据.* RS = 1, RW = 0,EN下降沿将P0端口命令写入LCD12864。 UINT8 WrData* 要写入的数据。void LCD12864_WriteData( UINT8 WrData ) LCD_RS = 1; DATA_PORT = WrData; /等待数据写完 3.3 定时中断模块3.3.1 定时器配置52定时器主要是利用单片机内部硬件资源来实现定时器和/或计数器功能。具体应用可以用于定时、计数、测频率、测脉宽及用于串行通讯中的波特率发生器等。定时器的工作模式和定时、计数设定由软件实现,具体工作模式是由方式寄

19、存器TMOD的M0、M1决定,控制寄存器TCON是用于定时器启动及定时计数溢出判断。TCON:定时控制寄存器寄存器地址88H,位寻址8FH88H。位地址8F8E8D8C8B8A8988位符号TF1TR1TF0TR0IE1IT1IE0IT0TF0(TF1)计数溢出标志位,当计数器计数溢出时,该位置1。TR0(TR1)定时器运行控制位当TR0(TR1)0停止定时器/计数器工作当TR0(TR1)1启动定时器/计数器工作IE0(IE1)外中断请求标志位当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0。IT0(IT1)外中断请求信号方

20、式控制位当IT0(IT1)=1脉冲方式(后沿负跳有效)当IT0(IT1)0电平方式(低电平有效)此位由软件置1或清0。TF0(TF1)计数溢出标志位当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。TMOD寄存器 定时器/计数器T0T1的方式寄存器GATEC/TM1M0其中低四位定义定时器/计数器T0,高四位定义定时器/计数器T1,各位的说明:(1) GATE门控制。 GATE=1时,由外部中断引脚INT0、INT1和控制寄存器的TR0,TR1来启动定时器。

21、GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。(2) C/T功能选择位。置位时选择计数功能,清零时选择定时功能。(3) M0、M1方式选择功能。由于有2位,因此有4种工作方式M1M0 工作方式 计数器模式 TMOD(设置定时器模式) 0 0 方式0 13位计数器 TMOD=0x00 0 1 方式1 16位计数器 TMOD=0x01 1 0 方式2 自动重装8位计数器 TMOD=0x02 1 1 方式3 T0分为2个8位计数器,T1为波特率发生器 TMOD=0x03 INIT_TIMER1 初始化定时器T1.void INIT_TIMER1(void) TMOD |= 0x10

22、; / 模式1,16位定时器 TH1 = (65536 - 45872) / 256; /50ms TL1 = (65536 45872) % 256; ET1 = 1; / 定时器中断打开 EA = 1; / 总中断打开 TR1 = 1; / 定时器开关打开 3.3.2 中断服务 TIMER1 中断程序,定时时间到后重新赋值开始定时,同时将LED的状态取反。 无。void TIMER1 () interrupt 1 TH1 = ( 65536 - 45872) / 256; /50ms,定时器重新赋初值 TL1 =(65536 - 45872 ) % 256; if ( T1Count =

23、10 ) ConvFlag = 1; /查询方式,每0.5s,采样一次 if ( +T1Count = 20 ) T1Count = 0; /查询方式,每1s,读取一次数据 ReadFlag = 1; 3.4无线数据收发模块3.4.1 NRF905 介绍NRF905单片无线收发器工作在433/868/915MHZ的ISM频段。有一个完全集成的频率调制器,一个带解调器的接收器,一个功率放大器,一个晶体振荡器和一个调节器组成。ShockBurst工作模式的特点是自动产生前导码和CRC。可以很容易通过SPI接口进行编程配置。电流消耗很低,在发射功率为-10dBm时,发射电流为11mA,接收电流为12.5mA。进入POWERDOWN模式可以很容易实现省电。3.4.2 NRF905 SPI总线接口协议3.4.3 NRF905 发送数据TX时序图:/

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1