wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

多功能醫療健康手表設計制作,可測量心率,體溫 實現計步器 比賽作品

  [復制鏈接]
跳轉到指定樓層
樓主
  這是我們暑假參加比賽的作品,含源碼,實物圖,原理圖。請大家多多指教,一起學習。本作品設計了一種可以同時檢測心率和體溫,并可以實現計步功能的手表,該裝置包括單片機控制器、MLX90614紅外測溫模塊、MMA7455計步模塊、系統實時時鐘、Pulse Sensor心率模塊、OLED12864顯示模塊、nRF24L01無線通信模塊和計算機控制軟件、電源九部分。
利用MLX90614紅外測溫模塊及Pulse Sensor心率模塊采集到人的實時體溫和心率數據,通過nRF24L01無線通信模塊將采集到的數據發送到單片機控制器,經過STC89LE5A60S2微控制器進行數據處理,再將數據傳到OLED12864顯示,并通過數據線串口發送數據到電腦,然后通過LabVIEW軟件對采集到的數據進一步的處理和分析。

  同時本作品還可以將計步模塊的數據通過STC89LE5A60S2單片機送到OLED12864顯示,實現計步功能。該作品可當作一個便攜式家用醫療小系統,實時監測體溫和心率,并可實現戶外運動的計步功能,達到方便、快捷、可自由移動的目的。

實物圖計步器功能:


下面是電路原理圖:


下面是整機圖:


多功能醫療健康手表設計的所有資料下載
(里面包含2個單片機源程序,分別實現了2個功能MLX90614程序-發送-耳溫和手表顯示):
程序.rar (253.42 KB, 下載次數: 240)



計步程序jibu.h文件:
  1. #include<reg51.h>
  2. #include <intrins.h>
  3. //#define uchar unsigned char
  4. //#define uint unsigned int

  5. void KeyScan1(void);

  6. sbit Key_jibu=P2^0;

  7. #define SET_TR2 AUXR |=  0x10
  8. #define CLR_TR2 AUXR &= ~0x10

  9. #define SET_ET2 IE2 |=  0x04
  10. #define CLR_ET2 IE2 &= ~0x04


  11. //nop指令個數定義
  12. #define nops() {_nop_();_nop_();_nop_();_nop_();_nop_();}
  13. bit start_flag=0;
  14. //端口定義,可修改
  15. sbit SDA1=P1^1; //IIC數據線定義 (可自行定義引腳)
  16. sbit SCL=P1^0; //IIC時鐘線定義 (可自行定義引腳)

  17. //內部數據定義
  18. unsigned char IIC_ad_main; //器件從地址   
  19. unsigned char IIC_ad_sub;  //器件子地址            
  20. unsigned char *IIC_buf;    //發送接收數據緩沖區   
  21. unsigned char IIC_num;     //發送接收數據緩個數
  22. unsigned int step_num=0;
  23. unsigned char x1,y1,z1;
  24. int x,y,z;
  25. bit x_flag=0;  
  26. //bit z_flag=0;
  27. #define ack 1      //主應答
  28. #define no_ack 0   //從應答

  29. /*延時子程序,實現按鍵消抖功能*/
  30. void delayms( )
  31. { int i=10,j=110;
  32.   for(i=10;i>0;i--)
  33.     for(j=110;j>0;j--);
  34.   }


  35. void send232byte(unsigned char bytebuf)
  36. {
  37.         SBUF=bytebuf;
  38.         while(!TI);       
  39.     TI=0;          
  40. }

  41. void IIC_start(void){
  42.         SCL=0;
  43.         SDA1=1;
  44.         _nop_();
  45.         SCL=1;
  46.         nops();
  47.         SDA1=0;
  48.         nops();
  49.         SCL=0;
  50. }
  51. //************************************************
  52. //送停止位SDA=0->1
  53. void IIC_stop(void){
  54.         SCL=0;
  55.         _nop_();
  56.         SDA1=0;
  57.         _nop_();
  58.         SCL=1;
  59.         nops();
  60.         SDA1=1;
  61.         nops();
  62.         SCL=0;
  63. }
  64. //************************************************
  65. //主應答(包括ack:SDA=0和no_ack:SDA=0)
  66. void IIC_ack_main(bit ack_main){
  67.         SCL=0;
  68.         if(ack_main)SDA1=0; //ack主應答
  69.         else SDA1=1; //no_ack無需應答
  70.         nops();
  71.         SCL=1;
  72.         nops();
  73.         SCL=0;
  74. }
  75. //*************************************************
  76. //字節發送程序
  77. //發送c(可以是數據也可以是地址),送完后接收從應答
  78. //不考慮從應答
  79. void send_byte(unsigned char c)
  80. {
  81.         unsigned char i;
  82.         for(i=0;i<8;i++)
  83.         {
  84.                 SCL=0;
  85.                 if((c<<i) & 0x80)SDA1=1; //判斷發送位
  86.                 else SDA1=0;
  87.                 _nop_();
  88.                 SCL=1;
  89.                 nops();
  90.                 SCL=0;
  91.        
  92.         nops();
  93.         SCL=0;
  94.         }
  95.         nops();
  96.         SDA1=1; //發送完8bit,釋放總線準備接受應答位
  97.         _nop_();
  98.         SCL=1;
  99.         nops(); //sda上數據即是從應答位
  100.         SCL=0; //不考慮從應答但要控制好時序
  101. }
  102. //**************************************************
  103. //字節接收程序
  104. //接受器件傳來的數據,此程序應配合主應答函數IIC-ack main()使用
  105. //return: uchar型1字節
  106. unsigned char read_byte(void){
  107. unsigned char i;
  108. unsigned char c;
  109.         c=0;
  110.         SCL=0;
  111.         _nop_();
  112.         SDA1=1; //置數據線為輸入方式
  113.         for(i=0;i<8;i++){
  114.                 _nop_();
  115.                 SCL=0; //置時鐘線為低,準備接收數據位
  116.                 nops();
  117.                 SCL=1; //置時鐘線為高,使數據線上數據有效
  118.                 _nop_();
  119.                 c<<=1;
  120.                 if(SDA1)c+=1; //讀數據位,將接收的數據存c
  121.         }
  122.         SCL=0;
  123.         return c;
  124. }
  125. //***************************************************
  126. //向無子地址器件發送單字節數據
  127. void send_to_byte(unsigned char ad_main,unsigned char c){
  128.         IIC_start();
  129.         send_byte(ad_main); //發送器件地址
  130.         send_byte(c); //發送數據c
  131.         IIC_stop();
  132. }
  133. //***************************************************
  134. //向有子地址器件發送多字節數據
  135. void send_to_nbyte(unsigned char ad_main,unsigned char ad_sub,unsigned char *buf,unsigned char num)
  136. {   unsigned char i;
  137.     IIC_start();
  138.         send_byte(ad_main); //發送器件地址
  139.         send_byte(ad_sub); //發送器件子地址
  140.         for(i=0;i<num;i++){
  141.                 send_byte(*buf); //發送數據buf
  142.                 buf++;
  143.         }
  144.         IIC_stop();
  145. }
  146. //***************************************************
  147. //從無子地址器件讀單字節數據
  148. //function:器件地址,所讀數據存在接收緩沖區當前字節
  149. void read_from_byte(unsigned char ad_main,unsigned char *buf){
  150.         IIC_start();
  151.         send_byte(ad_main); //發送器件
  152.         *buf=read_byte();
  153.         IIC_ack_main(no_ack); //無需應答<no_ack=0>
  154.         IIC_stop();
  155.         }
  156. //***************************************************
  157. //從有子地址器件讀多個字節數據
  158. //function:
  159. void read_from_nbyte(unsigned char ad_main,unsigned char ad_sub,unsigned char *buf,unsigned char num){
  160.         unsigned char i;
  161.         IIC_start();
  162.         send_byte(ad_main);
  163.         send_byte(ad_sub);
  164.         for(i=0;i<num-1;i++){
  165.                 *buf=read_byte();
  166.                 IIC_ack_main(ack); //,主應答<ack=1>
  167.                 buf++;
  168.         }
  169.         *buf=read_byte;
  170.         buf++; //本次指針調整無意義,目的是操作后buf指向下一地址
  171.         IIC_ack_main(no_ack); //無需應答<no_ack=0>
  172.         IIC_stop();
  173. }


  174. unsigned char MMA7455_readbyte(unsigned char address)
  175. {
  176. unsigned char ret = 100;
  177.         IIC_start();                //啟動
  178.         send_byte(0x3A);        //寫入設備ID及寫信號
  179.         send_byte(address);        //X地址
  180.         IIC_start();                //重新發送開始
  181.         send_byte(0x3B);        //寫入設備ID及讀信號
  182.         ret = read_byte();        //讀取一字節
  183.         IIC_stop();

  184.         return ret;
  185. }

  186. //寫入
  187. void MMA7455_writebyte(unsigned char address, unsigned char thedata)
  188. {
  189.         IIC_start();                //啟動
  190.         send_byte(0x3A);        //寫入設備ID及寫信號
  191.         send_byte(address);        //X地址
  192.         send_byte(thedata);        //寫入設備ID及讀信號
  193.         IIC_stop();
  194. }

  195. //初始化
  196. //初始化為指定模式
  197. void MMA7455_init()
  198. {  //2g輸出 測量模式
  199.         MMA7455_writebyte(0x16, 0x05);
  200.         //根據實際環境修改校驗值
  201.         /*MMA7455_writebyte(0x10,0x10);//校正X值
  202.         MMA7455_writebyte(0x12,0x30);//校正Y值
  203.         MMA7455_writebyte(0x14,0x00);//校正Z值 */
  204. }
  205. /************************顯示程序**********************************/
  206. void display()
  207. {
  208.   if (step_num/10000>0)         //萬
  209.    OLED_ShowNum(0+8*5,4,step_num/10000,1,8*16);
  210.   else
  211.    OLED_ShowNum(0+8*5,4,0,1,8*16);
  212.       if (step_num/1000>0)        //千
  213.         OLED_ShowNum(0+8*6,4,step_num%10000/1000,1,8*16);
  214.      else
  215.         OLED_ShowNum(0+8*6,4,0,1,8*16);          
  216.                      if (step_num/100>0)        //百
  217.              OLED_ShowNum(0+8*7,4,step_num%1000/100,1,8*16);
  218.           else
  219.              OLED_ShowNum(0+8*7,4,0,1,8*16);
  220.                          if (step_num/10>0)        //十
  221.              OLED_ShowNum(0+8*8,4,step_num%100/10,1,8*16);
  222.           else
  223.              OLED_ShowNum(0+8*8,4,0,1,8*16);
  224.                          //個
  225.                         OLED_ShowNum(0+8*9,4,step_num%10,1,8*16);                    
  226. }

  227. /************讀取重力信息**************/
  228. void Dat_dispose()
  229. {
  230.            if(start_flag)
  231.      {  x1=MMA7455_readbyte(0x06);
  232.             y1=MMA7455_readbyte(0x07);
  233.         z1=MMA7455_readbyte(0x08);
  234.           }
  235.            x=x1;
  236.          y=y1;
  237.          z=z1;
  238.          if((x&0x80)==0x00)
  239.          { x=(int)((x*196)/127); //轉變成加速度值
  240.          }
  241.          else {  x=255-x;
  242.                  x=(int)((x*196)/127);//轉變成加速度值
  243.                          x=(-1)*x;
  244.                    }
  245.          if((y&0x80)==0x00)
  246.          { y=(int)((y*196)/127); //轉變成加速度值
  247.          }
  248.          else {  y=255-y;
  249.                  y=(int)((y*196)/127);//轉變成加速度值
  250.                          y=(-1)*y;
  251.                    }
  252.          if((z&0x80)==0x00)
  253.          { z=(int)(((z-10)*196)/127); //轉變成加速度值
  254.          }
  255.          else {  z=255-z;
  256.                  z=(int)(((z+12)*196)/127);//轉變成加速度值
  257.                          z=(-1)*z;
  258.                    }

  259.          if(start_flag)
  260.           {
  261.            if(y>30&&x_flag==0&&z>70&&z<100)
  262.              {x_flag=1;
  263.                   step_num++;}
  264.                 else if(y<0)
  265.                 {  x_flag=0;}
  266.            }
  267.           else x_flag=0;
  268. }

復制代碼


主程序:
  1. #include "REG51.h"
  2. #include "OLED.h"
  3. //#include "bmp.h"
  4. #include "DS1302.h"
  5. #include "NRF24L01.h"
  6. #include "key_deal.h"
  7. #include "MMA7455.h"


  8. #define false 0
  9. #define true 1
  10. #define FOSC 11059200L                //系統時鐘
  11. #define BAUD 115200                                //波特率
  12. #define T0MS (65536-FOSC/12/500)                //500HZ in 12T MODE

  13. #define ADC_POWER 0x80                        //ADC POWER CONTROL BIT
  14. #define ADC_FLAG 0x10                        //ADC COMPLETE FLAG
  15. #define ADC_START 0x08;                        //ADC START CONTROL BIT
  16. #define ADC_SPEEDLL 0x00                //540 CLOCKS
  17. #define ADC_SPEEDL 0x20                        //360 CLOCKS
  18. #define ADC_SPEEDH 0x40                        //180 CLOCKS
  19. #define ADC_SPEEDHH 0x60                //90 CLOCKS
  20. #define ADC_MASK 0x01


  21. void ADC_init(unsigned char channel);
  22. void InitTimer0(void);
  23. unsigned char ReturnPulse(void);
  24. unsigned int analogRead(unsigned char channel);
  25. unsigned char PulsePin = 5;       // Pulse Sensor purple wire connected to analog pin 0(P1.0為傳感器輸入口)
  26. int fadeRate = 0;                 // used to fade LED on with PWM on fadePin
  27. unsigned char pp1;
  28. unsigned char pp0;
  29. unsigned char pp2;
  30. unsigned char pp3;
  31. unsigned int PL1=0;

  32. void UART_init(void);
  33. void Send(void);

  34. // these variables are volatile because they are used during the interrupt service routine!
  35. volatile unsigned int BPM;                   // used to hold the pulse rate
  36. volatile unsigned int Signal;                // holds the incoming raw data
  37. volatile unsigned int IBI = 600;             // holds the time between beats, must be seeded!
  38. volatile bit Pulse = false;     // true when pulse wave is high, false when it's low
  39. volatile bit QS = false;        // becomes true when Arduoino finds a beat.
  40. volatile int rate[10];                    // array to hold last ten IBI values
  41. volatile unsigned long sampleCounter = 0;          // used to determine pulse timing
  42. volatile unsigned long lastBeatTime = 0;           // used to find IBI
  43. volatile int Peak =512;                      // used to find peak in pulse wave, seeded
  44. volatile int Trough = 512;                     // used to find trough in pulse wave, seeded
  45. volatile int thresh = 512;                // used to find instant moment of heart beat, seeded
  46. volatile int amp = 100;                   // used to hold amplitude of pulse waveform, seeded
  47. volatile bit firstBeat = true;        // used to seed rate array so we startup with reasonable BPM
  48. volatile bit secondBeat = false;      // used to seed rate array so we startup with reasonable BPM
  49. static unsigned char order=0;
  50. unsigned char DisBuff[4]={0};

  51. void Int0_Init(void);
  52. //void Int1_Init(void);
  53. void Display_Init(void);


  54. static unsigned char data temp[10];
  55. bit data T0_FLAG=0;
  56. bit data key_flag;
  57. bit data key_flag1;
  58. unsigned int mode1 = 0;

  59. void delay(unsigned int n)
  60. {
  61.         unsigned int i,j;
  62.         for(i=0;i<n;i++)
  63.                 for(j=0;j<100;j++);
  64. }



  65. int main(void)
  66. {             //u8 t;
  67.                 //delay_init();                     //延時函數初始化          
  68.         //        NVIC_Configuration();          //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級         LED_Init();                             //LED端口初始化
  69.                 OLED_Init();                        //初始化OLED
  70.                 Ds1302_Init();
  71.                 InitTimer0();
  72.                 Display_Init();
  73.                 ADC_init(PulsePin);
  74.                 //InitTimer1();
  75.                 Int0_Init();
  76.                 init_NRF24L01();
  77.                 SetRX_Mode();
  78.                 UART_init();
  79.                 //Int1_Init();       

  80.     while(1)
  81.         {
  82.              delay_ms(10);

  83.             Ds1302_Read_Time();
  84.            /*判斷按鍵2是否啟動測試*/
  85.                 if(0 == Key_Down)               
  86.             {
  87.                  delay_ms(100);
  88.                  if(0 == Key_Down)
  89.             {
  90.              mode1=mode1+1;
  91.                  }
  92.                  }
  93.                  
  94.                                 /*        測心率        */
  95.                 if(mode1==1)
  96.                 {
  97.                          OLED_ShowCHinese(0,0,0);  //心
  98.                 OLED_ShowCHinese(16,0,1); //率
  99.                 OLED_ShowString(32,0,":");
  100.                         OLED_ShowCHinese(0,2,2);  //體
  101.                 OLED_ShowCHinese(16,2,3);  //溫
  102.                 OLED_ShowString(32,2,":");
  103.                                        
  104.                 if (QS == true&&PL1>1000)
  105.                 {                       // Quantified Self flag is true when arduino finds a heartbeat
  106.                                
  107.                 QS = false;
  108.                     delay(100);
  109.                         OLED_ShowNum(0+8*5,0,DisBuff[2],1,8*16);         //百位顯示
  110.                         OLED_ShowNum(0+8*6,0,DisBuff[1],1,8*16);                                         //個十位顯示
  111.                         OLED_ShowNum(0+8*7,0,DisBuff[0],1,8*16);
  112.                     OLED_ShowString(64,0,"bpm");
  113.                                  
  114.                                   ///判斷是否異常
  115.                         if((DisBuff[1]*10+DisBuff[0])<100&&(DisBuff[1]*10+DisBuff[0])>=60&&DisBuff[2]!=1)          
  116.                         {
  117.                          OLED_ShowCHinese(0+8*12,0,24);         //正常
  118.                          OLED_ShowCHinese(0+8*14,0,26);
  119.                         }
  120.                         else if(DisBuff[1]==0&&DisBuff[2]==0&&DisBuff[0]==0)
  121.                         {        
  122.                            OLED_ShowCHinese(0+8*12,0,29);           //空
  123.                            OLED_ShowCHinese(0+8*14,0,29);
  124.                          }
  125.                         else
  126.                         {
  127.                          OLED_ShowCHinese(0+8*12,0,25);                //異常
  128.                          OLED_ShowCHinese(0+8*14,0,26);
  129.                         }               
  130.                          
  131.                          }
  132.           delay(138);                         //  take a break 19.6ms

  133.                   /*溫度測量 */
  134.                    if(nRF24L01_RxPacket(temp)&&PL1>1000)  //接收溫度
  135.                 {
  136.                         SetTX_Mode();
  137.                         delay(100);                                          
  138.                         OLED_ShowString(56,2,".");
  139.                         OLED_ShowCHinese(72,2,19);
  140.                     OLED_ShowNum(0+8*5,2,temp[3]%100/10,1,8*16);   //temp[3]存放十位
  141.                         OLED_ShowNum(0+8*6,2,temp[3]%10,1,8*16);             //個位
  142.                         OLED_ShowNum(0+8*8,2,temp[2]%100/10,1,8*16);                //temp[2]存放小數位
  143.                             if(temp[3]>=36&&temp[3]<38)
  144.                             {
  145.                               OLED_ShowCHinese(0+8*12,2,24);
  146.                               OLED_ShowCHinese(0+8*14,2,26);
  147.                              }
  148.                                 else
  149.                                    {
  150.                                       OLED_ShowCHinese(0+8*12,2,25);
  151.                                       OLED_ShowCHinese(0+8*14,2,26);
  152.                                            }  
  153.                         temp[4] = ReturnPulse();
  154.                         nRF24L01_TxPacket(temp);
  155.                         SetRX_Mode();
  156.                                
  157.            }   
  158.                 if(PL1>1000)
  159.                  {
  160.                 PL1=0;
  161.                 Send();
  162.                 }
  163.            }
  164.            if(mode1>=3)
  165.            {                                                                      
  166.                     mode1=0;
  167.                         OLED_ShowCHinese(0,0,29); //心
  168.                         OLED_ShowCHinese(16,0,29);        //率
  169.                         OLED_ShowCHinese(32,0,29);
  170.                         OLED_ShowCHinese(64,0,29);
  171.                         OLED_ShowCHinese(72,0,29);
  172.                         OLED_ShowCHinese(48,0,29);
  173.                         OLED_ShowCHinese(56,0,29);
  174.                         OLED_ShowCHinese(40,0,29);
  175.                         OLED_ShowCHinese(0+8*12,0,29);
  176.                         OLED_ShowCHinese(0+8*14,0,29);
  177.                        
  178.                                          
  179.                         OLED_ShowCHinese(0,2,29); //
  180.                         OLED_ShowCHinese(16,2,29);        //
  181.                         OLED_ShowCHinese(32,2,29);
  182.                         OLED_ShowCHinese(72,2,29);
  183.                         OLED_ShowCHinese(64,2,29);
  184.                         OLED_ShowCHinese(48,2,29);
  185.                         OLED_ShowCHinese(56,2,29);
  186.                         OLED_ShowCHinese(40,2,29);
  187.                         OLED_ShowCHinese(0+8*12,2,29);       
  188.                         OLED_ShowCHinese(0+8*14,2,29);
  189.           
  190.                 }
  191.                                      
  192.                                 OLED_ShowNum(0+8*10,4,time_buf1[6]/10,1,8*16);                  
  193.                                 OLED_ShowNum(0+8*11,4,time_buf1[6]%10,1,8*16);
  194.                                 if(0 == time_buf1[6])
  195.                                 {
  196.                             OLED_ShowNum(0+8*7,4,time_buf1[5]/10,1,8*16);
  197.                                 OLED_ShowNum(0+8*8,4,time_buf1[5]%10,1,8*16);
  198.                                         if(0 == time_buf1[5])
  199.                                         {
  200.                                             EA = 0;                                                //////
  201.                                                 OLED_ShowNum(0+8*4,4,time_buf1[4]/10,1,8*16);
  202.                                                 OLED_ShowNum(0+8*5,4,time_buf1[4]%10,1,8*16);
  203.                                                 if(0 == time_buf1[4])                                                 
  204.                                                 {                                       
  205.                                                         OLED_ShowNum(0+8*9,6,time_buf1[3]/10,1,8*16);
  206.                                                         OLED_ShowNum(0+8*10,6,time_buf1[3]%10,1,8*16);
  207.                                                         OLED_ShowCHinese(8*12,6,WEEK[time_buf1[7]]);
  208.                                                         if(0 == time_buf1[3])
  209.                                                         {
  210.                                                                         OLED_ShowNum(0+8*6,6,time_buf1[2]/10,1,8*16);
  211.                                                                         OLED_ShowNum(0+8*7,6,time_buf1[2]%10,1,8*16);
  212.                                                                 if(0 == time_buf1[2])
  213.                                                                 {
  214.                                                                         OLED_ShowNum(0+8*3,6,time_buf1[1]/10,1,8*16);
  215.                                                                         OLED_ShowNum(0+8*4,6,time_buf1[1]%10,1,8*16);
  216.                                                                 }               
  217.                                                         }
  218.                                                 }
  219.                                        
  220.                                                 InitTimer0();  //每隔一小時,重新初始化一次                               
  221.                                         }
  222.                   
  223.                                                 }
  224.                         /*        時間調整/計步按鍵判斷        */
  225.                                                                 //按鍵判斷
  226.                         if(key_flag == 1) //進入按鍵掃描
  227.                         {
  228.                                 KeyScan();
  229.                                 key_flag = 0;
  230.                                 mode1=0;
  231.                         }
  232.                                  
  233.                        
  234.                         }                 
  235.                         }
  236.                        
  237. …………余下代碼請下載附件……
復制代碼

評分

參與人數 7黑幣 +133 收起 理由
nmhhjzl + 10 贊一個!
lwf1 + 8 很給力!
yangxiaochen + 5 很給力!
chenyan + 1
飛飛藍鳥 + 5 共享資料的黑幣獎勵!
send + 4 絕世好帖!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:138247 發表于 2017-3-8 13:43 | 只看該作者
不錯喲。。。
回復

使用道具 舉報

板凳
ID:151348 發表于 2017-3-8 21:11 | 只看該作者
還不錯,功能也多
回復

使用道具 舉報

地板
ID:170098 發表于 2017-3-12 15:20 | 只看該作者
多向你們學習
回復

使用道具 舉報

5#
ID:170098 發表于 2017-3-12 15:27 | 只看該作者
如果你還喜歡健身,那么你就會很想做一個這東西了
回復

使用道具 舉報

6#
ID:185155 發表于 2017-3-31 17:53 | 只看該作者
你好  請問你的心律儀在哪里買的 型號是?
回復

使用道具 舉報

7#
ID:185155 發表于 2017-3-31 17:54 | 只看該作者
你好  請問你的心律儀是在哪里買的
回復

使用道具 舉報

8#
ID:138931 發表于 2017-4-2 15:07 | 只看該作者
如果能加上心電監測就好了
回復

使用道具 舉報

9#
ID:159521 發表于 2017-4-24 15:36 | 只看該作者
樓主,能發一下電路原理圖嗎?1327342081@qq.com,不勝感激
回復

使用道具 舉報

10#
ID:194844 發表于 2017-5-4 19:06 | 只看該作者
如果能加上心電監測就好了
回復

使用道具 舉報

11#
ID:285299 發表于 2018-3-2 10:58 | 只看該作者
厲害   很給力啊
回復

使用道具 舉報

12#
ID:275610 發表于 2018-3-13 20:29 | 只看該作者
若能連接手機app顯示心電圖就太棒了
回復

使用道具 舉報

13#
ID:248186 發表于 2018-3-21 16:55 | 只看該作者
厲害啊
回復

使用道具 舉報

14#
ID:295949 發表于 2018-3-23 15:06 來自觸屏版 | 只看該作者
要想鏈接手機app要怎么做啊
回復

使用道具 舉報

15#
ID:82765 發表于 2018-3-23 18:41 | 只看該作者
DDbong 發表于 2018-3-23 15:06
要想鏈接手機app要怎么做啊

你好!如果手機APP顯示,要用 WIFI 或 藍牙模塊來實現;
可以加我QQ,完成方案設計
回復

使用道具 舉報

16#
ID:297504 發表于 2018-3-26 20:49 | 只看該作者
厲害厲害
回復

使用道具 舉報

17#
ID:335251 發表于 2018-7-9 15:59 | 只看該作者
請問你的心律儀是在哪里買的
回復

使用道具 舉報

18#
ID:380389 發表于 2018-7-29 10:06 來自觸屏版 | 只看該作者
很有實用價值,感謝分享
回復

使用道具 舉報

19#
ID:380519 發表于 2018-7-29 16:06 | 只看該作者
謝謝分享,感覺你這個肯定獲獎了把。很不錯
回復

使用道具 舉報

20#
ID:370943 發表于 2018-9-18 14:59 | 只看該作者
謝謝分享,使用價值很高,很不錯的設計
回復

使用道具 舉報

21#
ID:403698 發表于 2018-9-28 17:24 | 只看該作者
cjjcjj1 發表于 2018-3-23 18:41
你好!如果手機APP顯示,要用 WIFI 或 藍牙模塊來實現;
可以加我QQ,完成方案設計

有償急需設計一款只有計步功能的,速聯系我,電話:13930396692
回復

使用道具 舉報

22#
ID:284488 發表于 2019-3-25 09:55 | 只看該作者
下載,學習了。
回復

使用道具 舉報

23#
ID:503407 發表于 2019-4-7 23:54 | 只看該作者
謝謝分享,很不錯的
回復

使用道具 舉報

24#
ID:65956 發表于 2019-4-8 09:35 | 只看該作者
不錯的想法,不錯的設計,但體積和電池續航問題怎樣呢?
回復

使用道具 舉報

25#
ID:743099 發表于 2020-5-3 00:58 | 只看該作者
labview文件可以發嗎
回復

使用道具 舉報

26#
無效樓層,該帖已經被刪除
27#
ID:961921 發表于 2021-8-31 14:45 | 只看該作者
感謝博主的干貨
回復

使用道具 舉報

28#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
久久久久免费精品国产| 午夜剧场在线免费观看| 综合网中文字幕| 亚洲成av人片在线观看无码| 日韩av在线播放中文字幕| 亚洲视频自拍| 色影视在线观看| 国产高清一级片| 性色av一区二区三区四区| 国产精品扒开腿做爽爽| 久久国产成人精品国产成人亚洲| 5g国产欧美日韩视频| 国产亚洲精品va在线观看| 欧美日韩午夜激情| 久久影院视频免费| 亚洲综合丁香| 日韩片欧美片| 日本成人精品| 精精国产xxx在线视频app| 天堂av中文在线资源库| 免费观看h片| 中国女人内谢69xxxx免费视频| 国产一级免费视频| 中文字幕在线观看二区| 在线免费黄色小视频| 大伊香蕉精品视频在线| 玖玖玖精品中文字幕| 国产精品www| 欧美精品精品精品精品免费| 日韩成人性视频| 欧美男男青年gay1069videost| 国产精品萝li| 91视频免费播放| 精品一二三四区| 日韩视频久久| 欧美日本三区| 日韩欧美中字| 免费成人av| 澳门精品久久国产| 91视频亚洲| 亚洲一区站长工具| 欧美videos另类精品| 电影在线高清| 天堂中文在线资| www.久久久久久久| 欧美亚洲精品在线| 久久国内精品| 97人人爽人人澡人人精品| 国产中文字幕在线看| 全部孕妇毛片丰满孕妇孕| 芬兰videosfree性少妇| 国产美女自拍视频| 亚洲国产成人在人网站天堂| 国产极品久久久| 中文字幕一区二区久久人妻| 日日骚av一区二区| 久久精品视频1| 日韩乱码在线观看| 国产真实乱人偷精品视频| 欧洲美女女同性互添| 亚洲午夜久久久久久久国产| 中文字幕一二三四区| 精品国产人妻一区二区三区| av av在线| 色男人天堂av| 日韩大尺度视频| 男女视频在线观看网站| 在线观看中文av| 黄色av电影网站| 国产不卡一二三| 国产美女喷水视频| 亚洲综合欧美综合| 日本一级特级毛片视频| 91嫩草|国产丨精品入口| 国产黄色小视频网站| 波多野结衣亚洲色图| 国产一级一级片| 99久久久无码国产精品免费蜜柚| 日韩精品成人免费观看视频| 日韩av免费播放| 国产浮力第一页| 中国人xxxxx69免费视频| 伊人影院蕉久552| 国产精品臀控福利在线观看| 免费看美剧网站| 色偷偷亚洲女人天堂观看欧| 日本欧洲一区| 成人在线免费公开观看视频| 最爽无遮挡行房视频在线| 丰满的护士2在线观看高清| 在线精品亚洲欧美日韩国产| 久久精品国产精品亚洲毛片| 亚洲日本va| 欧美色就是色| 亚洲高清av| 激情综合色播五月| av动漫一区二区| 综合久久综合久久| 欧美性极品xxxx做受| 7777精品伊人久久久大香线蕉的 | 日韩av网址大全| 色综合咪咪久久网| 亚洲深夜福利| 国产成人亚洲综合a∨婷婷图片| 久久综合成人精品亚洲另类欧美| 亚洲欧美另类小说| 欧美精品xxxxbbbb| 中文字幕一精品亚洲无线一区| 高清一区二区三区日本久| 91精品久久久久久久久久另类| 欧美12av| 欧美 日韩精品| 国产精品手机在线观看| 久久久久久久福利| 亚洲va天堂va欧美ⅴa在线| 97精品高清一区二区三区| 激情六月丁香| 18av在线播放| 国产精品调教| 亚洲一区欧美二区| 91蝌蚪porny九色| 欧美日韩国产精品一区二区不卡中文| 日韩女优电影在线观看| 久久久久久久久国产| 99电影网电视剧在线观看| h无码动漫在线观看| 国产chinese中国hdxxxx| 日韩一区二区视频在线| 亚洲精品影院在线| 中文字幕高清在线| 国产另类xxxxhd高清| 久久亚洲专区| 粉嫩久久99精品久久久久久夜| 一区二区三区精品| 日韩精品中文字幕在线| 国产日韩专区在线| 久久人人爽人人爽人人av| 在线 丝袜 欧美 日韩 制服| 中文字幕无线码一区| 免费在线观看a| 免费在线看黄| 图片婷婷一区| 国产一区二区免费视频| 图片区日韩欧美亚洲| 中文字幕日韩在线播放| 国产传媒一区二区三区| 午夜剧场在线免费观看| 亚洲高清毛片一区二区| 91看片免费版| 97电影在线看视频| 视频小说一区二区| 国产精品一二三| 欧美午夜片在线看| 欧洲成人性视频| 天堂8在线天堂资源bt| 婷婷国产成人精品视频| 狠狠鲁男人天堂| 成a人片在线观看www视频| 精品三级av在线导航| 视频二区不卡| 国产精品人人爽人人做我的可爱| 成人欧美一区二区三区小说| 日韩成人在线视频| 岛国一区二区三区高清视频| 老司机午夜性大片| 无码人妻一区二区三区线| 8mav在线| 日韩毛片在线| 日韩在线一区二区| 欧美视频中文字幕在线| 久久久久久午夜| 成人av在线播放观看| 国产精品久久久免费看| 欧美xxx在线| 蜜臀av在线播放| 激情一区二区| 亚瑟在线精品视频| 5566成人精品视频免费| 亚洲自偷自拍熟女另类| 久久99精品波多结衣一区| www视频完整版| 日韩黄色三级在线观看| 成人亚洲综合天堂| 精品精品99| 成人免费一区二区三区视频 | 国产又猛又黄的视频| 一级做a爰片久久毛片| 国产福利电影网| 免费看久久久| 国产精品免费aⅴ片在线观看| 日韩一级裸体免费视频| 伊人久久av导航| 欧美成人精品欧美一级私黄| jiuse九色最新地址| 精品国产亚洲一区二区三区在线| 国产91综合网| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲高清123| 久草国产在线观看| av免费看大片| 性欧美xxxx免费岛国不卡电影| 久久精品人人爽人人爽| www.久久色.com| av免费播放网址| a毛片在线免费观看| 日本中文字幕视频在线| 国产精品hd| 欧美另类久久久品| 国产伦精品一区二区三区视频免费| 欧美图片一区二区| 尤物在线观看视频| 亚洲1区在线观看| 亚洲国产精品传媒在线观看| 欧美美女操人视频| 亚洲色图久久久| 污视频网站免费观看| 91九色国产在线播放| 狠狠狠色丁香婷婷综合久久五月| 亚洲欧美日韩精品久久亚洲区| 国产一二三四区在线观看| 波多野结衣视频在线看| 国产玉足榨精视频在线观看| 亚洲美女一区| 精品国产不卡一区二区三区| 中文字幕一区二区三区精彩视频| 精品在线播放视频| www 日韩| 久久电影网电视剧免费观看| 中文字幕综合一区| 国产91色在线观看| 精品国产高清自在线一区二区三区 | 国产999在线观看| 中文在线永久免费观看| 污污视频免费看| 性人久久久久| 欧美综合视频在线观看| 日韩av电影免费播放| 99久久精品国产亚洲| 成人av电影观看| 国内精品伊人久久久久av一坑| 日韩在线小视频| 中文 日韩 欧美| 九九九热视频| 国产精品99一区二区三| 91精品国产欧美一区二区18| 欧美这里只有精品| 男女午夜激烈无遮挡| 日韩精品成人| 欧美日韩精品二区| 手机成人在线| 国产欧美日韩综合精品一区二区三区| caoprom在线| 国产色婷婷亚洲99精品小说| 国产在线播放不卡| 黄色一级片网址| 天天舔天天干天天操| 99综合久久| 狠狠久久亚洲欧美专区| 亚洲欧美在线网| 四季av日韩精品一区| 日本一区二区三区视频在线看| 五月天国产精品| 免费看啪啪网站| 亚洲剧场午夜在线观看| 成人资源在线| 欧美日韩不卡在线| 国产视频九色蝌蚪| 91九色porn蝌蚪| 亚洲色图二区| 中文字幕亚洲色图| 五十路六十路七十路熟婆 | 99re66热这里只有精品8| 日韩欧美国产电影| 国产精品久久a| www天堂网| 久久国产日本精品| 91成人国产在线观看| 麻豆明星ai换脸视频| 91九色在线porn| 久久综合九色欧美综合狠狠| 亚洲美女视频在线观看| 日韩精品欧美在线| 亚洲三区在线播放| 伊人久久大香线蕉av不卡| 欧美成人vps| 亚洲欧美天堂在线| 原千岁中文字幕| 国模无码大尺度一区二区三区| 91av在线免费观看视频| 国产真实乱偷精品视频| 日本不卡一二三| 一本到一区二区三区| 97在线免费视频观看| 最新一本之道波多野结衣| 欧美特黄一区| 久久久亚洲精选| 日韩在线视频免费播放| 亚洲一区av| 欧美高清性hdvideosex| 永久免费的av网站| 一不卡在线视频| www.av亚洲| 欧美激情第六页| 寂寞护士中文字幕mp4| 久久久久国产精品| 欧美日本在线视频中文字字幕| 欧美日韩在线观看免费| 成人免费短视频| 欧美福利电影网| 中文字幕色网站| a√资源在线| 一区二区三区资源| 精品国产免费av| 最色在线观看| 中文字幕欧美一| 国产av人人夜夜澡人人爽麻豆| h视频在线观看免费网站| 精品一区二区影视| 久久精品中文字幕一区二区三区| 日韩色级片先锋影音| 欧美福利在线| 国产精品国产亚洲伊人久久| 国产熟女一区二区三区四区| 青草国产精品| 欧美一区二区.| 亚洲乱码在线观看| 极品av少妇一区二区| 国产日韩在线看片| 中文字幕乱在线伦视频中文字幕乱码在线 | yjizz视频网站在线播放| 亚洲人亚洲人成电影网站色| 国产a级片网站| 在线看片免费人成视久网| 日韩码欧中文字| 91香蕉视频污版| 国产在线91| 日韩欧美在线观看视频| 免费黄视频在线观看| 婷婷在线播放| 欧美一区二区三区视频在线观看| 国产美女精品久久| 成人免费在线观看视频| 国产亚洲欧美aaaa| 一级片视频在线观看| 精品免费在线| 国产精品久久久久久久久久久新郎| 色婷婷av一区二区三| 性欧美长视频| 欧美精品123| free亚洲| 亚洲视频1区2区| 黄页网站在线看| 狠狠搞狠狠干| 99re这里只有精品首页| 欧美中日韩在线| 亚洲人av在线| 欧美日韩亚洲精品内裤| 精品黑人一区二区三区观看时间| 丝袜美腿一区| 日韩亚洲欧美中文高清在线| 中文字幕制服诱惑| 亚洲激情黄色| 久久久久久久有限公司| 91麻豆福利| 五月婷婷综合网| www.色天使| 中文字幕视频精品一区二区三区| 欧美日韩xxx| 熟妇人妻av无码一区二区三区| 蜜臀久久久久久久| 亚洲AV无码成人精品一区| 亚洲私人影吧| 欧美精品一级二级| 国产无套内射又大又猛又粗又爽| 精品久久中文| 国产精品.com| 嫩模私拍啪啪| 色一情一伦一子一伦一区| 乱老熟女一区二区三区| 欧美亚洲精品在线| 国产日韩三区| 中文字幕视频在线观看| 精品视频一区三区九区| 欧美成欧美va| 青青青免费视频在线2| 一区二区三区中文字幕电影 | 99亚洲精品视频| 自拍视频在线网| 日韩精品免费在线视频观看| 亚洲网站免费观看| 久久成人av少妇免费| 99精品视频播放| 怡红院成人在线| 高清欧美电影在线| 五月婷婷丁香激情| 亚洲综合网站在线观看| 欧产日产国产v| 精品动漫av| av网站大全免费| 中文不卡1区2区3区|