基于單片機醫(yī)用智能輸液泵的研究與設計_第1頁
基于單片機醫(yī)用智能輸液泵的研究與設計_第2頁
基于單片機醫(yī)用智能輸液泵的研究與設計_第3頁
基于單片機醫(yī)用智能輸液泵的研究與設計_第4頁
基于單片機醫(yī)用智能輸液泵的研究與設計_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機醫(yī)用智能輸液泵的研究與設計 摘 要隨著科技的發(fā)展,越來越多的領域需要對流量或流速進行精確控制。尤其現(xiàn)代醫(yī)療領域?qū)o脈輸液流速和護理的要的流求越來越高.本裝置就是采用89c51控制步進式電機擠壓輸液管控制液體點滴速度,并采用紅外線光電傳感器檢測點滴速度,具有反應快,靈敏度高的優(yōu)點。并詳細介紹了單片機組成的電機控制系統(tǒng),以及通過擴展8255芯片完成鍵盤和現(xiàn)實電路的設計。該系統(tǒng)還可以通過rs-232芯片與上位機組成主從控制網(wǎng)絡,實現(xiàn)統(tǒng)一控制。并具有輸液完了和氣泡報警等功能,使用靈活方便。關鍵詞:89c51,步進式電機,紅外線傳感器,8255,rs-232abstract along wit

2、h the technological development, more and more realms need discharge or current velocities of the convection proceed precision control, the particularly modern medical treatment realm loses the liquid current velocity to the vein to want with the nursing of flow to beg more and more high. this devic

3、e is to adopts a 89c51s enter the type electrical engineering squeeze to lose the liquid control system liquid intravenous drop speed. combining the adoption infrared ray light fax feels machine examination intravenous drop speed,respond quick,the sensitivity is good. combine detailed introducing th

4、e single electrical engineering control system that a machine constitute, and pass to expand 8255 design for completing keyboard with realistic electric circuits. that system can also pass the slice of rs-232 constitutes with place of honor machine the lord from the control network, realizes to unif

5、y the control. combine to have the liquid of lose over the friendly bubble reports to the police to wait the function, using the vivid convenience.keywords: 89c51s, the type of stepping, the sensor,8255, rs-232目 錄第一章 緒 論11.1 引言11.2 智能輸液泵可實現(xiàn)的功能21.3 輸液泵在臨床醫(yī)療應用的現(xiàn)狀21.4 智能輸液泵與莫菲氏點滴法的區(qū)別及優(yōu)點2第二章 方案論證42.1 總體

6、方案論證42.2 方案比較4第三章 硬件系統(tǒng)設計83.1 at89c51單片機管腳特性及相應參數(shù)83.2 傳感器控制檢測113.3 步進電機控制電路123.4 滴數(shù)換算方法133.5 鍵盤和顯示部分143.6 與上位機的通信16第四章 軟件設計184.1初始化模塊194.2步進電機控制214.3鍵盤和顯示子程序294.4 與上位機通信模塊32結(jié)束語39參考文獻39致 謝40第一章 緒 論1.1 引言隨著科技的發(fā)展,越來越多的領域需要對流體的流量或流速進行精確控制,如化工領域?qū)ξ⒘吭氐臋z測和分析常需要精確控制流量,機械領域也常常涉及到精確流量的控制。除此之外,醫(yī)療保健領域中對各種藥液的流量與流

7、速也需要精確控制。 靜脈輸液室一種最常用的臨床治療方法,使護理專業(yè)的一項常用給藥治療技術。臨床上應根據(jù)藥物和患者情況不同配以適當?shù)妮斠簲?shù)量和速度。如輸液過快,可能導致中毒,更嚴重時會導致水腫和心力衰竭;輸液過慢則可能發(fā)生藥量不夠或無謂地延長輸液時間,使治療效果受影響并給患者和護理工作增加不必要的負擔。常規(guī)臨床輸液。普遍采用莫菲氏掛瓶輸液,并用眼睛觀察,依靠手動夾子來控制藥滴速度,不易精確控制輸液速度,而且護理人員工作量大,不適于大型醫(yī)院及戰(zhàn)地醫(yī)療的護理。 癌癥病人的化療和病危病人的搶救治療需要使藥物以恒定的速度灌注,通過調(diào)節(jié)輸入的速度和時間將化療藥物均勻地注入,既達到化療的效果,又能最大限度地

8、降低化療藥物的副作用。 糖尿病人遭受病痛的折磨,需要以一定的速度給他們注射一定劑量的胰島素。以往的做法基本上是一次注射較大劑量的胰島素,這不僅造成巨大的浪費,而且藥效作用時間也較短,一次極需一種流量和流速能控制的持續(xù)輸送裝置,來輸送少量的藥物并控制其輸送速度和流量。 對老人兒童和體質(zhì)較弱者輸送某些特殊藥物,如麻醉藥,降壓藥硝普鈉,tpn(三磷酸吡啶核苷酸)等時,輸液速度和用藥量尤其需要認真精確控制,否則會產(chǎn)生嚴重的后果。 血液非常容易凝固,輸血時很容易阻塞輸液管。要保證血流速大于某一值,才能順利輸血。 另外,不管是輸液還是輸血,普通輸液器對輸液完畢和輸液過程中偶然遇到的故障,如氣泡,阻塞等都不

9、能自動報警,也不能及時切斷輸液通路,從而產(chǎn)生不良后果。應該及時處理,以避免血液倒流或其它后果。因此需要用智能輸液泵來控制藥液的輸送,并進行異常報警 1.2 智能輸液泵可實現(xiàn)的功能智能型醫(yī)用輸液泵可滿足多種功能的需求,歸納起來,輸液泵可實現(xiàn)以下功能:.可精確控制輸液的速度 .可精確測定和控制輸液量 .輸液速度控制范圍可精確到51000ml/h .能對氣泡,輸液完畢等異常情況進行報警。 .實現(xiàn)智能控制輸液 .控制誤差: 3% 1.3 輸液泵在臨床醫(yī)療應用的現(xiàn)狀輸液治療是現(xiàn)代醫(yī)藥學中最常執(zhí)行的操作,也是病人衡量護理技術操作水平的重要依據(jù),它直接影響病人的安全和病人滿意度以及康復的結(jié)果。 據(jù)某醫(yī)院20

10、03年1月2004年12月調(diào)查資料表明,該院20個臨床科室發(fā)生護理缺陷58例,有關輸液治療的護理缺陷26例,占45%,致病人投訴3例。發(fā)生輸液護理缺陷的護理人員工齡12年的17人次,占65%;工齡25年的7人次,占27%;工齡5年以上的2人次,占8%。如此大規(guī)模的誤操作,必定匯給病人和醫(yī)院本身帶來無法預計的后果,并且在現(xiàn)代醫(yī)學護理中,根據(jù)患者病情的不同,使用的藥物及所需要的滴注速度也不相同。為改變輸液時僅憑護理人員不斷地查看滴速是否異常、輸液是否完畢然后手動調(diào)節(jié)的原始方法,需研制出一種智能型輸液泵。這類輸液泵在市場上已經(jīng)有所應用,但目前在醫(yī)院中使用的靜脈輸液泵價格均比較昂貴,一般在12萬元之間

11、,所以在醫(yī)院中大多只用于危重病人的監(jiān)護輸液,而普通病人的靜脈輸液多數(shù)仍采用手動方式、人工看護。為了改變這種現(xiàn)狀,使普通病人的靜脈輸液也能自動得到監(jiān)視和報警,減輕醫(yī)護人員的負擔,保證樹葉的精確性、安全性,并且便于集中管理,我設計了一種低價位、高性能的智能醫(yī)用輸液泵。 1.4 智能輸液泵與莫菲氏點滴法的區(qū)別及優(yōu)點傳統(tǒng)的臨床護理中,多采用莫菲氏滴管輸液法 ,莫菲氏點滴法問世至今已有一百多年的歷史,該法在治病救人中起到了無可替代的作用,但使用中存在著諸多不便,尤其在戰(zhàn)地和野外救護中更為突出。如:要靠高度差才能輸液,否則,不但不能輸液,還會導致血液倒流,造成危險。 隨著大規(guī)模數(shù)字集成電路的發(fā)展,數(shù)字電路

12、在各行各業(yè)的應用也日益普及,醫(yī)療輸液泵在對病人的治療領域成為不可缺少的儀器,它可以在輸液過程中精確控制流速,利用單片機對步進電機的控制來調(diào)節(jié)流速,彌補了莫菲氏點滴法的諸多不足,如傷、病員在移送,走動等過程中,可以做到無需架子的任意放置,達到正常輸液救護的目的,可自主設定輸液速度、輸液完了報警、氣泡報警等功能。所以智能輸液器的各種優(yōu)點必將受到人們的重視,未來的開發(fā)必然會給醫(yī)療護理領域以及戰(zhàn)地醫(yī)療帶來極大的影響。第二章 方案論證2.1 總體方案論證在詳細的了解了設計要求后,通過資料的查閱,對各部分功能的掌握以及以往輸液器成品的了解,在反復比較和計算的前提下,建立了總體方案的框圖。 圖1.1總體上確

13、立了由at89c51為控制芯片,通過擴展片8255連接鍵盤,并由液滴監(jiān)控電路、氣泡檢測電路、步進電機驅(qū)動電路和rs-232與上位機連接形成的系統(tǒng)結(jié)構(gòu)。利用紅外傳感器檢測液滴流速,將采集到的數(shù)據(jù)送與at89c51;cpu則控制步進電機蠕動角度和速度,將步進電機的角度轉(zhuǎn)動量轉(zhuǎn)化為直線進給,并反復計算得出在一段時間內(nèi)電機控制下的實際滴數(shù) 其與預設值相比,保證在系統(tǒng)允許誤差范圍內(nèi)正常工作。保持系統(tǒng)穩(wěn)定、精確的工作。 2.2 方案比較方案一:利用紅外管發(fā)出紅外光,受到莫菲氏管內(nèi)液滴的阻擋,變成斷續(xù)的液滴信號,紅外受光管將受到的斷續(xù)得信號整形、放大成脈沖信號。這個信號經(jīng)接口電路送入微機處理器,處理器根據(jù)原

14、設定的醫(yī)學要求進行數(shù)據(jù)處理,并送往輸出接口電路,再由電機驅(qū)動電路驅(qū)動直流電機,直流電機帶動氣泵往藥液瓶內(nèi)送氣,使瓶內(nèi)產(chǎn)生一定的壓力,以控制液滴的滴注速度,使之達到臨床輸液要求??傮w結(jié)構(gòu)如圖1.2所示。 紅外線發(fā)光管紅外線受光管信號發(fā)射處理輸入接口電路微處理器輸出接口電路電機驅(qū)動電源直流步進電機擠壓泵鍵盤輸入液晶顯示器pc上位機圖1.2具體使用方法如下:a. 準備好藥液,將輸液瓶卡入支架內(nèi),并將氣泵嘴插入氣管口內(nèi),將莫非氏管卡入莫非氏支架內(nèi)。b. 將電源開關置于on,儀器顯示01:23:45,此時按一下設置,儀器顯示500ml,根據(jù)實際藥液量,用+鍵、+鍵或-鍵,設置好輸液總量。 c. 再按設置

15、鍵,儀器顯示40滴 ,根據(jù)病情用+鍵、+鍵、-鍵設置輸液速度(滴/分)。d. 斷續(xù)按動nc鍵,使輸液管排氣,當空氣排凈后使液滴正常滴注。e. 常規(guī)消毒后,將輸液針頭插入靜脈,固定好,按行動鍵,自動輸液開始。f. 當藥液剩余量為30ml時,儀器蜂鳴報警,待輸液結(jié)束,取出針頭、藥瓶,將電源開關置于off。g. 需要充電時,將充電器輸出插頭插入儀器充電插座內(nèi),充電器指示燈亮,當指示燈熄滅,充電結(jié)束。方案二:采用at89c51芯片,通過光電傳感器監(jiān)測液滴信號,經(jīng)脈沖整形電路送芯片(當無液滴落下時,光電傳感器輸出低電平;當液滴經(jīng)過傳感器,傳感器感測到光線變化,輸出脈沖信號,送與芯片的電平為高電平),單片

16、機芯片根據(jù)接收到的脈沖的頻率就可以計算出當時的輸液速度,并控制步進電機轉(zhuǎn)速以精確控制流量和流速。 一、本方案的液滴檢測部分采用的是直射式紅外光電傳感器st150該傳感器特點如下:1 采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成。2 采用非接觸檢測方式。3 光縫寬度(分辨率)有0.8mm、0.4mm兩種該光電傳感器外形尺寸小巧,靈敏度高且價格便宜,能滿足本設計輸液器的各項性能要求指標。 二、步進電機部分采用四相步進電機35by48bh10驅(qū)動電壓為12v。采用uln2003芯片對其驅(qū)動,驅(qū)動電壓為5v,該電壓小于12v,因此要外加電壓直到12v從而為電機提供足夠的能量。 三、顯示部分 采

17、用數(shù)碼管顯示方式,比起液晶顯示器數(shù)碼管能實現(xiàn)相同的功能且價格低廉,所以選擇74ls48 數(shù)碼管顯示較為合理。 四、步進電機控制液滴流速 為力求得到準確的、實時的數(shù)據(jù),并且控制液滴數(shù)和預設值的起始誤差在3%的范圍內(nèi)。由于具有步進電機進給的非線性數(shù)據(jù),所以只能經(jīng)過幾次的電機進給角度得到一段時間內(nèi)實際的滴數(shù),再和預設值相比較,控制在誤差范圍內(nèi)。具體分析過程如下:測得電機轉(zhuǎn)角最大值和最小值的滴數(shù)。根據(jù)病人的實際情況設定預設值,假如起始值輸入每分鐘100滴,設定測試時間的范圍為30秒,如果實際得到只有60滴,而此時步進電機的轉(zhuǎn)角為30度,那么加大步進電機的進給角度為60度,得出實際的滴數(shù),假如得到110

18、滴,那么逐漸減小角度,若得到90滴,就再加大進給角度,經(jīng)過多次的調(diào)試,得到再測試時間范圍內(nèi)的穩(wěn)定實際數(shù)值在和預設值的允許誤差范圍內(nèi),則此方案可行。因為測試時間較短,一個儲液瓶滴完大概要一個小時左右,遠遠大于裝置的測試時間,一點不影響正常病人藥液的輸入,故可以忽略。此計算方法簡單明了,容易實施。 比較以上兩種方案,前一種控制復雜,系統(tǒng)造價較高且精度不好,利用空氣壓力控制流速會對外界條件的要求很苛刻,對輸液瓶的結(jié)構(gòu)要求也很高,不適合使用在經(jīng)濟不發(fā)達的醫(yī)療機構(gòu)或站地醫(yī)療之中。而方案二控制原理簡單,實現(xiàn)的功能俱全,且整體造價經(jīng)濟,易于操作,對外界環(huán)境要求不高,是總體性價比較高的方案,故選擇第二套方案。

19、 第三章 硬件系統(tǒng)設計總體硬件設計硬件設計的基本思路是實用、可靠以及小型化。為此選用了美國atmel公司at89c51 單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用atmel高密度非易失存儲器制造技術制造,與工業(yè)標準的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器。氣泡檢測電路由紅外傳感器及放大器組成。傳感器采用st150,當有氣泡通過時,發(fā)射管發(fā)射出的光信號由于氣泡的影響而改變了強度,造成接收管電壓的改變,經(jīng)放大器lm324放大后給89c51 發(fā)出一個低電平信號。阻塞檢測電路由一個橡膠導

20、管及微動開關組成,當出現(xiàn)輸液阻塞現(xiàn)象時,藥液流入橡膠導管,觸動微動開關,微動開關發(fā)給89c51 一個低電平號,89c51接到低電平信號后,控制報警蜂鳴器及故障報警燈進行聲光報警,步進電機停止運動,進行故障處理。步進電機驅(qū)動電路采用uln2003芯片,89c51通過驅(qū)動電路來驅(qū)動步進電機,步進電機轉(zhuǎn)速與輸液速度成正比。控制電機的轉(zhuǎn)速即可改變輸液的速度。輸液容量與步進電機運行的步數(shù)以及輸液泵系統(tǒng)的脈沖當量(即步進電機每運行一步輸液泵輸出藥液的體積) 成正比。不同的輸液管對應的脈沖當量不同。控制步進電機運行的步數(shù)即可控制輸液量。3.1 at89c51單片機管腳特性及相應參數(shù)at89c51是一種帶4k

21、字節(jié)閃爍可編程可擦除只讀存儲器(fperomflash programmable and erasable read only memory)的低電壓,高性能cmos 8位微處理器,俗稱單片機。at89c2051是一種帶2k字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用atmel高密度非易失存儲器制造技術制造,與工業(yè)標準的mcs-51指令集和輸出管腳相兼容。3.1.1 主要特性 與mcs-51 兼容 4k字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時間:10年全靜態(tài)工作:0hz-24mhz三級程序存儲器鎖定1288位內(nèi)部ram32可編

22、程i/o線兩個16位定時器/計數(shù)器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路3.1.2 管腳說明 vcc:供電電壓。gnd:接地。p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部

23、下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p

24、3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表所示:口管腳 備選功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時器0外部輸入)p3.5 t1(記時器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲器讀選通)p3口同時為閃爍編程和編程校驗接收

25、一些控制信號。rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen

26、:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。/ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。 圖3.1振蕩器特性:xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器

27、可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,xtal2應不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。3.2 傳感器控制檢測氣泡檢測電路由紅外傳感器及放大器組成。傳感器采用st150 紅外對管,當有氣泡通過時,發(fā)射管發(fā)射出的光信號由于氣泡的影響而改變了強度,造成接收管電壓的改變經(jīng)放大器lm324放大后給at89c51 發(fā)出一個低電平信號。阻塞檢測電路由一個橡膠導管及微動開關組成,當出現(xiàn)輸液阻塞現(xiàn)象時,藥液流入橡膠導管,觸動微動開關,微動開關發(fā)給at89c51 一個低電平信號,at89c

28、51接到低電平信號后,控制報警蜂鳴器及故障報警燈進行聲光報警,步進電機停止運動,進行故障處理。輸液完畢與此同理。本方案的液滴檢測部分采用的是直射式紅外光電傳感器st150特點:1 采用高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成。2 采用非接觸檢測方式。3 光縫寬度(分辨率)有0.8mm、0.4mm兩種該光電傳感器外形尺寸小巧,靈敏度高且價格便宜,能滿足本設計輸液器各項性能要求指標。 lm324系列器件為價格便宜的帶有真差動輸入的四運算放大器。與單電源應用場合的標準運算放大器相比,它們有一些顯著優(yōu)點。該四放大器可以工作在低到3.0伏或者高到32伏的電源下,靜態(tài)電流為mc1741的靜態(tài)電流的

29、五分之一。共模輸入范圍包括負電源,因而消除了在許多應用場合中采用外部偏置元件的必要性。每一組運算放大器可用圖1所示的符號來表示,它有5個引出腳,其中“+”、“-”為兩個信號輸入端,“v+”、“v-”為正、負電源端,“vo”為輸出端。兩個信號輸入端中,vi-(-)為反相輸入端,表示運放輸出端vo的信號與該輸入端的位相反;vi+(+)為同相輸入端,表示運放輸出端vo的信號與該輸入端的相位相同。lm324的引腳排列下圖。 圖3.23.3 步進電機控制電路在這里采用uln2003芯片來對四相步進電機進行驅(qū)動。下面介紹用at89c51單片機驅(qū)動步進電機的方法。這款步進電機的驅(qū)動電壓12v步進角為7.5度

30、一圈360度,需要48個脈沖完成。該步進電機有6根引線,排列次序如下:1:紅色、2:紅色、3:橙色、4:棕色、5:黃色、6:黑色。采用51驅(qū)動uln2003的方法進行驅(qū)動。硬件連接如下圖。 圖3.3uln2003的驅(qū)動直接用單片機系統(tǒng)的5v電壓,可能力矩不是很大,可自行加大驅(qū)動電壓到12v。; a組線圈對應 p2.4; b組線圈對應 p2.5; c組線圈對應 p2.6; d組線圈對應 p2.7; 正轉(zhuǎn)次序: ab組-bc組-cd組-da組 (即一個脈沖,正轉(zhuǎn) 7.5 度)。3.4 滴數(shù)換算方法測得電機轉(zhuǎn)角最大值和最小值的滴數(shù)。根據(jù)病人的實際情況設定預設值,假如起始值輸入每分鐘100滴,設定測試

31、時間的范圍為30秒,如果實際得到只有60滴,而此時步進電機的轉(zhuǎn)角為30度,那么加大步進電機的進給角度為60度,得出實際的滴數(shù),假如得到110滴,那么逐漸減小角度,若得到90滴,就再加大進給角度,經(jīng)過多次的調(diào)試,得到再測試時間范圍內(nèi)的穩(wěn)定實際數(shù)值在和預設值的允許誤差范圍內(nèi),則此方案可行。因為測試時間較短,一個儲液瓶滴完大概要一個小時左右,遠遠大于裝置的測試時間,一點不影響正常病人藥液的輸入,故可以忽略。此計算方法簡單明了,容易實施。3.5 鍵盤和顯示部分鍵盤的主要功能是隨時設定輸液速度,本設計的鍵盤部分設計十分簡單,按鍵“+ +”的的功能是加大輸液輸液速度按鍵的輸入值設為f,按鍵“”的功能是減小

32、輸液速度按鍵的輸入值暫定為e,按鍵“啟停”的功能是設定輸液速度后按一下 這是輸液開始,再按一下輸液停止按鍵設為d。輸液速度和輸液時間都可以通過輸入數(shù)字值設定。在這里采用8255芯片與單片機連接做鍵盤的設計。3.5.1 8255芯片結(jié)構(gòu)特點介紹8255是intel公司生產(chǎn)的可編程并行i/o接口芯片,有3個8位并行i/o口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強。8255可作為單片機與多種外設連接時的中間接口電路。 8255作為主機與外設的連接芯片,必須提供與主機相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須具有與外設連接

33、的接口a、b、c口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與cpu連接部分、與外設連接部分、控制部分。引腳功能介紹如下;reset:復位輸入線,當該輸入端處于高電平時,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有i/o口均被置成輸入方式。 cs:芯片選擇信號線,當這個輸入引腳為低電平時,即/cs=0時,表示芯片被選中,允許8255與cpu進行通訊;/cs=1時,8255無法與cpu做數(shù)據(jù)傳輸. rd:讀信號線,當這個輸入引腳為低電平時,即/rd=0且/cs=0時,允許8255通過數(shù)據(jù)總線向cpu發(fā)送數(shù)據(jù)或狀態(tài)信息,即cpu從8255讀取信息或數(shù)據(jù)。

34、wr:寫入信號,當這個輸入引腳為低電平時,即/wr=0且/cs=0時,允許cpu將數(shù)據(jù)或控制字寫入8255。 d0d7:三態(tài)雙向數(shù)據(jù)總線,8255與cpu數(shù)據(jù)傳送的通道,當cpu 執(zhí)行輸入輸出指令時,通過它實現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。 pa0pa7:端口a輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入鎖存器。 pb0pb7:端口b輸入輸出線,一個8位的i/o鎖存器, 一個8位的輸入輸出緩沖器。 pc0pc7:端口c輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入緩沖器。端口c可以通過工作方式設定而分成2個4位的端口, 每個

35、4位的端口包含一個4位的鎖存器,分別與端口a和端口b配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。 a0,a1:地址選擇線,用來選擇8255的pa口,pb口,pc口和控制寄存器. 當a0=0,a1=0時,pa口被選擇; 當a0=0,a1=1時,pb口被選擇; 當a0=1,a1=0時,pc口被選擇; 當a0=1.a1=1時,控制寄存器被選擇本設計所需的按鍵比較少所以我們將其設計為4*4鍵盤,多出的按鍵可以為以后擴展功能備用。圖3.4本設計的顯示部分的主要是功能是顯示輸液的速度值和輸液的時間,便于觀察和更改適當?shù)妮斠核俣?。硬件考慮到節(jié)約成本采用的是74ls48 數(shù)碼管而不是液晶顯示。由于精度要在

36、-+%3 因此四位顯示足夠本設計的要求。硬件連接如下圖3.5所示。圖3.53.6 與上位機的通信 本設計與上位機進行通信的主要目的,是在輸液完畢和輸液泵阻塞的時候能夠向遠處護理人員發(fā)出報警信號,使之盡快的解決問題。通信方式采用串行通信。 串行通信是指通信的發(fā)送方和接收方之間的數(shù)據(jù)信息的傳輸是在單根數(shù)據(jù)線,以每次一個二進制位移動的他的好處是只需一對傳輸線進行傳送信息,因此其成本低,適用于遠距離通信,他的缺點是傳送速度低,串行通信有異步通行和同步通信兩種基本通信方式,同步通信適用于傳送速度高的情況,其硬件復雜,而異步通信應用于傳送速度在50-19200波特之間,是比較常用的傳送方式,在異步通信中,

37、數(shù)據(jù)是一幀一幀傳送的,每一串行幀的數(shù)據(jù)格式由1位起始位,5-8位的數(shù)據(jù)位,1位的奇偶校驗位(可省略)和1位停止位4部分組成,在串行通信前,發(fā)送方和接收方要約定具體的數(shù)據(jù)格式和波特率(通信協(xié)議)。 rs232c是一種電壓型總線標準,可用于設計計算機接口和終端或外設之間的連接,以不同的極性的電壓表示邏輯值。-3-25v表示邏輯1。+3+25v表示邏輯0。其電平和ttl和cmos電平是不同的,所以在通信時必須進行電平轉(zhuǎn)換。 maxim公司的max232/max232a接收/發(fā)送器是maxim公司特別為eia/tea2232e的標準而設計的,他們在eia/tia2232e標準串行通信接口中日益得到廣泛

38、的應用,他們具有功耗低、工作電源為單電源、外接電容僅為0.1f或1f,采用雙列直插封裝形式、接收器輸出為三態(tài)ttl/cmos等優(yōu)越性,為雙組rs 232接收發(fā)送器,工作電源為+5v,波特率高,僅需外接0.1f或1f的電容,其價格低,可在一般需要串行通信的系統(tǒng)中使用,max232外圍需要4個電解電容,是內(nèi)部電源轉(zhuǎn)換所需電容,其取值均為1f/25v宜選用鉭電容并且應盡量靠近芯片。 該電路連接原理如圖3.6所示。 圖3.6 第四章 軟件設計軟件是硬件的支撐, 也是硬件整體性能發(fā)揮的杠桿與上面的硬件相對應,把軟件采用功能模塊的方法進行編寫,會增強系統(tǒng)整體可移植性。系統(tǒng)軟件需要的功能模塊主要有鍵盤模塊與

39、顯示模塊, 測量信號模塊與步進電機驅(qū)動控制模塊, 通訊模塊,報警模塊。這樣分類也和硬件的設置相對應。軟件各模塊的相互連接需要主控模塊對它們進行控制。按照主控模塊的執(zhí)行順序來工作。這就是整個系統(tǒng)的軟件構(gòu)建方案??刂频拿}沖頻率就可以控制步進電機的轉(zhuǎn)速,設定好工作速度后,根據(jù)這一數(shù)值查表對應某一值, 利用這一數(shù)值在這基礎上系統(tǒng)進行加速或減速,當測量蔽值和設定小于規(guī)定的數(shù)時記錄這個脈沖率并停止調(diào)速這就是步進電機控制軟件流程的主要思想,如果氣泡中斷信號來臨,發(fā)生中斷,中斷中將停止步進電機。 整個輸液的過程如下圖4.1所示 蜂鳴器報警開始輸液參數(shù)設定參數(shù)計算轉(zhuǎn)換驅(qū)動步進電機阻塞故障氣泡故障輸液累積量顯示氣

40、泡檢測監(jiān)控子程序輸液結(jié)束停止暫停處理顯示燈報警圖4.14.1初始化模塊在軟件設計過程中初始化就是把變量賦為默認值,把控件設為默認狀態(tài),把沒準備的準備好。在這個過程中輸液速度,報警裝置,和時間都會被清零,電機回到初始位置。 實現(xiàn)該功能的軟件流程圖如下。 上電顯示為0輸液參數(shù)設定電機在初始位置單片機復位yynn 圖 4.1 4.2步進電機控制4.2.1 步進電機失步的調(diào)整由于受步進電機本身特性的限制,在電機啟、停及運行速度突變時,往往會出現(xiàn)失步現(xiàn)象,從而影響輸液泵系統(tǒng)的精度。為解決這一問題,本系統(tǒng)采用了軟件實現(xiàn)自動升、降速的方法。步進電機控制速度圖如圖4.2 所示。圖中加、減速段近似于指數(shù)曲線,啟

41、動時速度逐漸加大可以避免沖擊,加速到一定頻率后恒速運行,快到終點時速度緩慢減小,直到走完規(guī)定的步數(shù)后停機,這樣可以避免失步現(xiàn)象。 圖4.2自動升、降速控制的原理框圖如下圖4.3所示。其中誤差寄存器a 中的存數(shù)n 等指令脈沖數(shù)n指令與輸出脈沖數(shù)n輸出之差, 即n = n指令-n輸出。進位溢出累加器寄存器b誤差寄存器af0f指令+-f輸出圖4.3對n 以f 0 的頻率進行累加運算,當累加之和超過累加器的容量時,將在最高位產(chǎn)生溢出。此溢出脈沖即作為輸出脈沖f 輸出控制步進電機。在t 時間內(nèi)對n 累加后的累加數(shù)n總為n總= nf 0t累加數(shù)n總的溢出次數(shù)為n溢出=(1)式中n 累加器和寄存器的位數(shù)。輸

42、出脈沖頻率為f 輸出=(2)n = ( f 指令- f 輸出)t = ( f 指令- kn)t (3)寫成微分形式有f 指令=+ f 輸出 (4)當指令脈沖由0 突變?yōu)閒 輸出時,上述方程的解為f 輸出= f 指令(1 - ) (5)式中t 時間常數(shù)這就是電機速度上升的過程。當指令脈沖由f 指令突變?yōu)? 時,上述微分方程的解為f 輸出= f 指令(1 - )這就是電機減速的過程??梢?當f 指令突變時,f 輸出均按指數(shù)曲線變化。在本系統(tǒng)中用軟件的方法來完成電機啟動、停止時自動升、降速的過程。累加脈沖和指令脈沖采用軟件延時的方法產(chǎn)生。利用at89c51的兩個定時p計數(shù)器t0 和t1 來作為計數(shù)器

43、,每個機器指令周期t0 值減1 ,當t0值減至0 時發(fā)出一個累加脈沖,同時t0 賦初值, t1 值減1 ,重復上述過程。當t1 值減為0 時發(fā)出一個指令脈沖。由此可知, t1 的初值表示了累加脈沖頻率f 0 和指令脈沖頻率f 指令的比值。誤差寄存器中存數(shù)n = n指令- n輸出,每當cpu 產(chǎn)生一個指令脈沖時,誤差寄存器的值加1 ;每當累加器產(chǎn)生溢出時,誤差寄存器的值減1。每當cpu 產(chǎn)生一個累加脈沖時,將誤差寄存器中的數(shù)n 與上次存儲在寄存器b 中的累加數(shù)相加,若產(chǎn)生溢出,則發(fā)送一個輸出脈沖,將在累加器中的余數(shù)存入寄存器b 中;若無溢出,則將累加結(jié)果存入寄存器b 中。自動升程序的框圖如下圖4

44、.4所示。誤差寄存器存數(shù)n清零,零寄存器b清零延時累加脈沖到?bb+n有進位溢出?發(fā)出進給脈沖nn+1 bb+1指令脈沖到?發(fā)指令脈沖nn+1返回返回nnnyy(a)主程序流程計數(shù)器置初值計數(shù)器減1計數(shù)到發(fā)脈沖(b)累加脈沖產(chǎn)生流程圖圖4.4步進電機啟停調(diào)速程序#include static unsigned int count; /計數(shù)static int step_index; /步進索引數(shù),值為07static bit turn; /步進電機轉(zhuǎn)動方向static bit stop_flag; /步進電機停止標志static int speedlevel; /步進電機轉(zhuǎn)速參數(shù),數(shù)值越大速度

45、越慢,最小值為1,速度最快static int spcount; /步進電機轉(zhuǎn)速參數(shù)計數(shù)void delay(unsigned int endcount);/延時函數(shù),延時為endcount*0.5毫秒void gorun(); /步進電機控制步進函數(shù)void main(void) count = 0; step_index = 0; spcount = 0; stop_flag = 0;p1_0 = 0; p1_1 = 0; p1_2 = 0; p1_3 = 0;ea = 1; /允許cpu中斷 tmod = 0x11; /設定時器0和1為16位模式1 et0 = 1; /定時器0中斷允許

46、th0 = 0xfe; tl0 = 0x0c; /設定時每隔0.5ms中斷一次 tr0 = 1; /開始計數(shù)turn = 0;speedlevel = 2; delay(10000); speedlevel = 1; do speedlevel = 2; delay(10000); speedlevel = 1; delay(10000); stop_flag=1; delay(10000); stop_flag=0; while(1); /定時器0中斷處理 void timeint(void) interrupt 1 th0=0xfe; tl0=0x0c; /設定時每隔0.5ms中斷一次 c

47、ount+; spcount-; if(spcount=0) spcount = speedlevel; gorun(); void delay(unsigned int endcount) count=0; dowhile(count7) step_index=0; else step_index-; if (step_index0) step_index=7; 4.3鍵盤和顯示子程序本設計需要時4*4鍵盤硬件連接圖如圖3.4所示。4.4.1鍵盤掃描的動作原理利用8255的portc,將pc47設為input,pc03設為output,依序由pc0pc3送出掃描碼&hfe (pc0=0)、&

48、hfd (pc1=0)、&hfb (pc2=0)、&hf7 (pc3=0),并從pc47讀入按鍵數(shù)據(jù)碼,當無按鍵按下時,按鍵碼(pc47)的值均為1,當有按鍵按下時,pc47的值就會改變,如下表。掃描碼&hfe (11111110)&hfd (11111101)&hfb (11111011)&hf7 (11110111)按鍵數(shù)據(jù)碼及代表按鍵&hee(11101110)c0r0 “0”&hed (11101101)c1r0 “4”&heb (11101011)c2r0 “8”&he7 (11100111)c3r0 “c”&hde(11011110)c0r1 “1”&hdd (11011101)c

49、1r1 “5”&hdb (11011011)c2r1 “9”&hd7 (11010111)c3r1 “d”&hbe(10111110)c0r2 “2”&hbd (10111101)c1r2 “6”&hbb (10111011)c2r2 “a”&hb7 (10110111)c3r2 “e”&h7e(01111110)c0r3 “3”&h7d (01111101)c1r3 “7”&h7b (01111011)c2r3 “b”&h77 (01110111)c3r3 “f”只要依序送出掃描碼、讀入按鍵碼,并判斷是否符合表中的按鍵數(shù)據(jù)碼,即可正確判斷出是那一個按鍵被按下。 而開關彈跳的解決方式如下: (

50、1) 當有按鍵被按下時,呼叫延時子程序后再返回 (2) 若按鍵一直沒有放開,且已完成延時子程序,則該按鍵就會被判斷為按下很多次(3) 在子程序結(jié)束返回前,再讀入一次按鍵數(shù)據(jù),并和前一次的值比對,若相同表示該鍵仍被按住,重復此一比對,直到按鍵放開時因為數(shù)據(jù)不同而結(jié)束比對,并返回。以下程序ctrl = &h203pa = &h200pb = &h201pc = &h202out ctrl , &h88 ;pa、pb 輸出、pc03 輸出、pc47輸入start: out pc , &hfe ;送出掃描碼 11111110 portc = inp( pc ) ;讀入按鍵數(shù)據(jù)碼 if portc = &hee then print 0: gosub delay if portc = &hde then print 1: gosu

溫馨提示

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

評論

0/150

提交評論