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

正文內(nèi)容

具有語音警報(bào)功能的溫控器仿真設(shè)計(jì)畢業(yè)論文-文庫吧

2025-06-12 17:09 本頁面


【正文】 成的匯編代碼,就能明顯體會(huì)到 Keil C51生成的目標(biāo)代碼效率是非常之高的,多數(shù)語句生成的匯編代碼都很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。Proteus軟件是由英國(guó)Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好應(yīng)用最廣的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛剛起步,但已經(jīng)受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的老師、致力于單片機(jī)開發(fā)應(yīng)用的科研工作者的青睞。Proteus是世界上著名的仿真軟件,從原理圖布圖、程序調(diào)試到單片機(jī)與外圍電路的協(xié)同仿真,一鍵切換至PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品上的完整設(shè)計(jì)。Proteus是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái)。在編譯方面,它也支持Keil、IAR和MPLAB等多種編譯器。 Visual Basic是一種由微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動(dòng)編程語言。它源自于BASIC編程語言。從任何標(biāo)準(zhǔn)來說,VB都是世界上使用人數(shù)最多的語言——不僅是盛贊VB的開發(fā)者還是抱怨VB的開發(fā)者的數(shù)量。同時(shí)VB擁有快速應(yīng)用程序開發(fā)(RAD)系統(tǒng)和圖形用戶界面(GUI),可以輕易的使用RDO、DAO、ADO連接數(shù)據(jù)庫,還可以輕松的創(chuàng)建ActiveX控件。程序員可以輕松的使用VB提供的組件快速建立一個(gè)應(yīng)用程序。VB的程序可以包含一個(gè)主窗體和多個(gè)子窗體,或者是一個(gè)或多個(gè)窗體,類似于操作系統(tǒng)的樣子。VB的組件既可以擁有用戶界面,也可以沒有。有很少功能的對(duì)話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。這樣一來,服務(wù)器端程序就可以處理增加的模塊。 主程序設(shè)計(jì)原理 軟件設(shè)計(jì)流程圖,本設(shè)計(jì)程序流程可分為以下幾個(gè)主要部分:首先初始化,聲明子函數(shù)、全局變量,并且打開、設(shè)定相關(guān)中斷,設(shè)置波特率。然后溫度采集,建立DS18B20的溫度采集協(xié)議,將DS18B20采集到的實(shí)時(shí)溫度保存到數(shù)組中。接下來進(jìn)行按鍵掃描,若沒有按鍵按下,直接顯示實(shí)時(shí)溫度。若點(diǎn)設(shè)定溫度鍵,顯示設(shè)定溫度值,并且選定的那一位閃爍,通過按鍵可對(duì)選定位加1,減1,左移,右移;再點(diǎn)確定鍵,返回正常顯示狀態(tài),顯示實(shí)時(shí)溫度值。然后再判斷實(shí)時(shí)溫度是否超過設(shè)定溫度的門限范圍,若超過則報(bào)警,然后返回溫度采集子程序,如此循環(huán)執(zhí)行,若沒有超過則直接返回溫度采集進(jìn)行循環(huán)。 溫度采集子程序流程圖 溫度采集子程序流程圖 如上圖所示,由于通過單線總線端口訪問DS18B20必須遵守一定的協(xié)議,因此該子程序的設(shè)計(jì)也必須嚴(yán)格按照協(xié)議步驟的順序?qū)崿F(xiàn)。首先初始化,定義子程序變量,調(diào)用復(fù)位子程序,復(fù)位DS18B20準(zhǔn)備采集溫度。然后調(diào)用寫字節(jié)子程序,執(zhí)行ROM操作命令,將其跳過。然后再次調(diào)用寫字節(jié)子程序,執(zhí)行溫度轉(zhuǎn)換,這里需要一個(gè)延時(shí),等待程序轉(zhuǎn)換完成后,便可將采集到的溫度值的各位對(duì)應(yīng)的寫入存放實(shí)時(shí)溫度的數(shù)組num1[]。接下來再次初始化、執(zhí)行ROM操作命令,然后執(zhí)行存儲(chǔ)器操作命令,將溫度值讀出并計(jì)算,從而得到實(shí)時(shí)溫度值的每一位數(shù)值。 RS232串口通信的程序流程圖 串口通信RS232控件的程序流程圖上位機(jī)使用RS232控件與下位機(jī)通信,程序中使用該控件的OnComm事件,使整個(gè)子程序循環(huán)執(zhí)行,不斷接收下位機(jī)傳上來的數(shù)據(jù)。,首先進(jìn)行初始化,設(shè)置通信端口、波特率等參數(shù),建立通信協(xié)議,然后接收數(shù)據(jù)并轉(zhuǎn)換。當(dāng)收到的數(shù)據(jù)為接收標(biāo)志位時(shí),則清空數(shù)據(jù),等待接收數(shù)據(jù),然后返回接收轉(zhuǎn)換數(shù)據(jù),接收完四個(gè)字節(jié)的數(shù)據(jù)后,將數(shù)據(jù)轉(zhuǎn)換成數(shù)值型,最后顯示在對(duì)應(yīng)的文本框中,然后還要再次返回接收數(shù)據(jù),不斷循環(huán),以保證顯示溫度為當(dāng)前的溫度值。系統(tǒng)調(diào)試 硬件調(diào)試經(jīng)過Keil C和Proteus的仿真調(diào)試之后,我們將程序下載到了單片機(jī)實(shí)驗(yàn)板進(jìn)行硬件仿真,基本實(shí)現(xiàn)了和軟件仿真接近的結(jié)果,但是仍然有一些問題:第一,數(shù)碼管總有一位不能點(diǎn)亮,但其位選標(biāo)志P03口控制的LED燈是亮的。用萬用表對(duì)連接在數(shù)碼管上的三極管進(jìn)行導(dǎo)通測(cè)量,發(fā)現(xiàn)三極管不能導(dǎo)通,換了一個(gè)三極管后,那位數(shù)碼管還是不能點(diǎn)亮,再用萬用表檢測(cè),發(fā)現(xiàn)是由于那塊焊盤挨得比較緊密,焊接時(shí)不小心使相鄰兩個(gè)三極管相連,導(dǎo)致PNP不能正常工作。第二,鍵盤和單片機(jī)I/O口連線不正確,導(dǎo)致鍵盤不能起作用。后面結(jié)合原理圖和程序重新連好線即可。由于我們用了報(bào)警電路,在按鍵選用的時(shí)候,導(dǎo)致報(bào)警電路不能正常工作,蜂鳴器就鳴叫,這個(gè)問題修改按鍵的控制端口即可。第三,液晶不能顯示。調(diào)節(jié)W2即液晶的背光調(diào)節(jié)即可正常顯示。程序主要包括按鍵掃描,溫度采集,LED數(shù)碼管顯示掃描,報(bào)警子程序以及串口通信發(fā)送、接收子程序。在程序設(shè)計(jì)初期遇到很多設(shè)計(jì)錯(cuò)誤上的問題,通過反復(fù)整理思路,修改程序流程圖,更正這些錯(cuò)誤。在設(shè)計(jì)后期,程序調(diào)試的過程中,又遇到了幾個(gè)可靠性和穩(wěn)定性方面的問題,經(jīng)過仔細(xì)地研究、反復(fù)地推敲和不斷地嘗試,也逐一解決了這些問題,是整個(gè)系統(tǒng)更加穩(wěn)定可靠。下面介紹一下在整個(gè)調(diào)試過程中遇到的問題,以及我們解決的方法。第一,按鍵時(shí)LED非正常閃爍。最初設(shè)計(jì)的按鍵掃描程序在調(diào)試的時(shí),會(huì)出現(xiàn)一個(gè)問題——每按下一次按鍵,LED就會(huì)閃爍一次;若按下按鍵不松開,則LED會(huì)不顯示,直到松開按鍵才會(huì)重新顯示。這是由于先前設(shè)計(jì)的程序中在執(zhí)行按鍵功能之后有一個(gè)while語句判斷按鍵是否松開,即while((P1amp。0xe2)!=0xe2)。若所以當(dāng)按鍵按下到松開按鍵的時(shí)間內(nèi),整個(gè)程序一直在這里停留,所以不會(huì)顯示或者執(zhí)行其他子程序,從而就使得每按鍵一次LED顯示閃爍一次。解決方法:設(shè)置一個(gè)按鍵標(biāo)志位z,按前z=0,按下后按鍵子程序只講將z置為1,然后跳出,繼續(xù)執(zhí)行其他子程序。下一次掃描按鍵子程序的時(shí)候,先判斷z的值,若為0,則不執(zhí)行按鍵功能程序,若為1,則執(zhí)行按鍵功能程序,并將z重新置為0,等待下一次按鍵的到來。這樣,按鍵子程序不會(huì)進(jìn)入while語句的死循環(huán),因此LED顯示在按鍵時(shí)也就不會(huì)閃爍,使得整個(gè)顯示更加穩(wěn)定、流暢。第二,閃爍顯示時(shí)按鍵不靈敏。在LED閃爍顯示設(shè)定溫度時(shí),按鍵不夠靈敏,有時(shí)有效有時(shí)無效。這是由于LED閃爍顯示是由兩個(gè)90次的循環(huán)程序完成的。因此該子程序的延時(shí)會(huì)相對(duì)較大,所以導(dǎo)致按鍵時(shí)程序可能正在執(zhí)行該循環(huán),并沒有掃描到按鍵,從而按鍵變得不靈敏。解決方法:解決這個(gè)問題的方法很簡(jiǎn)單,只需要在LED閃爍顯示程序的每一次循環(huán)中都調(diào)用一次按鍵子程序Getch(),判斷是否有鍵按下。這樣整個(gè)系統(tǒng)的按鍵會(huì)更加可靠、更加靈敏。第三,串口通信下位機(jī)接收錯(cuò)位。上位機(jī)通過串口向下位機(jī)發(fā)送設(shè)定溫度時(shí),下位機(jī)接收到的數(shù)據(jù)錯(cuò)開一位。這是由于上位機(jī)每一次發(fā)送4個(gè)數(shù),而下位機(jī)程序卻判斷、接收了5次,因此錯(cuò)開一位。解決方法:將原程序中的while語句改成do..while語句并設(shè)置一個(gè)標(biāo)志位t,以判斷4個(gè)數(shù)是否接收完畢。以下是修改前的串口通信下位機(jī)接收子程序(左)和修改后的串口通信下位機(jī)接收子程序(右)的對(duì)比。void R_temp(){ unchar k。 if(RI) { for(k=0。k4。k++) { while(!RI)。 num[k]=SBUF。 RI=0。 } }}void R_temp(){unchar k=0。 do {if(RI) { num[k]=SBUF。 RI=0。 k++。 t=1。 if(k==4) { t=0。 ES=0。 } } } while(t)。第四,延時(shí)問題。DS18B20器件對(duì)時(shí)序要求嚴(yán)格,之前由于延時(shí)問題,導(dǎo)致出現(xiàn)溫度不能正常采集的情況。溫度傳感器DS18B20的延時(shí)首先是一個(gè)480~960微秒的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,并在隨后的480微秒時(shí)間內(nèi)對(duì)總線進(jìn)行檢測(cè),如果有低電平出現(xiàn)說明總線上有器件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明總線上無器件應(yīng)答。做為從器件的DS18B20在一上電后就一直在檢測(cè)總線上是否有480-960微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待15-60微秒后將總線電平拉低60-240微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒有檢測(cè)到就一直在檢測(cè)等待。寫周期最少為60微秒,最長(zhǎng)不超過120微秒。而完成一個(gè)讀時(shí)序過程,也至少需要60us才能完成等等,對(duì)延時(shí)都有嚴(yán)格的要求,否則溫度不能正常顯示。溫度采集仿真圖如下:上位機(jī)顯示圖如下:系統(tǒng)功能、指標(biāo)參數(shù) 系統(tǒng)功能溫度采集模塊會(huì)實(shí)時(shí)地采集當(dāng)前溫度,按鍵模塊判斷是否有按鍵按下,并實(shí)現(xiàn)對(duì)應(yīng)的功能,顯示模塊能顯示正常狀態(tài)下的實(shí)時(shí)溫度和設(shè)定狀態(tài)下的目標(biāo)溫度,報(bào)警模塊實(shí)現(xiàn)越限報(bào)警功能,串口通信發(fā)送模塊將采集到的實(shí)時(shí)溫度值發(fā)送給上位機(jī)顯示出來,串口通信接收模塊能接收上位機(jī)發(fā)送下來的設(shè)定溫度值。 系統(tǒng)指標(biāo)參數(shù)指標(biāo)本系統(tǒng)主要是對(duì)溫度的實(shí)時(shí)監(jiān)測(cè)與控制。所以測(cè)試系統(tǒng)指標(biāo)參數(shù)時(shí)主要是對(duì)溫度值的測(cè)試。 溫度測(cè)量變化值測(cè)定次數(shù)123456LED顯示手溫變化(℃)本系統(tǒng)只實(shí)現(xiàn)了主要的溫度測(cè)控功能,對(duì)于比較完善的系統(tǒng)功能實(shí)現(xiàn)則還有比較大的差距。本設(shè)計(jì)只能按鍵設(shè)定目標(biāo)溫度,不能設(shè)定目標(biāo)溫度的門限范圍,即門限范圍只能是目標(biāo)溫度177。2℃,使用者無法通過按鍵設(shè)定這值。設(shè)計(jì)中可以把下位機(jī)采集到的實(shí)時(shí)溫度通過串口發(fā)送給上位機(jī)顯示,上位機(jī)也能把設(shè)定溫度通過串口發(fā)送給下位機(jī),但是當(dāng)下位機(jī)通過按鍵設(shè)定目標(biāo)溫度時(shí),不能將設(shè)定的溫度發(fā)送給上位機(jī)顯示,所以程控部分還有待改善。上位機(jī)通過串口發(fā)送設(shè)定溫度給下位機(jī)的VB程序中的延時(shí),從10ms~1000ms,經(jīng)過反復(fù)調(diào)試最終設(shè)定為30ms,雖已能滿足要求,但是不能在下位機(jī)顯示設(shè)定溫度狀態(tài)下發(fā)送數(shù)據(jù),否則接收錯(cuò)誤。并且對(duì)于該延時(shí)對(duì)系統(tǒng)的影響仍不清楚,有待進(jìn)一步的分析和思考。結(jié)論在本次設(shè)計(jì)中,基本完成了本設(shè)計(jì)的主要的要求及功能。在設(shè)計(jì)開始前我對(duì)各個(gè)模塊進(jìn)行了詳細(xì)的分析和設(shè)計(jì)準(zhǔn)備工作,設(shè)計(jì)過程中,相互協(xié)調(diào),積極請(qǐng)教參與完成各個(gè)技術(shù)實(shí)現(xiàn)的難點(diǎn)。本設(shè)計(jì)要求實(shí)現(xiàn)報(bào)警溫控器設(shè)計(jì),實(shí)時(shí)溫度是通過DS18B20采集的,按鍵可以設(shè)定目標(biāo)溫度,實(shí)時(shí)溫度超出設(shè)定的門限范圍,LED燈點(diǎn)亮報(bào)警。VB界面能接收和顯示下位機(jī)傳上來的實(shí)時(shí)溫度值,也能將設(shè)定溫度值(一個(gè)4位的數(shù)組)發(fā)送給下位機(jī),這是本次設(shè)計(jì)的難點(diǎn),也是一個(gè)很大的創(chuàng)新點(diǎn),真正實(shí)現(xiàn)了遠(yuǎn)程測(cè)控的功能,在VB程序中我們?cè)O(shè)置了通信端口選擇,這并不會(huì)出現(xiàn)因?yàn)橥ㄐ哦丝诘牟煌荒軐?shí)現(xiàn)測(cè)控的情況,從而使上位機(jī)與下位機(jī)之間能夠相互通信,遠(yuǎn)程測(cè)控功能對(duì)溫度值有嚴(yán)格要求的系統(tǒng)來說是非常方便的。當(dāng)然,在本次設(shè)計(jì)中,還有存在很多不足的地方。比如,下位機(jī)設(shè)定的目標(biāo)溫度不能發(fā)送給上位機(jī)顯示,這在遠(yuǎn)程測(cè)控系統(tǒng)中是一個(gè)很大的不足,另外,上位機(jī)VB程序的延時(shí)與下位機(jī)接收之間的問題也有待改善,這些不足希望可以在以后的設(shè)計(jì)中加以改善,使系統(tǒng)更加完善??偨Y(jié)與體會(huì)在本次設(shè)計(jì)中,我遇到了很多不明白的地方,在尋求幫助的情況下,最終完成了設(shè)計(jì)。設(shè)計(jì)難免出現(xiàn)問題,但是出現(xiàn)問題最重要的就是學(xué)會(huì)解決,利用軟、硬件的調(diào)試,將整個(gè)設(shè)計(jì)完善到最好。本次設(shè)計(jì)的主要任務(wù)我達(dá)到了,實(shí)現(xiàn)了設(shè)計(jì)的基本要求。本設(shè)計(jì)采用模塊化設(shè)計(jì)思想,進(jìn)行了軟件設(shè)計(jì),通過對(duì)系統(tǒng)主程序的流程進(jìn)行分析,編寫了系統(tǒng)程序,同時(shí)說明了各模塊的功能,利用軟件仿真、調(diào)試和硬件調(diào)試,最終設(shè)計(jì)出了具有報(bào)警功能的溫控器,基本實(shí)現(xiàn)了其要求。通過本次的智能化設(shè)計(jì),不論是理論方面,還是實(shí)踐方面,我都獲益匪淺,歸納起來,有以下幾個(gè)方面的收獲:(1)學(xué)習(xí)與掌握了STC89C52單片機(jī)的基本原理及其應(yīng)用,對(duì)它的各種硬件接口與軟件設(shè)計(jì)方法有更加深入的認(rèn)識(shí)和理解。尤其是對(duì)串口通信有了更深的了解。(2)學(xué)會(huì)了基本的C語言編程,掌握了用C語言編程控制51單片機(jī)的方法以及它的具體程序?qū)崿F(xiàn)步驟;(3)進(jìn)一步鞏固了VB知識(shí),學(xué)會(huì)了用VB界面對(duì)電路系統(tǒng)的實(shí)時(shí)測(cè)控。(4)對(duì)利用萬用表檢測(cè)、調(diào)試硬件電路的方法有了非常大的認(rèn)識(shí)與掌握,對(duì)利用萬用表判斷電路導(dǎo)通截止的方法也有了充分的掌握;(5)在這次設(shè)計(jì)中,充分認(rèn)識(shí)到與人協(xié)作和與人交流是非常重要的,對(duì)電路各個(gè)板塊有些不熟悉,但在遇到問題相互討論交流才使問題能得以解決。由于時(shí)間、條件和個(gè)人水平及經(jīng)驗(yàn)所限,本次設(shè)計(jì)還有許多不足,需要改進(jìn)。下位機(jī)設(shè)定的目標(biāo)溫度不能發(fā)送給上位機(jī)顯示,這在遠(yuǎn)程測(cè)控系統(tǒng)中是一個(gè)很大的不足,另外,上位機(jī)VB程序的延時(shí)與下位機(jī)接收之間的問題也有待改善,這些不足希望能在以后的學(xué)習(xí)中改進(jìn)。 在老師的辛勤指導(dǎo)下,在實(shí)驗(yàn)室同學(xué)的友好幫助下,我積極參與討論和思考,完成本此畢業(yè)設(shè)計(jì),此次設(shè)計(jì),使我受益匪淺。我很珍惜有這次畢業(yè)設(shè)計(jì)的機(jī)會(huì),感謝電氣信息學(xué)院各位老師的幫助。在本次設(shè)計(jì)中,我要特別感謝陳海川老師及研究生師兄對(duì)我的指導(dǎo),也要感謝同學(xué)們對(duì)我的幫助,有了你們的幫助,我才得以順利完成設(shè)計(jì)。參考文獻(xiàn)[1] 張毅剛、[M].北京:高等教育出版社,2003[2] 張海兵、[M]. 北京:人民郵電出版社,2005[3] 李春葆、[M].北京:清華大學(xué)出版社,2007[4] 楊將新、(第三版)[M]. 北京:電子工業(yè)出版社,2006[5] 魯捷、 2004 電路設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2006[6] 康光華、(第四版)[M].[7] 謝自美 (第二版)[M].華中理工大學(xué)出版社,2005[8] 康光華、(第五版)[M]. 北京:高等教育出版社,20
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1