當(dāng)前位置:首頁 > 公眾號精選 > 21ic電子網(wǎng)
[導(dǎo)讀]這個小東西簡單而好玩,可以做為單片機(jī)入門的一個課業(yè)設(shè)計。

這個小東西簡單而好玩,可以做為單片機(jī)入門的一個課業(yè)設(shè)計。


將你的食指輕輕地放在傳感器上,就能看到LED指示燈隨著你的心跳而閃動,15秒鐘以后,還能在數(shù)碼管上顯示你當(dāng)前的心率。


簡單好玩的心率測量儀DIY作品賞析(附代碼)

核心部分在傳感器上,這里用的是一套紅外對管。

簡單好玩的心率測量儀DIY作品賞析(附代碼)

人體指尖的動脈比較發(fā)達(dá),當(dāng)動脈血管隨心臟周期性收縮與舒張時,血管中的血液容積也會發(fā)生變化。

這時紅外接收探頭便能采集到的相應(yīng)的光脈沖信號,經(jīng)過去噪和放大后送到單片機(jī),進(jìn)行運算處理,便得到了心率數(shù)據(jù)。

簡單好玩的心率測量儀DIY作品賞析(附代碼)

采集部分的原理圖

簡單好玩的心率測量儀DIY作品賞析(附代碼)

運算與顯示部分的原理圖
簡單好玩的心率測量儀DIY作品賞析(附代碼)



單片機(jī)代碼

/*
Project: Measuring heart rate through fingertip
Copyright @ Rajendra Bhatt
January 18, 2011
PIC16F628A at 4.0 MHz external clock, MCLR enabled
*/

sbit IR_Tx at RA3_bit;
sbit DD0_Set at RA2_bit;
sbit DD1_Set at RA1_bit;
sbit DD2_Set at RA0_bit;
sbit start at RB7_bit;
unsigned short j, DD0, DD1, DD2, DD3;
unsigned short pulserate, pulsecount;
unsigned int i;
//-------------- Function to Return mask for common anode 7-seg. display
unsigned short mask(unsigned short num) {
switch (num) {
case 0 : return 0xC0;
case 1 : return 0xF9;
case 2 : return 0xA4;
case 3 : return 0xB0;
case 4 : return 0x99;
case 5 : return 0x92;
case 6 : return 0x82;
case 7 : return 0xF8;
case 8 : return 0x80;
case 9 : return 0x90;
} //case end
}

void delay_debounce(){
Delay_ms(300);
}

void delay_refresh(){
Delay_ms(5);
}

void countpulse(){
IR_Tx = 1;
delay_debounce();
delay_debounce();
TMR0=0;
Delay_ms(15000); // Delay 1 Sec
IR_Tx = 0;
pulsecount = TMR0;
pulserate = pulsecount*4;
}

void display(){
DD0 = pulserate%10;
DD0 = mask(DD0);
DD1 = (pulserate/10)%10;
DD1 = mask(DD1);
DD2 = pulserate/100;
DD2 = mask(DD2);
for (i = 0; i<=180*j; i++) {
DD0_Set = 0;
DD1_Set = 1;
DD2_Set = 1;
PORTB = DD0;
delay_refresh();
DD0_Set = 1;
DD1_Set = 0;
DD2_Set = 1;
PORTB = DD1;
delay_refresh();
DD0_Set = 1;
DD1_Set = 1;
DD2_Set = 0;
PORTB = DD2;
delay_refresh();
}
DD2_Set = 1;
}

void main() {
CMCON = 0x07; // Disable Comparators
TRISA = 0b00110000; // RA4/T0CKI input, RA5 is I/P only
TRISB = 0b10000000; // RB7 input, rest output
OPTION_REG = 0b00101000; // Prescaler (1:1), TOCS =1 for counter mode
pulserate = 0;
j = 1;
display();
do {
if(!start){
delay_debounce();
countpulse();
j= 3;
display();
}
} while(1); // Infinite loop
}


HEX代碼

:020000001B29BA
:100006002428C03083120313F0000800F930F000F2
:100016000800A430F0000800B030F0000800993065
:10002600F00008009230F00008008230F00008006E
:10003600F830F00008008030F00008009030F00042
:100046000800831203132A08003A031904282A0811
:10005600013A031909282A08023A03190C282A0822
:10006600033A03190F282A08043A031912282A0802
:10007600053A031915282A08063A031918282A08E2
:10008600073A03191B282A08083A03191E282A08C2
:08009600093A031921280800B2
:0E009E008312031321088A0020088200080044
:1000AC0083120313F8010830FC00700DF80D74086E
:1000BC00F80203186328F8070310F00DFC0B5B28FB
:0200CC0008002A
:1000CE00831203137008F100F0010830FC00710870
:1000DE00F40C03187628FC0B6F28F1010034031082
:1000EE007B28F40C0318F107F10CF00CFC0B7828AC
:0200FE000800F8
:100100000D3083120313FC00FB30FD00FD0B86282D
:0A011000FC0B862800000000080028
:10011A00043083120313FB000C30FC003330FD0063
:10012A00FD0B9528FC0B9528FB0B95280000000079
:02013A000800BB
:10013C004F208A110A128000840AA00A0319A10A0E
:08014C00F003031D9E280800CA
:100154008312031385158D208D2081019930FB00B6
:100164003130FC00A230FD00FD0BB628FC0BB62894
:10017400FB0BB628000085110108A3002308A20088
:0A018400A20D2210A20D22100800A7
:10018E000A3083120313F4002208F0005620780878
:10019E00F0007008A9007008AA0003207008A900DA
:1001AE000A30F4002208F00056200A30F4005620DF
:1001BE007808F0007008A8007008AA0003207008E4
:1001CE00A8006430F4002208F00056207008A60043
:1001DE007008AA0003207008A600A401A501270834
:1001EE00F000B430F400672025087102031D0129C8
:1001FE0024087002031C19290511851405142908F9
:10020E00860080200515851005142808860080209C
:10021E00051585140510260886008020A40A0319EA
:08022E00A50AF62805140800DA
:100236000730831203139F00303083168500803009
:100246008600283081008312A2010130A700C72052
:10025600861B32298D20AA200330A700C7202B2910
:0202660033293A
:02400E006A2125
:00000001FF



來源:著名的PCB哥


版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系刪除。

簡單好玩的心率測量儀DIY作品賞析(附代碼)

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

21ic電子網(wǎng)

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉