單片機課程設計(論文)病床輸液監控系統設計的制作_第1頁
單片機課程設計(論文)病床輸液監控系統設計的制作_第2頁
單片機課程設計(論文)病床輸液監控系統設計的制作_第3頁
單片機課程設計(論文)病床輸液監控系統設計的制作_第4頁
單片機課程設計(論文)病床輸液監控系統設計的制作_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、醫院病床輸液監控系統摘 要該設計是以單片機mega16為核心,以鍵盤,碰觸開關及紅外光電開關為輸入系統,以液晶、聲光報警電路及步進電機為輸出系統的智能化輸液控制及監控系統。鍵盤系統為獨立式按鍵系統,紅外光電開關的功能為檢測點滴的滴下。步進電機具有轉速可控功率大及輸入脈沖不變時可保持大力矩等優點,這樣就可以自如控制吊瓶的上、下緩移可以達到智能控制的目的。點滴速度可用鍵盤來設定,同時輸液結束或發生異常情況能發出報警信號。以上面所述裝置為一個從站,主站和從站之間采用自定義串口通信協議,建立了一個由主站控制128個從站的有線監控系統。關鍵字 : 光電開關 mega16 步進電機 串口通行abstrac

2、tthe design is based on scm mega16 core to keyboard, touch switches and infrared photoelectric switch for the input system to lcd, sound and light alarm circuit and the stepper motor output system of intelligent infusion for the control and monitoring system. keyboard keys for the stand-alone system

3、s, infrared photoelectric switch function for the detection of the drip . stepper motor control with speed and input pulse power of a large change can be maintained when the advantages of high torque, so that you can freely control the bottle on a string of upper and lower slow shift to achieve inte

4、lligent control. keyboard can be used to set the bit rate, while the end of infusion or abnormal conditions to an alarm signal. to the above mentioned device as a slave, between master and slave serial communication protocol with a custom set up a master control station of the cable 128 from the mon

5、itoring system. keywords : optical switch mega16 stepping motor usart目錄一、系統方案11.1 點滴速度的測量11.2 點滴速度的控制11.3 控制用電動機及驅動的選擇與比較11.4 系統總體方案2二、理論分析與設計22.1 點滴速度檢測電路原理分析22.2 鍵盤控制及顯示電路設計32.3 越限報警電路42.4 電機控制電路電路設計42.5 主從機通信電路設計5三、 電路與程序設計53.1 整機詳細電路圖見附錄153.2 工作流程5四、測試方案與測試結果74.1 系統測試數據74.2 主機從機功能測試74.3 測試結果分析7五

6、、總結:7六 、參考文獻7附錄1:整機詳細電路圖8附錄2:主要控制程序920一、系統方案1.1 點滴速度的測量方案一 :采用電感式傳感器測量點滴速度在輸液器的漏斗外圍繞線圈作為敏感元件。當液滴滴下是電感量發生變化,通過lc振蕩電路后輸出變化的頻率值,經過f/v變換電路及電壓比較后輸出ttl電平信號來檢測點滴速度。此方案測量精度比較高,但是外圍電路比較復雜。方案二:采用反射式紅外光電傳感器在輸液器的漏斗一端放置反射式紅外傳感器,當液滴下落時,利用其對紅外線的反射能力,接收端檢測到信號。但是由于水滴的表面不規則且較小,反射信號強弱,且不穩定反射式要求液滴下落時要和傳感器保持精確的夾角,當輸液器上下

7、移動時會產生晃動,從而產生較強的干擾。方案三:采用槽式紅外光電開關采用槽式紅外對射式光電開關,集成度高,體積小,功能齊全,電線引出式,電源內藏式具備繼電器大功率輸出,具備交直流通用型,電壓范圍寬,抗震性能好,液滴檢測非常穩定,對于對精度要求較高的醫療器械來講,非常合適此方案成本低,經過實驗可發現槽式式紅外光電開關能比較靈敏地測出水滴。利用測量相鄰點滴下落的時間間隔即可確定點滴速度。 綜合考慮選用方案三槽式紅外光電開關。1.2 點滴速度的控制 由題目可知,控制液滴下落速度主要有兩種方法:方案一 : 通過步進電機和滑輪系統控制儲液瓶的高度,來達到控制液滴流速的目的;方案二: 通過控制滴速夾的松緊程

8、度來控制液滴流速。第一項方案實現較為簡便,通過步進電機可方便地實現對儲液瓶高度的調節,從而達到控制液滴流速的目的。第二項方案控制滴速夾移動的距離很小,但是滴速夾的松緊調節過程中,移動距離,移動阻力等參數難于計算,用機電系統實現起來較為困難。經過綜合比較,我們決定選擇第一項的方案。1.3 控制用電動機及驅動的選擇與比較方案一:采用直流電機由于直流電機上電即轉動,掉電后慣性較大,停機時還會轉動一定角度后才可停下來。轉矩小、無抱死功能,如果要求準確停在一個位置,其閉環算法較復雜。方案二:采用步進電機步進電機是一種用電脈沖進行控制,將電脈沖信號轉換成相應角位移或線位移的電動機。步進電機每輸入一個脈沖信

9、號,轉子就轉動一個角度或前進一步,其輸出的角位移或線位移與輸入的脈沖數成正比,轉速與脈沖頻率成正比。用單片機控制步進電機,控制信號為數字信號,不再需要數模轉換,具有快速啟停能力,可在一剎那間實現啟動或停止,且步距角降低小,延時短,定位準確,精度高,可操作性強。綜合考慮,選用步進電機作為電機驅動控制電路。1.4 系統總體方案系統實現框圖如圖1: 越限聲光報警 鍵盤控制 液晶顯示 觸碰開關 從站(單片機) 通信接口電路 主站(單片機) 點滴紅外測速 電機驅動動 步進電機圖1 醫院病床輸液監控系統系統框圖 用g63-e303槽式紅外光電開關檢測液滴速度,由mega16單片機控制液晶5110顯示速度,

10、并控制電機驅動l298,控制步進電機的正反轉,從而改變輸液瓶的高度,控制點滴的速度,單片機再根據反饋的速度調整輸液瓶的高度,閉環反饋準確地控制點滴速度。主機和從機之間利用uart通信方式,采用自定義的串口通信協議,實現主從之間的數據交流。采用觸碰開關來檢測異常情況,控制蜂鳴器鳴叫和led閃爍。二、理論分析與設計2.1 點滴速度檢測電路原理分析圖2 g63-e303槽式紅外光電開關內部原理圖g6-e303槽式紅外光電開關槽式光電開關傳感器,發光器能發出紅外光或可見光,在無阻情況下光接收器能接收到光,三極管2sc1008導通,out端被拉低,out輸出低電平,led不亮;當有液滴從槽中落下通過時,

11、光被遮擋,三極管截止,out端輸出高電平vcc,led亮。用mega16的外部中斷采集電平變化時下降沿,來實現對液滴的計數。 液滴下落的速度= x滴/分鐘。2.2 鍵盤控制及顯示電路設計鍵盤控制和顯示電路我們采用液晶顯示和獨立按鍵。我們采用了一款nokia型號為n5110的液晶顯示器,該液晶顯示器不同于lcd1602,它本身有沒有字庫,所以需要我們另外做字庫,但是,它與lcd1602相比還是有優越性的,它可以很方便地描繪圖畫,因為它沒有字庫,每一幅畫面都是人為描出來的,所以顯示圖畫比lcd1602要方便地多。在這塊板上n5110是采用模擬spi通信。鍵盤控制我們采用了4乘4按鍵采用坐標查詢的方

12、式來識別按鍵,這是4乘4按鍵的基本原理圖。其中p0、p1、p2、p3為輸出端口,p4、p5、p6、p7為輸入端口。當p0、p1、p2、p3都為高電平的時候,無論哪個按鍵被按下了,都與按鍵沒被按下的狀態相同,p4、p5、p6、p7端口的輸入信號都為高電平。當p0為低電平,p1、p2、p3都為高電平時,若1號按鍵被按下,那么,p4口相當于和p0口直接相連,于是,p4口就讀入低電平,而其他三個口讀入為高電平。若2號按鍵被按下,同理,p5口就讀入低電平,其他三個端口讀入為高電平。其他的5、6、7、8、9、0、a、b、c、d、e、f按鍵被按下時都沒有反應。這樣就達到了識別1、2、3、4號按鍵的功能了,當

13、p1輸出低電平,p0、p2、p3端口為高電平時,同理,可以識別5、6、7、8號按鍵了。按照這種方式,我們就可以通過8個引腳逐列地掃描按鍵,達到識別16個按鍵的功能,而不需要像獨立按鍵那樣需要16個引腳,大大地節約了單片機的端口資源。 圖3 掃描鍵盤工作原理圖4 通用矩陣鍵盤原理圖2.3 越限報警電路越限報警電路采用觸碰開關和干簧管進行檢測,把觸碰開關安裝在規定位置(即分別在輸液管頂部距滑輪5cm處和漏斗由于越限報警距受液瓶頂部5cm處),當輸液瓶移動到警戒位置時,觸碰開關會觸發單片機meg16的pb1口的電平為低電平,pb1口采集到低電平后,立即控制pa6口,使蜂鳴器鳴叫;同時控制pa7口,點

14、亮報警燈。電路原理圖如圖5圖5 越限報警電路圖 干簧管是一種磁敏的特殊開關。它的兩個觸點由特殊材料制成,被封裝在真空 的玻璃管里。只要用磁鐵接近它,干簧管兩個節點就會吸合在一起,使電路導通。因此可以作為傳感器用,用于計數,限位等等。將其裝在距離受液瓶5cm處,并在漏斗背面安裝小磁鐵,當漏斗距受液瓶頂部小于5cm時,干簧管兩個節點就會吸合在一起,從機檢測到低電平,并向主機報告異常狀況。主機檢測到后蜂鳴器報警,led閃爍。 2.4 電機控制電路電路設計 l298n 為sgs-thomson microelectronics 所出產的雙全橋步進電機專用驅動芯片( dual full-bridge d

15、river ) ,內部包含4信道邏輯驅動電路,是一種二相 和四相步進電機的專用驅動器,可同時驅動2個二相或1個四相步進電機,內含二個h-bridge 的高電壓、大電流雙全橋式驅動器,接收標準 ttl邏輯準位信號,可驅動46v、2a以下的步進電機,且可以直接透過電源來調節輸出電壓;此芯片可直接由單片機的io端口來提供模擬時序信號, 但 outl、out2 和out3、out4 之間分別接2 個步進電機;input1input4 輸入控制電位來控制電機的正反轉;enable 則控制電機停轉。圖6 l298驅動電機原理圖2.5 主從機通信電路設計 通信模式選用avr單片機的內部串口通行模塊usart

16、,usart全稱是“通用同步和異步串行接收器和轉發器”它能夠進行全雙工操作,即擁有獨立的串行接收和轉發器,能夠同時進行接收和發送。它的工作方式又分為同步和異步,同步即為從機將xck端口作為外部輸入時鐘信號,主機將xck端口作為外部時鐘輸出引腳,從而把主從機的數據傳輸同步起來。異步為主從機各自設置相同的波特率(每秒發送數據的比特數,單位為bps或kbps),通過默認的頻率發送和接收數據。它除了要設置工作方式以外還要設置波特率、數據位、校驗位、停止位等細節,所以無論是哪種方式,它對時序的要求都很高,寫程序時必須十分注意每點的設置,如果有一點不同,通信就會出問題。3、 電路與程序設計3.1 整機詳細

17、電路圖見附錄1 3.2 工作流程 主機流程圖 初始化uart接受中斷檢查是否有按鍵被按下數據接受lcd顯示 ny 函數操作從機流程圖 uart接受中斷 初始化 定時 外部中斷函數測速檢查按鍵是否被按下 調速函數ny 呼叫主機uart發送數據給主機圖7 程序流程圖四、測試方案與測試結果4.1 系統測試數據表1 液滴速度檢測測試速據單片機檢測速度(滴/分) 實際速度(滴/分)5050535160597575表2 液滴速度調整測試原始值(滴/分)預置值(滴/分)調整后低速(滴/分)穩定時間(秒)521101071338712011914010575771374.2 主機從機功能測試將電路連接好,上電

18、測試,從機將點滴的速度送入主機,并在主機中顯示從機的速度和機號,此功能正常。4.3 測試結果分析從以上測試結果可以看出,本系統已基本完成題目中的各項要求并在此基礎上有所發揮,其中點滴速度的測量比較精確,在全量程內其誤差小于2(滴/分)。設置點滴速度功能中,控制精度在全量程范圍內誤差在5%以內,但是還是有一定的誤差,經分析主要是由以下原因造成的: 1 由于瓶中的水不斷減少,造成水滴的下落速度不均勻。 2 在動態控制時,由于瓶處于運動狀態,其上升、下降運動不可避免的會產生加速度,導致水滴下落時速度不穩定。 3 算法本身不可能是完全精確的,必然存在舍入誤差等,這些誤差會影響測量結果。五、總結:本系統

19、完成了在滴斗處檢測點滴速度,并制作了一個液晶顯示裝置,能動態顯示點滴速度(滴/分)。通過改變高度控制點滴速度,點滴速度可用鍵盤設定并顯示,設定范圍為50120(滴/分),誤差在要求范圍內。當高度到達警戒值時能發出報警信號,并可以手動解除報警狀態。每個從站都可以和主站通信。主站可以工作在定點和巡回檢測兩種方式下,可以顯示從站傳輸來的從站號和點滴速度,并設定從站的點滴速度。六 、參考文獻1 伍亮.紅外線檢測物體單向運動計數器.設計師筆記,1997(6)17-18.2 賈智平,石冰. 微機原理與接口技術. 中國水利水電出版社,1999.3 江海波深入淺出avr單片機:從atmega48/88/168

20、開始.中國電力出版社,2008.06.4康華光.電子技術基礎(模擬部分).高等教育出版社,2006.01.5楊路明.c語言程序設計教程.北京郵電大學出版社,2005.12月.附錄1:整機詳細電路圖附錄2:主要控制程序主機程序#include #include #include #include n5110.h#define uchar unsigned char#define f_cpu 8000000#define baudrate 9600int flag,num;static int uart_flag=0;uchar data3;int v_speed=50;int flag=0;vo

21、id usart_init(void)ucsrb=0x00;ucsrc=(1ucsz1)|(1ucsz0);ubrrl=(f_cpu/16/baudrate-1)%256;ubrrh=(f_cpu/16/baudrate-1)/256;ucsrb=(1rxen)|(1txen)|(1rxcie); void usart_send(uchar data)while(!(ucsra&(1udre);udr=data;while(!(ucsra&(1txc);void timer0_init(void)tccr0|=(1cs00)|(1cs02);/1024分頻,普通模式timsk|=0x01;tc

22、nt0=0x63;/20ms 1次中斷void port_init(void)ddrb = 0x0f;portb = 0xff;ddrd|=0x02;portd=0xff;ddra = 0xf0;porta = 0x80;int key_scan(void)int i,j,a,b;for(i=0;i4;i+)portb = (1i);_delay_us(100);a = pinb&0xf0;if(a!=0xf0)switch(a)case 0xe0: b=4*i+1;break;case 0xd0: b=4*i+2;break;case 0xb0: b=4*i+3;break;case 0x7

23、0: b=4*i+4;break;default : b=0; break;_delay_ms(1500);return b;return 0;void data_send(void)usart_send(0xff);_delay_ms(10);usart_send(num);_delay_ms(10);usart_send(v_speed);_delay_ms(10);int main(void)int i,j,key;port_init();n5110_init();usart_init();sei();while(1)key=key_scan();switch(key)case 0x01

24、: num = 0x01;flag = 0;break;case 0x02: num = 0x02;flag = 0;break;case 0x03: v_speed += 5;flag = 0;break; /速度上升case 0x04: v_speed -= 5;flag = 0;break; /速度下降case 0x05: data_send();flag = 0;break;case 0x06: num = 0x00;data_send();flag = 0;n5110_clear_screen();break; /未選擇任何從機,從機可呼叫主機case 0x07: flag = 1;

25、break;case 0x08: n5110_add_xy(0,5);n5110_led_ascalls( );porta &=(16);porta |=(17);break;if(flag = 1)num = 0x01;v_speed = 0x00;data_send();for(i=0;i100;i+)_delay_ms(100);num = 0x02;v_speed = 0x00;data_send();for(i=0;i=3)if(data1=0x03)n5110_add_xy(0,5);n5110_led_int(data0);n5110_led_ascalls( call!);po

26、rta |=(16);porta &=(17);elsen5110_add_xy(0,0);n5110_led_ascalls(num:);n5110_led_int(data0);n5110_led_ascalls( );n5110_add_xy(0,1);n5110_led_ascalls(state:);if(data1=0x00)n5110_led_ascalls(good!);n5110_led_ascalls( );else if(data1=0x01)n5110_led_ascalls(up!);n5110_led_ascalls( );porta |=(16);porta &=

27、(17);else if(data1=0x02)n5110_led_ascalls(down!);n5110_led_ascalls( );porta |=(16);porta &=(17);n5110_add_xy(0,2);n5110_led_ascalls(v_speed:);n5110_led_int(v_speed);n5110_led_ascalls( );n5110_add_xy(0,3);n5110_led_ascalls(speed:);if(data210)n5110_led_ascalls(done!);n5110_led_ascalls( );porta |=(16);

28、porta &=(17);elsen5110_led_int(data2);n5110_led_ascalls( );從機程序#include #include #include #include n5110.h#define uchar unsigned char#define f_cpu 8000000#define baudrate 9600int flag,num;static int uart_flag=0;uchar data3;int v_speed=50;int flag=0;void usart_init(void)ucsrb=0x00;ucsrc=(1ucsz1)|(1uc

29、sz0);ubrrl=(f_cpu/16/baudrate-1)%256;ubrrh=(f_cpu/16/baudrate-1)/256;ucsrb=(1rxen)|(1txen)|(1rxcie); void usart_send(uchar data)while(!(ucsra&(1udre);udr=data;while(!(ucsra&(1txc);void timer0_init(void)tccr0|=(1cs00)|(1cs02);/1024分頻,普通模式timsk|=0x01;tcnt0=0x63;/20ms 1次中斷void port_init(void)ddrb = 0x0

30、f;portb = 0xff;ddrd|=0x02;portd=0xff;ddra = 0xf0;porta = 0x80;int key_scan(void)int i,j,a,b;for(i=0;i4;i+)portb = (1i);_delay_us(100);a = pinb&0xf0;if(a!=0xf0)switch(a)case 0xe0: b=4*i+1;break;case 0xd0: b=4*i+2;break;case 0xb0: b=4*i+3;break;case 0x70: b=4*i+4;break;default : b=0; break;_delay_ms(1

31、500);return b;return 0;void data_send(void)usart_send(0xff);_delay_ms(10);usart_send(num);_delay_ms(10);usart_send(v_speed);_delay_ms(10);int main(void)int i,j,key;port_init();n5110_init();usart_init();sei();while(1)key=key_scan();switch(key)case 0x01: num = 0x01;flag = 0;break;case 0x02: num = 0x02;flag = 0;break;case 0x03: v_speed += 5;flag = 0;break; /速度上升case 0x04: v_speed -= 5;flag = 0;break; /速度下降case 0x05: data_send();flag = 0;break;case0x06:

溫馨提示

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

評論

0/150

提交評論