• 大小: 77KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-15
  • 语言: 其他
  • 标签: 51单片机  

资源简介

本设计利用红外光电传感器产生脉冲信号,经过放大整形后,输入单片机内进行相应的控制,从而测量出一分钟内的脉搏跳动次数,快捷方便。
附件为源代码。

资源截图

代码片段和文件信息

#include 	         //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义 变量范围0~255
#define uint  unsigned int  //无符号整型 宏定义 变量范围0~65535
#include 


bit flag_300ms ;
uchar flag_en;


uchar code table_num[]=“0123456789abcdefg“;

sbit rs=P1^2;  //寄存器选择信号 H:数据寄存器   L:指令寄存器
sbit e =P1^4;  //片选信号   下降沿触发

unsigned char i=0timecount=0displayOK=0aa=0;
float time[6]={0};
uint rate;

float rate1[6];


/***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{
uint ij;
for(i=0;i for(j=0;j<110;j++);
}


/********************************************************************
* 名称 : delay_uint()
* 功能 : 小延时。
* 输入 : 无
* 输出 : 无
***********************************************************************/
void delay_uint(uint q)
{
while(q--);
}

/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{
e=0;
rs=0;
P0=com;
delay_uint(25);
e=1;
delay_uint(100);
e=0;
}

/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{
e=0;
rs=1;
P0=dat;
delay_uint(25);
e=1;
delay_uint(100);
e=0;
}

/********************************************************************
* 名称 : write_string(uchar hanguchar adduchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示“ab cd ef“ ,调用该函数如下
   write_string(15“ab cd ef;“)
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_string(uchar hanguchar adduchar *p)
{
if(hang==1)   
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1)
{
if(*p == ‘\0‘)  break;
write_data(*p);
p++;
}
}


/***********************lcd1602上显示两位十进制数************************/
void write_sfm3(uchar hanguchar adduint 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);
}


/***********************lcd1602初始化设置************************/
void init_1602()
{
write_com(0x38); //
write_com(0x0c);
write_com(0x06);
delay_uint(1000);
write_string(10“   Heart Rate     “);
write_string(20“     000/min       “);
}

/*************定时器0初始化程序***************/
void time_init()   
{
EA   = 1;     //开总中断
TMOD = 0X01;   //定时器0、定时器1工作方式1
ET0  = 1;   //开定时器0中断 
TR0  = 1;   //允许定时器0定时
}


/***********外部中断0初始化程序****************/
void init_int0()   //外部中断0初始化程序
{
EX0=1;   //允许外部中断0中断
EA=1;     //开总中断
IT0 = 1;    //外部中断0负跳变中断
}


/************ 排序***************/
void pingjun_zhi(float *p)
{
static float val

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-03-25 12:54  01__c程序+注释\
     目录           0  2020-03-25 12:54  01__c程序+注释\keil4版\
     文件       14576  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计
     文件       10927  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.LST
     文件       20523  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.M51
     文件       15700  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.OBJ
     文件        5699  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.c
     文件       10355  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.hex
     文件          56  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.lnp
     文件         262  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.plg
     文件       72039  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.uvgui.Zhang Liqiang
     文件       71586  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.uvgui.lijiangkeji
     文件       72039  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.uvgui_Zhang Liqiang.bak
     文件        5402  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.uvopt
     文件       13454  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计.uvproj
     文件       55812  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计_uvopt.bak
     文件           0  2020-03-24 11:56  01__c程序+注释\keil4版\单片机脉搏计_uvproj.bak
     文件        5699  2020-03-24 11:51  01__c程序+注释\单片机脉搏计.c
     文件       24462  2020-03-24 11:51  01__c程序+注释\单片机脉搏计.docx
     文件        5699  2020-03-24 11:51  01__c程序+注释\单片机脉搏计.txt

评论

共有 条评论