(资料图)
设计功能:
光电传感器检测脉搏信号,并有脉搏信号指示灯; 2.具有温度检测功能,可检测人体温度,温度传感器为DS18B20; 3.脉搏和温度检测完成后,LCD1602会显示当前温度和脉搏数值; 4.增加语音播报功能,显示完成后可语音播报脉搏和温度数值; 5.按键可设置脉搏检测的安全范围;
6.超出所设安全范围时,蜂鸣器报警;
部分程序:
#include <> //调用单片机头文件#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255#define uint unsigned int //无符号整型 宏定义 变量范围0~65535#include <>bit flag_300ms ;bit q;uchar menu_1=0; //菜单设计的变量sbit beep = P3^7; //蜂鸣器IO口定义uchar flag_200ms ;/***********************语音模块控制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:数据寄存器 L:指令寄存器sbit rw=P1^1; //寄存器选择信号 H:数据寄存器 L:指令寄存器sbit e =P1^2; //片选信号 下降沿触发unsigned char i=0,timecount=0,displayOK=0,rate=0,aa=0;unsigned int time[6]={0};uchar rate_l=50,rate_h=120; //心跳报警值sbit dq = P3^3; //18b20 IO口的定义uint temperature ; ///***********************1ms延时函数*****************************/void delay_1ms(uint q){ uint i,j; for(i=0;i
>= 1; } }/*************读取18b20内的数据***************/uchar read_18b20(){ uchar i,value=0; for(i=0;i<8;i++) { dq = 0; //把总线拿低读时间隙开始 value >>= 1; //读数据是低位开始 delay_uint(1); dq = 1; //释放总线 if(dq == 1) //开始读写数据 value |= 0x80; delay_uint(5); //60us 读一个时间隙最少要保持60us的时间 } return value; //返回数据}/*************读取温度的值 读出来的是小数***************/uint read_temp( ){ float tt=0; uint value;需要完整的资料可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。
标签: