版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学年度实践学期学生实践报告年 月曰项目名称: 指导教师: 课 题:别:专业班级: 学 号: 学生姓名:本学期的小学期实践设计项目作品,为基于单片机 MCI开发箱的心率传感器开发, 该主体采用lAP 15W4K58S4型号MCU单片机作为本项目的开发系统,以及基于MAX30100芯片的传感器。电源供配采用 MCI开发箱自带的恒压电源, 数据显示采用由两片HC595动态驱动的8 个数码管。考虑到对本项目作品的使用与数据采样处理,本人采用最高具有16 位精度的MAX30100芯片传感器作为主要的心率数据采集模块,MAX30100芯片内部集成 ADC数据转换,以及多个可读写寄存器,本作品主要操作其中的
2、FIFO寄存器进行数据采集。同时MAX30100芯片传感器属于 I2C 接口器件,故在程序开发中,采用 I2C 接口协议进行。关键词:单片机MCI开发箱;MAX3O1O0传感器;HC595 FIFO寄存器;I2C ;免责申明:本报告为本人作为学生所作报告,报告中个别部分(图片、伪代码、芯片介绍等)存在局部摘取他人成果,本人已做出作品后现发出本报告纯为分享学习,不做他途,故请大家善取善用。13、项目目的1.1 、项目目的1.2 、项目目标 二、项目内容及硬件设计2.1 、系统器件介绍2.2 、各电路模块 三、软件设计3.1 、程序开发使用软件3.2 、程序流程图3.3 、代码示例( main 函
3、数部分)3.4 、算法问题及分析3.4.1、关于整体代码框架中存在的问题3.4.2、关于对MAX3010a芯片的硬件驱动3.4.3、关于在驱动 FIFO 时需要注意的细节3.4.4、关于对项目硬件调试四、总结与展望10五、附录11作品图片11一、项目目的及目标1.1 、项目目的:随着人类的科技文明发展的进步,人们越发开始关注人们自身生活的质量及健康安全,为何人而随可穿戴设备及物联网的发展, 心率统计也从此开始全面进入人们的视野及生活。们关注心率统计 ?事实上,心率数据可以反映人身的多项健康指标,诸如在睡眠情况、运动时所处状态,甚至也能根据对人身实时的心率数据来跟踪人的内心情绪的波动。也同时揭开
4、本项目的选题方向, 紧扣时代及社会热点,在设计研究上,对算法的深入, 了可穿戴设备的神秘面纱,让我们更接近实际学习应用的学习及实践。1.2 、项目目标:在本项目的设计实践中, 本小组成员都期待在硬件设计完备的基础上, 通过对 MAX30100芯片的深入,进而自主设计心率算法及软件框架来实现较为准确的心率检测。二、项目内容及硬件设计2.1、系统器件介绍:本次项目作品,主体米用MAX30100传感器芯片模块,及MCU单片机开发箱,其中该器件集成有两个 LED 一个MAX3010Q是一款集成有脉搏血氧仪和心率监测传感器的模块。光电探测器,经过优化的光学器件和低噪声模拟信号处理器,可检测脉搏血氧及心率
5、信号。MAX30100采用1.8V和3.3V的电源电压。可通过软件来关断电源,待机模式下的电流消耗量可忽略不计,因而可以始终保持电源连接。典型应用有健身辅助设备、医疗监控设备和可 穿戴设备。其中,MAX30100电路整体视图如下:MV mZ翼!頃圈:二鱼S 匡可 PV.二.so話H呻art rate旧U5十JNI區re T 亍< A * _Kt-KmdrDv.crxri h神 RC.v i h8MCU单片机开发箱,是具备 IAP15W4K58S4型号MCI芯片的单片机开发箱,箱上具有由两片HC595动态驱动的8个数码管,及4*4物理按键,及两个中断物理按键。以上两个都支持I2C接口。2.
6、2、各电路模块:三、软件设计3.1、程序开发使用软件:本项目程序开发所使用软件为Keil for C51的v4版本,及STC公司所提供的芯片烧写软件。其中,本小组在此提出几点注意事项。在本项目的程序开发过程中,本小组成员发现,在程序的功能扩展中, 对所使用的程序开发软件有一定要求。本程序代码基本超出未激活版本Keil for C51 所给的空间,所以在对代码多进行优化,同时即使节程序开发中,既要求程序开发人员对程序空间要节约使用,约使用,在程序开发末期也可能出现空间溢出,所以也要求程序开发软件处于激活状态,如 此才能得到更多的空间资源。另外在程序烧写过程中,要求操作开发人员依据程序烧写流程进行
7、,由此避免硬件不必要的损坏,及实验错误等。3.2、程序流程图:3.3 、软件设计 (main 函数部分 ) :int main() u8 i;P0M1 = 0; P0M0 = 0; / 设置为准双向口P1M1 = 0; P1M0 = 0; / 设置为准双向口P2M1 = 0; P2M0 = 0; / 设置为准双向口P3M1 = 0; P3M0 = 0; / 设置为准双向口P4M1 = 0; P4M0 = 0; / 设置为准双向口P5M1 = 0; P5M0 = 0; / 设置为准双向口P6M1 = 0; P6M0 = 0; / 设置为准双向口P7M1 = 0; P7M0 = 0; / 设置为准
8、双向口display_index = 0;/INT1 Enable/INT0 EnableIE1 = 0; /外中断 1 标志位 IE0 = 0; / 外中断 0 标志位 EX1 = 1;EX0 = 1;IT0 = 1;IT1 = 1;/INT0 下降沿中断/INT1 下降沿中断EA = 1;/允许总中断/Timer0 set as 1T, 16 bits timer auto-reload,/使用 Timer0 的 16MCU 主时钟频率时 ,自动定时于 1ms.AUXR = 0x80;位自动重装来产生 1ms 节拍 ,程序运行于这个节拍下 , 用户修改TH0 = (u8)(Timer0_R
9、eload / 256); TL0 = (u8)(Timer0_Reload % 256);ET0 = 1; /Timer0 interrupt enable TR0 = 1;EA = 1;/Timer0 run/允许总中断/Timer0_Reload Timer 0 中断频率 , 1000 次 /秒 1ms /通过 % / 分别获取高低位时钟值 u8 无符号 8 字节整型 /时钟中断使能/时钟运行for(i=0; i<8; i+) LED8i = 0x21; / 上电消隐KeyHoldCnt = 0; /键按下计时KeyCode = 0; /给用户使用的键码 , 116 有效IO_Ke
10、yState = 0;IO_KeyState1 = 0;IO_KeyHoldCnt = 0;cnt50ms = 0; msecond = 0; ns = 0;n = 0;f = 0;K = 2;Hr_state = 1;while(1)if(+cnt50ms >= 10) /20ms 扫描一次行列键盘/*/cnt50ms = 0;IO_KeyScan();if(KeyCode != 0)/有键按下if(KeyCode = 17) K = 0;if(KeyCode = 21)K = 1;if(KeyCode = 25) K = 2;KeyCode = 0;if(+msecond = 200
11、 && K = 0) msecond = 0;ReadMAX30100_Temp();DisplayMAX30100_Temp();if(+msecond = 200 && K = 1) msecond = 0;ReadMAX30100_SpO2();DisplayMAX30100_SpO2();if(f && Hr_state) f = 0;ReadMAX30100_Hr();DisplayMAX30100_Hr();3.4 、算法问题及分析:在本项目中, 由于在硬件的设计及准备上的完备, 在项目进行的过程中, 所遇见的问题 基本集中于本项目的
12、算法设计及软件程序的框架设计之上。在以下的问题列举与分析中,主要提及重要部分。3.4.1 、 关于整体代码框架中存在的问题在整体代码框架中, 如 3.2 中的程序流程图所示, 基本采用分段式的各部分模块执行而 行进,再通过时钟及外设(诸如键盘,或心率采样行为)的中断来响应及作出反馈。其中, 在时钟中断中,由于 MAX30100芯片的硬件设计,基本都存在对时钟延时的需要,一为确保采样准确,二为实现硬件的时钟响应兼容。而正由于此,当时钟延时积累超出一定范围时,对时钟中断的设计要求则不得不通过补偿方式,不断调试修正。 另外, 时钟延时也在一定程度上影响外设的响应。所以,在整体代码框架中,非常需要注意
13、在循环、中断、反馈及实际 硬件影响。342、关于对MAX30100芯片的硬件驱动:通过查看MAX30100芯片手册,以下给出关于对MAX30100关键部分的FIFO读写的伪代码。伪代码,示例如下:Pseudo-Code Example of Reading Data from FIFO/ 从 FIFO 中读取数据的伪代码示例First transaction: Get the FIFO_WR_PTR:/ 第一次交易:获得 fifo_wr_ptr :START;Send device address + write modeSend address of FIFO_WR_PTR; REPEATE
14、D_START;Send device address + read mode Read FIFO_WR_PTR;STOP;The central processor evaluates the number of samples to be read from the FIFO: / 中央处理器评估从 FIFO 读取的样本数量:NUM_A VAILABLE_SAMPLES = FIFO_WR_PTR - FIFO_RD_PTR(Note: pointer wrap around should be taken into account)NUM_SAMPLES_TO_READ =< le
15、ss than or equal to NUM_A VAILABLE_SAMPLES >Second transaction: Read NUM_SAMPLES_TO_READ samples from the FIFO: / 第二次交易:从 FIFO 读取 num_samples_to_read 样品:START;Send device address + write modeSend address of FIFO_DATA;REPEATED_START;Send device address + read modefor (i = 0; i < NUM_SAMPLES_TO_
16、READ; i+) Read FIFO_DATA;Save IR15:8;Read FIFO_DATA;Save IR7:0;Read FIFO_DATA;Save R15:8;Read FIFO_DATA;Save R7:0;STOP;Third transaction: Write to FIFO_RD_PTR register. If the second transaction was successful, / 第三次交易:写 fifo_rd_ptr 寄存器。如果第二次交易成功,FIFO_RD_PTR points to the next sample in the FIFO, an
17、d this third transaction is not necessary./ fifo_rd_ptr 指向 FIFO 的下一个样品,这第三次交易不是必要的。Otherwise, the processor updates the FIFO_RD_PTR appropriately, so that the samples are reread./ 另外,处理器适当地更新 fifo_rd_ptr ,使得样品得以重读。START;Send device address + write mode Send address of FIFO_RD_PTR;Write FIFO_RD_PTR;S
18、TOP;83.4.3 、关于在驱动 FIFO 时需要注意的细节:在写MAX30100芯片硬件驱动时主要问题在于对FIFO的操作上,在此需要注意的细节主要体现在,在使用 IIC 协议对 FIFO 的寄存器进行操作时,首先根据项目需求,如采集样本数及精度等,配置 config寄存器,接着需要对 FIFO的各个寄存器进行清零(写 0x00),其中包括写寄存器、读寄存器、计数寄存器和数据寄存器,最后才进行写操作或读操作。3.4.4 、关于对项目硬件调试在程序基本完成时, 由于要在实际环境下完成心率数据的采集及处理,所以在硬件调试中,必然根据实际测得数据,计算出实际测量误差,再由此修改调节在中断、延时、反馈、采集数量、样本精度等过程中的数据参数。硬件调试中,重点注意误差分析。本项目的实验误差,一体现在实验操作,二体现在数据处理及算法优化上。所以,在实验操作上,要求实验人员多次重复,控制操作流程;在数据处理及算法优化上, 要求程序开发人员对数据误差进行分析并由此进行修正,另外,算法优化必须建立在实际硬件基础之上, 诸如在中断、 扫描、 延时上, 需要根据实际测量结果进行优化。12四、总结与展望经过组内成员的团首先,这次小组成员一起参加本次实践确实是一次收获很大的经历, 结协作, 最终完成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护理肛裂试题讲解及答案
- 电工低压理论试题及答案
- 2025年小学生足球考试题及答案
- 2025年农业机械行业农业机械设备智能化研究报告及未来发展趋势预测
- 新员工入职培训内容规划模板
- 企业及文件管理存档系统模板
- 多项目任务管理与进度跟进系统
- 员工培训需求分析工具提升培训效果与质量
- 财务成本控制分析报告模板财务数据与趋势分析
- 培训需求分析设计模板
- 哈三中2025-2026学年高一上学期期中物理试卷和答案
- 2025江苏南通市通州区石港镇招聘便民服务中心人员2人笔试考试参考题库及答案解析
- 国开2025年《分析化学(本)》形考任务1-3答案
- 2025入党积极分子预备党员考试题库及答案(5份)
- 2025四川成都空港兴城投资集团有限公司下属企业招聘一线岗位104人考试参考题库及答案解析
- 学堂在线 高技术与现代局部战争 章节测试答案
- (高清版)DG∕TJ 08-7-2021 建筑工程交通设计及停车库(场)设置标准
- 【MOOC】油气地质与勘探-中国石油大学(华东) 中国大学慕课MOOC答案
- (正式版)QBT 8006-2024 年糕 标准
- 竣工中文说明书sync hd指南
- 国开《社区护理学(本)》形考参考试题答案
评论
0/150
提交评论