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

正文內(nèi)容

水溫檢測與存儲系統(tǒng)設(shè)計畢業(yè)論文-閱讀頁

2025-07-13 15:32本頁面
  

【正文】 位串行CMOS E2PROM, 內(nèi)部含有128/256/512/1024/2048個8位字節(jié),CATALYST 公司的先進(jìn)CMOS 技術(shù)實(shí)質(zhì)上減少了器件的功耗。它的容量是256個字節(jié)(00h~0ffh),有AAA0三位地址,可見C總線上可以連接8片AT24C02,它的尋址字節(jié)是1010 A2A1A0 R/W。其中A0、AA2是芯片地址線,單片使用時接地;SCL是串行移位時鐘端;SDA是串行數(shù)據(jù)或地址端,CPU通過SDA訪問芯片;WP是寫保護(hù)端,接高電平時芯片只能讀。通常應(yīng)用于自動控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動開關(guān)”。雙向可控硅電路還能任意調(diào)節(jié)導(dǎo)通角,通過調(diào)節(jié)導(dǎo)通角可以實(shí)現(xiàn)加熱功率的任意調(diào)節(jié)。加熱控制電路如圖222所示 圖222 加熱控制電路該控制電路采用可以驅(qū)動雙向可控硅的光耦MOC3083來驅(qū)動大功率雙向可控硅BTA16。輸出端直接用光耦控制雙向可控硅的導(dǎo)通角,從而調(diào)節(jié)功率。尤其是計算機(jī)應(yīng)用高速發(fā)展的今天,許多由硬件完成的工作,都可通過軟件編程而代替。因此充分利用其內(nèi)部豐富的硬件資源和軟件資源,采用與C51系列單片機(jī)相對應(yīng)的51C語言和結(jié)構(gòu)化程序設(shè)計方法進(jìn)行軟件編程。該系統(tǒng)的軟件設(shè)計方法與硬件設(shè)計相對應(yīng),按整體功能分成多個不同的程序模塊,分別進(jìn)行設(shè)計、編程和調(diào)試,最后通過主程序?qū)⒏鞒绦蚰K連接起來。采用STC89RC52通用單片機(jī),成本低,穩(wěn)定性高。 主程序系統(tǒng)主程序包括LCD12864液晶顯示的初始化、AT24C02數(shù)據(jù)存儲模塊初始化、按鍵掃描初始化、PWM占空比可調(diào)模塊程序初始化以及讀取存儲的溫度設(shè)置、溫度以及功率值。 (2) 顯示主界面“水溫檢測存儲”,顯示主界面相關(guān)數(shù)據(jù)信息,之后按鍵掃描函數(shù)KeyScan()循環(huán)進(jìn)行掃描,接下來從18B20讀出溫度值,并且將其送入12864中顯示出來。圖31主函數(shù)部分程序1圖32主函數(shù)部分程序2 主程序的程序流程圖如圖43所示。這兩種控制方式,由外部PSB引腳來選擇:當(dāng)PSB引腳輸入高電平時,為并行操作方式。其中,并行操作方式又可以分為8位并行操作方式和4位并行操作方式兩種。 12864ZK液晶模塊8位并行連接時序圖:(1)MPU寫資料到模塊,見圖35。圖36 MPU從模塊讀出資料時序圖主控制系統(tǒng)將配合(RS、RW、E、DB0~DB7)來完成數(shù)據(jù)傳送。第二次讀取時不需要空讀,除非又執(zhí)行一次設(shè)定地址指令才需要再次空讀一次。得到這個對應(yīng)關(guān)系后 ,我們就可以通過將某個存儲單元中的某一位置為1來實(shí)現(xiàn)在液晶屏上畫出這個點(diǎn)。圖37 LCM12864ZK水平地址與垂直地址示意圖。(2) 在液晶屏幕上只能顯示 1283 64個點(diǎn) ,對應(yīng)于GDRAM中128*64bit。當(dāng)GDRAM的縱坐標(biāo)大于31(32~63)時其內(nèi)容將不能顯示在屏幕上。(2) 再將水平坐標(biāo)X寫入(0~15) 。(4) 將D7~D0數(shù)據(jù)寫入。 12864程序設(shè)計流程圖由上述液晶顯示模塊的設(shè)計,設(shè)計的功能函數(shù)流程圖見圖39,圖310,圖311,圖312,圖313。在I2C總線開始信號后,送出的第一個字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位為地址碼,第8位為方向位(R/W)。開始信號后,系統(tǒng)中的各個器件將自己的地址和主器件送到總線上的地址進(jìn)行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為被主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(R/W)確定。每次都是先傳最高位,通常從器件在接收到每個字節(jié)后都會作出響應(yīng),即釋放SCL線返回高電平,準(zhǔn)備接收下一個數(shù)據(jù)字節(jié),主器件可繼續(xù)傳送。圖314 24C02部分讀寫程序 18B20溫度模塊軟件設(shè)計 DS18B20測溫數(shù)據(jù)的讀取程序設(shè)計對熱水器溫度的檢測室通過數(shù)字溫度傳感器DS18B20實(shí)現(xiàn)的,在溫度模塊硬件電路的設(shè)計中已經(jīng)對的硬件電路做了設(shè)計,現(xiàn)在設(shè)計DS18B20的軟件部分。64位光刻的ROM排列是:開始8位(24H)是產(chǎn)品類型標(biāo)號, 接著的48位是該DS18B20自身的序列號, 最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。(2)DS18B20中的溫度傳感器可完成對溫度的測量, 以12位轉(zhuǎn)化為例用16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供, ℃/LSB的形式表達(dá), 其中S為符號。圖315 DS18B20溫度值格式表這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù), 存儲在的兩個8比特的RAM中, 二進(jìn)制中的前面5位是符號位, 如果測得的溫度大于0, 這位為0, ,如果溫度小于0, 這位為1, 。單總線協(xié)議能夠?qū)崿F(xiàn)數(shù)據(jù)的雙向傳輸, 操作包括數(shù)據(jù)的讀寫和復(fù)位功能。(1)總線復(fù)位,首先必須對DS18B20進(jìn)行復(fù)位,由單片機(jī)給DS18B20單總線至少480Us的低電平信號,當(dāng)DS18B20接到此復(fù)位信號后,延時1560us,通過大地總線60240us來產(chǎn)生應(yīng)答脈沖。復(fù)位時序如圖316所示。一旦總線主機(jī)檢測到應(yīng)答信號,便可以發(fā)起ROM操作指令。ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進(jìn)行操作。一般只掛一個DS18B20時可以跳過ROM指令。第2個字節(jié)是溫度轉(zhuǎn)換后的數(shù)值信息,4個字節(jié)是用戶E2PROM(常用于溫度報警值存儲)的鏡像,在上電復(fù)位時旗幟被刷新。第8個字節(jié)為計數(shù)器寄存器,是為了讓用戶得到更高的溫度分辨率而設(shè)計的,同樣也是內(nèi)部溫度轉(zhuǎn)換、計算的暫存單元。E2PROM非易失性記憶體,用于存放長期需要保存的數(shù)據(jù)。在ROM指令發(fā)送給DS18B20之后,緊接著就是發(fā)送存儲器操作指令了。存儲器操作指令的功能是控制DS18B20工作。在單線DQ上,存在復(fù)位脈沖、應(yīng)答脈沖、寫“0”、寫“1”、讀“0”、讀“1”幾種信號類型。寫時序:當(dāng)主機(jī)將數(shù)據(jù)線從高電平拉至低電平時,產(chǎn)生時序,寫時序分別為寫“0”和寫“1”,時序圖如下圖所示。每一位的發(fā)送都應(yīng)該至少15us的低電平起始位,隨后的數(shù)據(jù)“0”或“1”應(yīng)該在45us內(nèi)完成。寫時序圖如圖318所示。然后在總線被釋放后的15us中DS18B20會發(fā)送內(nèi)部數(shù)據(jù)位,因此再次15us內(nèi)主機(jī)必須停止把DQ引腳置底,這時控制如果發(fā)現(xiàn)總線為高電平表示讀數(shù)據(jù)“1”,如果總線為低電平,則表示讀數(shù)據(jù)“0”。圖319為讀時序圖。在寫時序中,主機(jī)將在拉低總線15us內(nèi)釋放總線,并向DS18B20寫“1”。DS18B20僅在主機(jī)發(fā)出讀時序時才產(chǎn)生向主機(jī)傳輸數(shù)據(jù),所以當(dāng)主機(jī)向DS18B20發(fā)出度數(shù)據(jù)命令后。 DS18B20溫度讀取流程由于DS18B20采用的是一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對STC89RC52單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。因此系統(tǒng)對DS18B20的各種操作必須按協(xié)議進(jìn)行。由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。數(shù)據(jù)和命令的傳輸都是低位在先。 (2)對于DS18B20的讀時隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20的寫時序:(1)對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。 系統(tǒng)程序設(shè)計主要包括三部分:讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、顯示溫度子程序。 DQ=1。 delay(8)。 tmp=0x00。a8。 b=dat1。 }}單片機(jī)在實(shí)現(xiàn)DS18B20溫度轉(zhuǎn)換和讀取的程序設(shè)計中必須嚴(yán)格按照其時序來進(jìn)行,此設(shè)計中,單總線上只掛接了一個DS18B20,所以不用對ROM寄存器進(jìn)行操作,直接跳過ROM,對RAM寄存器進(jìn)行操作。單片機(jī)實(shí)現(xiàn)溫度轉(zhuǎn)換和讀取的程序流程圖如圖320所示,溫度模塊主流程圖如圖321所示。鍵盤管理程序的功能是檢測是否有按鍵閉合,如果有按鍵閉合,消除抖動,根據(jù)鍵號轉(zhuǎn)到相應(yīng)的鍵處理程序,按鍵流程圖如圖322所示。我們可以在程序里設(shè)定溫度上限值,當(dāng)采集到的外界溫度高于當(dāng)前所設(shè)定溫度上限值時,程序就會進(jìn)入溫度控制子程序。圖323 報警子程序流程圖 PWM輸出占空比可調(diào)子程序程序中通過定時器產(chǎn)生固定頻率的脈沖,通過程序控制,輸出占空比可調(diào)的PWM波用來驅(qū)動雙向可控硅,通過調(diào)節(jié)導(dǎo)通角,通過調(diào)節(jié)導(dǎo)通角可以實(shí)現(xiàn)加熱功率的任意調(diào)節(jié)。 檢查線路是否虛焊 檢查18b20讀寫時序是否正常 檢查數(shù)據(jù)線是否接上拉電阻(3)24c02不工作 檢查線路是否正確,虛焊 檢查軟件上的讀寫時序是否正常(4) 雙向可控硅電路不工作 檢查雙向可控硅管腳G、AA2管腳是否搞錯 光耦是否正常 檢查線路是否正確、虛焊220v電壓必須做好絕緣,以免觸電,如果能注意這些問題,電路基本不會出錯。還有一個容易忽略的問題就是,源程序生成的代碼是否燒入到單片機(jī)中,如果這一過程出錯,那不能實(shí)現(xiàn)設(shè)計要求也是情理之中的事。圖為單片機(jī)功能調(diào)試圖:圖41 單片機(jī)功能調(diào)試圖硬件與軟件調(diào)試相結(jié)合,仔細(xì)檢查各個模塊的設(shè)計,就能順利完成任務(wù),實(shí)現(xiàn)設(shè)計要求,在調(diào)試過程中必須認(rèn)真耐心,不能有一點(diǎn)馬虎,否則遺漏一個小的問題就會導(dǎo)致整個設(shè)計的失敗。此時當(dāng)前溫度值會慢慢升高。使用中若按下功率+按鍵,則功率向上高一個等級,若按下功率按鍵,則功率向下調(diào)低一個等級;若按下溫度+按鍵,則溫度加1℃,若按下溫度按鍵,則溫度減1℃;若需要保存數(shù)據(jù),則按下存儲按鍵,數(shù)據(jù)會存儲下來;如果需要查看上次存儲的數(shù)據(jù),則只需要按下讀取按鍵,即可查看保存的數(shù)據(jù)。總結(jié) 通過本次的設(shè)計,使我們不僅對單片機(jī)這門課程有了更深刻的認(rèn)識,懂得了如何運(yùn)用課本知識結(jié)合實(shí)際來完成定時器的顯示和編程方法以及數(shù)碼顯示電路的驅(qū)動方法,使我們能夠很快的適應(yīng)現(xiàn)代控制技術(shù)發(fā)展的需求,同時也提高了我們的思維能力和實(shí)際操作能力,為以后更好的走上工作崗位奠定了堅實(shí)的基礎(chǔ)。 在做硬件電路的這段時間里,從思考設(shè)計到對電路的調(diào)試經(jīng)過了許多困難。但是通過對軟硬件不斷撞墻,不斷思考解決問題的過程中,我學(xué)會了很多東西,同時對單片機(jī)也有了更深的認(rèn)識。只有不斷的發(fā)現(xiàn)問題解決問題,才能從問題中改變自己,提升自己對單片機(jī)的能力。參考文獻(xiàn):[1] 蔡美琴,張為民,沈新群,[M]. 高等教育出版社,1998,12 .[2] 雷建龍,基于模糊控制的水溫自動調(diào)節(jié)器,單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003(8):5354,65.[3] 馮越,楊繼華,俞曙濱.首先感謝***老師出的這些論文選題,給了我這么一個展現(xiàn)自己能力的平臺。所以要感謝所有的任課老師 。三年的時間里,我們沒有紅過臉,我們一直保持著那份純真的友誼,是我們的互相幫助,才有了今天的這份德業(yè)雙修。在論文即將完成之際,我的心情很是激動,那些埋頭苦干和終日坐在電腦跟前的場景還是歷歷在目,辛勤勞動的付出,相信也能夠給我?guī)硗瑯臃至康氖斋@。//12864初始化設(shè)置 init_24C02()。//讀取上次保存的溫度值 Power=read24C02_add(2)。 //讀取上次保存的溫度設(shè)置值 InitTimer0()。 //鍵盤掃描函數(shù),用來檢測按鍵是否按下,按下將執(zhí)行相應(yīng)的函數(shù) DisplayStrLCM12864(1,0,水溫檢測存儲)。 //讀取溫度函數(shù) /*******************溫度超過設(shè)定值做出的動作讓其恒定在某個溫度值***********************************/ if((Temperature=(TemperatureSet500))amp。(Temperature=TemperatureSet)) //如果實(shí)際溫度值低于設(shè)定的溫度值10℃, Power=1。 DisplayOneChar(2,2,tab[Power/10])。//. 顯示小數(shù)點(diǎn) DisplayOneChar(4,2,tab[Power%10])。 //顯示 K DisplayOneChar(6,2,tab[12])。 DisplayOneChar(12,2,tab[TemperatureSet/1000])。//設(shè)置溫度的個位 DisplayStrLCM12864(7,2,℃)。 DisplayOneChar(4,1,tab[Temperature/1000])。 // 溫度的個位 DisplayOneChar(6,1,tab[10])。 //顯示小數(shù)點(diǎn)后一位 DisplayStrLCM12864(4,1,℃)。 DisplayOneChar(2,3,tab[WriteTemperature/1000])。 //溫度的個位 DisplayOneChar(4,3,tab[10])。 // 溫度小數(shù)點(diǎn)后一位 // DisplayStrLCM12864(4,3,℃)。 DisplayOneChar(10,3,tab[ReadTemperature/1000])。 // 溫度的個位 DisplayOneChar(12,3,tab[10])。 //溫度小數(shù)點(diǎn)后一位 // DisplayStrLCM12864(4,3,℃)。 LCD12864_RS_L。 LCD12864_EN_H。 while(LCM12864_Dataamp。 LCD12864_EN_L。 LCD12864_RS_H。 LCM12864_Data=LCMData。 Delay_40US()。}/********************************************名字:unsigned char ReadData
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1