資源簡介
本設(shè)計利用紅外光電傳感器產(chǎn)生脈沖信號,經(jīng)過放大整形后,輸入單片機內(nèi)進行相應(yīng)的控制,從而測量出一分鐘內(nèi)的脈搏跳動次數(shù),快捷方便。
附件為源代碼。
附件為源代碼。

代碼片段和文件信息
#include? ?????????//調(diào)用單片機頭文件
#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:數(shù)據(jù)寄存器?? L:指令寄存器
sbit?e?=P1^4; ?//片選信號???下降沿觸發(fā)
unsigned?char?i=0timecount=0displayOK=0aa=0;
float?time[6]={0};
uint?rate;
float?rate1[6];
/***********************1ms延時函數(shù)*****************************/
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命令函數(shù)
*?輸入?:?輸入的命令值
*?輸出?:?無
***********************************************************************/
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寫數(shù)據(jù)函數(shù)
*?輸入?:?需要寫入1602的數(shù)據(jù)
*?輸出?:?無
***********************************************************************/
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“?,調(diào)用該函數(shù)如下
? ?write_string(15“ab?cd?ef;“)
*?輸入?:?行,列,需要輸入1602的數(shù)據(jù)
*?輸出?:?無
***********************************************************************/
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上顯示兩位十進制數(shù)************************/
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初始化設(shè)置************************/
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
評論
共有 條評論