freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的水塔水位控制系統(tǒng)-閱讀頁

2025-07-05 12:43本頁面
  

【正文】 的精密模擬電路可能非常龐大、笨重(如老式的家庭立體聲設(shè)備)和昂貴。模擬電路還可能對噪聲很敏感,任何擾動或噪聲都肯定會改變電流值的大小。此外,許多微控制器和DSP已經(jīng)在芯片上包含了PWM控制器,這使數(shù)字控制的實現(xiàn)變得更加容易了。通過高分辨率計數(shù)器的使用,方波的占空比被調(diào)制用來對一個具體模擬信號的電平進行編碼。電壓或電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負載上去的[22]。只要帶寬足夠,任何模擬值都可以使用PWM進行編碼。許多微控制器內(nèi)部都包含有PWM控制器。占空比是接通時間與周期之比;調(diào)制頻率為周期的倒數(shù)。 在PWM控制寄存器中設(shè)置接通時間。 啟動定時器。 系統(tǒng)程序的設(shè)計 程序設(shè)計步驟 程序設(shè)計就是用計算機所能接受的語言把所需解決問題的步驟逐一描述出來,也就是編制計算機的程序,在設(shè)計應(yīng)用系統(tǒng)時,軟件的編制是重要環(huán)節(jié)。應(yīng)用程序的設(shè)計因系統(tǒng)而異,但程序設(shè)計總是有共同特點及其規(guī)律的。根據(jù)功能關(guān)系和時序關(guān)系,設(shè)計出合理的軟件總體結(jié)構(gòu)。(3)合理分配系統(tǒng)資源,包括定時器/計數(shù)器、中斷、堆棧等。(4)根據(jù)程序的流程圖和指令系統(tǒng)編寫出程序。(5)程序調(diào)試。如果源程序有語法錯誤,需修改源文件后繼續(xù)編譯,直到無語法錯誤為止,然后利用目標代碼通過仿真器進行程序調(diào)試,排除設(shè)計和編程中的錯誤直到成功。使各功能程序模塊化,子程序化,縮短程序的長度,加快運算速度和節(jié)省數(shù)據(jù)存儲空間,減少程序執(zhí)行的時間。這樣對人和對電機、整個系統(tǒng)都是必須的。 程序流程圖 PWM調(diào)速按鍵調(diào)整子程序檢測是否有按鍵按下YN延時15ms,確定有按鍵按下N檢測哪一個按鍵按下先停止電機,PWM速度增加液晶屏顯示速度值增加先停止電機,PWM速度減少液晶屏顯示速度值減少減按鍵加按鍵圖41 PWM按鍵調(diào)整子程序流程圖停止電機,燈閃爍幾下,蜂鳴器響幾聲,液晶顯示正常檢測模擬水塔水位正常按鍵開始系統(tǒng)初始化,燈閃爍,蜂鳴器響一聲,液晶顯示進入主程序等待狀態(tài)顯示速度啟動電機,燈閃爍幾下,蜂鳴器響,液晶顯示低水位檢測模擬水塔水位按鍵檢測模擬水塔水位低按鍵NYNYPWM按鍵調(diào)制子程序NYPWM調(diào)速按鍵選擇電機的轉(zhuǎn)速圖42程序總體流程圖在進入PWM按鍵子程序后,首先要做的事是先檢測是否確定有按鍵按下,這個過程延時15ms,在確認有按鍵按下后,判斷是哪一個按鍵按下,如果是速度加按鍵按下,電機不管在什么狀態(tài),都是首先停止,然后是調(diào)整PWM調(diào)制時間,液晶屏顯示速度增加,按下減按鍵,也是先停止電機,調(diào)整PWM調(diào)制時間,液晶屏顯示速度減少。當系統(tǒng)按下電源開關(guān),且確定有電源存在時候,系統(tǒng)進入初始化狀態(tài),燈會閃爍、蜂鳴器響一聲、液晶初始化,初始化完以后,進入PWM按鍵調(diào)速選擇,如有按鍵按下,進入PWM按鍵調(diào)整子程序,若沒有,進入主程序等待狀態(tài),檢測水塔水位的液位狀態(tài),當模擬液位低水位按鍵按下后,電機以顯示速度啟動,模擬抽水過程,此時蜂鳴器報警,燈閃爍,且液晶會顯示水位過低狀態(tài)。具體流程圖的如圖42所示。程序主要由LCD1602液晶驅(qū)動子程序,電機PWM調(diào)速功能子程序、按鍵掃描子程序等功能程序組成,詳細源代碼見附錄二。經(jīng)過初步的分析設(shè)計后,在制作硬件電路的同時,調(diào)試也在穿插進行。軟件編程中,首先編寫單元模塊的程序,并且在硬件上調(diào)試成功問題,即可以做系統(tǒng)整體程序的調(diào)試。 電路檢測上電后觀察電路工作性能,如不能正常工作,按原理圖分模塊進行電路檢測,是否有虛焊或漏焊現(xiàn)象;如焊接正常,在按信號傳遞的方向逐級檢測,找出出問題的一級,并向該級的上級進行檢測,直到將故障排除。 調(diào)試步驟:在元件沒有在萬能板上進行焊接的時候我們是不能直接拿過來就進行使用的,必須經(jīng)過檢測,像LED燈可以用萬用表測試一下看其是否會發(fā)光,測試三級管的好壞,器件的檢測工作都要在焊接之前做好。3.軟件測試:寫一個功能小程序,來具體單個的功能硬件電路是否有問題,如果有問題再具體看是硬件的問題還是軟件的問題,若沒有問題,則可以進行下一個功能電路的測試。主要查看是否把LED燈的陰陽極接反。一是要查看蜂鳴器是否接反。當然液晶的使用還是很有技巧性的,應(yīng)該先寫一個液晶的小功能子程序把液晶測試好。液晶的主要電路是接線多,所以如果發(fā)現(xiàn)問題,要細致的去看看每一根線是否接好。 (二).軟件問題及解決方案:LCD1602液晶的初始化時間及發(fā)送控制命令的等待時間要參考手冊,并且用C編程序很大的一個毛病就是時間不能很好的掌握,所以需要多做幾次實驗或者參考比較成熟的延時程序。然后在執(zhí)行完程序后我們要做一個按鍵是否釋放的檢測,這樣就能在軟件里把這個按鍵的抖動問題比較好的處理掉。LCD1602顯示當前水位、蜂鳴器鳴笛報警,手動按鍵調(diào)整電機PWM輸出,低警戒水位報警并啟動發(fā)動機,正常水位是報警停止等基本系統(tǒng)功能。在本設(shè)計電路完成后,實現(xiàn)了基于單片機STC89C52的水塔水位模擬檢測控制系統(tǒng)。系統(tǒng)程序語言是使用比較廣泛的C語言進行編寫,結(jié)構(gòu)清晰,達到的系統(tǒng)控制效果很好。清楚了目前液晶LCD1602的具體使用范圍和一些市場開發(fā)的前景。參考文獻[1]陳學煌,[J].傳感器技術(shù),2005,24(12):6163.[2] 王建新,楊世鳳,史永江,[J].國外電子測量技術(shù),2005,24(10):1820.[3] 李剛民,[M].北京:高等教育出版社,2005.[4] [M].北京:電子工業(yè)出版社,2005.[5] [M].:清華大學出版社,2004.[6] [M].北京:機械工業(yè)出版社,2007.[7] [J].單片機與嵌入式系2007(10):7476.[8] 丁元杰 單片微機原理及應(yīng)用 機械工業(yè)出版社 2000[9] 騰召勝 羅隆福 智能檢測系統(tǒng)與數(shù)據(jù)融合 機械工業(yè)出版社 2000[10] 孫虎章 自動控制原理 中央廣播電視大學出版社 1999[11]《單片微型計算機技術(shù)》 劉國榮 編 機械工業(yè)出版社[12]《單片微型計算機原理、應(yīng)用及接口技術(shù)》 張迎新 編 國防工業(yè)出版社[13]《單片機實用系統(tǒng)設(shè)計技術(shù)》 房小翠 編 國防工業(yè)出版社[14]《單片機應(yīng)用系統(tǒng)設(shè)計》 何立民 編 北航出版社[15]《單片機原理及接口技術(shù)》 曹琳琳編 國防科技大學出版社[16] [美] Intel: Microcontroller Handbook,1988.[17] ATME L. CORPORATION. .[18] Joe [M] .北京:清華大學出版社,1995:3132.[19] [德]克勞斯 //led燈顯示,低電平亮sbit speaker=P1^0。 //1602數(shù)據(jù)選擇命令端 sbit lcd_rw=P0^6。 //1602 使能端定義 sbit key_up=P3^0。 //pwm速度調(diào)整端口,電機速度減一sbit monter=P1^1。//水位過高傳感器模擬按鍵端口,低電平報警sbit water_low=P1^7。//模式下的pwm值,人為已經(jīng)設(shè)定的時間是100,可以調(diào)整上限值 uint model=1,pwmT=150,time_count=0。 //按鍵掃描函數(shù) void check_water_level()。 for(x=z。x) for(y=110。y)。 //選擇指令 lcd_rw=0。 P2=d。 lcd_enable=1。 lcd_enable=0。 //選擇數(shù)據(jù) lcd_rw=0。 P2=date。 lcd_enable=1。 lcd_enable=0。 if(y==1) address=0x80+x。 //第二行的位置 lcd_write_d(address)。 //設(shè)定位置 lcd_write_data(date)。 //設(shè)定位置 while(*s) //循環(huán)寫入數(shù)據(jù) { lcd_write_data(*s)。 } }//********電機PWM調(diào)速函數(shù)及程序主函數(shù)*******//void init() //初始化函數(shù) { uchar i,count=25。 //開機led燈閃爍 for(i=0。i++) { led=~led。 count=count+5。 lcd_write_d(0x38)。 //開顯示 lcd_write_d(0x01)。 //設(shè)定初始位置 lcd_write_string(0,1,Water Lev:Normal)。 speaker=0。 speaker=1。 //定時0,定時時間為150us,工作在方式2 TH0=(256150)%256。 EA=1。 //開定時器0的中斷 TR0=0。 while(1) { key_scan()。 //檢測水位是否正常函數(shù) } }void timre_0() interrupt 1 //定時器0的中斷子函數(shù){ time_count++。 } if(time_countpwm_t[model1]) //當計數(shù)器在PWM定制時間內(nèi)的時候,輸出相關(guān)的pwm控制信號 { monter=0。 } }void check_water_level() //檢測水位是否正常函數(shù){ uchar i。 TR0=0。 //關(guān)閉電機 speaker=0。//液晶屏顯示 for(i=0。i++) //燈閃爍報警 { led=~led。 } led=0。 } if(water_low==0) //水位過低檢測 { led=1。 //開啟電機 monter=0。 //蜂鳴器報警 lcd_write_string(0,1,Water Lev:Low )。i20。 delay(100)。 speaker=1。 if(key_up==0) //檢測是否增加按鍵按下 { delay(15)。 // 有按鍵按下,電機一定要停止轉(zhuǎn)動 model++。 i=model+0x30。 //液晶顯示變化 while(!key_up)。 if(key_down==0) { TR0=0。 if(model==0) //pwm速度定制值調(diào)整減少 model=4。 lcd_write_char(14,0,i)。 //按鍵是否釋放檢測 } }}
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1