0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于單片機(jī)的可語(yǔ)音播報(bào)的脈搏檢測(cè)儀設(shè)計(jì)

白茶茶668 ? 來(lái)源:白茶茶668 ? 作者:白茶茶668 ? 2023-08-01 00:54 ? 次閱讀

設(shè)計(jì)功能:

1.ST188光電傳感器檢測(cè)脈搏信號(hào),并有脈搏信號(hào)指示燈;

2.具有溫度檢測(cè)功能,可檢測(cè)人體溫度,溫度傳感器為DS18B20;

3.脈搏和溫度檢測(cè)完成后,LCD1602會(huì)顯示當(dāng)前溫度和脈搏數(shù)值;

4.增加語(yǔ)音播報(bào)功能,顯示完成后可語(yǔ)音播報(bào)脈搏和溫度數(shù)值;

5.按鍵可設(shè)置脈搏檢測(cè)的安全范圍;

6.超出所設(shè)安全范圍時(shí),蜂鳴器報(bào)警;

wKgZomTH5y-AOrPLAASYOv82_XA059.png

部分程序:

#include //調(diào)用單片機(jī)頭文件

#define uchar unsigned char //無(wú)符號(hào)字符型 宏定義 變量范圍0~255

#define uint unsigned int //無(wú)符號(hào)整型 宏定義 變量范圍0~65535

#include


bit flag_300ms ;

bit q;


uchar menu_1=0; //菜單設(shè)計(jì)的變量

sbit beep = P3^7; //蜂鳴器IO口定義

uchar flag_200ms ;

/***********************語(yǔ)音模塊控制IO口的定義************************/

sbit VRST = P2^4;

sbit VBUSY= P2^0;

sbit VSDA = P2^1;

sbit VCS = P2^2;

sbit VSCL = P2^3;

uchar yujing[3];


uchar code table_num[]="0123456789abcdefg";


sbit rs=P1^0; //寄存器選擇信號(hào) H:數(shù)據(jù)寄存器 L:指令寄存器

sbit rw=P1^1; //寄存器選擇信號(hào) H:數(shù)據(jù)寄存器 L:指令寄存器

sbit e =P1^2; //片選信號(hào) 下降沿觸發(fā)


unsigned char i=0,timecount=0,displayOK=0,rate=0,aa=0;

unsigned int time[6]={0};

uchar rate_l=50,rate_h=120; //心跳報(bào)警值


sbit dq = P3^3; //18b20 IO口的定義


uint temperature ; //


/***********************1ms延時(shí)函數(shù)*****************************/

void delay_1ms(uint q)

{

uint i,j;

for(i=0;i

for(j=0;j<110;j++);

}


void delay_uint(uint q)

{

while(q--);

}


void write_com(uchar com)

{

delay_uint(25);

e=0;

rs=0;

rw=0;

delay_uint(25);

e=1;

P0=com;

delay_uint(100);

e=0;

}


void write_data(uchar dat)

{

delay_uint(25);

e=0;

rs=1;

rw=0;

delay_uint(25);

e=1;

P0=dat;

delay_uint(100);

e=0;

rs=0;

}


void write_string(uchar hang,uchar add,uchar *p)

{

if(hang==1)

write_com(0x80+add);

else

write_com(0x80+0x40+add);

while(1)

{

if(*p == '?') break;

write_data(*p);

p++;

}

}



/*****************控制光標(biāo)函數(shù)********************/

void write_guangbiao(uchar hang,uchar add,uchar date)

{

if(hang == 1)

write_com(0x80+add);

else

write_com(0x80+0x40+add);

if(date == 1)

{

write_com(0x0f); //顯示光標(biāo)并且閃爍

}

else

write_com(0x0c); //關(guān)閉光標(biāo)

}



/***********************lcd1602上顯示兩位十進(jìn)制數(shù)************************/

void write_sfm3(uchar hang,uchar add,uint date)

{

if(hang==1)

write_com(0x80+add);

else

write_com(0x80+0x40+add);

write_data(0x30+date/100%10);

write_data(0x30+date/10%10);

write_data(0x30+date%10);

}


void write_sfm4(uchar hang,uchar add,uint date)

{

if(hang==1)

write_com(0x80+add);

else

write_com(0x80+0x40+add);

write_data(0x30+date/100);

write_data(0x30+date%100/10);

write_data('.');

//write_data(0x30+(date%100)/10);

write_data(0x30+(date%100)%10);

}

/***********************lcd1602初始化設(shè)置************************/

void init_1602()

{

write_com(0x38);

write_com(0x0c);

write_com(0x06);

delay_uint(1000);

write_string(1,0," 000/min 00. ");

write_string(2,0," H:000 L:000 ");

write_sfm3(2,4,rate_h);

write_sfm3(2,11,rate_l);

}



/***********************18b20初始化函數(shù)*****************************/

void init_18b20()

{

//bit q;

dq = 1; //把總線(xiàn)拿高

delay_uint(2); //15us

dq = 0; //給復(fù)位脈沖

delay_uint(80); //750us

dq = 1; //把總線(xiàn)拿高 等待

delay_uint(10); //110us

q = dq; //讀取18b20初始化信號(hào)

delay_uint(40); //200us

dq = 1; //把總線(xiàn)拿高 釋放總線(xiàn)

}


/*************寫(xiě)18b20內(nèi)的數(shù)據(jù)***************/

void write_18b20(uchar dat)

{

uchar i;

for(i=0;i<8;i++)

{ //寫(xiě)數(shù)據(jù)是低位開(kāi)始

dq = 0; //把總線(xiàn)拿低寫(xiě)時(shí)間隙開(kāi)始

dq = dat & 0x01; //向18b20總線(xiàn)寫(xiě)數(shù)據(jù)了

delay_uint(5); // 60us

dq = 1; //釋放總線(xiàn)

dat >>= 1;

}

}


/*************讀取18b20內(nèi)的數(shù)據(jù)***************/

uchar read_18b20()

{

uchar i,value=0;

for(i=0;i<8;i++)

{

dq = 0; //把總線(xiàn)拿低讀時(shí)間隙開(kāi)始

value >>= 1; //讀數(shù)據(jù)是低位開(kāi)始

delay_uint(1);

dq = 1; //釋放總線(xiàn)

if(dq == 1) //開(kāi)始讀寫(xiě)數(shù)據(jù)

value |= 0x80;

delay_uint(5); //60us 讀一個(gè)時(shí)間隙最少要保持60us的時(shí)間

}

return value; //返回?cái)?shù)據(jù)

}


/*************讀取溫度的值 讀出來(lái)的是小數(shù)***************/

uint read_temp( )

{

float tt=0;

uint value;

wKgaomTH5zCATF7vAAPzyAmAXAU417.png

wKgaomTH5zGAL6VrAASnmKpesy8188.png

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2541

    文章

    49945

    瀏覽量

    747443
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    272

    文章

    5689

    瀏覽量

    122145
  • 檢測(cè)儀
    +關(guān)注

    關(guān)注

    5

    文章

    4022

    瀏覽量

    42039
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于51單片機(jī)的帶語(yǔ)音播報(bào)的溫度檢測(cè)儀的設(shè)計(jì)與實(shí)現(xiàn)任務(wù)書(shū)

    基于51單片機(jī)的帶語(yǔ)音播報(bào)的溫度檢測(cè)儀的設(shè)計(jì)與實(shí)現(xiàn)任務(wù)書(shū)
    發(fā)表于 08-17 15:26

    人體生物信息檢測(cè)儀

    啟動(dòng)下一次測(cè)量。 (4)檢測(cè)儀必須采用電池供電,并應(yīng)留有電池供電電流測(cè)試點(diǎn),以便評(píng)測(cè)時(shí)測(cè)量功耗,且盡量降低待機(jī)電流與工作電流。 2、發(fā)揮部分 (1)預(yù)置脈搏次數(shù)和體溫上下告警門(mén)限,超限告警。 (2
    發(fā)表于 09-09 20:00

    【Seeeduino XIAO申請(qǐng)】脈搏體溫檢測(cè)儀

    項(xiàng)目名稱(chēng):脈搏體溫檢測(cè)儀試用計(jì)劃:脈搏體溫檢測(cè)儀開(kāi)發(fā)過(guò)程中會(huì)用到可以帶替代手機(jī)
    發(fā)表于 06-08 18:44

    怎樣去設(shè)計(jì)一種基于51單片機(jī)最小系統(tǒng)的跑步機(jī)霍爾測(cè)速脈搏心率檢測(cè)儀

    基于51單片機(jī)最小系統(tǒng)的跑步機(jī)霍爾測(cè)速脈搏心率檢測(cè)儀有哪些功能?怎樣去設(shè)計(jì)一種基于51單片機(jī)最小系統(tǒng)的跑步
    發(fā)表于 08-03 07:52

    怎樣去設(shè)計(jì)一種基于51單片機(jī)的溫濕度檢測(cè)儀

    基于51單片機(jī)的溫濕度檢測(cè)儀是由哪些部分組成的?基于51單片機(jī)的溫濕度檢測(cè)儀有哪些具體功能?怎樣去設(shè)計(jì)一種基于51單片機(jī)的溫濕度
    發(fā)表于 10-18 06:37

    如何去實(shí)現(xiàn)一種基于51單片機(jī)酒精濃度檢測(cè)儀的設(shè)計(jì)

    基于51單片機(jī)的酒精濃度檢測(cè)儀是由哪些部分組成?如何去實(shí)現(xiàn)一種基于51單片機(jī)酒精濃度檢測(cè)儀的設(shè)計(jì)?
    發(fā)表于 10-18 09:34

    如何利用STM32單片機(jī)實(shí)現(xiàn)顏色檢測(cè)儀設(shè)計(jì)

    9、基于STM32單片機(jī)的顏色檢測(cè)儀設(shè)計(jì)文章目錄9、基于STM32單片機(jī)的顏色檢測(cè)儀設(shè)計(jì)引言1、系統(tǒng)概述1.1、設(shè)計(jì)任務(wù)1.2、設(shè)計(jì)要求2、方案設(shè)計(jì)與論證2.1、芯片選擇方案2.2 、
    發(fā)表于 11-30 06:34

    單片機(jī)如何實(shí)現(xiàn)語(yǔ)音播報(bào)溫度?

    單片機(jī)通過(guò)溫度傳感器采集到溫度后,怎樣通過(guò)語(yǔ)音模塊播報(bào)出來(lái),用什么語(yǔ)音模塊比較好。溫度不是固定的,要怎樣去實(shí)現(xiàn)語(yǔ)音
    發(fā)表于 09-27 06:18

    語(yǔ)音功能在多參數(shù)檢測(cè)儀上的實(shí)現(xiàn)

    語(yǔ)音功能在多參數(shù)檢測(cè)儀上的實(shí)現(xiàn):便攜式安全檢測(cè)儀的可靠性和穩(wěn)定性直接影響著煤礦生產(chǎn)的安全。設(shè)計(jì)了一種以SPCE061A單片機(jī)為核心的多參數(shù)便攜式語(yǔ)音
    發(fā)表于 08-24 18:27 ?20次下載

    基于51單片機(jī)的酒精濃度檢測(cè)儀的設(shè)計(jì)

    基于51單片機(jī)的酒精濃度檢測(cè)儀的設(shè)計(jì),感興趣的可以看看。
    發(fā)表于 01-04 15:23 ?263次下載

    基于單片機(jī)語(yǔ)音播報(bào)萬(wàn)用表設(shè)計(jì)

    基于單片機(jī)語(yǔ)音播報(bào)萬(wàn)用表設(shè)計(jì)
    發(fā)表于 01-14 12:28 ?75次下載

    基于單片機(jī)的酒精濃度檢測(cè)儀的研究與設(shè)計(jì)

    基于單片機(jī)的酒精濃度檢測(cè)儀的研究與設(shè)計(jì)
    發(fā)表于 12-11 15:52 ?14次下載

    如何使用單片機(jī)進(jìn)行語(yǔ)音播報(bào)脈搏檢測(cè)儀的設(shè)計(jì)資料說(shuō)明

    ; 增加語(yǔ)音播報(bào)功能,顯示完成后語(yǔ)音播報(bào)脈搏和溫度數(shù)值; 按鍵可設(shè)置
    的頭像 發(fā)表于 05-12 09:35 ?5246次閱讀

    怎樣設(shè)計(jì)一種基于單片機(jī)語(yǔ)音播報(bào)脈搏檢測(cè)儀?

    ST188光電傳感器檢測(cè)脈搏信號(hào),并有脈搏信號(hào)指示燈;
    發(fā)表于 08-21 14:37 ?478次閱讀
    怎樣設(shè)計(jì)一種基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>可</b><b class='flag-5'>語(yǔ)音</b><b class='flag-5'>播報(bào)</b>的<b class='flag-5'>脈搏</b><b class='flag-5'>檢測(cè)儀</b>?

    單片機(jī)語(yǔ)音識(shí)別控制電壓播報(bào)

    電子發(fā)燒友網(wǎng)站提供《單片機(jī)語(yǔ)音識(shí)別控制電壓播報(bào).pdf》資料免費(fèi)下載
    發(fā)表于 10-12 09:27 ?0次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>語(yǔ)音</b>識(shí)別控制電壓<b class='flag-5'>播報(bào)</b><b class='flag-5'>儀</b>