基于51單片機的脈搏測量儀設計與實現(xiàn)畢業(yè)論文_第1頁
基于51單片機的脈搏測量儀設計與實現(xiàn)畢業(yè)論文_第2頁
基于51單片機的脈搏測量儀設計與實現(xiàn)畢業(yè)論文_第3頁
基于51單片機的脈搏測量儀設計與實現(xiàn)畢業(yè)論文_第4頁
基于51單片機的脈搏測量儀設計與實現(xiàn)畢業(yè)論文_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于51單片機的脈搏測量儀設計與實現(xiàn)畢業(yè)論文封面脈率是指單位時間內脈搏跳動的次數(shù),一般指每分鐘的脈搏次數(shù),是臨床常規(guī)檢查的生理指標。脈搏監(jiān)測系統(tǒng)在我們的日常生活中已經(jīng)得到了非常廣泛的應用。在醫(yī)學上,通過測量人的脈搏,便可初步判斷人的健康狀況。本課題設計完成了一個基于51單片機的脈搏測量系統(tǒng)。系統(tǒng)以STC89C52單片機為核心,以5mm光電對管為傳感器,利用單片機系統(tǒng)內部定時器計算時間,通過光電對管及其相關外部電路產(chǎn)生脈搏信號,單片機通過檢測兩次脈沖間隔時間計算脈搏跳動次數(shù),在LCD上顯示脈搏次數(shù)。系統(tǒng)實現(xiàn)了脈搏的實時監(jiān)測與顯示、閾值調整以及超限報警等功能。實驗結果表明,系統(tǒng)工作正常,測量靈敏度高,實現(xiàn)了設計功能。關鍵詞:51單片機;脈搏;光電傳感器AbstractPulseratereferstothenumberofpulsebeatsperunittime,generallyreferstothenumberofpulsesperminute,andisaphysiologicalindicatorofroutineclinicalexamination.Pulsemonitoringsystemhasbeenwidelyusedinourdailylife.Inmedicine,people'shealthcanbepreliminarilyjudgedbymeasuringtheirpulse.Thistopichasdesignedandcompletedapulsemeasurementsystembasedon51single-chipmicrocomputer.ThesystemtakesSTC89C52singlechipmicrocomputerasthecore,takes5mmphotoelectricpairtubeasthesensor,usestheinternaltimerofthesinglechipmicrocomputersystemtocalculatethetime,andgeneratespulsesignalthroughthephotoelectricpairtubeanditsrelatedexternalcircuit.Thesinglechipmicrocomputercalculatesthepulsebeatingtimesbydetectingthetimebetweentwopulses,anddisplaysthepulsetimesontheLCD.Thesystemrealizesthefunctionsofreal-timemonitoringanddisplayofpulse,thresholdadjustmentandalarmreminder.Theexperimentalresultsshowthatthesystemworksnormally,hashighmeasurementsensitivity,andachievesthedesignfunction.Keywords:51Microcontroller;Pulserate;Photoelectricsensor畢業(yè)論文封面 1 2Abstract 3 4第一章緒論 6 61.2課題的研究現(xiàn)狀 61.3本文內容 7第二章總體方案設計 82.1設計功能要求 82.2元件選型 8 8 9 2.3本章小結 第三章系統(tǒng)硬件設計 113.1總體硬件設計 3.2電源電路設計 3.3STC89C52最小系統(tǒng)模塊電路設計 3.2.1STC89C52芯片介紹 3.2.2STC89C52最小系統(tǒng) 3.4脈搏采集電路設計 3.4.1信號采集電路 3.4.2信號放大電路 3.4.3波形整形電路 3.5LCD顯示電路設計 3.6鍵盤電路設計 3.7本章小結 第四章系統(tǒng)軟件設計 4.1軟件開發(fā)環(huán)境介紹 4.2軟件設計要求 204.3系統(tǒng)軟件流程圖 204.4脈搏采集子程序設計 4.5鍵盤程序設計 224.6液晶顯示子程序設計 錯誤!未定義書簽。4.7本章小結 24第五章系統(tǒng)調試 25 255.1.2硬件電路焊接 255.2軟件調試 265.3系統(tǒng)調試 275.4實物測試 285.5誤差結果分析 參考文獻 32致謝 33附錄一實物圖 34 35附錄三元件清單 36附錄四源程序 37第一章緒論1.1課題意義在中醫(yī)四診(望﹑聞﹑問﹑切)中,脈診占有非常重要的位置。脈診是我國傳統(tǒng)醫(yī)學中最具特色的一項診斷方法,其歷史悠久,內容豐富,是中醫(yī)“整體觀念”﹑“辨證論證”的基本精神的體現(xiàn)與應用。脈搏攜帶有豐富的人體健康狀況的信息,自公元三世紀我國最早的脈學專著《脈經(jīng)》問世以來,脈學理診作為“綠色無創(chuàng)”診斷的手段和方法得到了中外人士的關注。但由于中醫(yī)是靠手指獲取脈搏信息,雖然脈診具有簡便﹑無創(chuàng)﹑無痛的特點易為患者接受,然而在長期的醫(yī)療實踐中也暴露出一些缺陷。首先,切脈單憑醫(yī)生手指感覺辨別脈象的特征,受到感覺﹑經(jīng)驗和表述的限制,并且難免存在許多主觀臆斷因素,影響了對脈象判斷的規(guī)化。其次,這種用手指切脈的技巧很難掌握。再則,感知的脈象無法記錄和保存影響了對脈象機理的研究。脈診的這種定性化和主觀性大大影響了其精度與可行性,成為中醫(yī)脈診應用﹑發(fā)展和交流中的制約因素。為了將傳統(tǒng)的中醫(yī)藥學發(fā)揚光大,促進脈診的應用和發(fā)展,必須與現(xiàn)代科技相結合,實現(xiàn)更科學﹑客觀的診斷[1]。醫(yī)院的護士每天都要給住院的病人把脈記錄病人每分鐘脈搏數(shù)的方法是用手按在病人腕部的動脈上,根據(jù)脈搏的跳動進行計數(shù)。為了節(jié)省時間,一般不會作1分鐘的測量,通常是測量10秒鐘時間心跳的數(shù),再把結果乘以6即得到每分鐘的心跳數(shù),即使這樣做還是比較費時,而且精度也不高。因此,開發(fā)出一款功能強大的脈搏測量儀是非常有意義的。1.2課題的研究現(xiàn)狀隨著科學技術的發(fā)展,脈搏測量技術也越來越先進,對脈搏的測量精度也越來越高,國外先后研制了不同類型的脈搏測量儀,而其中關鍵是對脈搏傳感器的研究。起初用于體育測量的脈搏測試集中在對接觸式傳感器的研究,利用此類傳感器所研制的指脈﹑耳脈等測量儀各有其優(yōu)缺點。指脈測量比較方便﹑簡單,但因為手指上的汗腺較多,指夾常年使用,污染可能會使測量靈敏度下降。耳脈測量比較干凈,傳感器使用環(huán)境污染少,容易維護。但因耳脈較弱,尤其是當季節(jié)變化時,所測信號受環(huán)境溫度影響明顯,造成測量結果不準確。過去在醫(yī)院臨床監(jiān)護和日常中老年保健中出現(xiàn)的日常監(jiān)護儀器,如便攜式電子血壓計,可以完成脈搏的測量,但是這種便攜式電子血壓計利用微型氣泵加壓橡膠氣囊,每次測量都需要一個加壓和減壓的過程,存在體積龐大﹑加減壓過程會有不適﹑脈搏檢測的精確度低等缺點[2]。近年來國外致力于開發(fā)無創(chuàng)非接觸式的傳感器,這類傳感器的重要特征是測量的探測部分不侵入機體,不造成機體創(chuàng)傷,能夠自動消除儀表自身系統(tǒng)的誤差,測量精度高,通常在體外,尤其是在體表間接測量人體的生理和生化參數(shù)。其中光電式脈搏傳感器是根據(jù)光電容積法制成的脈搏傳感器,通過對手指末端透光度的監(jiān)測,間接檢測出脈搏信號。具有結構簡單﹑無損傷﹑精度高﹑可重復使用等優(yōu)點。通過光電式脈搏傳感器所研制的脈搏測量儀已經(jīng)應用到臨床醫(yī)學等各個方面并收到了理想效果。1.3本文內容本文主要是介紹基于51單片機的脈搏測量儀設計與實現(xiàn)。本次設計結合單片機技術、傳感器技術、模擬電子技術、誤差分析與處理等技術,實現(xiàn)脈搏測量儀的數(shù)據(jù)監(jiān)測與設備控制等功能。本文主要內容包括五個部分:第一章為緒論。通過本次課題的意義和研究現(xiàn)狀,對于脈搏測量儀的發(fā)展進行分析與推理,設計出具有創(chuàng)意的產(chǎn)品。第二章為介紹脈搏測量儀的原理,通過了解脈搏測量儀的工作原理,以及與現(xiàn)階段脈搏測量儀的技術成就進行研究,利用最先進化的手段實現(xiàn)脈搏測量儀控制達到目前所要的要求。第三章為本設計的硬件系統(tǒng)設計,通過選擇合適的元件,進入電路圖設計,根據(jù)元件的電器參數(shù)、電路設計等設計出可靠的電路圖。第四章為本設計的軟件系統(tǒng)設計,經(jīng)過設計好的電路圖后,就可以進行軟件程序的編寫,首先畫出程序流程圖,然后通過所學單片機知識、C語言知識,利用單片機進行數(shù)據(jù)采集,并傳出顯示。第五章為本設計的系統(tǒng)調試,通過電路分析,最后通過焊接硬件調試,總結調試過中出現(xiàn)的問題,以及對最終結果進行分析。第二章總體方案設計2.1設計功能要求本次設計的脈搏測量儀主要具有以下功能:1、具有智能化產(chǎn)品的基本特點;2、具有使用者的脈搏檢測、實時顯示等功能;3、具有脈搏次數(shù)超限報警功能;4、具有按鍵調整功能,可對當前脈搏報警上下限閾值進行調整;2.2元件選型方案一:STM32F103系列微控制器,是ST意法半導體公司推出的基于Cortex-M3內核的一款控制器,該控制器最大的一款具有512K容量flash適合高級的集成電路開發(fā),且是一款低功耗的產(chǎn)品,供電只需3.0-3.6V之間[3]。圖2-1STM32F103C8T6最小系統(tǒng)板實物圖方案二:STC89C52單片機,該單片機是目前51系類單片機代表,該芯片上資源豐富,寄存器不多,適合初學者入門學習使用。并且該控制器相比傳統(tǒng)的MCS-51芯片做出了很多的改進,例如其P0口無需上拉電阻,可實現(xiàn)ISP在線編程,在電路調試時方便了很多。該芯片具有低功耗、性能好的特點,內部資源具有定時器、串口、外部中斷等等[4]。如下圖2-2為STC89C52單片機實物圖。圖2-2STC89C52單片機實物圖方案三:MSP430,MSP430是上美國德州儀器(TI)半導體公司推出的一款低功耗處理器,該處理器以低功耗而聞名。它是一款16位的單片機,該芯片是具有精簡指令集的混合信號處理器。由于其低功耗的特點通常用于便攜式產(chǎn)品開發(fā)。綜上所述,根據(jù)本次設計的要求,選擇合適的微控制器,本次設計采用使用簡單、性能比較高的STC89C52系列單片機,具有8kflash的芯片STC89C52RC作為主控。方案一:透射型光電式傳感器,透射型是指由光電傳感器的上端的紅外發(fā)射二極管發(fā)出紅外光線,由于紅外線穿透能力強,經(jīng)過手指透射進過血液循環(huán),由于血液隨心跳的流動具有舒張和收縮作用導致不同的變化,手指內的血液濃度從而跳動,在跳動時,底部的紅外接收二極管接收到信號,從而產(chǎn)生不同的光電信號。傳感器模塊實物圖如下圖2-3透射型光電傳感器實物圖方案二:采用pulsesensor紅外心率傳感器,該傳感器是利用內部紅外對管進行血流的檢測,紅外模塊檢測心率信號抗干擾能力強,并且該模塊內部集成了信號放大電路、濾波電路、整形輸出電路等,輸出波形也很好。適用于脈搏方面的科學研究和教學演示,也非常適合用于二次開發(fā)。如下圖2-3為心率傳感器實物圖。圖2-4心率傳感器實物圖綜上所示,選擇方案一透射型光電式傳感器,能應用于手指實現(xiàn)心率脈搏測量,測量精度較高,而方案二該傳感器是一款反射式的心率傳感器,雖可適用于身體多個部位測量,但測量精度相比于透射型光電式傳感器較低。方案一:采用單色液晶LCD1602顯示屏,該液晶屏的顯示功能強大,其內部是由32個5*7點陣組成,能顯示大多數(shù)的字符。該液晶可通過四線串行接口或者8線并行接口驅動,其驅動時序非常簡單,適合開發(fā)者使用。LCD1602價格低廉,功耗低,是一款非常適用顯示字符、數(shù)字的液晶屏。方案二:低功耗的OLED12864顯示器,該OLED是一款低功耗的顯示器,該顯示模塊是基于SSD1306芯片驅動。數(shù)據(jù)通信采用IIC接口驅動顯示,具有數(shù)據(jù)通信簡單等特點。采用OLED的特點是該器件采用的是二極管自行發(fā)光器件,不需要背光電源,是通過軟件控制的一款顯示模塊。其工作電壓在3.3V-5.V之間,體積小顯示內容豐富[5]。方案三:采用串口型TFT彩色液晶屏,該液晶屏界面絢麗,非常適合人機界面的開發(fā),同時利用串口兩線即可驅動液晶顯示,通過上位機實現(xiàn)界面規(guī)劃,良好的操作方法是該屏的一大亮點。通過單片機串口發(fā)送簡單的指令即可顯示想要的內容。該液晶屏廣泛用于電子產(chǎn)品當中,但其價格昂貴是一大重要問題。綜上所述,本次設計選取的液晶是用于脈搏測量儀,考慮到設計的成本和開發(fā)難度,故而選擇方案一LCD1602顯示。2.3本章小結本章對設計中用到的元器件進行了一個系統(tǒng)性的說明。包括對主控的說明,字符型液晶器的優(yōu)點,以及介紹本次設計所要用到的脈搏傳感器的原理等。STC89C52單片機報警模塊STC89C52單片機報警模塊第三章系統(tǒng)硬件設計3.1總體硬件設計要實現(xiàn)以上的要求,通過查閱資料,對照其器件的特性、性比價、穩(wěn)定性等因素,選擇出了該設計的硬件方案。具有方案如下:采用STC89C52RC單片機為系統(tǒng)控制器單元,利用透射型光電式傳感器實現(xiàn)使用者的脈搏測量,通過STC89C52RC內部定時器計算出實際脈搏。通過LCD顯示屏實時顯示當前的數(shù)據(jù),同時具有按鍵切換顯示和超限報警等功能;綜上所述,整個硬件部分主要由單片機最小系統(tǒng)、脈搏采集模塊、鍵盤模塊、LCD液晶顯示模塊構成。硬件框圖如下圖3-1所示。顯示模塊光電傳感器顯示模塊復位電路復位電路鍵盤鍵模塊時鐘電路鍵盤鍵模塊3.2電源電路設計本設計對電源要求不是很高,基本的USB5V或者四節(jié)1.5V干電池供電即可完成,本設計采用USB電源線供電,如下圖3-2為本設計的電源接口及開關控制電路圖。P4為電源DC插口,2、3腳接地線,1腳接到開關控制腳,通過開關P3控制電源的通斷,輸出到VCC為系統(tǒng)供電,VCC為5V。圖3-2電源接口及開關控制電路圖3.3STC89C52最小系統(tǒng)模塊電路設計通過上一章節(jié)介紹了,設計中主控芯片采用STC89C52RC單片機作為主控制。該型號單片機為DIP封裝,內部資源足夠用于本次設計。STC89C52RC芯片最高工作頻率可達24MHZ,片內有4k字節(jié)在線可重復編程快擦寫程序存儲器。內部8k字節(jié)的閃存程序存儲器,也就是說代碼量可以寫到8k字節(jié),足夠本次設計。3.2.1STC89C52芯片介紹STC89C52是一種低電壓,高性能CMOS8位單片機,片內含8KBYTES的可反復擦寫的只讀程序存儲器(EPROM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),與標準的80C51和80C52產(chǎn)品的指令系統(tǒng)和引腳兼容,芯片擦寫允許程序存儲器在系統(tǒng)內部或一個普通的非易失存儲器所改寫。片內置通用8位中央處理器(CPU)和FLASH存儲單元,功能強大的STC89C52單片機適用于許多較為復雜控制應用場合。具有以下標準功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時器,內置4KB的EEPROM,MAX810復位電路,三個16位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內振蕩器及時鐘電路。同時,STC89C52可降至0HZ的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。STC89C52RC管腳圖如圖3-3所示[6]。圖3-3STC89C52RC管腳圖3.2.2STC89C52最小系統(tǒng)所有的微控制器當中,單單一個微控制器芯片是不足以完成一個控制系統(tǒng)的。51單片機最小系統(tǒng),除了微控制器芯片,還需要晶振電路、復位電路來組成一個系統(tǒng)。STC89C52最小系統(tǒng)分為時鐘電路和復位電路,我們采用STC89C52RC芯片,單片機的時鐘電路由一個12M的晶振和兩個30P的小電容組成。由于芯片IO口內部自帶上拉電阻,因此復位電路只需一個10nF電容組成。51單片機相對STM32此類單片機較為簡單,MCU微處理器是整個系統(tǒng)的核心,相當于整個系統(tǒng)的“大腦”,維持著整個系統(tǒng)的運行,所以微控制必須能夠穩(wěn)定的運行,下圖(圖3-4)為STC89C52最小系統(tǒng)電路圖,芯片電源為5V供電。如下圖3-4為本次設計使用的STC89C52RC最小系統(tǒng)模塊內部電路圖。圖3-4STC89C52RC最小系統(tǒng)板3.4脈搏采集電路設計設計中采用5mm的光電對管,該模塊是一款光電式傳感器,由紅外發(fā)射二極管和紅外接收二極管構成,LED發(fā)光信號波長為940nm,模塊可工作在5V,在進行正常工作時,檢測的信號為光透射信號,經(jīng)過模塊外部放大、整形、濾波等處理,最終輸出模擬信號。由于本次設計采用STC89C52RC芯片為主控制,通過檢測IO口低電平存在的時間并結合換算關系可實現(xiàn)脈搏的計算。如下圖3-5所示為光電式傳感器的電路設計圖,主要包括低通濾波、信號放大、波形整形等三部分所構成,信號放大和波形整形通過雙運算放大器LM358實現(xiàn)[7]。圖3-5光電傳感器電路設計圖3.4.1信號采集電路信號采集電路關鍵部分在于脈搏信號的檢測。本設計采用由紅外發(fā)射二極管器和紅外接收二極管組成的透射式光電傳感器。U2、D2分別是紅外發(fā)射、接收裝置,由于紅外發(fā)射二極管中的電流越大,發(fā)射角度越小,產(chǎn)生的發(fā)射強度就越大,所以對R5阻值的選取要求較高。R5選擇220Ω同時也是基于紅外接收二極管感應紅外光靈敏度考慮。R5過大,通過紅外發(fā)射二極管的電流偏小,紅外接收二極管無法區(qū)別有心跳和無心跳時的信號。反之,R5過小,通過的電流偏大,紅外接收二極管也不能準確地辨別有脈搏跳動和無脈搏跳動時的信號。因光電傳感器輸出的脈沖信號是非常微弱的信號,而且頻率很低(如脈搏50次/分鐘為0.78Hz,200次/分鐘為3.33Hz并且還伴有各種噪聲干擾,故該信號要經(jīng)過R7、C5低通濾波,去除高頻干擾。脈搏信號采集電路如圖3-6所示。圖3-6信號采集電路3.4.2信號放大電路如下圖所示,RT1與R14的電阻之比為放大器的放大倍數(shù),經(jīng)過計算所得該放大器的理論值為200倍,但由于接口上5V供壓不足再加上材料限制和人為的因素,該放大倍數(shù)只有20倍左右。脈搏信號放大電路如圖3-7所示。圖3-7信號放大電路圖中C5為耦合電容,作用為隔直流通交流。使用1uF的電容,讓所有的信號通過。3.4.3波形整形電路電壓比較器是一種常用的集成電路。它可用于報警器電路、自動控制電路、測量技術,也可用于V/F變換電路、A/D變換電路、高速采樣電路、電源電壓監(jiān)測電路、振蕩器及壓控振蕩器電路、過零檢測電路等。電壓比較器工作原理是對兩個模擬電壓比較其大小并判斷出其中哪一個電壓高,電壓小于該值時顯示0V,當大于該值時顯示5V,這就形成了0和5V的方波。如圖3-7所示,經(jīng)過低通放大后的脈搏信號整形后為0和5V的方波,脈沖高電平與心跳同步,并由紅色發(fā)光二極管RED1的閃亮指示出來,即發(fā)光二極管作脈搏狀態(tài)顯示,心臟每跳動一次發(fā)光二極管亮一次[8]。脈搏信號波形整形電路如圖3-8所示。圖3-8波形整形電路3.5LCD顯示電路設計本次采用字符型液晶LCD1602作為本次脈搏測量儀的顯示器,LCD1602是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,其1602是指LCD顯示的內容為16X2,即可以顯示兩行,每行16個字符,常作為各類單片機實物設計的顯示屏。該模塊具有16個引腳,包括8位數(shù)據(jù)輸入部分、LCD讀寫操作及使能控制部分、背光打開與關閉控制部分以及對比度調節(jié)部分。其接口如下:第1引腳GND接地;第2引腳為VCC,接5V電源正極;第3引腳VO是LCD1602液晶顯示器對比度調節(jié)端,接VCC時對比度最弱,接GND時對比度最高,在使用時如果對比度過高,會因為響應速度原因使圖像發(fā)生模糊,所以在使用時用R2接VCC和R1接地調整對比度;第4腳RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器;第5腳RW為讀寫信號線,高低電平時分別進行讀操作和寫操作;第6腳,EN端為使能端,高電平時讀取信息,負跳變時執(zhí)行指令;第7腳與第14腳,D0到D7是8位雙向數(shù)據(jù)端。如下圖3-9所示[9]。3.6鍵盤電路設計本次設計采用三個獨立式按鍵實現(xiàn)閾值調整、界面切換功能。三個按鍵分為設置加鍵、設置減鍵、切換鍵。設置加鍵是用來對報警閾值進行設置加,設置減鍵是用來對報警閾值進行設置減。界面切換鍵可實現(xiàn)對上下限閾值調整界面進行切換。下圖中3-10為鍵盤電路設計圖,圖中三個個按鍵一端接公共端GND,另一端分別接單片機的I/O。三個按鍵接口分別接單片機的P3^0、P3^1、P3^2引腳,當單片機的相應引腳檢測到低電平時,說明該引腳被觸發(fā),從而實現(xiàn)相應的動作。KEYO——K3圖3-10鍵盤電路設計圖3.7本章小結本章介紹了基于51單片機的脈搏測量儀的設計與實現(xiàn)的硬件電路設計,通過查閱相關器件資料,通過器件的技術文檔做出了電路設計,通過不斷的電路焊接調試,利用萬用表、示波器等設備完成最終的電路設計。包括各個模塊的電路圖等做出了驗證,具體模塊有電源電路設計、主控制電路設計、脈搏采集電路設計、LCD顯示電路設計、鍵盤電路設計等。并根據(jù)設計好的電路進行焊接驗證調試電路圖,做出參數(shù)記錄等。第四章系統(tǒng)軟件設計4.1軟件開發(fā)環(huán)境介紹本次設計主控制采用STC89C52RC單片機為主控制,軟件以KEIL5MDK為開發(fā)平臺,該開發(fā)平臺特點眾多,具有界面美觀、使用效率高、實用性強等特點。KEIL5MDK平臺支持匯編語言、C語言混合編程,也可以單獨編程,是集成化非常高的編譯環(huán)境??梢杂糜诙喾N單片機的開發(fā),并且該開發(fā)環(huán)境支持軟件仿真和硬件仿真,是51系列單片機開發(fā)的首選平臺[10]。本次設計采用的是keil5MDK開發(fā)平臺,利用C語言編程規(guī)范實現(xiàn)對本次設計軟件,該平臺是51系列單片機主流開發(fā)平臺,其界面美觀,是51系列單片機開發(fā)者的首選。該開發(fā)平臺具有開發(fā)效率高、可在線編程仿真調試等優(yōu)點。首先安裝好KEIL5MDK平臺后,新建工程、添加頭文件、創(chuàng)建子程序、編譯、仿真、下載到電路中等步驟,聯(lián)合調試到最終的結果,完成最后的測試。如下圖4-1為KEIL5MDK軟件調試圖。圖4-1KEIL5MDK軟件調試圖4.2軟件設計要求上一章介紹了本設計的硬件電路,包括了各個模塊等。通過本章節(jié)根據(jù)電路原理以及設計要求寫出軟件程序,本設計的設計功能具體如下:能夠實現(xiàn)液晶實時顯示數(shù)據(jù),并能夠切換顯示;能夠實現(xiàn)按鍵調整功能,可對當前脈搏報警上下限閾值進行調整能夠實現(xiàn)使用者的脈搏實時檢測及脈搏超限報警功能;能夠實現(xiàn)使用者的脈搏波采集并上傳到Labview上位機顯示;能夠實現(xiàn)使用者的脈搏數(shù)據(jù)存儲以及掉電顯示;本設計以C語言為基礎,采用Keil5編譯器進行編程以及數(shù)據(jù)獲取,硬件上采用STC15F2K60S2為主控芯片,結合光電傳感器等模塊進行硬件設計,最后通過液晶顯示數(shù)據(jù)將硬件和軟件相結合來實現(xiàn)脈搏測量系統(tǒng)的功能。本章通過系統(tǒng)軟件流程圖的介紹,主程序的介紹、以及各個模塊子程序的介紹。集合硬件寫出軟件程序。4.3系統(tǒng)軟件流程圖本系統(tǒng)設計主要采用Keil軟件編寫與調試程序,程序語言采取易讀性和移植性更高的C語言編寫。系統(tǒng)運行流程圖如下圖所示。要實現(xiàn)以上功能要求,系統(tǒng)的軟件程序框圖如下圖4-2所示。首先進行系統(tǒng)初始化,系統(tǒng)初始化包括液晶初始化配置、定時器初始化以及串口初始化。接下來進入主程序循環(huán)。主程序循環(huán)系統(tǒng)中主要是脈搏信號的實時采集。利用定時器2實現(xiàn)脈搏脈沖信號的捕獲,檢測兩次脈沖的間隔時間,定時器0實現(xiàn)有效脈搏信號的計數(shù),最終通過計算得到實際的脈搏值,將得出的脈搏值存儲在EEPROM中。利用AD開始采集原始脈搏波形并通過串口上傳到Labview上位機。同時鍵盤子程序實時掃描,檢測到切換鍵按下時,會切換顯示;在閾值界面設置狀態(tài)下,設置按鍵按下時上限閾值或下限閾值會相應增加減。程序執(zhí)行到這里完了一次,以下列出整體軟件設計的流程圖,如圖4-2所示:否切換鍵按否切換鍵按系統(tǒng)初始化得出脈搏值采集脈搏波上傳labview存儲數(shù)據(jù)更新是切換顯示圖4-2主程序流程圖4.4脈搏采集子程序設計設計采用檢測兩次脈搏信號脈沖間隔時間計算脈搏,在采集脈搏時,其具體步驟如下:首先是初始化定時器0、2,分別定時1ms、10ms中斷,之后進入循環(huán)。在循環(huán)中,如果脈搏脈沖信號存在30ms以上,在定時器1中斷開始脈搏計數(shù),同時在定時器0中斷排除脈搏測量不穩(wěn)定的情況,最后通過脈搏算法算出其脈搏值,在OLED上顯示出來,其代碼見附錄二源程序,其流程圖如下圖4-3所示。 N 30ms有信號?NY讀取脈搏計數(shù)數(shù)脈搏算法計算脈搏顯示脈搏值 圖4-3脈搏讀取程序流程圖4.5鍵盤程序設計按鍵在本系統(tǒng)中主要起到閾值調整、切換界面等功能。按鍵工作流程如下:首先在正常工作狀態(tài)下,按下切換鍵,進入設置上下限閾值界面,OLED顯示脈搏測量值、上下限閾值,通過設置加鍵、設置減鍵實現(xiàn)上下限閾值的調整。設置完成后最后按下切換鍵會回到初始界面,具體流程圖如下圖4-4所示。YNYN切換鍵按切換鍵按進入設置界面Y加鍵被按加鍵被按Y減鍵被按減鍵被按顯示設置值N設置鍵按Y圖4-4鍵盤程序流程圖4.6OLED顯示程序設計本次設計采用OLED屏作為顯示器,本次選用的是IIC接口,四針的OLED,通過IIC實現(xiàn)驅動OLED,使用方式非常簡單。由上一章節(jié)可知,OLED的SDA、SCL分別接STC15F2K60S2的P2^7、P2^6,通過軟件模擬IIC驅動。IIC接口包括IIC起始信號、IIC停止信號、IIC讀數(shù)據(jù)、IIC寫數(shù)據(jù)、IIC響應信號和非響應信號。以下為OLED讀取顯示數(shù)據(jù)流程圖,首先進行初始化配置,初始化IIC,然后配置指令。接下來進入顯示數(shù)據(jù)工作中,首先確定顯示顯示為坐標,然后顯示字體大小等信息,然后寫入顯示數(shù)據(jù)。其流程圖如下圖4-4所示IIC初始化設定顯示坐標寫顯示數(shù)據(jù)圖4-5OLED顯示流程圖4.7本章小結本章對整個設計的軟件設計進行了詳細介紹,包括主程序流程圖,主程序包括了各個子模塊程序,首先通過主程序的分析,將每個模塊分割為幾個小模塊,整個程序模塊化編程使程序具有可讀性。每一個子程序都包含的各個傳感器、模塊電路的驅動程序,通過每一個部分的驅動程序,在主程序的條件下來控制所有的子程序,方便程序的修改以及問題的調試。第五章系統(tǒng)調試通過系統(tǒng)硬件設計與軟件設計完成整個系統(tǒng)的設計,設計功能實現(xiàn)后需要對硬件和軟件進行調試,電子系統(tǒng)中最關鍵的就是系統(tǒng)的測試,測試可以鑒定其工作性能以及穩(wěn)定性。本章通過硬件調試和軟件調試來分別對系統(tǒng)測試,最終得到最后的結果。5.1硬件調試本次設計采用AltiumDesigner13設計出了PCB電路板線路圖,該軟件是Protel99se的升級版,是一款高性能、開發(fā)方便的EDA軟件,該軟件僅僅能夠繪制原理圖、PCB等還能進行嵌入式開發(fā)。本次采用該軟件繪制出來整個系統(tǒng)的電路圖,以及PCB圖,在設計過程中要注意(1)線寬規(guī)則:地線鋪銅,電源線寬大于信號線寬。(2)走線不能直角,盡量45度轉角。(3)電源電路和信號電路盡量隔遠。(4)電源線從濾波電容布線輸出。5.1.2硬件電路焊接硬件電路是系統(tǒng)板的核心重要部分,也是最容易出錯的部分,因此在焊接過程中必須要嚴謹仔細,注意焊接器件時要做注意輕拿輕放。特別是在電源一塊要防止電路出現(xiàn)短路等問題。在焊接過程中主要有一下幾步:第一步:檢查,選擇好合適的元件后,利用萬用表等儀器測量元件的特性是否完好,能夠識別出器件是否正常,通過儀表儀器測出其相關值。第二步:焊接,在焊接過程中,首先焊接電源部分,電源是硬件電路中的關鍵,首先分清楚供電電源線的正負極,以及元器件的正負極引腳。將對應引腳焊接,最終上電測試,電壓是否正常,若正常則進步下一步。不正常則繼續(xù)測試。第三部:核心控制部分調試:焊接剩余相關元件的時候注意芯片引腳順序、LED的正負極等主要問題,最終焊接完成后,將程序燒錄到STM32單片機中。第四步,在一切模塊都可以單獨運行后,對整個系統(tǒng)進行整合組裝,并用萬用表對所有功能模塊進行監(jiān)測,檢測其是否正常運行。此時會出現(xiàn)一種現(xiàn)象,有時在手持設計的時候會造成現(xiàn)象丟失不準確等隨機故障,但是把其放到桌面上就不會有這些問題。經(jīng)過排查后發(fā)現(xiàn)手指的不慎誤觸,會導致一些元件引腳的短路,再加上電壓不高,因此不易察覺,由于造成需焊接問題,最終通過在該點位置焊接加錫絲即可[11]。焊接完成效果5.2軟件調試軟件調試主要在KEIL5MDK平臺上進行軟件bug調試,通過對軟件中編譯的問題進行修改和調試。本次設計主控是STC89C52RC,開發(fā)環(huán)境是基于KEIL5,通過新建工程、創(chuàng)建主程序、編譯、下載調試等步驟,先寫出一個小模塊,然后點擊編譯按鈕,然后增加完善到最后的理想結果。圖5-2KEIL5MDK軟件最終調試圖MDK的一個強大的功能就是提供軟件仿真,通過軟件仿真,我們可以發(fā)現(xiàn)很多將要出現(xiàn)的問題,避免了下載到STC89C52里面來查這些錯誤,這樣最大的好處是能很方便的檢查程序存在的問題,因為在MDK的仿真下面,你可以查看很多硬件相關的寄存器,通過觀察這些寄存器,你可以知道代碼是不是真正有效。5.3系統(tǒng)調試最后一步就是硬件整體測試了,主要運用萬用表、直流電源和示波器對焊接好的板子進行整體調試,主要檢查每一個器件是不是都正常工作了,主要分為兩個環(huán)節(jié)動態(tài)調試和靜態(tài)調試。其中靜態(tài)調試主要分為以下四種:1.肉眼觀察。主要觀看焊接點是否飽滿,以及相連器件之間是否相連或者器件管腳沒有焊接好,出現(xiàn)短路現(xiàn)象。2.使用萬用表調試。首先查看電源是否短路,然后測量管腳是否連接正確,有沒有接線錯誤。3.上電檢查。在完成第一步和第二步都沒有問題,接下來就可以上電了,上電以后觀看每個器件是否正常工作,然后在逐一測試功能。4.綜合檢查測試。這種測試方法只適合單片機開發(fā)板開發(fā)的系統(tǒng)才能使用這種方法,本文不適宜用這種方法測試。動態(tài)調試。動態(tài)調試主要是靜態(tài)調試沒有任何問題,做最后一步檢查,就是每個器件能否正常工作,能否滿足我系統(tǒng)開發(fā)的功能,防止器件內部損壞,影響系統(tǒng)性能[12]。5.4實物測試通過對本次課題設計的系統(tǒng)設計和硬件電路設計,最終做出電路板,將電路各個模塊進行焊接。在焊接時應該注意先后順序,先焊接電路模塊,將電路接口和電源開關焊接好后,接通電源。接下來利用萬用表測試各個電源點是否正常,測試正常后進入下一步的焊接。焊接順序按照先焊接電源和主控制單片機部分,先焊接小元件再焊接大元件的方式,最終焊接完成圖樣如下圖5-3所示。在系統(tǒng)板在開機后,正常運行不放手指時,LCD第一行會顯示“HeartRate:”,第二行不顯示,如下圖5-4所示為系統(tǒng)開機界面和數(shù)據(jù)顯示主界面圖。放手指時,在主界面下實時顯示該系統(tǒng)的脈搏數(shù)據(jù),并可以自動刷新顯示脈搏測量數(shù)據(jù)。如下圖所示,LCD第一行會顯示“HeartRate:”,第二行會顯示脈搏測量值41。(a)開機界面圖(b)主界面圖圖5-4開機和主界面調試界面圖在主界面上實時顯示時,可通過按鍵實現(xiàn)其他功能,按下切換鍵時,LCD將切換到閾值調整界面。整個顯示界面顯示脈搏測量值、上下限閾值等信息,通過設置增和設置減按鍵可以實現(xiàn)上、下限閾值的調整。默認下限閾值40,上限閾值100。當脈搏測量值低于下限閾值或者高于上限閾值,蜂鳴器報警提示。如下圖5-5所示為閾值調整界面。第一行顯示脈搏測量值,第二行顯示當前上限或下限閾值。圖5-5上下限閾值調整界面5.5誤差結果分析經(jīng)多次測量,得到下表1:表1測量數(shù)據(jù)表實際的心率次數(shù)測量得出脈搏波次數(shù)1測量得出脈搏波次數(shù)2測量得出脈搏波次數(shù)3測量得出脈搏波次數(shù)4測量得出脈搏波次數(shù)5注:實際的脈搏次數(shù)以聽診器測出的心率次數(shù)為準。根據(jù)絕對誤差公式:D=X-x其中X為實際心率次數(shù)均值,x為脈搏測量次數(shù)均值,可得出絕對誤差D為1.2。由相對誤差公式Er得:Er= DEr=究其原因不難發(fā)現(xiàn),因為傳感器與各器件無法達到理想線性,需要實測值給予線性補償。由均方差公式得:S=sqr[]=0.59誤差結果在允許范圍內,基本達到設計要求。參考文獻[1]陳文彬,王友赤.診斷學[M].人民衛(wèi)生出版社,2002.45-90.[2]王瑞元,孫學川,熊開宇.運動生理學[M].人民體育出版社,2002.76-81.[3]李朝青.單片機原理及其接口技術.北京:北京航空航天大學出版社,2006[4]孫惠芹.單片機項目設計教程.北京:電子工業(yè)出版社,2009[5]李建忠.單片機原理及應用.西安:西安電子科技大學,2002年[6]汪會.定脈沖實現(xiàn)心率測量[J].科技傳播,2010(17):185+188.[7]陳奕鴻,孫玉軒,周祖德,何芳.心率計脈搏測量儀[J].電子世界,2019(06):66-67.DOI:10.19353/ki.dzsj.2019.06.033.[8]朱國富,廖明濤,王博亮.袖珍式脈搏波測量儀[J].電子技術應用雜志,1998,第12卷,第1期,1-3.[9]傅揚烈主編.單片機原理與應用教程.北京:電子工業(yè)出版社.2002[10]張毅剛編著.新編MCS-51單片機應用設計.哈爾濱:哈爾濱工業(yè)大學出版社.2003:89-102[11]江思敏主編.PROTEL電路設計教程.北京:清華大學出版社.2002.9:113-118[12]肖洪兵主編.跟我學用單片機.四川:北京航空航天大學出版社.2002.9:179-201致謝在即將畢業(yè)的這段時間,非常感謝我的指導老師,在我完成這次畢業(yè)設計的過程給了我細心的指導、以及嚴格的要求。他對我總是耐心的要求,老師的教學作風深深影響著我,當我遇到問題老師時,他并不會直接告訴我答案,總是讓我自己去查閱資料,確實,很多知識點在網(wǎng)上和書上都能找到。在他的指點下我滿懷信心的完成的我的畢業(yè)設計。與此同時,我也獨立的解決的許多問題,這樣也增強了我的自我創(chuàng)新能力老師的熱心,真誠和嚴謹?shù)膶W術精神給我印象深刻,也正是因為這樣我才能學到更多的知識,在這里再次表達對老師的感激之情!從我上大學以來,學校的每位老師都兢兢業(yè)業(yè)的指導我們的工作和學習,這讓我度過了充實而有意義的大學時光,同時我的專業(yè)能力,綜合素質都得到了飛躍的提升。這次撰寫畢業(yè)設計,不光得到了指導老師的幫助,同時也得到了很多同學的幫助,我想如果沒有他們,我不會如此順利的完成我的畢業(yè)設計,在這里,我衷心的感謝你們,謝謝!附錄一實物圖附錄二電路圖1kP3101kP31021VCC21VCCPOWERVCCVCCR13U3VCC2VCCLS1VCCRDERDER4R4bVCC1KVCCVCCVCC6R1VCC6RY10KXL10KXLR5K130pf30R5K1+U1RESERESET10uFR7RR3R8R9CBACB424231424231314212附錄三元件清單11STC89C52單片機1LM358芯片11輕觸按鍵45mm紅外接收管15mm紅外發(fā)射管1有源蜂鳴器111LED(5mm紅色)111103可調電位器1116p單排母座11導線若干\焊錫若干\\\附錄四源程序#include<reg52.h>#include<intrins.h>//包含頭文件#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlong//宏定義#defineLCD_DATAP0//定義P0口為LCD_DATAsbitLCD_RS=P2^5;sbitLCD_RW=P2^6;//定義LCD控制引腳sbitLCD_E=P2^7;sbitXintiao=P1^0;//脈搏檢測輸入端定義sbitspeaker=P2^4;//蜂鳴器引腳定義voiddelay5ms(void);//誤差0usvoidLCD_WriteData(ucharLCD_1602_DATA);//LCD1602數(shù)據(jù)寫入voidLCD_WriteCom(ucharLCD_1602_COM);//LCD1602命令寫入/*1602字符顯示函數(shù),變量依次為字符顯示首地址,顯示字符長度,所顯示的字符*/voidlcd_1602_word(ucharAdress_Com,ucharNum_Adat,uchar*Adress_Data);voidInitLcd();//液晶初始化函數(shù)voidTim_Init();定時器初始化ucharXintiao_Change=0;uintXintiao_Jishu;ucharstop;ucharView_Data[3];ucharView_L[3];ucharView_H[3];ucharXintiao_H=100;ucharXintiao_L=40;ucharnum[10];uintnum_OK=0;ucharXT=0;//脈搏上限//脈搏下限ucharKey_Change;ucharKey_Value;ucharView_Con;ucharView_Change;//按鍵鍵值//設置的位(0正常工作,1設置上限,2設置下限)voidmain()//主函數(shù){InitLcd();Tim_Init();lcd_1602_word(0x80,16,"HeartRate:");//初始化顯示TR1=1;//打開定時器while(1)//進入循環(huán){if(Key_Change)//有按鍵按下并已經(jīng)得出鍵值{Key_Change=0;//將按鍵使能變量清零,等待下次按鍵按下View_Change=1;switch(Key_Value)//判斷鍵值{case1://設置鍵按下{View_Con++;//設置的位加if(View_Con==3)//都設置好后將此變量清零View_Con=0;break;//跳出,下同}case2://加鍵按下{if(View_Con==2)//判斷是設置上限{if(Xintiao_H<150)//上限數(shù)值小于150Xintiao_H++;//上限+}if(View_Con==1)//如果是設置下限{if(Xintiao_L<Xintiao_H-1)//下限值小于上限-1(下限值不能超過上限)Xintiao_L++;//下限值加}break;}case3://減鍵按下{if(View_Con==2)//設置上限{if(Xintiao_H>Xintiao_L+1)//上限數(shù)據(jù)大于下限+1Xintiao_H--;//上限數(shù)據(jù)減}if(View_Con==1)//設置下限{if(Xintiao_L>30)//下限數(shù)據(jù)大于30時Xintiao_L--;//下限數(shù)據(jù)減}break;}}}if(View_Change)//開始顯示變量{View_Change=0;//變量清零if(stop==0)//心率正常時{if(View_Data[0]==0x30)//最高位為0時不顯示View_Data[0]='';}else//心率不正常(計數(shù)超過5000,也就是兩次信號時間超過5s)不顯示數(shù)據(jù){View_Data[0]='';View_Data[1]='';View_Data[2]='';}switch(View_Con){case0://正常顯示{lcd_1602_word(0x80,16,"HeartRate:");//顯示一行數(shù)據(jù)lcd_1602_word(0xc0,16,"");//顯示第二行數(shù)據(jù)lcd_1602_word(0xcd,3,View_Data);//第二行顯示心率break;}case1://設置下限時顯示{lcd_1602_word(0x80,16,"HeartRate:");//第一行顯示心率lcd_1602_word(0x8d,3,View_Data);View_L[0]=Xintiao_L/100+0x30;//將下限數(shù)據(jù)拆字View_L[1]=Xintiao_L%100/10+0x30;View_L[2]=Xintiao_L%10+0x30;if(View_L[0]==0x30)//最高位為0時,不顯示View_L[0]='';lcd_1602_word(0xC0,16,"WarningL:");//第二行顯示下限數(shù)據(jù)lcd_1602_word(0xCd,3,View_L);break;}case2://設置上限時顯示(同上){lcd_1602_word(0x80,16,"HeartRate:");lcd_1602_word(0x8d,3,View_Data);View_H[0]=Xintiao_H/100+0x30;View_H[1]=Xintiao_H%100/10+0x30;View_H[2]=Xintiao_H%10+0x30;if(View_H[0]==0x30)View_H[0]='';lcd_1602_word(0xC0,16,"WarningH:");lcd_1602_word(0xCd,3,View_H);break;}}}}}voidTime1()interrupt3//定時器1服務函數(shù){staticucharKey_Con,Xintiao_Con;uchari,j;ucharzancun;bitflag_break;TH1=0xd8;//10msTL1=0xf0;//重新賦初值switch(Key_Con)//無按鍵按下時此值為0{case0://每10ms掃描此處{if((P3&0x07)!=0x07)//掃描按鍵是否有按下{Key_Con++;//有按下此值加1,值為1}break;}case1://10ms后二次進入中斷后掃描此處(Key_Con為1){if((P3&0x07)!=0x07)//第二次進入中斷時,按鍵仍然是按下(延時去抖){Key_Con++;//變量加1,值為2switch(P3&0x07)//判斷是哪個按鍵按下{//判斷好按鍵后將鍵值賦值給變量Key_Valuecase0x06:Key_Value=1;break;case0x05:Key_Value=2;break;case0x03:Key_Value=3;break;}}else//如果10ms時沒有檢測到按鍵按下(按下時間過短){Key_Con=0;//變量清零,重新檢測按鍵}break;}case2://20ms后檢測按鍵{if((P3&0x07)==0x07)//檢測按鍵是否還是按下狀態(tài){Key_Change=1;//有按鍵按下使能變量此變量為1時方處理鍵值數(shù)Key_Con=0;//變量清零,等待下次有按鍵按下}break;}}switch(Xintiao_Con)//此處與上面按鍵的檢測類似{case0://默認Xintiao_Con是為0的{if(!Xintiao)//每10ms(上面的定時器)檢測一次脈搏是否有信號{Xintiao_Con++;//如果有信號,變量加一,程序就會往下走了}break;}{if(!Xintiao)//每過10ms檢測一下信號是否還存在{Xintiao_Con++;//存在就加一}else{Xintiao_Con=0;//跳出此次檢測}break;}case2:{if(!Xintiao){Xintiao_Con++;//存在就加一}else{Xintiao_Con=0;//跳出此次檢測}break;}case3:{if(!Xintiao){Xintiao_Con++;//存在就加一}else{Xintiao_Con=0;//跳出此次檢測}break;}case4:{if(Xintiao)//超過30ms有信號,判定此次是脈搏信號{//心率計原理為檢測兩次脈沖間隔時間計算心率,變量Xintiao_Change//第一次脈沖時為0的,所有走下面的else,第二次走這里if(Xintiao_Change==1){if(60000/Xintiao_Jishu<200){num[XT]=(60000/Xintiao_Jishu);XT++;if(XT>=5){XT=0;for(i=0;i<5;i++){flag_break=0;for(j=0;j<5;j++){if(num[j]>num[j+1]){zancun=num[j];num[j]=num[j+1];num[j+1]=zancun;flag_break=1;}}if(flag_break==0)break;}num_OK=(num[1]+num[2]+num[3]/*+num[5]+num[6]+

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論