版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1-基于單片機的脈搏測量儀設計摘要脈搏測量儀在生活中被大量運用,用于對人的身體健康情況進行測量,經常被用于醫療機構。本次課題設計了一種基于51單片機的脈搏測量儀,為了方便和靈敏使用了STC89C52單片機,用紅外光電傳感器來感應人體的脈搏次數,產生的信號經過濾波和放大后向單片機傳輸,單片機通過對信號的處理和計算得出單位時間脈搏次數,并在LCD1602上顯示。系統運行過程中可以通過觀察指示燈的閃爍情況,來判斷測試數據是否準確,指示燈的閃爍頻率是測量出的脈搏頻率,如果閃爍時間均勻則表示測得的數據準確,反過來則不準確。經過多次的測試,本系統工作能夠完成各項功能,達到設計要求。本次設計通過紅外光電傳感器把脈搏信號轉換成電脈沖信號,通過放大整形電路后,輸入給單片機內部進行相對應的計數和運算,從而得到單位時間的脈搏頻率,簡單快捷。系統不僅可以使用戶測量脈搏次數,還可以通過按鍵設置脈搏上下限次數,當測量出的結果在設定的范圍之外,則給蜂鳴器通電,讓其發出警告聲音提醒用戶,最終可以把得到的脈搏信號直接在LCD1602上顯示,以便使用者查看。關鍵詞:STC89C52,脈搏測量儀,LCD顯示器,光電傳感目錄摘要 IAbstract II目錄 III前言 51概述 61.1選題的背景和意義 61.2脈搏測量儀的發展與應用 62脈搏測量儀的系統構造 82.1脈搏測量儀的基本構成 82.2基本工作原理 82.3基于單片機的脈搏測量儀的特點 93總體方案的論證與設計 103.1單片機的選擇和論證 103.2顯示模塊的選擇與論證 103.3傳感器的選擇與論證 113.4系統整體設計概述 114系統硬件電路設計 134.1主控模塊 134.1.1STC89C52單片機介紹 134.1.2單片機基本電路 174.2顯示模塊 184.2.1液晶顯示器簡介 184.2.2LCD液晶顯示器介紹 184.2.3LCD液晶顯示器和單片機的連接 194.3信號采集電路設計 204.3.1傳感器電路 204.3.2信號放大濾波電路 214.3.3波形整形電路 224.4報警及脈搏范圍設置電路 224.5整體硬件電路 235系統軟件設計 245.1軟件編程環境 245.2程序流程圖的設計 246系統調試 276.1硬件調試 276.2軟件調試 27總結 30附錄:系統源程序 33前言脈搏是一個檢測人體健康情況的重要數據,那么怎樣精確的檢測脈搏也是一個重要的問題,以前科學技術不發達,只能通過人體觸摸來測量脈搏,但隨著科技的發展,各種測量脈搏的儀器被陸續發明。目前脈搏測量儀在多個領域被廣泛應用,除了應用于醫學領域,如無創心血管功能檢測、妊高癥檢測、中醫脈象、脈率檢測等等,商業應用也不斷拓展,如運動、健身器材中的心率測試都用到了技術先進的脈搏測量儀。本次課題就是要設計一個簡單,便捷的脈搏測量儀,使其能夠滿足個人或家庭使用的需求。本次設計的脈搏測量儀以單片機為核心控制,通過傳感器檢測人體脈搏,再把檢測到的信號經過一系列處理傳輸給單片機芯片,使其計算得出脈搏頻率結果,最后顯示在屏幕上,使我們能夠直接了解數據。1概述1.1選題的背景和意義脈搏是人的血液經心臟流動到全身動脈所引起的搏動,它能夠間接體現很多人體的健康情況.從很早以前我國就有關于脈博方面的著作,且隨著時代一直在不斷的發展與進步.脈診在中醫中有著很關鍵的作用.中醫生就是先診斷病人的脈搏來了解病人的身體情況,再對相應病狀進行開藥和處理.中醫學普遍認為,許多的疾病在沒有明顯表現出來的時候,其實在人體內已經有了細微的變化,心臟作為人體血液循環的動力源,是人體相當關鍵的器官,對心臟所引起的搏動的判斷,可以起到分析病狀,預防疾病等重大意義。因為中醫生是用手來觸碰患者脈搏來獲得脈搏信息,雖然操作簡單,但在大規模的醫療使用中也出現一些不好的地方.其一,在診斷時醫生對患者脈搏的測量感應來自于自己的手,會受到自身感覺及狀態等的影響,有著一定的主觀臆想判斷.其二,用手診斷的方法雖然看起來簡單,但是是需要對方法進行學習和掌握,同時也需要長時間的經驗積累,有著一定的限制.第三,因為是用手對脈搏進行測量,對感受到的脈搏無法進行具體的記錄和保存,影響之后對脈搏的分析研究.這種測量脈搏方法的主觀性和限制性,在很大方面上影響了脈搏測量結果的精度,對中醫的發展與應用有著限制.在脈搏測量儀沒用普及之前,醫院里每天都會給不同的病人測量及記錄脈搏頻率,通過用手按壓在病人的動脈上,來測量脈搏的次數,會測量10秒鐘的脈搏次數,再計算得到脈搏頻率,以達到節省時間的效果,這樣做費事費力,精準度通常也不高.隨著時代的發展,研究創造了多種脈搏測量儀,來提高脈搏測量的速度和精準度,使醫學診斷走向了新道路。近年來,各種脈搏測量儀取代人工運用到醫學和生活中.早在50年代國內就開始研究脈搏儀器,一直到70年代,多學科共同合作研究使脈搏研究進入了新的境界,也加快對傳感器的研究,雖然這幾年傳感器在著重研究多點式,但是現在使用最多和最廣的還是單部單點式。1.2脈搏測量儀的發展與應用主動脈血管的定期規律性性收縮和松弛是因為人體心臟規律性的跳動,給血液的壓力,使其以波方式從主動脈根部開始擴散到整個動脈系統,這種波稱之為脈搏心率波,通過脈搏心率波了解人體的疾病信息作為疾病診斷和治療的根據,一直以來都受到醫學界的重視.脈搏心率波所表示顯現出的各中信息,能夠很大方面上表達顯現出人體某些生理疾病的特質,因而對于這種信號的采集和處理在醫學方面有著很高的價值。現在隨著科技的發展及各種技術的成熟,對于脈搏測量儀的簡便性和精度要求也不斷的提升.國內外也先后研制了多種類型的脈搏測量儀,但其中最重要是對傳感器的研究.最開始主要應用的傳感器是接觸式的,傳感器和身體部位有著直接接觸,運用這種傳感器研究制作出的測量儀有耳脈,指脈等.指脈制作相對簡單,運用也方便,但是傳感器硬件較脆弱容易受到損壞,指夾較長時間的反復使用,會使其受到污染,從而很大可能導致儀器的敏感度降低.耳脈在測量使用時比較干凈,維護也簡單,但耳脈比較脆弱,很容易受到環境溫度的影響,測量出的結果很可能不準確.以前常使用的日常監護儀器,如方便攜帶式的電子血壓計也能進行測量脈搏頻率,但是它是通過微型氣泵對橡膠氣囊進行加壓和減壓來測量,體積較龐大,精準度也不高,還有可能讓人出現不適等缺點。近些年來全球致力于對非接觸式傳感器的開發與研究.主要有光電采集傳感器,紅外線采集傳感器,數字脈搏傳感器等.這類傳感器主要有不用直接接觸人體,不會對人體造成傷害,能夠自動消除環境的干擾,減少誤差提高精準度等優點。其中光電脈搏傳感器是運用光敏元件制作的脈搏傳感器,可以通過對手指末端透光度監測,間接收集手指血液循環的脈搏信號,有著方便快捷,精度高,不會對人體造成傷害,結構簡單,可重復使用等優點.基于光電式傳感器的脈搏測量儀早已應用到社會各個方面中,有著良好的效果。1.3課題研究內容幾乎世界上所有的民族都用過“摸脈”作為診斷疾病的手段。脈搏所展現出的各方面綜合信息,可以把大多人體心血管系統中許多生理疾病的血液特點體現出來,但是人體的生物信號大多都是低頻的微弱信號,脈搏信號更是低頻微弱的非電生理信號,只有經過一系列處理后才能達到采集的要求。如何準確測量及顯示脈搏次數就是本論文的主要內容。本次設計采用單片機微型處理器為核心,通過傳感器采集脈搏信號,再把采集輸出的信號進行濾波,放大,整形使其滿足單片機使用要起,再通過單片機系統內部定時器來計算脈搏跳動時間,單片機通過對脈搏信號進行統計計算得到脈搏跳動頻率,最后把測量得出的數值在顯示器上顯示。一般正常人的脈搏頻率大概在每分鐘60~100次左右,用按鍵模塊來設置人體脈搏頻率范圍,超出或低于設置范圍人體健康可能存在問題,這是蜂鳴器模塊就會驅動蜂鳴器報警.系統運行中可以通過觀察指示燈閃爍情況來判斷測量結果是否準確,若指示燈均勻閃爍說明誤差較小,測量結果準確,若指示燈閃爍忽慢忽快,說明測量結果可能存在誤差.通過上述步驟,就可以得到人體的脈搏數值,粗略的判斷人體的健康程度,適合個人或家庭使用。2脈搏測量儀的系統構造脈搏測量儀,是把人體脈搏跳動變化產生的信號進行采集,再把采集到的信號轉化成電信號,使電信號能夠表達人體脈搏頻率.在此過程中電信號需要通過相應的硬件電路及芯片處理,才能最終表達。2.1脈搏測量儀的基本構成脈搏測量儀是利用傳感器作為脈搏信號和電信號的交換元件,用硬件電路對得到的電信號進行處理,再由單片機進行計算,最終用顯示器顯示脈搏頻率的裝置。本次設計的系統就由傳感器電路,單片機基本電路,干擾信號處理電路,數據顯示電路,電源電路等部分組成。1傳感器是把非電信號轉化成電信號的元件,它可以把接收到的非電信號,按一定的線性關系轉變成方便計算機測量和使用的物理量(如電壓,電流等)輸出。2信號處理電路是對傳感器收集到的信號進行一系列處理使其能夠供后面的電路使用的模擬電路。3單片機電路即能使單片機進行正常工作的基本電路,脈搏頻率也是通過單片機內部對信號進行計算得出的。4顯示電路即把單片機計算得出的脈搏頻率結果用顯示器顯示除了,方便我們直接準確的知道脈搏頻率。5電源既為傳感器,信號處理電路,單片機提高電源,使其能正常工作,采用5v直流電源供電.2.2基本工作原理本次設計以單片機為控制核心,實現脈搏測量儀的基本功能,其基本框圖如下圖2.1所示:圖2.1工作原理圖當把手指放在傳感器上,隨著脈搏的跳動,會產生一些生理量的變化,由傳感器接收這些變化的生理量,再把它轉換成電壓信號對外輸出。該電壓信號一系列處理后輸送給單片機,再由單片機內部對信號進行統計計算,得出的結果最后輸送給顯示電路,進行顯示,使我們能夠直接看到。2.3基于單片機的脈搏測量儀的特點與傳統的脈搏測量儀相比,本次設計的脈搏測量儀有著以下特點:1測探部分不入侵人體,不造成人體損傷,不會給人體帶來不適。2傳感器可以反復使用,精準度高。3測試的電源電壓為5V直流電。4穩定性好,壽命長,維修方便。5結構簡單,體積小,重量輕,性價比高。6測量的有效范圍為50~199次/分鐘。3總體方案的論證與設計本次設計的任務是,設計一個以STC89C52單片機控制的脈搏測量儀,其主要器件有單片機芯片,傳感器,顯示器等,主要模塊有顯示模塊,控制模塊等.本次設計的脈搏測量儀其主要功能有:1通過傳感器能夠簡單快捷準確的測量出脈搏頻率并在顯示屏上顯示。2有led燈提示測量的脈搏狀態,指示燈隨心跳同時閃動,在測量時指示燈有規律的均勻閃爍則說明測量準確。3對測量的脈搏設置上下限,當測量出的結果大于上限或小于下限時蜂鳴器會報警提示。3.1單片機的選擇和論證要實現本次設計系統的各個功能,那么單片機的選擇尤為關鍵.目前市場上比較常用的幾款單片機有:AT89系列,MCS-51系列,STC89系列,PIC系列,AVR系列等.其中PIC系列和AVR系列主要用于大型辦公自動化產品中,與本次設計的需求不符,故在本次論文中不再詳細介紹PIC系列和AVR系列,那么下面對其它三個系列的單片機進行簡單的介紹和比較方案一:采用8051單片機,8051單片機是英特爾公司于1981年推出的八位單片機。它采用40針DIP(雙列直插式封裝)。它具有4kb的ROM(片上可編程空間)和128字節的內置RAM空間,如果需要,可以與單片機連接64KB的外部存儲器。其功耗為630mW。方案二:采用AT89C51單片機,它兼容于MCS-51系列單片機,而且具有1000次可擦寫的FLASHMEMORY,便于系統的開發以及參數的修改.有著8k程序存儲空間,256k數據存儲空間,內部沒有帶EEPROM存儲空間,需要一個專用的下載器才可以下載程序。其與8051功耗相比更低,為120mW,在設備的使用也攜帶上更方便。方案三:采用STC89C52單片機,該單片機是一種價格便宜,應用簡單,可靠性高的8位單片機,有著8k程序存儲空間,512k數據存儲空間,內部帶有EEPROM存儲空間,可以直接有串口下載程序,與AT89C52單片機比較有著更強的抗干擾能力基于以上原因,本次設計采用STC89C52系列單片機最為適合。3.2顯示模塊的選擇與論證方案一:采用點陣數碼管,點陣數碼管是通過8行8列的發光二極管來顯示文字.它的顯示需要依靠驅動電路帶動,電路的布置就比較麻煩切引腳較多,價格也比較貴。方案二:采用LED數碼管.LED數碼管價格適中,應用的芯片引腳也不多,多用于顯示數字,但在電路的調試和測試時會有障礙,且編寫顯示程序較多,容易出錯。方案三:采用LCD液晶顯示屏.LCD液晶顯示屏價格適中,能顯示的內容也比較豐富清晰,且可以顯示兩行的能容,控制也比較簡單,調試使用也比較方便。基于以上原因,本次設計采用LCD1602顯示。3.3傳感器的選擇與論證方案一:采用壓電傳感器來提取脈搏信號,其原理是利用某些電介質在受到壓力下電阻率發生相應變化而輸出信號也相應改變來制成的傳感器.該傳感器具有頻帶寬、靈敏度高、信噪比高、結構簡單、工作可靠和重量輕等優點,通過這種傳感器可以把脈搏跳動產生的力信號轉換成電信號傳輸給單片機,但是一些電介質材料容易受潮,并且輸出的直流響應不好,只有通過高輸入阻抗電路或電荷放大器來彌補這一缺點。方案二:采用光電傳感器來提取脈搏信號,人的手指由皮膚,肌肉,骨頭等不是血液的組織和血液組織組成,由于光線被不是血液的組織的吸收量是一定的,但是人體中的血液對于光線的吸收量是變化的,血液循環系統中靜脈的動作相對于動脈的動作來說很微弱,那么基本可以認為動脈的動作是光線透過血液后吸收量變化的原因,在特定光源下通過測量手指的透光量變化就可以間接測量出人體的脈搏信號.光電傳感器具有精度高,反應快,非接觸等優點,結構簡單,形式多樣,在檢查和控制中應用廣泛。由于壓電傳感器在使用時容易受到外界的干擾,在實際操作中容易對數據有影響,而光電傳感器抗干擾性比較強,成本差別也不大,那么在本次設計中采用光電傳感器。3.4系統整體設計概述本次設計是用STC89C52單片機為核心,由顯示器模塊,傳感器模塊,時鐘模塊,報警模塊,運放模塊等組成,還設計了按鍵,來設置脈搏頻率范圍,如果測量出的脈搏數值超過設置的范圍那么蜂鳴器就會報警提醒.在測量時要把手指按在光感傳感器上,通過血液的透光性不同間接測量脈搏搏動再把搏動信號通過運算放大傳輸給單片機,由單片機對傳回的信號進行統計,計算,最終得到人體的脈搏跳動頻率,再傳輸到顯示器上顯示.系統設計框圖如圖3.1所示。圖3.1流程圖4系統硬件電路設計4.1主控模塊主控模塊是整個系統的中樞,主控模塊可以控制其他模塊的使用,這次設計的主控模塊就是STC89C52單片機模塊。其基本組成構造如下圖4.1所示。圖4.1單片機基本構造圖51系列單片機最開始是因特爾公司研發制造的,但之后因特爾公司把51系列單片機的研發方案與技術賣給了其他的IT公司,比如Atmel,SST等公司.由此市面上出現了各種各樣的51類型單片機,其核心構造基本相同,且都兼容51系列指令,也在原來的基礎上進行了一些不同的功能擴展。STC89C52單片機在處理器上有40個引腳,可同時使用8位的信號輸入輸出端口4個,1個全雙工異步串行口,有著5個中斷信號端口,2個優先端口,2個16位定時/計數器。STC89C52單片機由4K的程序存儲器(ROM),和128字節的數據存儲器(RAM)組成存儲器系統。4.1.1STC89C52單片機介紹(1)中央處理器STC89C52單片機的中央處理器是一個由運算器和控制邏輯構成的8位微型處理器,有著多個特殊功能寄存器.算術邏輯模塊可以執行算術運算,如加法、減法、乘法、除法,以及其他算術運算,如“與”、“或”,并對數據進行運算。操作的操作數可以首先放置在累加器或寄存器中,操作的結果可以返回到累加器或寄存器或通用存儲器。寄存器用于在乘法運算中存儲乘數,在除法運算中存儲除數,以及在運算后在內存的中心部分存儲運算的結果。單片機是由程序控制得到計算機,就是它的運行過程是由程序控制,逐條執行程序命令的過程:從程序存儲器中讀取命令再傳輸給譯碼器進行譯碼,譯碼后輸出操作信號,來控制單片機各個部分動作.STC89C52的控制器在單片機內部起著對各個部分的數據傳輸和運算,發出控制信號的功能。(2)存儲器采用特殊點存儲器結構的STC89微控制器設計用于將應用存儲器與數據存儲器分開,每個數據存儲器都擺脫了自己的地址結構和地址模式。公共微計算機只有一個內存空間,當它打開它時,可以自由地使用相同的命令對ROM或RAM進行排序。STC89微控制器具有4個存儲器:片外數據存儲器、片外程序存儲器、片內數據存儲器和片內程序存儲器。STC89C52微控制器具有128b的片內RAM數據存儲器,可存儲可讀/寫的數據。芯片上有一個片內程序存儲器ROM,具有4Kb,可以存儲原始數據和表格以及程序。出此之外,還可以在片外擴展RAM和ROM,并各自有著64kb的尋址范圍.把RAM和ROM直接集成在單片機里面是現在單片機的發展趨勢,這樣做既方便使用者使用也提高了系統的抗干擾性。STC89C52微控制器具有64kb的程序存儲器,其中4kb地址與片內和片外ROM共享,地址從0000H到FFFH。地址1000H到FFFFH僅適用于外部ROM。用于區分內部ROM公共地址和外部ROM公共地址的EA控制信號由CPU控制器輸出,:當EA連接到低功耗時,CPU從片外讀取命令。當EA連接到高電平時,微控制器自動從芯片上的4kb存儲器讀取命令,并在命令地址超過0FFFH時將命令讀取到片外ROM。當EA連接到高電平時,微控制器自動從芯片上的4kb存儲器讀取命令,并在命令地址超過0FFFH時將命令讀取到片外ROM。。STC89C52微控制器的RAM雖然內存不大,但起著非常重要的作用,每個單元都可以在RAM內部用直接查找地址,工作寄存器通常使用R0'R7,特殊功能寄存器也直接用其名稱更方便。(3)STC89C52單片機引腳STC89C52單片機的引腳如圖4.2所示圖4.2單片機芯片引腳圖部分引腳說明:1.時鐘電路引腳XTAL1和XTAL2:XTAL2(18腳):它連接到外晶體和微調電容器的一端。在芯片上,它是振蕩電路的逆變放大器輸出,振蕩電路的頻率是晶體的自然頻率。如果需要外部時鐘電路,此引腳將進入外部時鐘脈沖。要驗證振蕩電路是否正常工作,請使用示波器查看XTAL2側是否有脈沖信號輸出。XTAL1(19腳):外部晶體和微調電容器另一端與之連接;在芯片上,它是振蕩電路的逆變放大器的輸入。使用外部時鐘時,引腳必須接地。2.控制信號引腳RST,ALE,PSEN和EA:RST/VPD(9腳):RST是復位信號輸入端,高電平有效。當此輸入端保持備用電源的輸入端。當主電源的產生問題電壓水平降低到一定值時,可以自動將+5V電源連接到該引腳,使機器的兩個周期(24個時鐘振蕩周期)為高電平來執行復位操作。RST引腳的第二個功能是VPD,連接到RST端,為RAM提供后備電源,通過這種方法使RAM中存儲的信息不會丟失,并且在重置后也可以繼續正常運行。ALE/PROG(30腳):地址鎖存允許信號端口。當8051成功上電時,ALE引腳連續發射正脈沖信號(信號頻率為fOSC振蕩器頻率的六分之一)。當處理器訪問片外存儲器時,ALE輸出信號充當控制信號,鎖存低8位地址。當正常狀態下不訪問片外存儲器,ALE端也會固定以振蕩頻率的1/6輸出正脈沖,因此ALE信號可用作外部輸出時鐘或定時信號。要檢查8051/8031芯片質量的好壞,可以通過示波器檢查ALE側是否有脈沖輸出。如果有脈沖輸出,8051/8031通常良好。A0LE端最高能負載8個LS型TTL(低功耗甚高速TTL)負載。此引腳也可作為編程脈沖輸入端,對片內帶有4KBEPROM的8751編程寫入(固化程序)。PSEN(29腳):程序存儲允許輸出信號端。訪問片外程序存儲器時,負脈沖會從端子輸出,作為讀取片外存儲器的選通信號。此引腳連接到EPROM的OE端。PSEN端有效,可以讀取EPROM/ROM代碼指令。PSEN側還可以驅動8個LSTL負載。為確保CPU在8051/8031小型系統通電后能夠成功讀取EPROM/ROM上的指令代碼,請使用示波器檢查PSEN側的脈沖輸出。如果有輸出,系統良好。EA/Vpp(31腳):外部程序存儲器的地址允許編程電壓輸入/固化。當連接高EA引腳時,CPU僅訪問片內EPROM/ROM,并在內部程序存儲器中讀取并執行指令,但當PC(程序計數器)的值超過0FFFH(對8751/8051為4K)時,它會自動運行在芯片外的程序內存中程序。當EA輸入引腳連接到低電平(接地)時,CPU僅連接到外部EPROM/IPROM。訪問ROM并執行外部程序存儲器中的指令,即使芯片內有程序存儲器。對于不帶片內ROM的8031或8032,需要增加EPROM,在這種情況下,EA引腳必須接地。該引腳的第二個特性是,當在芯片上對8751EPROM硬化進行編程時,Vpp是用于施加較高編程電壓(通常為12V至21V)的輸入。。3.輸入/輸出端口P0/P1/P2/P3:P0口(P0.0~P0.7,39~32腳):P0端口是一個負極開路的8位準雙向I/O口。作為負極開路的輸出端口,每位能驅動8個LS型TTL負載。當端口P0用作輸入端口時,所有必須寫入1在端口鎖存器(地址80H)上,P0端口的所有引腳都是浮動的,可以用作高阻抗輸入。使用輸入端口時,必須首先寫入1,這是準雙向端口的定義。當處理器使用片外存儲器時,端口P0提供低8位地址同8位數據多路復用總線。在此期間,P0口內部上拉電阻有效。P1口(P1.0~P1.7,1~8腳):端口P1是一個8位準雙向I/O端口,帶有內部上拉電阻器。端口P1每位能驅動4個LS型TTL負載。如果使用端口P1作為輸入端口,則必須將1寫入端口P1的鎖存地址(90H),此時P1端口被內部上拉電阻拉至高電位。P2口(P2.0~P2.7,21~28腳):P2端口是一個8位準雙向I/O端口,帶有內部上拉電阻。P2端口每位可承載4個LSTTL負載。訪問芯片外部EPROM/RAM,會輸出高8位地址。P3口(P3.0~P3.7,10~17腳):P3端口是一個8位準雙向I/O端口,帶有一個內部上拉電阻。每個P3端口能負荷四個LS型TTL負載。P3端口與其他I/O端口有很大不同,每個引腳都有第二個功能。如下:P3.0:(RXD)串行數據接收。P3.1:(RXD)串行數據發送。P3.2:(INT0)外部中斷0輸入。P3.3:(INT1)外部中斷1輸入。P3.4:(T0)定時/計數器0的外部計數輸入。P3.5:(T1)定時/計數器1的外部計數輸入。P3.6:(WR)外部數據存儲器寫選通。P3.7:(RD)外部數據存儲器讀選通。(4)STC89C52單片機中斷系統STC89C52系列微控制器系統具有五個中斷源和兩個優先級,可實現二次中斷服務的封裝。芯片上特定功能寄存器的中斷允許寄存器IE控制處理器是否響應中斷請求。由中斷優先級寄存器IP安排各中斷源的優先級;當有多個同一優先級別的中斷同時提出中斷請求時,由內部的查詢邏輯確定其響應次序。在微控制器的應用系統中,通常有時間管理的要求,如輸出時間、檢測時間、掃描時間等。也經常要對外部事件進行計數。STC89C52微控制器集成了兩個可編程時間計:T0和T1,可在時間模式和外部事件計數模式下工作,T1還可以用作串行端口的傳輸速度發生器。4.1.2單片機基本電路單片機工作需要一些基本條件,電源電路,復位電路,時鐘電路等.復位電路是按下復位按鈕后讓單片機變成開始狀態的電路,時鐘電路是為單片機提供時間基準,選用12MHZ的晶振提供時鐘.其電路圖如下圖3.3所示.圖4.3單片機主控電路4.2顯示模塊4.2.1液晶顯示器簡介液晶顯示器(LCD)英文叫做LiquidCrystalDisplay簡稱LCD,是使用了液晶控制透射率技術實現色彩的顯示器,因為液晶材料的特點,通過電壓進行控制其顯示范圍。在單片機中運用液晶顯示器有著以下優點:1顯示圖像穩定性高,液晶顯示器里面的顯示點位受到信號點亮后會一直保持色彩和亮度,溫度發光,而陰極射線管顯示器(CRT)就需要不停的刷新亮電,因此液晶顯示器畫面質量高不會頻閃。2數字式LCD顯示接口為數字式,與微型計算機接口相匹配,使用起來更加方便可靠。3體積小,重量輕:通過控制顯示器上的電極來控制液晶分子的狀態來顯示軟晶體的顯示器,與傳統顯示器相比,在一個顯示范圍下的重量更輕。4功耗相對較低.消耗能量主要產生在其內部電極和驅動電路上,相比其它顯示器耗電量較低。4.2.2LCD液晶顯示器介紹LCD1602液晶模塊采用HD44780控制器,hd44780的指令集先對簡單,功能也較強,可以實現字符移動,閃爍等功能,與單片機通信可以采用8位或4位并行傳輸兩種方式.LCD1602液晶模塊的引腳圖如圖4.4所示。圖4.4LCD引腳圖引腳功能說明如下表4.5所示。編號符號引腳功能編號符號引腳功能1GND電源地極9DB2數據2VCC電源正極10DB3數據3VO液晶顯示偏差11DB4數據4RS數據/命令選擇12DB5數據5R/W讀/寫選擇13DB6數據6E使能信號14DB7數據7DB0數據15BG/VCC背光源正極8DB1數據16BG/GND背光源負極表4.5LCD引腳說明顯示器寄存器控制如表4.6所示。RSR/W操作說明00寫入指令寄存器(清除屏等)01讀(DB7),以及讀取位址計數器(DB0~DB6)值10寫入數據寄存器(顯示各字型等)11從數據寄存器讀取數據表4.6寄存器控制說明4.2.3LCD液晶顯示器和單片機的連接把單片機的P0接口用作數據傳輸,把P1.0接口用作RS,,P1.1用作RW的讀寫指令,P1.2用作EN,EN的下降沿信號啟動.顯示模塊啟動:首先清除屏幕,然后將接口數據位設置為8位,顯示1行,字體類型設置為5×7點矩陣,然后將其設置為整體顯示,取消光標和閃爍的字體,并設置為不滾動。把字符信息發送到LCD顯示緩沖區,程序將兩個字符的數組(一個顯示字符和另一個顯示電壓數據)發送到相應的數組,并在完成后批量顯示它們。首先取字符顯示或將數據傳輸到LCD顯示緩沖區,程序延遲并確定是否足以顯示,不足則地址加1以取下一個字符或數據進行顯示。LCD1602與單片機引腳連接圖如下圖4.7所示。圖4.7顯示電路圖4.3信號采集電路設計要得到脈搏頻率需要先采集脈搏信號,因而需要傳感器采集脈搏信號,但傳感器采集到的電信號很微弱,一般為幾十毫伏,單片機很難感應到,必須經過放大電路把信號放大到單片機能準確感應的電壓,一般為幾伏.經過放大后的的脈沖信號是雜亂的,必須通過濾波整形去掉干擾波得到的電壓波形才符合計數器要求。其電路過程如下圖3.8所示:圖4.8采集電路流程圖4.3.1傳感器電路本次設計采用的是由發射功率較高的紅外光電二級管和靈敏度較高的光電晶體管組成的反射式紅外光電傳感器,檢測距離大,可調整的范圍為4-13mm,采用非接觸檢測方式。采用高發射功率紅外光電二級管時,可以基本抑制由呼吸運動造成的脈搏信號波形偏移.高靈敏度光電晶體管可以接收紅外線產生電能,把光信號轉換成電信號。大功率紅外光電二級管發射的紅外光一部分被手指組織吸收,另外的部分經血液組織發生透射和反射,因此,光電式脈搏傳感器按接收到的光線不同可分為透射式和反射式兩種。其中反射式光電傳感器組裝使用簡便,安裝使用時光線路徑更容易對齊,不受到被檢測物質的形狀,顏色和材質的影響,相比透射式傳感器更節省空間。原理圖如如4.9所示:圖4.9傳感器電路圖如圖4.9中,紅外管采用ST188。用+5V電源供電,R4取330Ω,R5取20kΩ,當人把手指放在發光二極管和光電晶體管之間的時候,光電晶體管就能接收到因人脈搏跳動而產生變化的反射回的光信號。4.3.2信號放大濾波電路光電傳感器采集的脈搏信號不能直接供單片機使用,信號電壓大多在幾十毫伏左右,很微弱,要使用就需要把信號電壓放大,因而需要一個信號放大電路.放大電路的核心就是放大器,本次設計使用的是LM358雙運算放大器。LM358內部包括有兩個獨立的、高增益的雙運算放大器具有內部頻率補償功能,不管單電源,雙電源都適合,在額定的工作條件下,電源電流與電源電壓無關。它的使用范圍包括傳感放大器、直流增益模組,音頻放大器、工業控制、DC增益部件和其他所有可用單電源供電的使用運算放大器的場合。LM358放大器的引腳圖如圖4.10所示:圖4.10放大器引腳圖使用放大器把信號放大后,輸出的信號往往會伴隨其他的雜波,使最終結果受到影響,因此需要一個濾波電路來把信號再一次處理,使其去除干擾,其電路圖如圖4.11所示:圖4.11放大電路圖4.3.3波形整形電路脈搏信號經過放大電路后,其電壓滿足了系統的電壓要求,濾波后也清除了其他干擾信息,但是也把原本脈搏信號的微小誤差也放大了,使其波形受到了一些影響,不規則,且有低頻干擾,因此必須要有一個電路把脈搏信號整形,讓它的波形變得穩定,讓最終的結果誤差變小。本次設計使用的是滯回電壓比較器,電路圖如圖4.12所示。圖4.12整形電路圖此電路采用了LM358集成運放,并且還連接了一個LED燈,用來顯示脈搏跳動的狀態,LED燈隨脈搏跳動同時閃動.4.4報警及脈搏范圍設置電路除了之前介紹的電路外,本次設計還有報警及脈搏上下限設置的功能,改功能的硬件電路主要由蜂鳴器和按鍵構成。其電路構成如圖4.13所示:圖4.13報警及設置電路4.5整體硬件電路確定了各個模塊了之后把它們組合到一起,就構成了整個脈搏測量儀的硬件電路,其電路圖如下圖4.14電路由信號采集電路,單片機基本電路,顯示電路等電路構成。圖4.14完整電路圖5系統軟件設計5.1軟件編程環境在編寫程序時需要用到Keil軟件,KeilC51是由美國KeilSoftware公司出品的51系列兼容單片機c語言的軟件開發系統.與匯編語言先比較,c語言有著在結構,維護.功能上的明顯優勢.是現在主流的開發51系列單片機的軟件.Keil提供了C編譯器,連接器,庫管理和仿真調試器等完整的開發模塊,運用集成開發環境把這些部件組合在一起.其方便簡易的集成環境,可以實現大多數功能的編輯與調試。在電腦上點開Keil軟件,會出現一個編輯頁面,要編輯程序需要先建立一個任務文件夾,再選擇單片機型號(本次設計使用的是STC89C52單片機),建好文件夾后,在文件夾中新建一個文檔,然后在這個文檔中編寫我們需要的程序.把程序編寫完成后進行保存,最后在通過Keil軟件把程序編譯成HEX文件,便于單片機使用。其程序編寫頁面如下圖5.1所示:圖5.1程序編程頁面編譯完成HXE文件,用過USB接口與單片機連接,再通過STC-ISP程序燒錄軟件把編程好的程序傳入到單片機中,讓單片機能夠完成各項功能。5.2程序流程圖的設計主流程圖如下圖5.2示:5.2系統流程圖主程序流程圖如圖4.1所示,單片機上電后先進行初始化,清楚一些參數的初值,然后等待用戶按下對應的按鍵并進入對應的功能,當用戶按下測量按鍵的時候流程如圖4.1(c)所示,單片機通過定時15s測量人體的脈搏次數流程如圖4.1(b)所示,然后再換算出對應的真實的脈搏次數再在液晶屏幕上顯示流程如圖4.1(a)所示,當用戶按下設置脈搏范圍設定按鍵后,單片機根據用戶按下的按鍵進行增加或減少范圍。調用LCD自定義字體庫,設置DRAM地址后顯示在第一行,根據程序中的數據設置顯示數據的第一地址,設置循環量,繼續取字符碼直至循環處理完畢,第二行的顯示過程與第一行顯示過程相同,當兩行顯示完成后結束程序,其流程圖如圖5.3:圖5.3LCD1602初始化子函數流程圖5.3程序設計原理在完成硬件電路設計后,將軟件程序設計和硬件電路設計相對應,以確定軟件和硬件各自的任務,并進行協調。軟件程序任務分析是為軟件程序創建總體規劃.從功能角度看可分為兩大類:一類是執行任務程序,可以完成各種實際的功能,如測量,計算,顯示,打印,輸出控制和通信等,另一類是監控程序,專門用來于協調不同執行模塊和操作員的關系,以及在系統軟件中扮演組織規劃的角色。這兩類程序的設計方法各有特點,執行任務程序的設計注重算法效率,與硬件關系緊密。分析程序任務時把每個模塊分別列出,并定義各模塊功能和接口(輸入和輸出定義)。定義各執行模塊時,把會使用到的數據結構和數據類型的問題也計劃好。各執行模塊計劃完成后,就可以編寫監控程序。先根據系統功能和鍵盤設置選擇一種最適合的監控程序結構。相對來說,執行模塊任務明確,比較容易編程,而監控程序比較容易出現問題。6系統調試6.1硬件調試在硬件電路制作完成后,需要調試檢驗電路是否出現漏焊,虛焊,短路等情況.首先需要根據電路圖依次查看每個焊點,看看是否有漏焊的情況,如發現有漏焊應及時焊接,以免忘記,同時查看各連接線路是否完好,元器件有無松動,確定沒有異常.其次對于電路虛焊,短路等情況通過萬用表來檢測,在檢測前應先檢測萬用表,使兩表筆短接,看蜂鳴器是否鳴叫,無誤后再對電路進行檢測,確定電路沒用異常。6.2軟件調試脈搏測量儀的單片機系統是多功能模塊化設計,所以它的程序較為復雜,在編寫和調試時可能出現很多問題,為此對各電路功能模塊進行逐個測試。先把程序下載到單片機中再在單片機基本系統上進行測試,確定正常工作后,再與各各硬件連接,逐個進行功能測試,確定正常后,再將各硬件模塊組合連接,進行整體調試,觀察整個系統運行狀態,反復對程序進行修改與調整,使系統的各功能完善,可以準確測量及顯示脈搏頻率。以下為調試過程中遇到的問題,及解決方法。1.放大倍數的增加傳感器的輸出端經示波器觀察有幅度很小的正弦波,但經整形輸出后檢測到的脈沖還是很弱,在確定電路沒有問題的情況下,加強信號的放大倍數,調整電阻R23和R27的阻值。2.時鐘的調試內部定時器的基本參數由晶體振蕩頻率計算得出,運行一定時間后可通過秒表來校正,看時間誤差的量,以這個量為依據改變程序中的內部定時器基本參數,就可使時鐘更加準確。3.開機后無顯示首先檢查交流電源部分,有無交流,若無則可能保險管或變壓器燒壞,如有繼續查直流有無,如無則電源已燒壞,可更換解決。4.顯示正常但經適當運動后測量,脈搏次數沒有增加可能是前置放大級有問題,可采用更換的辦法判斷并排除。5.進人測量狀態,但測量值不穩定主要是光電傳感器受到電磁波等干擾,其次是損壞或有虛焊。6.開機后顯示不正常或按鍵失靈可查手指擺放的位置或按鍵電路,若無故障則是硬件損壞。經過這一系列的問題查找和改善后系統最終能正常工作,并完成所有的功能。6.2誤差分析使用本次設計的脈搏測量儀多次測量人體在不同狀態下的脈搏次數得出數據與實際脈搏相比較,進行誤差分析并改良。圖6.1脈搏測量如上圖方法所示測量人體各個狀態下的多組脈搏數據,并記錄。記錄表格如下圖6.2所示。實際的脈搏次數測量得出脈搏次數1測量得出脈搏次數2測量得出脈搏次數3測量得出脈搏次數4測量得出脈搏次數5656464636563727071696970767675757473818080798180858383858284表6.2測量脈搏數據表由于在實際使用中傳感器和其他器件做不到理想的線性,和理論計算量存在誤差,實際測量數據后進行補償,減小誤差。由均方差公式得:=0.59誤差分析:經校準,非線性補償后,誤差以基本達到要求。6.3系統檢驗設計完成的實物圖,如圖6.3示.圖6.3物介紹總結經歷幾個月的時間,完成了本次的畢業設計.在本次設計主要是52單片機在脈搏測量系統中的應用,但由于本人時間和知識有限,如果設計已經完成,但也有很多的不足之處,如程序不夠簡練,設計的測量儀功能比較單一等.在這個過程中使我對單片機的相關知識更加了解,對單片機的使用也更加熟練.也讓我學到了許多課本上沒用的知識,也大大鍛煉了自己的動手能力,能把在大學里學到的知識系統的聯系起來。我本次設計主要涉及硬件和軟件兩方面的內容,通過這些我的硬件和軟件開發能力都獲得了提高。首先硬件方面,基本了解了電子產品的開發流程和所要做的工作。基本掌握了Protel99SE原理圖的方法,并設計了一個單片機最小系統。在開發板的硬件設計和構建的過程中,我對51系單片機的各個接口及作用更加了解,也熟悉了一些單片機常用的外圍電路引腳和連接方法如LCD液晶,鍵盤等。在這個過程中,我學習了分析問題和解決問題的能力,加深了對所學理論知識的理解和運用。我的動手能力得到了很大的提高,創新意識得到了鍛煉。也使我學會了一個道理,古人云:預則立,不預則廢。一個沒有規劃的人生,就像一葉在茫茫大海上漫無目標的小舟,隨波飄蕩。當我們走向社會的時候,我們必須規劃自己的職業生涯。因此我們要針對社會需要,結合自身的情況及早做好相應準備,為我們走向社會打下堅實的基礎。俗話說:磨刀不誤砍柴功。適應社會的需求,并促進自我發展,我們不僅要掌握本專業相關的專業知識,補課,并積極參加社會實踐活動,工作能力,培養綜合素質的提高必須努力同時致力于培養特長,形成自己的競爭優勢。參考文獻[1]陳權昌.李興富.單片機原理及應用[M].廣州:華南理工大學出版社,2007.8.[2]李慶亮.C語言程序設計實用教程[M].北京:機械工業出版社,2005.3.[3]楊志忠.數字電子技術[M].北京:高等教育出版社,2003.12.[4]及力.Protel99SE原理圖與PCB設計教程[M].北京:電子工業出版社,2007.8.[5]徐江海.單片機實用教程[M].北京:機械工業出版社,2006.12[6]胡宴如.模擬電子技術[M].北京:高等教育出版社,2008.6.[7]劉寧.單片機多功能時鐘的設計[M].浙江:浙江海洋學院,2009.[8]汪文.陳林.單片機原理及應用[M].湖北:華中科技大學出版社,2007.[9]康華光.電子技術基礎數字部分[M].北京:高等教育出版社,2008.[10]鄧奕、馬雙寶、謝龍漢,Protel99SE原理圖與PCB設計[M],北京:人民郵電出版社,2010.[11]金偉正,單線數字溫度傳感器的原理及應用[J],電子技術應用,2000.[12]華成英、童詩白,模擬電子技術基礎(第四版)[M],北京:高等教育出版社,2006.[13]陳凱,液晶顯示萬年歷、時間、星期及溫度[D],湖南:湖南理工學院,2009.[14]吳建平,傳感器原理及應用[M],北京:機械工業出版社,2009.附錄:系統源程序#include<reg52.h> //調用單片機頭文件#defineucharunsignedchar//無符號字符型宏定義 變量范圍0~255#defineuintunsignedint //無符號整型宏定義 變量范圍0~65535ucharmenu_1;//菜單設計的變量sbitbeep=P3^7;//蜂鳴器IO口定義ucharflag_200ms;sbitrs=P1^0; //寄存器選擇信號H:數據寄存器 L:指令寄存器sbitrw=P1^1; //寄存器選擇信號H:數據寄存器 L:指令寄存器sbite=P1^2; //片選信號下降沿觸發unsignedchari=0,rate=0;unsignedinttime[6]={0};ucharrate_l=50,rate_h=120;//心跳報警值/***********************1ms延時函數*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<110;j++);}/*********************************************************************名稱:delay_uint()*功能:小延時。*輸入:無*輸出:無***********************************************************************/voiddelay_uint(uintq){ while(q--);}/*********************************************************************名稱:write_com(ucharcom)*功能:1602命令函數*輸入:輸入的命令值*輸出:無***********************************************************************/voidwrite_com(ucharcom){ e=0; rs=0; rw=0; P0=com; delay_uint(25); e=1; delay_uint(100); e=0;}/*********************************************************************名稱:write_data(uchardat)*功能:1602寫數據函數*輸入:需要寫入1602的數據*輸出:無***********************************************************************/voidwrite_data(uchardat){ e=0; rs=1; rw=0; P0=dat; delay_uint(25); e=1; delay_uint(100); e=0; }/*********************************************************************名稱:write_string(ucharhang,ucharadd,uchar*p)*功能:改變液晶中某位的值,如果要讓第一行,第五個字符開始顯示"abcdef",調用該函數如下 write_string(1,5,"abcdef;")*輸入:行,列,需要輸入1602的數據*輸出:無***********************************************************************/voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p=='\0')break; write_data(*p); p++; } }/*****************控制光標函數********************/voidwrite_guanbiao(ucharhang,ucharadd,uchardate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); if(date==1) write_com(0x0f);//顯示光標并且閃爍 else write_com(0x0c);//關閉光標} /***********************lcd1602上顯示兩位十進制數************************/voidwrite_sfm3(ucharhang,ucharadd,uintdate){ 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初始化設置************************/voidinit_1602(){ write_com(0x38); // write_com(0x0c); write_com(0x06); delay_uint(1000); write_string(1,0,"000/min"); write_string(2,0,"H:000L:000");}/*************定時器0初始化程序***************/voidtime_init() { EA=1; //開總中斷 TMOD=0X01; //定時器0、定時器1工作方式1 ET0=1; //開定時器0中斷 TR0=1; //允許定時器0定時}/***********外部中斷0初始化程序****************/voidinit_int0() //外部中斷0初始化程序{ EX0=1; //允許外部中斷0中斷 EA=1; //開總中斷 IT0=1; //外部中斷0負跳變中斷}/*****************
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東臨沂市臨沭縣2025-2026學年度下學期期末學業水平測試三年級語文(文字版含答案)
- 2026年中醫綜合醫院醫院招聘考試筆試試題(含答案)
- 2026年煙草生產車間安全監管煙草公司招聘考試筆試試題(含答案)
- 2026 年眼科復雜白內障術后感染護理個案分享
- 2026 年大面積肺栓塞溶栓治療監護護理個案
- 2026年秋季初中道德與法治開學第一課 學科之美發現教案
- 2026年秋季大學開學第一課 時間管理與高效學習教學設計
- 污泥處理電氣專項施工方案
- 2026年血管活性藥物靜脈輸注護理考核試題(+答案)
- 室內改造裝修施工方案
- 2026福建福州古厝運營服務有限公司招聘5人考試模擬試題及答案詳解
- 湖北省黃岡市2026-2027學年八上數學期末教學質量檢測模擬試題含解析
- GB/T 5782-2025緊固件六角頭螺栓
- 醫保基金檢查合同范本
- DB51 T1996-2015四川公路工程超聲回彈綜合法 檢測結構混凝土強度技術規程
- 《寵物美容與護理》課件-梳毛工具
- 護理查房特發性突聾
- GB/T 44370-2024系統和軟件工程軟件產品質量要求和評估可用性通用行業格式用戶需求說明
- 《建筑排水塑料管道工程技術規程 CJJT29-2010》
- 食品安全與日常飲食智慧樹知到期末考試答案章節答案2024年中國農業大學
- 海南省民族教育發展提升行動計劃(2023-2025年)
評論
0/150
提交評論