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

代碼片段和文件信息
#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?;
uchar?flag_en;
uchar?code?table_num[]=“0123456789abcdefg“;
sbit?rs=P1^2; ?//寄存器選擇信號(hào)?H:數(shù)據(jù)寄存器?? L:指令寄存器
sbit?e?=P1^4; ?//片選信號(hào)???下降沿觸發(fā)
unsigned?char?i=0timecount=0displayOK=0aa=0;
float?time[6]={0};
uint?rate;
float?rate1[6];
/***********************1ms延時(shí)函數(shù)*****************************/
void?delay_1ms(uint?q)
{
uint?ij;
for(i=0;i for(j=0;j<110;j++);
}
/********************************************************************
*?名稱(chēng)?:?delay_uint()
*?功能?:?小延時(shí)。
*?輸入?:?無(wú)
*?輸出?:?無(wú)
***********************************************************************/
void?delay_uint(uint?q)
{
while(q--);
}
/********************************************************************
*?名稱(chēng)?:?write_com(uchar?com)
*?功能?:?1602命令函數(shù)
*?輸入?:?輸入的命令值
*?輸出?:?無(wú)
***********************************************************************/
void?write_com(uchar?com)
{
e=0;
rs=0;
P0=com;
delay_uint(25);
e=1;
delay_uint(100);
e=0;
}
/********************************************************************
*?名稱(chēng)?:?write_data(uchar?dat)
*?功能?:?1602寫(xiě)數(shù)據(jù)函數(shù)
*?輸入?:?需要寫(xiě)入1602的數(shù)據(jù)
*?輸出?:?無(wú)
***********************************************************************/
void?write_data(uchar?dat)
{
e=0;
rs=1;
P0=dat;
delay_uint(25);
e=1;
delay_uint(100);
e=0;
}
/********************************************************************
*?名稱(chēng)?:?write_string(uchar?hanguchar?adduchar?*p)
*?功能?:?改變液晶中某位的值,如果要讓第一行,第五個(gè)字符開(kāi)始顯示“ab?cd?ef“?,調(diào)用該函數(shù)如下
? ?write_string(15“ab?cd?ef;“)
*?輸入?:?行,列,需要輸入1602的數(shù)據(jù)
*?輸出?:?無(wú)
***********************************************************************/
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上顯示兩位十進(jìn)制數(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???????“);
}
/*************定時(shí)器0初始化程序***************/
void?time_init() ??
{
EA???=?1; ? ??//開(kāi)總中斷
TMOD?=?0X01; ??//定時(shí)器0、定時(shí)器1工作方式1
ET0??=?1; ??//開(kāi)定時(shí)器0中斷?
TR0??=?1; ??//允許定時(shí)器0定時(shí)
}
/***********外部中斷0初始化程序****************/
void?init_int0() ??//外部中斷0初始化程序
{
EX0=1; ??//允許外部中斷0中斷
EA=1; ? ??//開(kāi)總中斷
IT0?=?1;? ??//外部中斷0負(fù)跳變中斷
}
/************?排序***************/
void?pingjun_zhi(float?*p)
{
static?float?val
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????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版\單片機(jī)脈搏計(jì)
?????文件???????10927??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).LST
?????文件???????20523??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).M51
?????文件???????15700??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).OBJ
?????文件????????5699??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).c
?????文件???????10355??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).hex
?????文件??????????56??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).lnp
?????文件?????????262??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).plg
?????文件???????72039??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).uvgui.Zhang?Liqiang
?????文件???????71586??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).uvgui.lijiangkeji
?????文件???????72039??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).uvgui_Zhang?Liqiang.bak
?????文件????????5402??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).uvopt
?????文件???????13454??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì).uvproj
?????文件???????55812??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì)_uvopt.bak
?????文件???????????0??2020-03-24?11:56??01__c程序+注釋\keil4版\單片機(jī)脈搏計(jì)_uvproj.bak
?????文件????????5699??2020-03-24?11:51??01__c程序+注釋\單片機(jī)脈搏計(jì).c
?????文件???????24462??2020-03-24?11:51??01__c程序+注釋\單片機(jī)脈搏計(jì).docx
?????文件????????5699??2020-03-24?11:51??01__c程序+注釋\單片機(jī)脈搏計(jì).txt
評(píng)論
共有 條評(píng)論