版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
電熱水器自動(dòng)控溫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)———下位機(jī)電熱水器自動(dòng)控溫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)———下位機(jī)1主要內(nèi)容模塊總述下位機(jī)模塊示意圖元件介紹和參數(shù)的設(shè)置各部分電路設(shè)計(jì)程序參考文獻(xiàn)主要內(nèi)容模塊總述2模塊總述數(shù)據(jù)采集是此系統(tǒng)中較為重要得一個(gè)部分。它是單片機(jī)應(yīng)用系統(tǒng)中最為普遍的應(yīng)用需求。本實(shí)訓(xùn)采集的對(duì)象為溫度,因?yàn)闇囟茸鳛橐粋€(gè)非電量的模擬量,我們需要經(jīng)一個(gè)溫度傳感器將其轉(zhuǎn)化為一個(gè)電量值。一般情況下,采集到的數(shù)據(jù)會(huì)含有一定的噪聲且電壓值較小,不適合A/D轉(zhuǎn)換器的工作,為此在此之前需要經(jīng)過濾波處理和運(yùn)算放大器的放大。模塊總述數(shù)據(jù)采集是此系統(tǒng)中較為重要得一個(gè)部分。它是單片機(jī)應(yīng)用3因?yàn)閱纹瑱C(jī)的處理對(duì)象為數(shù)字量,需通過A/D轉(zhuǎn)換器將模擬量轉(zhuǎn)換為數(shù)字量。A/D轉(zhuǎn)換器得的主要指標(biāo)是分辨率和轉(zhuǎn)換時(shí)間。它的轉(zhuǎn)換位數(shù)與其分辨率有直接的關(guān)系。8位轉(zhuǎn)換器可以對(duì)滿量程電壓的1/256進(jìn)行分辨。因?yàn)閱纹瑱C(jī)的處理對(duì)象為數(shù)字量,需通過A/D轉(zhuǎn)換器將模擬量轉(zhuǎn)換4顯示電路一般為液晶顯示或數(shù)碼管顯示。本實(shí)訓(xùn)中,它既可以顯示外界采集到的溫度,也可以顯示用戶按鍵設(shè)置的溫度檔位,還可以顯示由通信模塊傳過來的檔位值。顯示電路一般為液晶顯示或數(shù)碼管顯示。本實(shí)訓(xùn)中,它既可以顯示外5按鍵控制主要是為滿足用戶由按鍵來設(shè)定檔位的需求。作為補(bǔ)充,本實(shí)訓(xùn)中還增加了用語音信號(hào)來控制檔位。按鍵有一個(gè)RESET鍵、啟/停鍵等(按需設(shè)置)、檔位選擇鍵(1-4)等。按鍵的響應(yīng)可以采用中斷方式,單片機(jī)的中斷有兩種方式一種是電平觸發(fā)方式,一種是跳沿觸發(fā)方式。如果采用的跳沿觸發(fā)方式這樣標(biāo)志位的清零就不用外加電路。為消除鍵盤抖動(dòng),采用軟件消抖,即通過一定的延時(shí)來實(shí)現(xiàn)消抖。按鍵控制主要是為滿足用戶由按鍵來設(shè)定檔位的需求。作為補(bǔ)充,本6與通信模塊之間的數(shù)據(jù)傳遞主要涉及到單片機(jī)的串行通信接口編程問題。綜上所述,下位機(jī)包含數(shù)據(jù)采集,按鍵電路,晶振電路,顯示電路。返回與通信模塊之間的數(shù)據(jù)傳遞主要涉及到單片機(jī)的串行通信接口編程問7下位機(jī)模塊示意圖溫度采集基本電路顯示按鍵
單片機(jī)圖1下位機(jī)模塊示意圖下位機(jī)模塊示意圖溫度采集基本電路顯示按鍵單片機(jī)圖8基本電路:(1)復(fù)位:要求具有軟硬件兩種復(fù)位功能。清楚電路中每個(gè)電子器件的作用及取值范圍。實(shí)訓(xùn)中采用上電外部復(fù)位。
RSTRSTVCCVCCGNDGND圖1上電復(fù)位電路圖2上電和外部復(fù)位組合電路基本電路:(1)復(fù)位:要求具有軟硬件兩種復(fù)位功能。清楚電路中9(2)晶振電路:清楚電路中每個(gè)電子器件的作用及取值范圍。18051至內(nèi)部時(shí)鐘電路晶振XTAL1XTAL2圖3內(nèi)部時(shí)鐘電路(2)晶振電路:清楚電路中每個(gè)電子器件的作用及取值范圍。1810(3)電源電路:清楚電路中每個(gè)電子器件的作用。返回(3)電源電路:清楚電路中每個(gè)電子器件的作用。返回11元件選擇、介紹和參數(shù)設(shè)置元件選擇、介紹和參數(shù)設(shè)置12溫度傳感器
選用lm35:lm35是由NationalSemiconductor所生產(chǎn)的溫度感測(cè)器,其輸出電壓與攝氏溫標(biāo)呈線性關(guān)係,轉(zhuǎn)換公式如式(1),0°C時(shí)輸出0V,每升高1°C,輸出電壓增加10mV。溫度傳感器
選用lm35:lm35是由NationalS13實(shí)際應(yīng)用中,濾波是很重要的一步。濾波有軟件濾波和硬件濾波之分。在單片機(jī)系統(tǒng)中常用的濾波算法有限幅濾波法、中值濾波法、算術(shù)平均濾波法、加權(quán)平均濾波法、滑動(dòng)平均濾波等。硬件濾波即通過運(yùn)放、電阻、電容組成電路圖來實(shí)現(xiàn)的。實(shí)際應(yīng)用中,濾波是很重要的一步。濾波有軟件濾波和硬件濾波之分14運(yùn)算放大放
選擇lm358:LM358內(nèi)部包括有兩個(gè)獨(dú)立的、高增益、內(nèi)部頻率補(bǔ)償?shù)碾p運(yùn)算放大器。運(yùn)算放大放
選擇lm358:LM358內(nèi)部包括有兩個(gè)獨(dú)立的、15A/D轉(zhuǎn)化選用0808時(shí)鐘頻率600khz。將引腳A、B、C均接地,選擇IN0作為模擬信號(hào)電壓的輸入端。當(dāng)向A/D轉(zhuǎn)換器發(fā)出啟動(dòng)命令后,即進(jìn)行軟件延時(shí),延時(shí)時(shí)間稍大于進(jìn)行一次A/D轉(zhuǎn)換所需要的時(shí)間,之后打開A/D轉(zhuǎn)換器的輸出緩沖器讀數(shù)即為轉(zhuǎn)換好的數(shù)字量。下圖為adc0808的內(nèi)部邏輯電路圖:A/D轉(zhuǎn)化選用0808時(shí)鐘頻率600khz。將引腳A、B、C16試談電熱水器自動(dòng)控溫系統(tǒng)的設(shè)計(jì)17由上圖可知,ADC0809由一個(gè)8路模擬開關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè)A/D轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。下圖所示為引腳圖,并對(duì)各個(gè)引腳進(jìn)行介紹:由上圖可知,ADC0809由一個(gè)8路模擬開關(guān)、一個(gè)地址鎖存與18試談電熱水器自動(dòng)控溫系統(tǒng)的設(shè)計(jì)19IN0-IN7:8條模擬量輸入通道
ADC0809對(duì)輸入模擬量要求:信號(hào)單極性,電壓范圍是0-5V,若信號(hào)太小,必須進(jìn)行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。
地址輸入和控制線:4條
ALE為地址鎖存允許輸入線,高電平有效。當(dāng)ALE線為高電平時(shí),地址鎖存與譯碼器將A,B,C三條地址線的地址信號(hào)進(jìn)行鎖存,經(jīng)譯碼后被選中的通道的模擬量進(jìn)轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。數(shù)字量輸出及控制線:11條IN0-IN7:8條模擬量輸入通道
ADC0809對(duì)輸入20START(ST)為轉(zhuǎn)換啟動(dòng)信號(hào)。當(dāng)ST上跳沿時(shí),所有內(nèi)部寄存器清零;下跳沿時(shí),開始進(jìn)行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,ST應(yīng)保持低電平。EOC為轉(zhuǎn)換結(jié)束信號(hào)。當(dāng)EOC為高電平時(shí),表明轉(zhuǎn)換結(jié)束;否則,表明正在進(jìn)行A/D轉(zhuǎn)換。OE為輸出允許信號(hào),用于控制三條輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7-D0為數(shù)字量輸出線。CLK為時(shí)鐘輸入信號(hào)線。因ADC0808的內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號(hào)必須由外界提供,使用頻率的上限為640KHZ.在本系統(tǒng)中由于89c51的ALE無效,不能通過四分頻電路獲得相應(yīng)的時(shí)鐘,只能單獨(dú)為其設(shè)置一個(gè)時(shí)鐘發(fā)生器START(ST)為轉(zhuǎn)換啟動(dòng)信號(hào)。當(dāng)ST上跳沿時(shí),所有內(nèi)部寄21單片機(jī)
選擇AT89C51:時(shí)鐘頻率1.0592MHZ。提供16為地址。P0口分時(shí)提供地址的低八位和數(shù)據(jù),P2口提供高八位。P1口外接按鍵。P3口用于中斷和發(fā)出各種控制信號(hào)。P0口發(fā)送段碼,P2口發(fā)送位碼。單片機(jī)
選擇AT89C51:時(shí)鐘頻率1.0592MHZ。提供2251系列硬件組成和部分資源振蕩器CPU總線控制器并行接口口串行接口內(nèi)ROM內(nèi)RAM定時(shí)計(jì)數(shù)器中斷控制器MCS51單片機(jī)的硬件組成51系列硬件組成和部分資源振蕩器CPU總線控制器并行接口串23運(yùn)放電路
+15V+——13C-15V10k85k2Out48LM35ADC0808電壓范圍選擇-15~+15可使暈方的工作狀態(tài)更加穩(wěn)定運(yùn)放電路
+15V+——13C-15V10k85k2Out424濾波介紹
在單片機(jī)進(jìn)行數(shù)據(jù)采集時(shí),會(huì)遇到數(shù)據(jù)的隨機(jī)誤差,隨機(jī)誤差是由隨機(jī)干擾引起的,其特點(diǎn)是在相同條件下測(cè)量同一量時(shí),其大小和符號(hào)會(huì)現(xiàn)無規(guī)則的變化而無法預(yù)測(cè),但多次測(cè)量的結(jié)果符合統(tǒng)計(jì)規(guī)律。為克服隨機(jī)干擾引起的誤差,硬件上可采用濾波技術(shù),軟件上可采用軟件算法實(shí)現(xiàn)數(shù)字濾波。濾波算法往往是系統(tǒng)測(cè)控算法的一個(gè)重要組成部分,實(shí)時(shí)性很強(qiáng)。下面介紹幾種常見的濾波算法:濾波介紹
在單片機(jī)進(jìn)行數(shù)據(jù)采集時(shí),會(huì)遇到數(shù)據(jù)的隨機(jī)誤差,隨機(jī)25限幅濾波算法
該運(yùn)算的過程中將兩次相鄰的采樣相減,求出其增量,然后將增量的絕對(duì)值,與兩次采樣允許的最大差值A(chǔ)進(jìn)行比較。A的大小由被測(cè)對(duì)象的具體情況而定,如果小于或等于允許的最大差值,則本次采樣有效;否則取上次采樣值作為本次數(shù)據(jù)的樣本。限幅濾波算法
該運(yùn)算的過程中將兩次相鄰的采樣相減,求出其增量26#defineA//允許的最大差值chardata;//上一次的數(shù)據(jù)charfilter(){chardatanew;//新數(shù)據(jù)變量datanew=get_data();//獲得新數(shù)據(jù)變量if((datanew-data)>A||(data-datanew>A))returndata;elsereturndatanew;}//A如何確定呢?#defineA//允許的27中值濾波算法
該運(yùn)算的過程是對(duì)某一參數(shù)連續(xù)采樣N次(N一般為奇數(shù)),然后把N次采樣的值按從小到大排列,再取中間值作為本次采樣值,整個(gè)過程實(shí)際上是一個(gè)序列排序的過程。中值濾波算法
該運(yùn)算的過程是對(duì)某一參數(shù)連續(xù)采樣N次(N一般為28#defineN11//定義獲得的數(shù)據(jù)個(gè)數(shù)charfilter(){charvalue_buff[N];//定義存儲(chǔ)數(shù)據(jù)的數(shù)組charcount,i,j,temp;for(count=0;count<N;count++)//獲取數(shù)據(jù){value_buf[count]=get_data();delay();//如果采集數(shù)據(jù)比較慢,那么就需要延時(shí)或中斷}#defineN11//定義獲得的數(shù)據(jù)個(gè)數(shù)29for(j=0;j<N-1;j++)//用冒泡法對(duì)數(shù)據(jù)進(jìn)行排序,當(dāng)然最好用其他排序方法{for(value_buff[i]>value_buff[i+1] {temp=value_buff[i];value_buff[i]=value_buff[i+1];value_buff[i+1]=temp;}}returnvalue_buff[(N-1)/2];}for(j=0;j<N-1;j++)30算術(shù)平均濾波算法
該算法的基本原理很簡單,就是連續(xù)取N次采樣值后進(jìn)行算術(shù)平均。N取值一般為2的整數(shù)冪,即2,4,8,16.算術(shù)平均濾波算法
該算法的基本原理很簡單,就是連續(xù)取N次采樣31charfilter(){intsum=0;for(count=0;count<N;count++){sum+=get_data();delay():}return(char)(sum/N);}charfilter()32加權(quán)平均濾波算法
由于前面所說的“算術(shù)平均濾波算法”存在平滑度和靈敏度之間的矛盾。為了協(xié)調(diào)平滑度和靈敏度之間的關(guān)系,可采用加權(quán)平均濾波。它的原理是對(duì)連續(xù)N次采樣值分別乘上不同的加權(quán)系數(shù)之后再求累加,加權(quán)系數(shù)一般先小后大,以突出后面若干采樣的效果,加強(qiáng)系統(tǒng)對(duì)參數(shù)變化趨勢(shì)的認(rèn)識(shí)。加權(quán)平均濾波算法
由于前面所說的“算術(shù)平均濾波算法”存在平滑33charcodejq[N]={1,2,3,4,5,6,7,8,9,10,11,12};//code數(shù)組為加權(quán)系數(shù)表,存在程序存儲(chǔ)區(qū)charcodesum_jq=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){charcount;charvalue_buff[N];intsum=0;for(count=0;count<N;count++){value_buff[count]=get_data(); delay();}for(count=0;count<N;count++) sum+=value_buff[count]*jq[count];return(char)(sum/sum_jq);}charcodejq[N]={1,2,3,4,5,6,734以上介紹和各種平均濾波算法有一個(gè)共同點(diǎn),即每獲取一個(gè)有效采樣值必須連續(xù)進(jìn)行若干次采樣,當(dāng)采速度慢時(shí),系統(tǒng)的實(shí)時(shí)得不到保證。這里介紹的滑動(dòng)平均濾波算法只采樣一次,將一次采樣值和過去的若干次采樣值一起求平均,得到的有效采樣值即可投入使用。如果取N個(gè)采樣值求平均,存儲(chǔ)區(qū)中必須開辟N個(gè)數(shù)據(jù)的暫存區(qū)。每新采集一個(gè)數(shù)據(jù)便存入暫存區(qū)中,同時(shí)去掉一個(gè)最老數(shù)據(jù),保存這N個(gè)數(shù)據(jù)始終是最新更新的數(shù)據(jù)。采用環(huán)型隊(duì)列結(jié)構(gòu)可以方便地實(shí)現(xiàn)這種數(shù)據(jù)存放方式。以上介紹和各種平均濾波算法有一個(gè)共同點(diǎn),即每獲取一個(gè)有效采樣35charvalue_buff[N];chari=0;charfilter(){charcount;intsum=0;value_buff[i++]=get_data();if(i==N)i=0;for(count=0;count<N;count++) sum=value_buff[count];return(char)(sum/N);}charvalue_buff[N];36顯示器
選擇六位8段陽極數(shù)碼管,此外還用一些晶振、電阻,獨(dú)立按鍵等。顯示格式如下所示:如果當(dāng)前溫度為30.5度,檔位為4,則顯示為:4-30.5顯示器
選擇六位8段陽極數(shù)碼管,此外還用一些晶振、電阻,獨(dú)立37單片機(jī)串行通信
AT89C51的串行接口是一個(gè)可編程的全雙工接口??紤]到下位機(jī)與上位機(jī)之間進(jìn)行溫度和檔位的傳遞,采用全雙工通信??梢酝ㄟ^設(shè)置串行接口的控制寄存器的值來獲得相應(yīng)的工作方式。下面簡要介紹它的發(fā)送數(shù)據(jù)和接受數(shù)據(jù)的過程。單片機(jī)串行通信
AT89C51的串行接口是一個(gè)可編程的全雙38接收數(shù)據(jù)時(shí),SCON的REN置1即可,外界數(shù)據(jù)通過引腳RXD串行輸入,書局的低位首先進(jìn)入移位寄存器,一幀數(shù)據(jù)接受完畢之后在并行存入數(shù)據(jù)緩沖寄存器SBUF中,同時(shí)中斷標(biāo)志位置1,向CPU發(fā)出請(qǐng)求。CPU相應(yīng)中斷后讀SBUF取數(shù)據(jù),且軟件請(qǐng)0,這樣一次串行通信完成。接收數(shù)據(jù)時(shí),SCON的REN置1即可,外界數(shù)據(jù)通過引腳RX39發(fā)送數(shù)據(jù)時(shí),先將數(shù)據(jù)并行寫入發(fā)送數(shù)據(jù)緩沖寄存器SBUF中,之后數(shù)據(jù)有引腳TXD串行發(fā)送出去。當(dāng)發(fā)送結(jié)束之后,緩沖器空,由硬件發(fā)送中斷標(biāo)志,向CPU發(fā)出請(qǐng)求。CPU相應(yīng)中斷后,應(yīng)由軟件清0。返回發(fā)送數(shù)據(jù)時(shí),先將數(shù)據(jù)并行寫入發(fā)送數(shù)據(jù)緩沖寄存器SBUF中,之40各部分電路設(shè)計(jì)各部分電路設(shè)計(jì)41溫度采集電路溫度采集電路42運(yùn)放電路運(yùn)放電路43模數(shù)轉(zhuǎn)換電路模數(shù)轉(zhuǎn)換電路44單片機(jī)電路單片機(jī)電路45顯示電路顯示電路46按鍵電路按鍵電路47復(fù)位電路復(fù)位電路48晶振電路晶振電路49做電路圖的一些經(jīng)驗(yàn)方法總結(jié)利用總線;利用結(jié)點(diǎn)命名法;并列的多個(gè)電阻可使用電阻包;高版本的protues比低版本的可支持更多的仿真模型;可以使用電壓探測(cè)筆對(duì)lm35和放大器的輸出電壓值進(jìn)行測(cè)量,以修正放大倍數(shù)。做電路圖的一些經(jīng)驗(yàn)方法總結(jié)利用總線;50實(shí)現(xiàn)連調(diào)的方法
把keil安裝目錄\c51\bin\的vdm51.dll文件復(fù)制到\proteus\models目錄下;修改keil安裝目錄下tools.ini文件,在c51字段加入“TDRV9=BIN\VDM51.DLL(PROTUES)”并保存。打開protues,在protues的debug菜單中選中“useremotedebugmoitor”;在keil的project菜單中進(jìn)入“optionsfortarget‘工程名’”,在debug選項(xiàng)中選擇“protuesdriver”,單擊‘確定’即可。返回實(shí)現(xiàn)連調(diào)的方法
把keil安裝目錄\c51\bin\的vdm51程序程序52程序流程圖
程序流程圖
53主程序流程圖主程序流程圖開始初始化數(shù)據(jù)指針初始化A/D轉(zhuǎn)化器和8255初始化INT0和T0允許INT0和T0中斷啟動(dòng)A/D轉(zhuǎn)換,調(diào)用A/D子程序等待INT0和T0中斷轉(zhuǎn)化結(jié)束否是調(diào)用中斷子程序主程序流程圖主程序流程圖開始初始化數(shù)據(jù)指針初始化A/D轉(zhuǎn)化器54開始送字形代碼到段碼口輸出位控制信息到位碼口顯示緩沖單元加1,顯示位右移4位顯示完否返回顯示位數(shù)初始化4為5指針指向顯示緩沖單元取顯示緩沖單元的字形代碼顯示程序流程圖開始送字形代碼到段碼口輸出位控制信息到位碼口顯示緩沖單元加155存放轉(zhuǎn)化后的數(shù)據(jù)轉(zhuǎn)化數(shù)字量為溫度值存放溫度值到顯示緩沖區(qū)開始A/D轉(zhuǎn)化的結(jié)果調(diào)用顯示程序顯示溫度返回采集溫度流程圖存放轉(zhuǎn)化后的數(shù)據(jù)轉(zhuǎn)化數(shù)字量為溫度值存放溫度值到顯示緩沖區(qū)開始56按鍵流程圖開始調(diào)用顯示子程序顯示當(dāng)前檔位返回等待檔位按鍵中斷是否按鍵流程圖開始調(diào)用顯示子程序顯示當(dāng)前檔位返回等待檔位按鍵中斷57程序
按鍵中斷程序:voidkey()interrupt2{unsignedchari;for(i=0;i<30;i++);/*消抖*/if(int_1) { return;}if(!key1)level=1;
程序
按鍵中斷程序:58if(!key2)level=2;if(!key3)level=3;if(!key4)level=4;levelflag=1;EX1=1;/*允許INT1中斷*/}注:在書寫中斷子程序時(shí),要注意在主程序的任何位置不能調(diào)用它。if(!key2)level=2;59顯示程序voidshow(){unsignedinti;
for(i=0;i<6;i++) { P2=location[i];/*取位碼*/ P0=ledtable[video_buff[i]];/*送段嗎*/ delay(); }}顯示程序voidshow()60采集數(shù)據(jù)程序unsignedchargettemper()/*adc轉(zhuǎn)換一次*/{ unsignedchardat; EA=0; ALE=1; _nop_(); _nop_(); ALE=0; adcstart=1;_nop_(); _nop_(); adcstart=0;P0=0XFF; while(!EOC);OE=1; 采集數(shù)據(jù)程序unsignedchargettemper61dat=P0;OE=0; if(temper!=dat) { temperflag=1; } EA=1; returndat;}dat=P0;OE=0;62voidfiter() //均值濾波//對(duì)四次采樣進(jìn)行求平均,考慮到實(shí)際中溫度的變化是一個(gè)比較緩慢的過程,//相鄰的幾次采樣變化幅度不大,且為計(jì)算簡便,N取值為4{intsum=0,count;for(count=0;count<N;count++) { temper=gettemper(); if(temperflag) processdata(); sum+=video_buff[2]*100+video_buff[3]*10+video_buff[5];delay(); }sum=sum/N;video_buff[2]=sum/100;video_buff[3]=sum%100/10;video_buff[5]=sum%10;}voidfiter() //均值濾波63與串口的通信程序voidsenddata(){if(!TI) { if(temperflag) { SBUF='t'; while(!TI); SBUF=video_buff[2]+0x30;//發(fā)送temperature while(!TI); SBUF=video_buff[3]+0x30; while(!TI); SBUF='.';與串口的通信程序voidsenddata()64while(!TI); SBUF=video_buff[5]+0x30; while(!TI);
temperflag=0; } if(levelflag) {SBUF='c'; //發(fā)送command標(biāo)識(shí) while(!TI); SBUF=video_buff[0]+0x30; while(!TI); levelflag=0;//按鍵狀態(tài)清除 } }}//一定是軟件清0while(!TI);65串口初始化程序voidinituart(){SCON=0X50;TMOD=0X20;TH1=0XFD;TL1=0XFD;TR1=1;ES=1;}串口初始化程序voidinituart()66延時(shí)子程序voiddelay(){ unsignedchari,j; for(i=0;i<10;i++) { for(j=0;j<90;j++); }}延時(shí)子程序voiddelay()67對(duì)采集到的數(shù)據(jù)處理程序voidprocessdata(){unsignedinttmp; tmp=temper*1.9646; video_buff[0]=level; video_buff[1]=10; video_buff[4]=11; video_buff[2]=tmp/100; tmp=tmp%100; video_buff[3]=tmp/10; tmp=tmp%10; video_buff[5]=tmp;}返回對(duì)采集到的數(shù)據(jù)處理程序voidprocessdata()返68參考文獻(xiàn)參考文獻(xiàn)69《模擬電子技術(shù)基礎(chǔ)》高等教育出版社華成英童詩白《單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)》清華大學(xué)出版社謝維成楊加國《單片機(jī)原理及應(yīng)用-C51編程技術(shù)》西南交通大學(xué)出版社靳桅《例說51單片機(jī)(C語言版)》人民郵電出版社張義和《單片機(jī)原理與應(yīng)用實(shí)例仿真》北京航空航天大學(xué)出版社李泉溪返回《模擬電子技術(shù)基礎(chǔ)》高等教育出版社華成英童詩白返回70謝謝!謝謝!71電熱水器自動(dòng)控溫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)———下位機(jī)電熱水器自動(dòng)控溫系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)———下位機(jī)72主要內(nèi)容模塊總述下位機(jī)模塊示意圖元件介紹和參數(shù)的設(shè)置各部分電路設(shè)計(jì)程序參考文獻(xiàn)主要內(nèi)容模塊總述73模塊總述數(shù)據(jù)采集是此系統(tǒng)中較為重要得一個(gè)部分。它是單片機(jī)應(yīng)用系統(tǒng)中最為普遍的應(yīng)用需求。本實(shí)訓(xùn)采集的對(duì)象為溫度,因?yàn)闇囟茸鳛橐粋€(gè)非電量的模擬量,我們需要經(jīng)一個(gè)溫度傳感器將其轉(zhuǎn)化為一個(gè)電量值。一般情況下,采集到的數(shù)據(jù)會(huì)含有一定的噪聲且電壓值較小,不適合A/D轉(zhuǎn)換器的工作,為此在此之前需要經(jīng)過濾波處理和運(yùn)算放大器的放大。模塊總述數(shù)據(jù)采集是此系統(tǒng)中較為重要得一個(gè)部分。它是單片機(jī)應(yīng)用74因?yàn)閱纹瑱C(jī)的處理對(duì)象為數(shù)字量,需通過A/D轉(zhuǎn)換器將模擬量轉(zhuǎn)換為數(shù)字量。A/D轉(zhuǎn)換器得的主要指標(biāo)是分辨率和轉(zhuǎn)換時(shí)間。它的轉(zhuǎn)換位數(shù)與其分辨率有直接的關(guān)系。8位轉(zhuǎn)換器可以對(duì)滿量程電壓的1/256進(jìn)行分辨。因?yàn)閱纹瑱C(jī)的處理對(duì)象為數(shù)字量,需通過A/D轉(zhuǎn)換器將模擬量轉(zhuǎn)換75顯示電路一般為液晶顯示或數(shù)碼管顯示。本實(shí)訓(xùn)中,它既可以顯示外界采集到的溫度,也可以顯示用戶按鍵設(shè)置的溫度檔位,還可以顯示由通信模塊傳過來的檔位值。顯示電路一般為液晶顯示或數(shù)碼管顯示。本實(shí)訓(xùn)中,它既可以顯示外76按鍵控制主要是為滿足用戶由按鍵來設(shè)定檔位的需求。作為補(bǔ)充,本實(shí)訓(xùn)中還增加了用語音信號(hào)來控制檔位。按鍵有一個(gè)RESET鍵、啟/停鍵等(按需設(shè)置)、檔位選擇鍵(1-4)等。按鍵的響應(yīng)可以采用中斷方式,單片機(jī)的中斷有兩種方式一種是電平觸發(fā)方式,一種是跳沿觸發(fā)方式。如果采用的跳沿觸發(fā)方式這樣標(biāo)志位的清零就不用外加電路。為消除鍵盤抖動(dòng),采用軟件消抖,即通過一定的延時(shí)來實(shí)現(xiàn)消抖。按鍵控制主要是為滿足用戶由按鍵來設(shè)定檔位的需求。作為補(bǔ)充,本77與通信模塊之間的數(shù)據(jù)傳遞主要涉及到單片機(jī)的串行通信接口編程問題。綜上所述,下位機(jī)包含數(shù)據(jù)采集,按鍵電路,晶振電路,顯示電路。返回與通信模塊之間的數(shù)據(jù)傳遞主要涉及到單片機(jī)的串行通信接口編程問78下位機(jī)模塊示意圖溫度采集基本電路顯示按鍵
單片機(jī)圖1下位機(jī)模塊示意圖下位機(jī)模塊示意圖溫度采集基本電路顯示按鍵單片機(jī)圖79基本電路:(1)復(fù)位:要求具有軟硬件兩種復(fù)位功能。清楚電路中每個(gè)電子器件的作用及取值范圍。實(shí)訓(xùn)中采用上電外部復(fù)位。
RSTRSTVCCVCCGNDGND圖1上電復(fù)位電路圖2上電和外部復(fù)位組合電路基本電路:(1)復(fù)位:要求具有軟硬件兩種復(fù)位功能。清楚電路中80(2)晶振電路:清楚電路中每個(gè)電子器件的作用及取值范圍。18051至內(nèi)部時(shí)鐘電路晶振XTAL1XTAL2圖3內(nèi)部時(shí)鐘電路(2)晶振電路:清楚電路中每個(gè)電子器件的作用及取值范圍。1881(3)電源電路:清楚電路中每個(gè)電子器件的作用。返回(3)電源電路:清楚電路中每個(gè)電子器件的作用。返回82元件選擇、介紹和參數(shù)設(shè)置元件選擇、介紹和參數(shù)設(shè)置83溫度傳感器
選用lm35:lm35是由NationalSemiconductor所生產(chǎn)的溫度感測(cè)器,其輸出電壓與攝氏溫標(biāo)呈線性關(guān)係,轉(zhuǎn)換公式如式(1),0°C時(shí)輸出0V,每升高1°C,輸出電壓增加10mV。溫度傳感器
選用lm35:lm35是由NationalS84實(shí)際應(yīng)用中,濾波是很重要的一步。濾波有軟件濾波和硬件濾波之分。在單片機(jī)系統(tǒng)中常用的濾波算法有限幅濾波法、中值濾波法、算術(shù)平均濾波法、加權(quán)平均濾波法、滑動(dòng)平均濾波等。硬件濾波即通過運(yùn)放、電阻、電容組成電路圖來實(shí)現(xiàn)的。實(shí)際應(yīng)用中,濾波是很重要的一步。濾波有軟件濾波和硬件濾波之分85運(yùn)算放大放
選擇lm358:LM358內(nèi)部包括有兩個(gè)獨(dú)立的、高增益、內(nèi)部頻率補(bǔ)償?shù)碾p運(yùn)算放大器。運(yùn)算放大放
選擇lm358:LM358內(nèi)部包括有兩個(gè)獨(dú)立的、86A/D轉(zhuǎn)化選用0808時(shí)鐘頻率600khz。將引腳A、B、C均接地,選擇IN0作為模擬信號(hào)電壓的輸入端。當(dāng)向A/D轉(zhuǎn)換器發(fā)出啟動(dòng)命令后,即進(jìn)行軟件延時(shí),延時(shí)時(shí)間稍大于進(jìn)行一次A/D轉(zhuǎn)換所需要的時(shí)間,之后打開A/D轉(zhuǎn)換器的輸出緩沖器讀數(shù)即為轉(zhuǎn)換好的數(shù)字量。下圖為adc0808的內(nèi)部邏輯電路圖:A/D轉(zhuǎn)化選用0808時(shí)鐘頻率600khz。將引腳A、B、C87試談電熱水器自動(dòng)控溫系統(tǒng)的設(shè)計(jì)88由上圖可知,ADC0809由一個(gè)8路模擬開關(guān)、一個(gè)地址鎖存與譯碼器、一個(gè)A/D轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。下圖所示為引腳圖,并對(duì)各個(gè)引腳進(jìn)行介紹:由上圖可知,ADC0809由一個(gè)8路模擬開關(guān)、一個(gè)地址鎖存與89試談電熱水器自動(dòng)控溫系統(tǒng)的設(shè)計(jì)90IN0-IN7:8條模擬量輸入通道
ADC0809對(duì)輸入模擬量要求:信號(hào)單極性,電壓范圍是0-5V,若信號(hào)太小,必須進(jìn)行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。
地址輸入和控制線:4條
ALE為地址鎖存允許輸入線,高電平有效。當(dāng)ALE線為高電平時(shí),地址鎖存與譯碼器將A,B,C三條地址線的地址信號(hào)進(jìn)行鎖存,經(jīng)譯碼后被選中的通道的模擬量進(jìn)轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。數(shù)字量輸出及控制線:11條IN0-IN7:8條模擬量輸入通道
ADC0809對(duì)輸入91START(ST)為轉(zhuǎn)換啟動(dòng)信號(hào)。當(dāng)ST上跳沿時(shí),所有內(nèi)部寄存器清零;下跳沿時(shí),開始進(jìn)行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,ST應(yīng)保持低電平。EOC為轉(zhuǎn)換結(jié)束信號(hào)。當(dāng)EOC為高電平時(shí),表明轉(zhuǎn)換結(jié)束;否則,表明正在進(jìn)行A/D轉(zhuǎn)換。OE為輸出允許信號(hào),用于控制三條輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7-D0為數(shù)字量輸出線。CLK為時(shí)鐘輸入信號(hào)線。因ADC0808的內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號(hào)必須由外界提供,使用頻率的上限為640KHZ.在本系統(tǒng)中由于89c51的ALE無效,不能通過四分頻電路獲得相應(yīng)的時(shí)鐘,只能單獨(dú)為其設(shè)置一個(gè)時(shí)鐘發(fā)生器START(ST)為轉(zhuǎn)換啟動(dòng)信號(hào)。當(dāng)ST上跳沿時(shí),所有內(nèi)部寄92單片機(jī)
選擇AT89C51:時(shí)鐘頻率1.0592MHZ。提供16為地址。P0口分時(shí)提供地址的低八位和數(shù)據(jù),P2口提供高八位。P1口外接按鍵。P3口用于中斷和發(fā)出各種控制信號(hào)。P0口發(fā)送段碼,P2口發(fā)送位碼。單片機(jī)
選擇AT89C51:時(shí)鐘頻率1.0592MHZ。提供9351系列硬件組成和部分資源振蕩器CPU總線控制器并行接口口串行接口內(nèi)ROM內(nèi)RAM定時(shí)計(jì)數(shù)器中斷控制器MCS51單片機(jī)的硬件組成51系列硬件組成和部分資源振蕩器CPU總線控制器并行接口串94運(yùn)放電路
+15V+——13C-15V10k85k2Out48LM35ADC0808電壓范圍選擇-15~+15可使暈方的工作狀態(tài)更加穩(wěn)定運(yùn)放電路
+15V+——13C-15V10k85k2Out495濾波介紹
在單片機(jī)進(jìn)行數(shù)據(jù)采集時(shí),會(huì)遇到數(shù)據(jù)的隨機(jī)誤差,隨機(jī)誤差是由隨機(jī)干擾引起的,其特點(diǎn)是在相同條件下測(cè)量同一量時(shí),其大小和符號(hào)會(huì)現(xiàn)無規(guī)則的變化而無法預(yù)測(cè),但多次測(cè)量的結(jié)果符合統(tǒng)計(jì)規(guī)律。為克服隨機(jī)干擾引起的誤差,硬件上可采用濾波技術(shù),軟件上可采用軟件算法實(shí)現(xiàn)數(shù)字濾波。濾波算法往往是系統(tǒng)測(cè)控算法的一個(gè)重要組成部分,實(shí)時(shí)性很強(qiáng)。下面介紹幾種常見的濾波算法:濾波介紹
在單片機(jī)進(jìn)行數(shù)據(jù)采集時(shí),會(huì)遇到數(shù)據(jù)的隨機(jī)誤差,隨機(jī)96限幅濾波算法
該運(yùn)算的過程中將兩次相鄰的采樣相減,求出其增量,然后將增量的絕對(duì)值,與兩次采樣允許的最大差值A(chǔ)進(jìn)行比較。A的大小由被測(cè)對(duì)象的具體情況而定,如果小于或等于允許的最大差值,則本次采樣有效;否則取上次采樣值作為本次數(shù)據(jù)的樣本。限幅濾波算法
該運(yùn)算的過程中將兩次相鄰的采樣相減,求出其增量97#defineA//允許的最大差值chardata;//上一次的數(shù)據(jù)charfilter(){chardatanew;//新數(shù)據(jù)變量datanew=get_data();//獲得新數(shù)據(jù)變量if((datanew-data)>A||(data-datanew>A))returndata;elsereturndatanew;}//A如何確定呢?#defineA//允許的98中值濾波算法
該運(yùn)算的過程是對(duì)某一參數(shù)連續(xù)采樣N次(N一般為奇數(shù)),然后把N次采樣的值按從小到大排列,再取中間值作為本次采樣值,整個(gè)過程實(shí)際上是一個(gè)序列排序的過程。中值濾波算法
該運(yùn)算的過程是對(duì)某一參數(shù)連續(xù)采樣N次(N一般為99#defineN11//定義獲得的數(shù)據(jù)個(gè)數(shù)charfilter(){charvalue_buff[N];//定義存儲(chǔ)數(shù)據(jù)的數(shù)組charcount,i,j,temp;for(count=0;count<N;count++)//獲取數(shù)據(jù){value_buf[count]=get_data();delay();//如果采集數(shù)據(jù)比較慢,那么就需要延時(shí)或中斷}#defineN11//定義獲得的數(shù)據(jù)個(gè)數(shù)100for(j=0;j<N-1;j++)//用冒泡法對(duì)數(shù)據(jù)進(jìn)行排序,當(dāng)然最好用其他排序方法{for(value_buff[i]>value_buff[i+1] {temp=value_buff[i];value_buff[i]=value_buff[i+1];value_buff[i+1]=temp;}}returnvalue_buff[(N-1)/2];}for(j=0;j<N-1;j++)101算術(shù)平均濾波算法
該算法的基本原理很簡單,就是連續(xù)取N次采樣值后進(jìn)行算術(shù)平均。N取值一般為2的整數(shù)冪,即2,4,8,16.算術(shù)平均濾波算法
該算法的基本原理很簡單,就是連續(xù)取N次采樣102charfilter(){intsum=0;for(count=0;count<N;count++){sum+=get_data();delay():}return(char)(sum/N);}charfilter()103加權(quán)平均濾波算法
由于前面所說的“算術(shù)平均濾波算法”存在平滑度和靈敏度之間的矛盾。為了協(xié)調(diào)平滑度和靈敏度之間的關(guān)系,可采用加權(quán)平均濾波。它的原理是對(duì)連續(xù)N次采樣值分別乘上不同的加權(quán)系數(shù)之后再求累加,加權(quán)系數(shù)一般先小后大,以突出后面若干采樣的效果,加強(qiáng)系統(tǒng)對(duì)參數(shù)變化趨勢(shì)的認(rèn)識(shí)。加權(quán)平均濾波算法
由于前面所說的“算術(shù)平均濾波算法”存在平滑104charcodejq[N]={1,2,3,4,5,6,7,8,9,10,11,12};//code數(shù)組為加權(quán)系數(shù)表,存在程序存儲(chǔ)區(qū)charcodesum_jq=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){charcount;charvalue_buff[N];intsum=0;for(count=0;count<N;count++){value_buff[count]=get_data(); delay();}for(count=0;count<N;count++) sum+=value_buff[count]*jq[count];return(char)(sum/sum_jq);}charcodejq[N]={1,2,3,4,5,6,7105以上介紹和各種平均濾波算法有一個(gè)共同點(diǎn),即每獲取一個(gè)有效采樣值必須連續(xù)進(jìn)行若干次采樣,當(dāng)采速度慢時(shí),系統(tǒng)的實(shí)時(shí)得不到保證。這里介紹的滑動(dòng)平均濾波算法只采樣一次,將一次采樣值和過去的若干次采樣值一起求平均,得到的有效采樣值即可投入使用。如果取N個(gè)采樣值求平均,存儲(chǔ)區(qū)中必須開辟N個(gè)數(shù)據(jù)的暫存區(qū)。每新采集一個(gè)數(shù)據(jù)便存入暫存區(qū)中,同時(shí)去掉一個(gè)最老數(shù)據(jù),保存這N個(gè)數(shù)據(jù)始終是最新更新的數(shù)據(jù)。采用環(huán)型隊(duì)列結(jié)構(gòu)可以方便地實(shí)現(xiàn)這種數(shù)據(jù)存放方式。以上介紹和各種平均濾波算法有一個(gè)共同點(diǎn),即每獲取一個(gè)有效采樣106charvalue_buff[N];chari=0;charfilter(){charcount;intsum=0;value_buff[i++]=get_data();if(i==N)i=0;for(count=0;count<N;count++) sum=value_buff[count];return(char)(sum/N);}charvalue_buff[N];107顯示器
選擇六位8段陽極數(shù)碼管,此外還用一些晶振、電阻,獨(dú)立按鍵等。顯示格式如下所示:如果當(dāng)前溫度為30.5度,檔位為4,則顯示為:4-30.5顯示器
選擇六位8段陽極數(shù)碼管,此外還用一些晶振、電阻,獨(dú)立108單片機(jī)串行通信
AT89C51的串行接口是一個(gè)可編程的全雙工接口??紤]到下位機(jī)與上位機(jī)之間進(jìn)行溫度和檔位的傳遞,采用全雙工通信??梢酝ㄟ^設(shè)置串行接口的控制寄存器的值來獲得相應(yīng)的工作方式。下面簡要介紹它的發(fā)送數(shù)據(jù)和接受數(shù)據(jù)的過程。單片機(jī)串行通信
AT89C51的串行接口是一個(gè)可編程的全雙109接收數(shù)據(jù)時(shí),SCON的REN置1即可,外界數(shù)據(jù)通過引腳RXD串行輸入,書局的低位首先進(jìn)入移位寄存器,一幀數(shù)據(jù)接受完畢之后在并行存入數(shù)據(jù)緩沖寄存器SBUF中,同時(shí)中斷標(biāo)志位置1,向CPU發(fā)出請(qǐng)求。CPU相應(yīng)中斷后讀SBUF取數(shù)據(jù),且軟件請(qǐng)0,這樣一次串行通信完成。接收數(shù)據(jù)時(shí),SCON的REN置1即可,外界數(shù)據(jù)通過引腳RX110發(fā)送數(shù)據(jù)時(shí),先將數(shù)據(jù)并行寫入發(fā)送數(shù)據(jù)緩沖寄存器SBUF中,之后數(shù)據(jù)有引腳TXD串行發(fā)送出去。當(dāng)發(fā)送結(jié)束之后,緩沖器空,由硬件發(fā)送中斷標(biāo)志,向CPU發(fā)出請(qǐng)求。CPU相應(yīng)中斷后,應(yīng)由軟件清0。返回發(fā)送數(shù)據(jù)時(shí),先將數(shù)據(jù)并行寫入發(fā)送數(shù)據(jù)緩沖寄存器SBUF中,之111各部分電路設(shè)計(jì)各部分電路設(shè)計(jì)112溫度采集電路溫度采集電路113運(yùn)放電路運(yùn)放電路114模數(shù)轉(zhuǎn)換電路模數(shù)轉(zhuǎn)換電路115單片機(jī)電路單片機(jī)電路116顯示電路顯示電路117按鍵電路按鍵電路118復(fù)位電路復(fù)位電路119晶振電路晶振電路120做電路圖的一些經(jīng)驗(yàn)方法總結(jié)利用總線;利用結(jié)點(diǎn)命名法;并列的多個(gè)電阻可使用電阻包;高版本的protues比低版本的可支持更多的仿真模型;可以使用電壓探測(cè)筆對(duì)lm35和放大器的輸出電壓值進(jìn)行測(cè)量,以修正放大倍數(shù)。做電路圖的一些經(jīng)驗(yàn)方法總結(jié)利用總線;121實(shí)現(xiàn)連調(diào)的方法
把keil安裝目錄\c51\bin\的vdm51.dll文件復(fù)制到\proteus\models目錄下;修改keil安裝目錄下tools.ini文件,在c51字段加入“TDRV9=BIN\VDM51.DLL(PROTUES)”并保存。打開protues,在protues的debug菜單中選中“useremotedebugmoitor”;在keil的project菜單中進(jìn)入“optionsfortarget‘工程名’”,在debug選項(xiàng)中選擇“protuesdriver”,單擊‘確定’即可。返回實(shí)現(xiàn)連調(diào)的方法
把keil安裝目錄\c51\bin\的vdm122程序程序123程序流程圖
程序流程圖
124主程序流程圖主程序流程圖開始初始化數(shù)據(jù)指針初始化A/D轉(zhuǎn)化器和8255初始化INT0和T0允許INT0和T0中斷啟動(dòng)A/D轉(zhuǎn)換,調(diào)用A/D子程序等待INT0和T0中斷轉(zhuǎn)化結(jié)束否是調(diào)用中斷子程序主程序流程圖主程序流程圖開始初始化數(shù)據(jù)指針初始化A/D轉(zhuǎn)化器125開始送字形代碼到段碼口輸出位控制信息到位碼口顯示緩沖單元加1,顯示位右移4位顯示完否返回顯示位數(shù)初始化4為5指針指向顯示緩沖單元取顯示緩沖單元的字形代碼顯示程序流程圖開始送字形代碼到段碼口輸出位控制信息到位碼口顯示緩沖單元加1126存放轉(zhuǎn)化后的數(shù)據(jù)轉(zhuǎn)化數(shù)字量為溫度值存放溫度值到顯示緩沖區(qū)開始A/D轉(zhuǎn)化的結(jié)果調(diào)用顯示程序顯示溫度返回采集溫度流程圖存放轉(zhuǎn)化后的數(shù)據(jù)轉(zhuǎn)化數(shù)字量為溫度值存放溫度值到顯示緩沖區(qū)開始127按鍵流程圖開始調(diào)用顯示子程序顯示當(dāng)前檔位返回等待檔位按鍵中斷是否按鍵流程圖開始調(diào)用顯示子程序顯示當(dāng)前檔位返回等待檔位按鍵中斷128程序
按鍵中斷程序:voidkey()interrupt2{unsignedchari;for(i=0;i<30;i++);/*消抖*/if(int_1) { return;}if(!key1)level=1;
程序
按鍵中斷程序:129if(!key2)level=2;if(!key3)level=3;if(!key4)level=4;levelflag=1;EX1=1;/*允許INT1中斷*/}注:在書寫中斷子程序時(shí),要注意在主程序的任何位置不能調(diào)用它。if(!key2)level=2;130顯示程序voidshow(){unsignedinti;
for(i=0;i<6;i++) { P2=location[i];/*取位碼*/ P0=ledtable[video_buff[i]];/*送段嗎*/ delay(); }}顯示程序voidshow()13
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《水基金屬切削液的生物穩(wěn)定性研究》
- 《淺析《誠·詐》劇本創(chuàng)作》
- 《格柵加筋土擋墻拐角部位變形特征及影響因素研究》
- 二零二五國慶節(jié)慶典用花設(shè)計(jì)與現(xiàn)場(chǎng)布置協(xié)議3篇
- 2025版藝術(shù)品交易居間服務(wù)合同3篇
- 早教小班繪本課程設(shè)計(jì)
- 2025年度生態(tài)養(yǎng)殖產(chǎn)業(yè)園區(qū)環(huán)境保護(hù)與可持續(xù)發(fā)展合同3篇
- 2025年度智能交通設(shè)施供銷合同模板2篇
- 網(wǎng)絡(luò)檢查課程設(shè)計(jì)
- 破碎篩分除塵課程設(shè)計(jì)
- 《新編MPA英語閱讀教程教學(xué)參考書》正文(第一-第十五單元)第二稿
- “青藍(lán)工程”師徒結(jié)對(duì)體育青年教師總結(jié)反思
- 設(shè)備維護(hù)檢查修理三級(jí)保養(yǎng)記錄表
- 施工安全風(fēng)險(xiǎn)分析及應(yīng)對(duì)措施表
- 《針灸推拿》題庫
- 2023年上海市初中物理競(jìng)賽復(fù)賽試題銀光杯
- GB/T 20475.2-2006煤中有害元素含量分級(jí)第2部分:氯
- GB 18218-2000重大危險(xiǎn)源辨識(shí)
- 油田視頻監(jiān)控綜合應(yīng)用平臺(tái)解決方案
- 福建省泉州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 酒精性腦病的護(hù)理查房實(shí)用版課件
評(píng)論
0/150
提交評(píng)論