<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于DS18B20的自動(dòng)調溫光療系統設計

基于DS18B20的自動(dòng)調溫光療系統設計

作者: 時(shí)間:2012-01-17 來(lái)源:網(wǎng)絡(luò ) 收藏

1引言

自動(dòng)調溫光療系統是一種醫用理療儀器,其原理是采用單片機對的控制來(lái)控制高壓下的激光輸出器進(jìn)行理療,在激光輸出器工作的同時(shí)對其進(jìn)行實(shí)時(shí)溫度檢測,利用檢測到的溫度狀況決定的導通狀態(tài),達到改變激光輸出器輸出功率的目的,得到最佳的療效。根據上述特點(diǎn),本文選擇了單總線(xiàn)數字溫度傳感器進(jìn)行溫度采集,介紹了使用的程序代碼。為了使的輸出功率連續均勻變化,本文設計了一種利用外部中斷和定時(shí)器中斷實(shí)現可控硅的編程方法,滿(mǎn)足治療光的強度均勻靈敏變化的需要。

2調溫光療系統介紹

2.1系統結構介紹

本系統由5部分組成:CUP處理單元,鍵盤(pán)輸入單元,LCD顯示單元,測量溫度單元,可控硅控制激光器輸出單元。CUP處理單元運行系統程序調度所有任務(wù),鍵盤(pán)用于輸入系統設定參數及控制狀態(tài)模式選擇,LCD為系統提供了良好的操作界面,測量溫度單元負責對激光輸出器的溫度進(jìn)行實(shí)時(shí)檢測,可控硅控制輸出單元針對設定參數及檢測到的溫度來(lái)控制激光輸出器的輸出。本文將詳細介紹測量溫度單元和可控硅控制單元的軟硬件設計。

2.2系統程序流程介紹

本醫療系統的程序流程為:系統首先數據進(jìn)行初始化,這里的初始化主要包括定時(shí)器和外部中斷的設置,初始化完成后開(kāi)外部中斷,然后系統進(jìn)行溫度采集,根據采集的溫度及系統的設置參數來(lái)決定定時(shí)器定時(shí)參數,該定時(shí)參數直接決定可控硅時(shí)導通角的大小。接著(zhù)系統再進(jìn)行溫度采集,選擇定時(shí)器定時(shí)時(shí)間參數,依次循環(huán)下去。在系統循環(huán)工作過(guò)程中,人工可以通過(guò)按鍵改變系統的各種工作參數,工作參數直接影響控制可控硅導通角的定時(shí)器參數的選擇。系統的主流程框圖如圖 1(a)所示意。當系統循環(huán)執行時(shí),外部過(guò)零脈沖信號會(huì )使系統進(jìn)入外部中斷服務(wù)程序,進(jìn)而控制可控硅的的導通。

3 測量溫度單元介紹

熱電偶或鉑電阻,需放大電路和A/D轉換實(shí)現溫度信號采集。為簡(jiǎn)化系統硬件設計,選用了DALLAS公司生產(chǎn)的單總線(xiàn)數字溫度傳感器。 DS18B20提供的“一線(xiàn)”總線(xiàn)接口只需一個(gè)端口進(jìn)行通訊;測溫范圍為-55~+125℃,在-10~+85℃的范圍內,精度為±0.5℃;溫度以 9~12位數字量讀出,分辨率為0.0625℃,該精度滿(mǎn)足本醫用光療系統的要求;同時(shí)DS18B20采用超小型的μSOP封裝,體積很小,可以直接敷貼在激光器的前端。由于DS18B20提供的“一線(xiàn)”總線(xiàn)接口只需一個(gè)端口與CPU通訊,因此在硬件上,利用單片機AT89C52的一個(gè)端口P2.0與 DS18B20的DQ引腳相連。



圖1:系統程序流程圖

3.1DS18B20工作原理及程序

在對DS18B20進(jìn)行讀寫(xiě)操作之前,CPU首先發(fā)出一個(gè)復位脈沖,最小脈沖寬度為480μs的低電平信號;然后CPU釋放單總線(xiàn),使之處于接收狀態(tài)。單總線(xiàn)經(jīng)過(guò)上拉電阻被拉至高電平。當DS18B20檢測測到I/0端的上升沿時(shí),就等待15—60μs,再向主CPU發(fā)出應答脈沖(60一240μs的低電平信號)。初始化子程序為:bitinit_18b20(void);
{bitpresence;//用于保存DS18b20對CPU的應答信號
DQ=0;//復位脈沖低電平
delay_20us(25);//延時(shí)500us
DQ=1;//復位脈沖高電平
delay_20us(4);//延時(shí)80us
presence=DQ;//保存DQ的狀態(tài)
delay_20us(20);//延時(shí)400us
return(presence);//返回DQ的狀態(tài)}
當主CPU將I/O線(xiàn)從高電平拉至低電平時(shí),且保持時(shí)間大于1μs,就作為一個(gè)讀周期的開(kāi)始。DS18B20的輸出數據在讀時(shí)序下降沿過(guò)后的15μs內有效,在此期間,主CPU應釋放I/O線(xiàn),使之處于讀入狀態(tài)以便讀取DS18B20的輸出數據。15μs后讀時(shí)序結束,I/O線(xiàn)經(jīng)上拉電阻變?yōu)楦唠娖?。通常讀取一位數據至少要60μs,并且在兩位數據之間至少要有1μs的恢復期。讀溫度字節的子程序為:byteread_byte(void)
{bytei;//變量用于循環(huán)自加
bytevalue=0;//用于移位操作的臨時(shí)變量
for(i=8;i>0;i--)
{value>>=1;
DQ=0;
NOP_1uS;//延時(shí)1us的空操作宏的空操作宏
DQ=1;
NOP_1uS;NOP_1uS;NOP_1uS;
if(DQ)value|=0x80;
delay_20us(3);//延時(shí)60us
}return(value);//返回對到的字節}
CPU 把I/O線(xiàn)從高電平拉至低電平時(shí),作為—個(gè)寫(xiě)周期的開(kāi)始。寫(xiě)時(shí)序包括兩種類(lèi)型:寫(xiě)1時(shí)序和寫(xiě)0時(shí)序,寫(xiě)1或寫(xiě)0必須保持至少60μs,在兩個(gè)寫(xiě)周期之間至少有1μs的恢復期。DS18B20在I/O線(xiàn)變低電平后的15—6Oμs的時(shí)間內進(jìn)行采樣。若I/O線(xiàn)為高電平,即認為寫(xiě)入了一位1;反之,則認為寫(xiě)入了一位0。主CPU在開(kāi)始寫(xiě)1周期時(shí),必須將I/O線(xiàn)拉至低電平,然后釋放,15μs內將I/O線(xiàn)拉至高電平。主CPU在開(kāi)始寫(xiě)0時(shí),也將I/O拉至低電平,并保持60us的時(shí)間。寫(xiě)字節的子程序為:voidwrite_byte(charval)//“val”用語(yǔ)傳遞需要寫(xiě)的字節
{unsignedchari;//變量用于循環(huán)自加
for(i=8;i>0;i--)
{DQ=0;NOP_1uS;NOP_1uS;
DQ=val0x01;
delay_20us(5);//延時(shí)間100us
DQ=1;val=val/2;//右移一位
}delay_20us(5);//延時(shí)間100us}


每次訪(fǎng)問(wèn)DS18B20的操作都是以初始化器件開(kāi)始,然后發(fā)出ROM命令和功能命令。初始化器件會(huì )使主機接到應答信號,ROM命令與各個(gè)從機設備的惟一 64位ROM代碼相關(guān),允許主機在1一Wire總線(xiàn)上連接多個(gè)從機設備時(shí),指定操作某個(gè)從機設備。這些命令還允許主機能夠檢測到總線(xiàn)上有多少個(gè)從機設備以及其設備類(lèi)型,或者有沒(méi)有設備處于報警狀態(tài)。本系統是只有一個(gè)溫度傳感器的單點(diǎn)系統,利用跳過(guò)ROM(SKIPROM)命令,主機不必發(fā)送64b序列號,從而節約了大量時(shí)間。

ROM命令后,主機就可以發(fā)出指定功能命令(溫度轉換、讀暫存器等)來(lái)完成操作。本系統中讀取溫度的程序為:unsignedintRead_Temperature(void)
{unsignedchara,b;//用于存儲溫度數據的變量
if(init_18b20()==0)
{write_byte(0xCC);//發(fā)送SkipROM指令
write_byte(0x44);//發(fā)送溫度轉換指令
delay_20us(1);
if(init_18b20()==0)
{write_byte(0xCC);//發(fā)送SkipROM指令
write_byte(0xBE);//發(fā)送讀取暫存寄存器指令
a=read_byte();//讀出低八位溫度數據
b=read_byte();//讀出高八位溫度數據
temperature=((b*256+a)/16);//計算出10進(jìn)制溫度值
}}return(temperature);}

4可控硅控制輸出單元

4.1可控硅控制單元硬件設計

本系統利用MOC3021光電隔離電路來(lái)觸發(fā)可控硅。AT89C52利用P21引腳與MOC3021的2腳相連。圖2(a)為觸發(fā)電路原理圖。MOC3021是雙向晶閘管輸出型的光電耦合器,其作用是隔離單片機系統和外部的雙向晶閘管。



圖2:可控硅控制輸出單元原理圖

4.2過(guò)零檢測電路設計

利用過(guò)零檢測電路捕捉交變電壓的零點(diǎn)信號。以便在過(guò)零點(diǎn)啟動(dòng)定時(shí)器,當計時(shí)時(shí)間到達后觸發(fā)可控硅。過(guò)零檢測電路如圖2(b)所示,利用兩個(gè)TIL117與 18V的交流電相連,兩個(gè)TIL117分別在交流電的正負周期當電壓達到0.3V使三極管T導通,進(jìn)而使三極管T的集電極在交流電的零點(diǎn)附近產(chǎn)生脈沖信號。

4.3可控硅程序設計

過(guò)零檢測電路在交變電壓每個(gè)周期產(chǎn)生兩個(gè)過(guò)零點(diǎn)電壓脈沖信號,使AT89C52產(chǎn)生外部中斷。在中斷服務(wù)程序中開(kāi)始定時(shí)器計時(shí)。定時(shí)器的定時(shí)時(shí)間小于兩個(gè)過(guò)零脈沖信號間隔,即10ms,這樣可以使定時(shí)器中斷在下一個(gè)外部中斷來(lái)到之前工作。在定時(shí)器中斷服務(wù)程序中,觸發(fā)可控硅,并裝入新的定時(shí)器定時(shí)時(shí)間常數。等待下一個(gè)過(guò)零脈沖信號到來(lái)引發(fā)的外部中斷,進(jìn)而開(kāi)始新一個(gè)周期的可控硅觸發(fā)周期。程序流程圖如圖1(b)。

利用過(guò)零檢測電路產(chǎn)生的下降沿作為外部中斷信號,在中斷程序中根據系統此時(shí)功率輸出判斷是否啟動(dòng)定時(shí)器,如果功率輸出為非零則啟動(dòng)定時(shí)器進(jìn)行計時(shí)。


voidguicontrol(void)interrupt2
{if(power!=0)//判斷負載功率輸出是否為零時(shí),非零則進(jìn)入
{DT=1;//關(guān)斷可控硅輸出,DT為AT89C52的P21引腳
TR0=1;//啟動(dòng)定時(shí)器}}
當定時(shí)器中斷產(chǎn)生時(shí),停止定時(shí)器計時(shí),并且在中斷函數中裝入在程序主控制流程中根據檢測到的溫度及系統的功率設定而實(shí)時(shí)變化的新定時(shí)時(shí)間常數,觸發(fā)可控硅導通??煽毓鑼〞r(shí)間會(huì )持續到負載電流每個(gè)半周的終點(diǎn)。voidtime0(void)interrupt1
{TR0=0;//停止定時(shí)器計時(shí)
TH0=timehigh;//裝入新的定時(shí)器定時(shí)時(shí)間常數
TL0=timelow;
DT=0;//觸發(fā)可控硅導通,DT為AT89C52的P21引腳
TF0=0;//清除定時(shí)器溢出標志位}

本文闡述了醫療系統的溫度測控設計原理,選用了單總線(xiàn)數字傳感器DS18B20作為溫度傳感器,簡(jiǎn)化電路。設計了一種實(shí)現可控硅移相觸發(fā)的編程方法,給出了具體應用電路和軟件設計。所采用設計方案使該醫療系統硬件簡(jiǎn)單實(shí)用,可靠性增加。


參考文獻:
[1]馬田華,陳東,蔣國平.可編程單總線(xiàn)數字式溫度傳感器DS18B20的原理及應用[J].元器件分析與應用,2004,7:83-85
[2]李鋼,趙彥峰.1-Wire總線(xiàn)數字溫度傳感器DS18B20原理及應用[J].現代電子技術(shù),2005,21:77-79
[3]戚新波,范崢,陳學(xué)廣.DS18B20與ATmega8單片機接口的C語(yǔ)言實(shí)現方法[J].微計算機信息,2005,7-2:71-73



關(guān)鍵詞: DS18B20 移相觸發(fā) 可控硅

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>