在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MXT8051的便攜式數(shù)字心電圖示儀

            基于MXT8051的便攜式數(shù)字心電圖示儀

            作者:謝興隆 大連理工大學(xué)電信學(xué)院 時(shí)間:2010-06-29 來(lái)源:電子產(chǎn)品世界 收藏

              軟件設(shè)計(jì)

            本文引用地址:http://www.biyoush.com/article/110396.htm

              本系統(tǒng)軟件設(shè)計(jì)的關(guān)鍵主要有以下三部分內(nèi)容:

              1. ADC心電數(shù)據(jù)采集

              通過(guò)內(nèi)部定時(shí)器0中斷方式控制ADC采樣率為1000Hz,其中每采集5個(gè)數(shù)據(jù)點(diǎn)做一次平均后,實(shí)際采樣率為200Hz,然后在數(shù)組a[320]中存儲(chǔ)320個(gè)心電波形數(shù)據(jù)。

              2. 從采用波形數(shù)據(jù)中檢測(cè)心率

              將采集到的320個(gè)數(shù)據(jù)存儲(chǔ)在一個(gè)數(shù)組a中,通過(guò)算法查找出數(shù)組最大值保存在max中,找一個(gè)值e=0.8*max,以e為數(shù)組的零點(diǎn)求出數(shù)組里值等于e項(xiàng)的數(shù)組索引數(shù)a1,a2,a3…….,根據(jù)得到的索引數(shù)求p=a3-a1,a3-a1即為兩個(gè)R波之間的采樣數(shù)據(jù)間隔數(shù)目,根據(jù)AD采樣率為200Hz ,可得到兩個(gè)心電R波波峰之間時(shí)間間隔T=p/200(s),由心率的計(jì)算公式(次/min) 即可計(jì)算出心率大小。

              3. 將采集的波形數(shù)據(jù)轉(zhuǎn)換為顯示數(shù)據(jù)

              LCD顯示屏為320×240點(diǎn)陣的圖形顯示模塊,內(nèi)置RA8803 控制器。模塊不僅可以顯示單一的文本、圖形,而且可以實(shí)現(xiàn)雙圖層的(“或”、“異或”、“同或”、“與”四種邏輯關(guān)系)合成顯示。顯示屏的地址結(jié)構(gòu)如圖10,由圖可知對(duì)顯示數(shù)據(jù)的操作最小單位為字節(jié),因?yàn)?a class="contentlabel" href="http://www.biyoush.com/news/listbylabel/label/MXT8051">MXT8051的內(nèi)嵌外部RAM為1K字節(jié),顯示波形的區(qū)域?yàn)?80*320,顯示一屏波形所需處理的數(shù)據(jù)為5.76K,故不可能同時(shí)處理一屏波形的全部數(shù)據(jù),所以將一屏波形按字節(jié)分為40列,每次處理一列,處理完后直接顯示,然后處理下一列。將AD轉(zhuǎn)換所得的數(shù)據(jù)作為給LCD顯示器寫(xiě)數(shù)據(jù)的列地址,因?yàn)橐涣袛?shù)據(jù)為180字節(jié),所以定義一個(gè)容量為180字節(jié)的數(shù)組lcd_buffer[180],lcd_buffer[]在初始時(shí)數(shù)據(jù)全為00H,因?yàn)槊看螌?duì)數(shù)據(jù)的操作至少是一個(gè)字節(jié),而每次數(shù)據(jù)處理的是所顯示一個(gè)點(diǎn),所以對(duì)每列數(shù)據(jù)處理8次,定義一個(gè)變量m,在一列數(shù)據(jù)處理之前將其賦值為m=10000000B,處理該列第1個(gè)點(diǎn)時(shí)讓該點(diǎn)垂直地址所對(duì)應(yīng)的數(shù)組中的數(shù)據(jù)(00H)與m相或并將結(jié)果存入數(shù)組,再將變量m右移一位,即m=01000000B。讓第2點(diǎn)垂直地址所對(duì)應(yīng)的數(shù)組中的數(shù)據(jù)與m相或并將結(jié)果存入數(shù)組,再將變量m右移一位,即m=00100000B ……,這樣直到一列數(shù)據(jù)中的8個(gè)點(diǎn)全處理完,重新給m賦值為m=10000000B,然后送顯示。為了有較好的顯示效果,將顯示相鄰的點(diǎn)用線連接起來(lái),在處理第一個(gè)點(diǎn)時(shí)預(yù)讀出第二個(gè)點(diǎn)的垂直坐標(biāo),與第一個(gè)點(diǎn)的垂直坐標(biāo)進(jìn)行比較,如果比第一個(gè)點(diǎn)的垂直坐標(biāo)小則從第一個(gè)點(diǎn)向第二個(gè)點(diǎn)拉線,如果比第一個(gè)點(diǎn)的垂直坐標(biāo)大則從第二個(gè)點(diǎn)向第一個(gè)點(diǎn)拉線。 程序如下。

              for(j=0;j<40;j++) //將一屏數(shù)據(jù)分為40列

              { m=0x80;

              for(i=j*8;i<(j+1)*8;i++)//處理每列中8個(gè)點(diǎn)

              { k=cdd[i]; // 讀出采樣數(shù)據(jù)作為垂直坐標(biāo)

              lcd_buffer[k]=(lcd_buffer[k]|m);

              if(cdd[i+q]

              { for(k=cdd[i+q];k

              { lcd_buffer[k]=(lcd_buffer[k]|m); }

              }

              else

              {for(k=cdd[i+q];k>cdd[i+q+1];k--)

              { lcd_buffer[k]=(lcd_buffer[k]|m); } }

              m>>=1; //將m的值右移一位

              }

              for(h=0;h<180;h++)//送顯示

              {

              SdCmd(0x60);SdCmd(j+5); //設(shè)置顯示X坐標(biāo)

              SdCmd(0x70);SdCmd(h); //設(shè)置顯示Y坐標(biāo)

              SdData(lcd_buffer[180-h]); //傳送顯示數(shù)據(jù)

              lcd_buffer[180-h]=0; //將已送出數(shù)據(jù)的存儲(chǔ)器單元清零

              } }



            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉