久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6289|回復: 18
打印 上一主題 下一主題
收起左側

用89c51和max30100模塊測量心率

  [復制鏈接]
回帖獎勵 100 黑幣 回復本帖可獲得 10 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:274373 發(fā)表于 2018-7-1 22:07 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
網絡上只有stm32的代碼,自己改編失敗了,求溫度代碼改編為心率測試的代碼
//RCWL-0530模塊與51接口連接:
// 1:VCC   --〉   1.8V-5.5V電源
// 2:SCL   --〉   P3.5
// 3:SDA   --〉   P3.7
// 4:INT   --〉   NC
// 5:IRD   --〉   NC
// 6:RD    --〉   NC
// 7:GND   --〉   地
//-------------------------------------------------------------------------------------//
# include <reg52.h>
# include <stdio.h>
# include <intrins.h>
//定義IIC接口
sbit IIC_SCL    =P3^5;     //IIC的SCL
sbit IIC_SDA    =P3^7;     //IIC的SDA
bit  IIC_ACK;              //IIC的ACK
int  rda;                  //IIC讀出
//-------------------------------------------------------------------------------------//
//函數:    delayms()
//功能:    延時程序
//-------------------------------------------------------------------------------------//
void delayms(unsigned int ms)
{
        unsigned char i=100,j;
        for(;ms;ms--)
        {
                while(--i)
                {
                        j=10;
                        while(--j);
                }
        }
}
//-------------------------------------------------------------------------------------//
//函數:    void iic_start();
//功能:    I2C總線開始
//-------------------------------------------------------------------------------------//
//   SCL   --- --- ___
//   SDA   --- ___ ___
void iic_start()
{  
IIC_SDA=1;
_nop_();
_nop_();
IIC_SCL=1;         
_nop_();
_nop_();
IIC_SDA=0;
_nop_();
_nop_();
IIC_SCL=0;
_nop_();
_nop_();
}
//-------------------------------------------------------------------------------------//
//函數:    void iic_stop();
//功能:    I2C總線結束
//需定義:
//-------------------------------------------------------------------------------------//
//   SCL   ___ --- ---
//   SDA   ___ ___ ---
void iic_stop()
{  
IIC_SCL=0;
_nop_();
_nop_();
IIC_SDA=0;
_nop_();
_nop_();
IIC_SCL=1;
_nop_();
_nop_();
IIC_SDA=1;
_nop_();
_nop_();
}
//-------------------------------------------------------------------------------------//
//函數:    void iic_sendbyte(unsigned char c);
//功能:    發(fā)送 8_BIT 數據
//-------------------------------------------------------------------------------------//
void iic_sendbyte(unsigned char c)
{
unsigned char bitcnt;
for(bitcnt=0;bitcnt<8;bitcnt++)
{
if((c<<bitcnt)&0x80)
IIC_SDA=1;
else
IIC_SDA=0;
_nop_();
_nop_();
IIC_SCL=1;
_nop_();
_nop_();
IIC_SCL=0;
}
_nop_();
_nop_();
IIC_SDA=1;
_nop_();
_nop_();
IIC_SCL=1;
_nop_();
_nop_();
if(IIC_SDA==0)
IIC_ACK=0;
else
IIC_ACK=1;
IIC_SCL=0;
_nop_();
_nop_();
}
//-------------------------------------------------------------------------------------//
//函數:    int iic_rcvbyte_nack();
//功能:    接收 8_BIT 數據  最后ack信號
//-------------------------------------------------------------------------------------//
int iic_rcvbyte_nack()
{
unsigned char retc;
unsigned char bitcnt;
retc=0;
IIC_SDA=1;
for(bitcnt=0;bitcnt<8;bitcnt++)
{
_nop_();
_nop_();
IIC_SCL=0;
_nop_();
_nop_();
IIC_SCL=1;
_nop_();
_nop_();
retc=retc<<1;
if(IIC_SDA==1)
retc=retc+1;
_nop_();
_nop_();
}
//給出NACK信號
_nop_();
_nop_();
IIC_SCL=0;
_nop_();
_nop_();
IIC_SDA=1;
_nop_();
_nop_();
IIC_SCL=1;
_nop_();
_nop_();
IIC_SCL=0;
_nop_();
_nop_();
return(retc);
}
//-------------------------------------------------------------------------------------//
//函數:    int iic_rcvbyte_ack();
//功能:    接收 8_BIT 數據 最后ack信號
//-------------------------------------------------------------------------------------//
int iic_rcvbyte_ack()
{
unsigned char retc;
unsigned char bitcnt;
retc=0;
IIC_SDA=1;
for(bitcnt=0;bitcnt<8;bitcnt++)
{
_nop_();
_nop_();
IIC_SCL=0;
_nop_();
_nop_();
IIC_SCL=1;
_nop_();
_nop_();
retc=retc<<1;
if(IIC_SDA==1)
retc=retc+1;
_nop_();
_nop_();
}
//給出ACK信號
_nop_();
_nop_();
IIC_SCL=0;
_nop_();
_nop_();
IIC_SDA=0;
_nop_();
_nop_();
IIC_SCL=1;
_nop_();
_nop_();
IIC_SCL=0;
_nop_();
_nop_();
return(retc);
}
//-------------------------------------------------------------------------------------//
//函數:      wr_max30100_one_data()
//功能:      寫一位max30100數據
//address:   芯片從地址
//saddress:  寫寄存器地址
//w_data:    待寫數據
//-------------------------------------------------------------------------------------//
void wr_max30100_one_data(int address,int saddress,int w_data )
{
_nop_();
iic_start();
_nop_();
iic_sendbyte(address);
_nop_();
iic_sendbyte(saddress);
_nop_();
iic_sendbyte(w_data);
_nop_();
iic_stop();
_nop_();
}
//-------------------------------------------------------------------------------------//
//函數:      rd_max30100_one_data()
//功能:      讀一位max30100數據
//address:   芯片從地址
//saddress:  讀寄存器地址
//rda:       讀出的數據
//-------------------------------------------------------------------------------------//
void rd_max30100_one_data(int address,int saddress)
{
iic_start();
_nop_();
iic_sendbyte(address);
_nop_();
iic_sendbyte(saddress);
_nop_();
address=address+1;
_nop_();
iic_start();
_nop_();
iic_sendbyte(address);
_nop_();
rda=iic_rcvbyte_nack();
_nop_();
iic_stop();
}
//-------------------------------------------------------------------------------------//
//函數:      主程序
//功能:      讀max30100內部溫度
//-------------------------------------------------------------------------------------//
main()
{
double temp,temp1,temp2;
//temp       測量溫度
//temp1      30100整數部分溫度
//temp2      30100小數部分溫度
TMOD=0x21;                  
SCON=0x50;
TH1=0xE6;
TL1=0xE6;
TR1=1;                          
TI=1;   
//設置51的波特率為 1200 N 8 1
//51主頻為12MHz STC的MCU注意要選擇外部晶體振蕩
while(1)
{
//復位芯片,設置模式
wr_max30100_one_data(0xae,0x06,0x0b);  
//讀芯片ID
rd_max30100_one_data(0xae,0xff);            // 讀出芯片ID
printf("MAX30100 ID =%d\n",rda);            // 串口顯示
//點亮芯片LED
wr_max30100_one_data(0xae,0x07,0x43);       // 設置電流,點亮LED
delayms(10);   
//溫度功能測試
wr_max30100_one_data(0xae,0x09,0x66);       // 0X06地址B3位TEMP_EN置1
delayms(50);                                // 等待溫度轉換完成,不等待,讀出數據有誤
rd_max30100_one_data(0xae,0x16);            // 讀出溫度信號
printf("temp1=%d\n",rda);                   // 串口顯示
temp1=rda;
rd_max30100_one_data(0xae,0x17);            // 讀出溫度小數部分數據
printf("temp2=%d\n",rda);                   // 串口顯示
temp2=rda;
temp=temp1+(temp2*0.0625);                  // 計算溫度,小數部分最小溫度值0.0625
printf("當前溫度=%.4f\n",temp);             // 串口顯示當前溫度
delayms(100);  
printf("\n");                               // 串口顯示當前溫度
}
}



max30100.pdf

881.84 KB, 下載次數: 51

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:363209 發(fā)表于 2018-7-5 09:33 | 只看該作者
樓主得到心率代碼了嗎,我也需要一份

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:393021 發(fā)表于 2018-9-3 16:46 | 只看該作者
用max30100模塊測量心率 的STM32代碼還在嗎

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:401559 發(fā)表于 2018-9-23 14:00 | 只看該作者
樓主,請問測心率代碼還在嗎?
回復

使用道具 舉報

5#
ID:404915 發(fā)表于 2018-10-2 19:02 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

6#
ID:63090 發(fā)表于 2018-10-4 21:56 | 只看該作者
上淘寶,有很多帶51例程的現在
回復

使用道具 舉報

7#
ID:405466 發(fā)表于 2018-10-5 07:34 | 只看該作者

感謝樓主分享
回復

使用道具 舉報

8#
ID:557637 發(fā)表于 2019-6-8 11:56 | 只看該作者
樓主有測心率代碼嗎?
回復

使用道具 舉報

9#
ID:425825 發(fā)表于 2019-6-9 10:12 | 只看該作者

你好!可以采用心電芯片,實現心電圖檢測和心率顯示;
測量精度滿足實驗要求,有 PCB板 和 萬用板兩種版本;
也可以按照不同需求完成定制修改,請注明:來自51黑


回復

使用道具 舉報

10#
ID:93224 發(fā)表于 2019-6-9 17:26 | 只看該作者
這個模塊很不好用,就算你出來數據了,大部分還是錯誤的
回復

使用道具 舉報

11#
ID:545795 發(fā)表于 2019-7-18 09:05 | 只看該作者
溫度測量不準確
回復

使用道具 舉報

12#
ID:420213 發(fā)表于 2019-7-18 09:27 | 只看該作者
謝謝樓主分享的資料
回復

使用道具 舉報

13#
ID:501451 發(fā)表于 2019-12-12 15:46 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

14#
ID:627214 發(fā)表于 2019-12-14 20:07 | 只看該作者
基于51單片機心率測量電路設計 - 百度文庫 https://wenku.baidu.com/view/0ca ... 86bceb19e8ed42.html
網上找的,希望對你有幫助
回復

使用道具 舉報

15#
ID:507688 發(fā)表于 2020-2-19 19:26 | 只看該作者
求51單片機測心率的代碼
回復

使用道具 舉報

16#
ID:589541 發(fā)表于 2020-3-19 17:59 | 只看該作者
學習了,感謝樓主
回復

使用道具 舉報

17#
ID:541522 發(fā)表于 2020-5-1 15:54 | 只看該作者
求51單片機測心率的代碼,哪位大神搞出來了,幫忙發(fā)一下啊
回復

使用道具 舉報

18#
ID:896118 發(fā)表于 2021-3-24 17:43 | 只看該作者
樓主樓主,可以分享一下代碼嗎?
回復

使用道具 舉報

19#
ID:139866 發(fā)表于 2021-3-26 10:58 | 只看該作者
你用示波器看一下SDA和SCL的波形是不是符合Max30100的要求,一般都是SCL的延時出問題,主要是因為不同的單片機頻率基本不一樣,你需要看波形起伏的時間,過長過短都不行
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产91在线播放精品91 | 国产精品99久久久精品免费观看 | 日韩最新网址 | 美国黄色毛片 | 国产成人在线播放 | 国产午夜精品一区二区三区四区 | 欧美激情一区二区三级高清视频 | 日本成人在线网址 | 欧美精品久久久久 | 日韩三级视频 | 亚洲精品一二三区 | 成人自拍av| 天天操 夜夜操 | 欧美久久久久久久久 | 三级视频在线观看电影 | 欧美日韩在线电影 | 欧美二三区 | 精品国产乱码一区二区三区a | 久久久久国产 | www.日韩 | 91欧美精品成人综合在线观看 | 免费久久精品视频 | 亚洲天堂日韩精品 | jizz视频 | 日韩视频在线免费观看 | 91tv在线观看 | 九九热精品视频 | 国产乱码精品一品二品 | 日本精品一区二区 | 亚洲一区二区中文字幕在线观看 | 日韩欧美国产一区二区 | 天天干天天玩天天操 | 毛片a区| 国产第一区二区 | 一区二区不卡视频 | 午夜电影在线播放 | 亚洲视频免费在线观看 | av网站免费 | 久久一起草 | 九九热re| 欧美不卡一区二区 |