版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 引言</b></p><p> 隨著“信息時(shí)代”的到來(lái),作為獲取信息的手段——傳感器技術(shù)得到了顯著的進(jìn)步,其應(yīng)用領(lǐng)域越來(lái)越廣泛,對(duì)其要求越來(lái)越高,需求越來(lái)越迫切。傳感器技術(shù)已成為衡量一個(gè)國(guó)家科學(xué)技術(shù)發(fā)展水平的重要標(biāo)志之一。因此,了解并掌握傳感器的基本結(jié)構(gòu)、工作原理及特性是非常重要的。</p><p> 為了提高對(duì)傳感器的認(rèn)識(shí)和了解,尤
2、其是對(duì)溫度傳感器的深入研究以及其用法與用途,基于實(shí)用、廣泛和典型的原則而設(shè)計(jì)了本系統(tǒng)。本文利用單片機(jī)結(jié)合傳感器技術(shù)而開(kāi)發(fā)設(shè)計(jì)了紅外抄表系統(tǒng)。文中把傳感器理論與單片機(jī)實(shí)際應(yīng)用有機(jī)結(jié)合,詳細(xì)地講述了利用溫度傳感器DS18B20測(cè)量環(huán)境溫度,以及實(shí)現(xiàn)紅外數(shù)據(jù)傳輸?shù)倪^(guò)程。</p><p> 本設(shè)計(jì)應(yīng)用性比較強(qiáng),只要對(duì)電路部分稍加改裝,就可以實(shí)現(xiàn)抄讀其它的數(shù)字儀表設(shè)備:如數(shù)字電度表,數(shù)字水表等等。設(shè)計(jì)后的系統(tǒng)具有操作方便
3、,控制靈活等優(yōu)點(diǎn)。</p><p> 其主要功能和指標(biāo)如下:</p><p> 1、利用溫度傳感器(DS18B20)測(cè)量某一點(diǎn)環(huán)境溫度;</p><p> 2、測(cè)量范圍為-55℃~+99℃,精度為±0.5℃; </p><p> 3、用4位數(shù)碼管進(jìn)行顯示實(shí)際溫度值顯示;</p><p> 4、手持端
4、通過(guò)紅外發(fā)射管發(fā)射測(cè)溫信號(hào);</p><p> 5、測(cè)溫端通過(guò)紅外發(fā)射管發(fā)送到手持端; </p><p> 6、手持端可以隨時(shí)查看指定待測(cè)物體的溫度值。</p><p> 設(shè)計(jì)的核心是環(huán)境溫度的測(cè)量以及紅外數(shù)據(jù)的發(fā)射和接收,和溫度的顯示。文中對(duì)每個(gè)部分功能、實(shí)現(xiàn)過(guò)程作了詳細(xì)地介紹。</p><p><b> 1 方案選擇&
5、lt;/b></p><p> 該系統(tǒng)主要由溫度測(cè)量和數(shù)據(jù)采集和發(fā)送三部分組成。下面列舉兩種實(shí)現(xiàn)方案:</p><p> 方案一:溫度檢測(cè)可以使用低溫?zé)崤蓟蜚K電阻,數(shù)據(jù)采集部分則使用帶有A/D通道的單片機(jī)??紤]到一般的A/D輸入通道都只能接收大信號(hào),所以還要設(shè)計(jì)相應(yīng)的放大電路。而模擬信號(hào)在長(zhǎng)距離傳輸過(guò)程中,抗電磁干擾是令人傷腦筋的問(wèn)題。此方案的軟件簡(jiǎn)單,但硬件復(fù)雜,且檢測(cè)點(diǎn)數(shù)追加
6、時(shí),各敏感元件參數(shù)的不一致性,都將會(huì)導(dǎo)致誤差的產(chǎn)生,難以完全清除,而且成本會(huì)有較大增長(zhǎng)幅度。</p><p> 方案二:使用單片機(jī)和數(shù)字式單總線溫度傳感器構(gòu)成。其具有下列特點(diǎn):①具有高的測(cè)量精度和分辨率,測(cè)量范圍大;②抗干擾能力強(qiáng),穩(wěn)定性好;③信號(hào)易于處理、傳送和自動(dòng)控制;④便于動(dòng)態(tài)及多路測(cè)量,讀數(shù)直觀;⑤安裝方便,維護(hù)簡(jiǎn)單,工作可靠性高。單總線溫度傳感器可以采用DALLAS公司生產(chǎn)的DS18B20系列,這類溫
7、度傳感器直接輸出數(shù)字信號(hào),且多路溫度傳感器可以掛在1條總線上,共同占用單片機(jī)的1個(gè)I/O口即可實(shí)現(xiàn)。在提升單片機(jī)I/O口驅(qū)動(dòng)能力的前提下,理論上可以任意擴(kuò)充檢測(cè)的溫度點(diǎn)數(shù)。</p><p> 比較兩個(gè)方案后可以發(fā)現(xiàn),方案二更適合于用作本系統(tǒng)的實(shí)施方案。盡管方案二不需要A/D,但考慮到系統(tǒng)擴(kuò)充等因素,單片機(jī)可以選用AT98C2051。</p><p><b> 2 硬件部分&
8、lt;/b></p><p> 采用方案二的硬件設(shè)計(jì)比較簡(jiǎn)單,系統(tǒng)構(gòu)成如圖1所示。 </p><p> 圖 1溫度測(cè)試系統(tǒng)和手持接收系統(tǒng)組成框圖</p><p> 2.1 DS18B20介紹</p><p> DALLAS公司的DS18B20單總線數(shù)字傳感器工作溫度范圍是-55℃~125℃,在-30℃~85℃范圍內(nèi)溫度測(cè)量精度為
9、±0.5℃;具有溫度報(bào)警功能,用戶可設(shè)置最高和最低報(bào)警溫度,且設(shè)置值掉電不丟失;采用DALLAS公司特有的單總線通信協(xié)議,只用一條數(shù)據(jù)線就可實(shí)現(xiàn)與MCU的通信;此外,DS18B20能夠直接從數(shù)據(jù)線獲得電源,無(wú)需外部電池供電。</p><p> DS18B20通過(guò)使用在板(on_board)溫度測(cè)量專利技術(shù)來(lái)測(cè)量溫度。其溫度測(cè)量電路是通過(guò)計(jì)數(shù)時(shí)鐘周期來(lái)實(shí)現(xiàn)的,DS18B20有兩個(gè)溫度系數(shù)振蕩器,溫度測(cè)量
10、時(shí)對(duì)高溫度系數(shù)振蕩器產(chǎn)生的門開(kāi)同期內(nèi),低溫度系數(shù)振蕩器經(jīng)歷的時(shí)鐘周期的個(gè)數(shù)進(jìn)行計(jì)數(shù)而得到的。</p><p> DS18B20數(shù)字溫度傳感器提供9位(二進(jìn)制)溫度讀數(shù),指示器件溫度,所以無(wú)需A/D轉(zhuǎn)換。信息經(jīng)過(guò)單線接口送入DS18B20 或從DS18B20送出,因此從主機(jī)CPU到DS18B20僅需一條線連接,而且DS18B20的電源可由數(shù)據(jù)線本身提供(相對(duì)于外部電源,轉(zhuǎn)換時(shí)間要延長(zhǎng))。因此每一個(gè)DS18B20在
11、出廠時(shí)已經(jīng)給定了唯一的序號(hào)因此從理論上說(shuō)任意多個(gè)DS18B20可以連接在一條單線總線上。DS18B20的測(cè)量范圍從-55℃到+125℃,增量為0.5℃(最高精度可達(dá)0.1℃),轉(zhuǎn)換速度小于1s(典型值)。</p><p> 而在本遙測(cè)系統(tǒng)中采用外部電源供電溫度測(cè)量工作方式,其中電阻R是上拉電阻,使得單線總線的空閑狀態(tài)是高電平。它與CPU(AT89C51)的接法如圖2。
12、 </p><p><b> 5 V</b></p><p><b> R</b></p><p><b> 地</b></p><p> 圖 2 DS18B20與單片機(jī)的連接</p><p> 由于DS18B20只有一根數(shù)據(jù)線。因此它和
13、主機(jī)(單片機(jī))通信是需要串行通信,而AT89C51有兩個(gè)串行端口,所以可以不用軟件來(lái)模擬實(shí)現(xiàn)。經(jīng)過(guò)單線接口訪問(wèn)DC18B20必須遵循如下協(xié)議:初始化、ROM操作命令、存儲(chǔ)器操作命令和控制操作。要使傳感器工作,一切處理均從序列開(kāi)始。</p><p> 主機(jī)發(fā)送(Tx)--復(fù)位脈沖(最短為480μs的低電平信號(hào))。接著主機(jī)便釋放此線并進(jìn)入接收方式(Rx)??偩€經(jīng)過(guò)4.7K的上拉電阻被拉至高電平狀態(tài)。在檢測(cè)到I/O引
14、腳上的上升沿之后,DS18B20等待15-60μs,并且接著發(fā)送脈沖(60-240μs的低電平信號(hào))。然后以存在復(fù)位脈沖表示DS18B20已經(jīng)準(zhǔn)備好發(fā)送或接收,然后給出正確的ROM命令和存儲(chǔ)操作命令的數(shù)據(jù)。DS18B20通過(guò)使用時(shí)間片來(lái)讀出和寫(xiě)入數(shù)據(jù),時(shí)間片用于處理數(shù)據(jù)位和進(jìn)行何種指定操作的命令。它有寫(xiě)時(shí)間片和讀時(shí)間片兩種。</p><p> 寫(xiě)時(shí)間片:當(dāng)主機(jī)把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時(shí),產(chǎn)生寫(xiě)時(shí)間片。
15、有兩種類型的寫(xiě)時(shí)間片:寫(xiě)1時(shí)間片和寫(xiě)0時(shí)間片。所有時(shí)間片必須有60微秒的持續(xù)期,在各寫(xiě)周期之間必須有最短為1微秒的恢復(fù)時(shí)間。</p><p> 讀時(shí)間片:從DS18B20讀數(shù)據(jù)時(shí),使用讀時(shí)間片。當(dāng)主機(jī)把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時(shí)產(chǎn)生讀時(shí)間片。數(shù)據(jù)線在邏輯低電平必須保持至少1微秒;來(lái)自DS18B20的輸出數(shù)據(jù)在時(shí)間下降沿之后的15微秒內(nèi)有效。為了讀出從讀時(shí)間片開(kāi)始算起15微秒的狀態(tài),主機(jī)必須停止把引腳驅(qū)動(dòng)
16、拉至低電平。在時(shí)間片結(jié)束時(shí),I/O引腳經(jīng)過(guò)外部的上拉電阻拉回高電平,所有讀時(shí)間片的最短持續(xù)期為60微秒,包括兩個(gè)讀周期間至少1μs的恢復(fù)時(shí)間。</p><p> 一旦主機(jī)檢測(cè)到DS18B20的存在,它便可以發(fā)送一個(gè)器件ROM操作命令。所有ROM操作命令均為8位長(zhǎng)。</p><p> DS18B20的引腳定義和封裝形式如圖3所示。DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接電
17、源。</p><p> DS18B20的光刻ROM中存有64位序列號(hào),它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開(kāi)始8位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20擁有惟一的地址序列碼,以確保在一根總線上掛接多個(gè)DS18B20。</p>
18、<p> 所有的串行通訊,讀寫(xiě)每一個(gè)bit位數(shù)據(jù)都必須嚴(yán)格遵守器件的時(shí)序邏輯來(lái)編程,同時(shí)還必須遵守總線命令序列,對(duì)單總線的DS18B20芯片來(lái)說(shuō),訪問(wèn)每個(gè)器件都要遵守下列命令序列:首先是初始化;其次執(zhí)行ROM命令;最后就是執(zhí)行功能命令(ROM命令和功能命令后面以表格形式給出)。 </p><p> 如果出現(xiàn)序列混亂,則單總線器件不會(huì)響應(yīng)主機(jī)。當(dāng)然,搜索ROM命令和
19、報(bào)警搜索命令,在執(zhí)行兩者中任何一條命令之后,要返回初始化。 </p><p> 基于單總線上的所有傳輸過(guò)程都是以初始化開(kāi)始的,初始化過(guò)程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī),且準(zhǔn)備就緒。</p><p> 在主機(jī)檢測(cè)到應(yīng)答脈沖后,就可以發(fā)出ROM命令。這些命令與各個(gè)從機(jī)設(shè)備的唯一64 位ROM代碼相關(guān)。在主機(jī)
20、發(fā)出ROM命令,以訪問(wèn)某個(gè)指定的DS18B20,接著就可以發(fā)出DS18B20支持的某個(gè)功能命令。這些命令允許主機(jī)寫(xiě)入或讀出DS18B20便箋式RAM、啟動(dòng)溫度轉(zhuǎn)換。軟件實(shí)現(xiàn)DS18B20的工作嚴(yán)格遵守單總線協(xié)議:</p><p> (1)主機(jī)首先發(fā)出一個(gè)復(fù)位脈沖,信號(hào)線上的DS18B20器件被復(fù)位。</p><p> (2)接著主機(jī)發(fā)送ROM命令,程序開(kāi)始讀取單個(gè)在線的芯片ROM編碼并
21、保存在單片機(jī)數(shù)據(jù)存儲(chǔ)器中,把用到的DS18B20的ROM編碼離線讀出,最后用一個(gè)二維數(shù)組保存ROM編碼,數(shù)據(jù)保存在X25043中。</p><p> (3)系統(tǒng)工作時(shí),把讀取了編碼的DS18B20掛在總線上。發(fā)溫度轉(zhuǎn)換命令,再總線復(fù)位。</p><p> (4)然后就可以從剛才的二維數(shù)組匹配在線的溫度傳感器,隨后發(fā)溫度讀取命令就可以獲得對(duì)應(yīng)的溫度值了。</p><p
22、> 在主機(jī)初始化過(guò)程,主機(jī)通過(guò)拉低單總線至少480us,來(lái)產(chǎn)生復(fù)位脈沖。接著,主機(jī)釋放總線,并進(jìn)入接收模式。當(dāng)總線被釋放后,上拉電阻將單總線拉高。在單總線器件檢測(cè)到上升沿后,延時(shí)15~60us,接著通過(guò)拉低總線60-240us,以產(chǎn)生應(yīng)答脈沖。</p><p> 寫(xiě)時(shí)序均起始于主機(jī)拉低總線,產(chǎn)生寫(xiě)1時(shí)序的方式:主機(jī)在拉低總線后,接著必須在15us之內(nèi)釋放總線。產(chǎn)生寫(xiě)0時(shí)序的方式:在主機(jī)拉低總線后,只需在
23、整個(gè)時(shí)序期間保持低電平即可(至少60us)。</p><p> 在寫(xiě)字節(jié)程序中的寫(xiě)一個(gè)bit位的時(shí)候,沒(méi)有按照通常的分別寫(xiě)0時(shí)序和寫(xiě)1時(shí)序,而是把兩者結(jié)合起來(lái),當(dāng)主機(jī)拉低總線后在15us之內(nèi)將要寫(xiě)的位c給DO:如果c是高電平滿足15us內(nèi)釋放總線的要求,如果c是低電平,則DO=c這條語(yǔ)句仍然是把總線拉在低電平,最后都通過(guò)延時(shí)58us完成一個(gè)寫(xiě)時(shí)序(寫(xiě)時(shí)序0或?qū)憰r(shí)序1)過(guò)程。</p><p&
24、gt; 每個(gè)讀時(shí)隙都由主機(jī)發(fā)起,至少拉低總線1us,在主機(jī)發(fā)起讀時(shí)序之后,單總線器件才開(kāi)始在總線上發(fā)送0或1。所有讀時(shí)序至少需要60us。</p><p> 單片機(jī)通過(guò)命令實(shí)現(xiàn)對(duì)DS18B20的控制,其支持的主要命令如表1所示。</p><p> 表 1 DS18B20主要命令及其功能說(shuō)明</p><p> 2.2 單片機(jī)的選擇</p>&l
25、t;p> (1)AT89C51的特性及引腳說(shuō)明</p><p><b> ①主要特性</b></p><p> ·與MCS-51 兼容 </p><p> ·4K字節(jié)可編程閃爍存儲(chǔ)器 </p><p> ·壽命:1000寫(xiě)/擦循環(huán)</p><p>
26、·數(shù)據(jù)保留時(shí)間:10年</p><p> ·全靜態(tài)工作:0Hz-24Hz</p><p> ·三級(jí)程序存儲(chǔ)器鎖定</p><p> ·128*8位內(nèi)部RAM</p><p> ·32可編程I/O線</p><p> ·兩個(gè)16位定時(shí)器/計(jì)數(shù)器<
27、/p><p><b> ·5個(gè)中斷源 </b></p><p> ·可編程串行通道 </p><p> ·低功耗的閑置和掉電模式</p><p> ·片內(nèi)振蕩器和時(shí)鐘電路 </p><p> AT89C51的引腳功能,圖4所示:</
28、p><p> 圖 4 AT89C51的引腳功能圖</p><p><b> ?、诠苣_說(shuō)明</b></p><p> —VCC:供電電壓。</p><p><b> —GND:接地。</b></p><p> —P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每個(gè)管腳可吸收8
29、TTL門電流。當(dāng)P1口的管腳寫(xiě)“1”時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時(shí),P0口作為原碼輸入口,當(dāng)FLASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部電位必須被拉高。</p><p> —P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫(xiě)入“1”后,電位被內(nèi)部上拉為高,可用作輸入,P1口被外
30、部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 </p><p> —P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時(shí),P2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)
31、器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉的優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p> —P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入時(shí),由于外部下拉為低電平,P3口
32、將輸出電流(ILL),也是由于上拉的緣故。</p><p> P3口也可作為AT89C51的一些特殊功能口,如下所示:</p><p> P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(串行輸出口)</p><p> P3.2 (外部中斷0)</p><p> P3.3 (外部中斷1)&l
33、t;/p><p> P3.4 T0(記時(shí)器0外部輸入)</p><p> P3.5 T1(記時(shí)器1外部輸入)</p><p> P3.6 (外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)</p><p> P3.7 (外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><
34、;p> —RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p> —:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖
35、。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令時(shí)ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。</p><p> —:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取址期間,每個(gè)機(jī)器周期兩次有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的信號(hào)將不出現(xiàn)。</p><p> —:當(dāng)保持低電平時(shí),訪問(wèn)外部R
36、OM;注意加密方式1時(shí),將內(nèi)部鎖定為RESET;當(dāng)端保持高電平時(shí),訪問(wèn)內(nèi)部ROM。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> —XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p> —XTAL2:來(lái)自反向振蕩器的輸出。</p><p> ?、蹆?nèi)部結(jié)構(gòu)框圖如圖5所示。</p><p
37、> 圖5 AT89C51的內(nèi)部結(jié)構(gòu)框圖</p><p> (2)AT89C51的基本操作</p><p> 如圖6所示,在X1和X2之間接一只石英振蕩晶體構(gòu)成了單片機(jī)的時(shí)鐘電路,它還有另一種接法,是把外部振蕩器的信號(hào)直接連接到XTAL1端,XTAL2端懸空不用。</p><p> AT89C51復(fù)位引腳RST/VP通過(guò)片內(nèi)一個(gè)施密特觸發(fā)器(抑制噪聲作
38、用)與片內(nèi)復(fù)位電路相連,施密特觸發(fā)器的輸出在每一個(gè)機(jī)器周期由復(fù)位電路采樣一次。當(dāng)振蕩電路工作,并且在RST引腳上加一個(gè)至少保持2個(gè)機(jī)器周期的高電平時(shí),就能使AT89C51完成一次復(fù)位。</p><p> 復(fù)位不影響RAM的內(nèi)容。</p><p> 復(fù)位后,PC指向0000H單元,使單片機(jī)從起始地址0000H單元開(kāi)始重新執(zhí)行程序。所以,當(dāng)單片機(jī)運(yùn)行出錯(cuò)或進(jìn)入死循環(huán)時(shí),可按復(fù)位鍵重新啟動(dòng)。
39、</p><p> MCS-51單片機(jī)通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種復(fù)位方式。上電復(fù)位利用電容器充電來(lái)實(shí)現(xiàn)。按鈕復(fù)位又分為按鈕電平復(fù)位和按鈕脈沖復(fù)位。前者將復(fù)位端通過(guò)電阻與Vcc相接;后者利用RC微分電路產(chǎn)生正脈沖來(lái)達(dá)到復(fù)位目的。復(fù)位電路參數(shù)的選擇應(yīng)能保證復(fù)位高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。本系統(tǒng)采用的是按鍵脈沖復(fù)位,具體電路和原理將在下面的章節(jié)介紹。</p><p> 圖 6
40、AT89C51基本操作電路</p><p><b> 振蕩器特性:</b></p><p> XTAL1、XTAL2為片內(nèi)振蕩器的反相放大器的輸入和輸出端??刹捎檬⒕w或陶瓷振蕩器組成時(shí)鐘振蕩器,如需從外部輸入時(shí)鐘AT89C51,時(shí)鐘信號(hào)從XTAL1輸入,XTAL2應(yīng)懸空。由于輸入到內(nèi)部電路是經(jīng)過(guò)一個(gè)2分頻觸發(fā)器,所以輸入的外部時(shí)鐘信號(hào)無(wú)需特殊要求,但它必須符合
41、電平的最大和最小值及時(shí)序規(guī)范。</p><p> 2.3 其它元器件的選擇</p><p> 除了測(cè)溫芯片DS18B20以及單片機(jī)AT89C51以外,在電源輸入部分還選用了L7805CV穩(wěn)壓芯片和濾波電容,以及用于紅外部分的4011四與非門邏輯芯片,當(dāng)然還有紅外發(fā)射和接收管,這里接收管采用TO-92三腳封裝的一體化接收頭,顯示不分采用了12PIN的數(shù)碼管LDS-5461AH,總共可以顯
42、示四位數(shù)據(jù)和小數(shù)點(diǎn),其位選部分使用了NPN三極管來(lái)進(jìn)行位掃描。具體功能及細(xì)節(jié)詳見(jiàn)電路原理部分。</p><p><b> 2.4 電路設(shè)計(jì)</b></p><p> 由于是基于單片機(jī)實(shí)現(xiàn),硬件電路就相對(duì)簡(jiǎn)單很多,只需要設(shè)計(jì)一下電源穩(wěn)壓電路、鍵盤電路、顯示電路、測(cè)溫電路、紅外發(fā)射和接收電路以及它們與單片機(jī)的連接即可。</p><p> (1
43、)單片機(jī)工作部分</p><p> 由圖6已知AT89C51的基本操作電路。但其中的一些參數(shù)還得依據(jù)具體要求來(lái)設(shè)計(jì)。具體接幾兆晶體是基于機(jī)器周期考慮。一個(gè)機(jī)器周期由6個(gè)狀態(tài)(S1-S6)組成,每個(gè)狀態(tài)又持續(xù)兩個(gè)振蕩周期(分為P1和P2)。這樣,一個(gè)機(jī)器周期由12個(gè)振蕩周期組成,由S1P1(狀態(tài)1節(jié)拍1)到S6P2(狀態(tài)6節(jié)拍2)。若是采用12MHz的晶體振蕩器,則每個(gè)周期恰好為1us,如此對(duì)于編程而言相對(duì)容易些
44、。因而選擇12MHz的晶體振蕩器。</p><p> 此外在兩引腳之間加入一個(gè)20pF的小電容是為了使系統(tǒng)更穩(wěn)定,避免雜音干擾而關(guān)機(jī)。</p><p><b> (2)電源部分</b></p><p> 如圖7所示,電源接入采用5V的直流電對(duì)整個(gè)系統(tǒng)供電,使用了L7805CV芯片來(lái)對(duì)輸入電壓進(jìn)行穩(wěn)壓,在芯片旁邊設(shè)計(jì)了三個(gè)電容,它們的目的是
45、慮除外界對(duì)電路的干擾,使電路得到一個(gè)穩(wěn)定線性的直流電壓。為了確認(rèn)電路進(jìn)入工作狀態(tài),還在設(shè)計(jì)時(shí)加入了一個(gè)發(fā)光二極管,用于顯示電源是否正常工作,如果電路處于接電狀態(tài),二極管就會(huì)導(dǎo)通而發(fā)光。</p><p> 圖 7 電源接入部分</p><p> (3)顯示部分的設(shè)計(jì)</p><p> 由LED組成的7段發(fā)光管顯示器是不太復(fù)雜的單片機(jī)應(yīng)用系統(tǒng)常用外部設(shè)備之一,在這
46、里我們就選用一個(gè)4數(shù)碼管一體化來(lái)顯示溫度值,當(dāng)測(cè)得的溫度是大于零時(shí)(正溫度)顯示兩位整數(shù)和兩位小數(shù),當(dāng)溫度是小于零時(shí)(零下)第一位自動(dòng)顯示“-”號(hào),后三位顯示兩位整數(shù)和一位小數(shù)。</p><p> ?、?段發(fā)光管顯示器由7段發(fā)光線段組成,并按“日”字形排列,每一段都是一個(gè)發(fā)光二極管,如圖8所示。圖中將7個(gè)LED的陰極連在一起,稱之為共陰極接法。反之為共陽(yáng)極接法。</p><p> ?、谌绻?/p>
47、將公共陰極接地,而在a~g各段的陽(yáng)極加上不同的電壓,就會(huì)使各段的發(fā)光情況不同,形成不同的發(fā)光字符。加在7段陽(yáng)極上的電壓可以用數(shù)字量表示,如果某一段的陽(yáng)極為數(shù)字量1,則這個(gè)段就發(fā)光;如為0,則不發(fā)光。數(shù)字量與段的對(duì)應(yīng)關(guān)系如表2所示。</p><p> 表2 七段LED字形碼</p><p> 圖 8 七段結(jié)構(gòu)及外形圖 </p><p> 在這次電子日歷時(shí)鐘的
48、設(shè)計(jì)中使用了四個(gè)7段LED顯示器,而多位顯示器連用有兩種方法。</p><p> 其一,每一位都用各自的8位輸出口控制,在顯示某字符時(shí),相應(yīng)的段恒定發(fā)光或不發(fā)光。這種顯示方法屬于靜態(tài)顯示。顯然,靜態(tài)顯示需占用較多的I/O口線。</p><p> 其二,是動(dòng)態(tài)顯示。即將多個(gè)7段LED的段選端復(fù)接在一起,只用一個(gè)8位輸出口控制段選,段選碼同時(shí)加到各個(gè)7段LED顯示器上,通過(guò)控制各個(gè)顯示器公
49、共陽(yáng)極輪流接高電平的辦法,逐一輪流地啟動(dòng)各個(gè)LED。在這種方法中,只要恰當(dāng)?shù)剡x擇點(diǎn)亮?xí)r間和間隔時(shí)間,就會(huì)給人以這樣一種假相:似乎各位LED是“同時(shí)”顯示的。動(dòng)態(tài)顯示法是目前各種單片機(jī)采用的流行方法。其優(yōu)點(diǎn)是硬件簡(jiǎn)單,“動(dòng)態(tài)”由軟件實(shí)現(xiàn)。因而我選用動(dòng)態(tài)顯示的方法。</p><p> (4)LED驅(qū)動(dòng)電路的設(shè)計(jì)</p><p> LED是電流控制的顯示器件,若想使LED發(fā)光則必須保證有足夠
50、大的電流流過(guò)LED的各段。流過(guò)LED的電流大時(shí),LED發(fā)光亮度高;流過(guò)LED的電流小時(shí),LED發(fā)光亮度就低,為了使LED 能夠長(zhǎng)期可靠地工作應(yīng)使流過(guò)LED的電流為其額定電流。為L(zhǎng)ED顯示器提供電流的電路稱為L(zhǎng)ED的驅(qū)動(dòng)電路。由于顯示部分選擇了動(dòng)態(tài)顯示,因此驅(qū)動(dòng)電路也選擇動(dòng)態(tài)驅(qū)動(dòng)。</p><p> 動(dòng)態(tài)顯示電路的驅(qū)動(dòng)電路分為段驅(qū)動(dòng)電路和位驅(qū)動(dòng)電路兩種。段驅(qū)動(dòng)電路考慮到所有的段電流均流過(guò)位選線,因此位驅(qū)動(dòng)電路的驅(qū)
51、動(dòng)能力應(yīng)為段驅(qū)動(dòng)能力的8倍(最嚴(yán)重情況八段全亮)。</p><p> 圖9為動(dòng)態(tài)顯示時(shí)的驅(qū)動(dòng)電路原理圖,圖中采用了達(dá)林頓復(fù)合驅(qū)動(dòng)電路。</p><p> 驅(qū)動(dòng)電路可采用分立元件電路,也可采用集成驅(qū)動(dòng)電路,此外有些硬件譯碼電路本身包括驅(qū)動(dòng)電路。由于這里采用動(dòng)態(tài)輸出,且單片機(jī)的內(nèi)部結(jié)構(gòu)決定了數(shù)碼管可以直接由單片機(jī)驅(qū)動(dòng)。因此采用分立元件的顯示驅(qū)動(dòng)電路也很簡(jiǎn)單,如圖10所示。 </p&
52、gt;<p><b> 限流電阻</b></p><p><b> 段碼a~g </b></p><p><b> 段驅(qū)動(dòng)電路</b></p><p><b> 位選線</b></p><p><b> 位驅(qū)動(dòng)電路<
53、/b></p><p> 圖 9 動(dòng)態(tài)驅(qū)動(dòng)電路</p><p> 圖 10 位選控制電路</p><p> 具體顯示部分電路如圖11所示。它是4位LED動(dòng)態(tài)顯示接口電路。LED顯示器為共陽(yáng)極,字段線并聯(lián),共用AT89C51的P0口(輸出字段碼),每位LED的公共端由89C51的P2口控制,即由P2口輸出位碼,經(jīng)過(guò)開(kāi)關(guān)三極管控制位選。顯然圖中各顯示位不可
54、能同時(shí)顯示不同的數(shù)字或符號(hào),只有采用動(dòng)態(tài)的方法輪流使每位顯示器顯示,并保留一段時(shí)間,通常保留時(shí)間為10ms。由于LED具有余輝性以及人眼視覺(jué)的惰性,雖然每位顯示器的顯示是分時(shí)段性,但只要適當(dāng)選取掃描頻率,人眼的視覺(jué)就是連續(xù)的。</p><p> 圖 11 四位動(dòng)態(tài)LED顯示器接口電路</p><p> (5)鍵盤電路的設(shè)計(jì)</p><p> 這里設(shè)計(jì)鍵盤的功
55、能是清零,啟動(dòng)和單片機(jī)復(fù)位鍵,所以手持端只需三個(gè)鍵測(cè)溫端只需一個(gè)鍵即可完成。</p><p> 單片機(jī)系統(tǒng)所用的鍵盤有編碼鍵盤和非編碼鍵盤兩種。</p><p> ?、倬幋a鍵盤本身除了按鍵之外,還包括產(chǎn)生鍵碼的硬件電路。只要按下編碼鍵盤的某一個(gè)鍵,它就能產(chǎn)生這個(gè)鍵的代碼,并稱為鍵碼,與此同時(shí)還產(chǎn)生一個(gè)脈沖信號(hào),以通知CPU接收鍵碼,編碼鍵盤的優(yōu)點(diǎn)是使用比較方便,亦不需要編寫(xiě)太復(fù)雜的程序。
56、其缺點(diǎn)是使用的硬件較復(fù)雜。</p><p> ?、诜蔷幋a鍵盤的按鍵是排列成行、列矩陣形式的。按鍵的作用只是簡(jiǎn)單地實(shí)現(xiàn)接點(diǎn)的接通或斷開(kāi),因此必須有一套相應(yīng)的程序與之配合,才能產(chǎn)生相應(yīng)的鍵碼,非編碼鍵盤幾乎不需要附加什么硬件電路。因此為了簡(jiǎn)潔電路,我使用非編碼鍵盤。但使用非編碼鍵盤需要通過(guò)軟件來(lái)解決按鍵的識(shí)別、防抖動(dòng)以及如何產(chǎn)生鍵碼的問(wèn)題。</p><p> 基于鍵數(shù)少的原因我采用獨(dú)立式鍵盤
57、接口與單片機(jī)相連接,因?yàn)樗加玫腎/O口不多。圖中每個(gè)按鍵占用一個(gè)口,彼此獨(dú)立,互不影響。上拉電阻保證按鍵沒(méi)被按下時(shí),I/O口輸入高電平。</p><p> 獨(dú)立式鍵盤可工作在查詢方式下,通過(guò)I/O口讀入鍵狀態(tài),當(dāng)有鍵被按下時(shí)I/O口變?yōu)榈碗娖?,而未被按下的鍵對(duì)應(yīng)為高電平,這樣通過(guò)讀電平狀態(tài)可判斷是否有鍵按下和哪個(gè)鍵被按下。</p><p> (6)紅外發(fā)射與接收</p>
58、<p> 利用單片機(jī)異步通訊口,用紅外光發(fā)射管和一體化接收管來(lái)實(shí)現(xiàn)接收和發(fā)送點(diǎn)信號(hào)的功能。通訊距離約3-10米,異步通訊波特率1200。</p><p> 圖 12 紅外發(fā)射和接收電路</p><p> 電路原理:紅外發(fā)送電路由4011MOS與非門和38KHz振蕩器組成,串口發(fā)送控制門電路和紅外光發(fā)射管驅(qū)動(dòng)輸出電路組成。單片機(jī)串口發(fā)送TXD端為‘0’時(shí),紅外光發(fā)射管發(fā)出
59、38KHz調(diào)制紅外光線。TXD端為‘1’時(shí),發(fā)射管就不發(fā)光。見(jiàn)上圖12。紅外接收電路為紅外接收專門集成電路,當(dāng)收到38KHz調(diào)制紅外光線時(shí),輸出端為‘0’,平時(shí)為‘1’。正可與單片機(jī)串口發(fā)送接收端RXD配接。</p><p><b> ?。?)實(shí)際電路</b></p><p> 最終通過(guò)Protel 99 SE軟件將以上各個(gè)部分電路及元器件組合在一起,得到一個(gè)完整的
60、電路圖,如圖13和圖14。然后對(duì)各個(gè)元器件進(jìn)行合理的封裝,對(duì)封裝后的PCB進(jìn)行排版以得到最好的布局,為接下來(lái)焊接元器件有一定的幫助,而且合理的布局也能使完成后的實(shí)物更美觀。</p><p> 由于本設(shè)計(jì)兩部分電路都有紅外發(fā)射和接收部分,而區(qū)別在于遠(yuǎn)端有一個(gè)測(cè)溫電路而手持端沒(méi)有,所以在設(shè)計(jì)電路圖時(shí)將兩部分設(shè)計(jì)成一樣的結(jié)構(gòu),即在手持端也有設(shè)計(jì)了測(cè)溫芯片的接口,只要對(duì)手持端的程序稍加修改也能實(shí)現(xiàn)測(cè)溫的功能。這樣在后期
61、制作時(shí)便于對(duì)電路的安裝與調(diào)試,而且也有利于電路的功能擴(kuò)展。</p><p> 下面給出了兩部分的電路圖。</p><p> 圖 13 測(cè)溫端電路圖</p><p> 圖 14 手持端電路圖</p><p><b> 3 軟件部分</b></p><p> 軟件用C語(yǔ)言進(jìn)行編程,采用模塊
62、化設(shè)計(jì)方法。</p><p> 圖 15 手持端與測(cè)溫端的框圖</p><p> 3.1 軟件模塊的劃分</p><p> 該系統(tǒng)的控制軟件主要可以分為測(cè)溫和紅外兩個(gè)大的部分,其中具體有單片機(jī)初始化程序、定時(shí)中斷服務(wù)程序、DS18B20接口程序、紅外發(fā)射編碼和紅外接收解碼程序等模塊。</p><p> 3.1.1 定時(shí)/計(jì)數(shù)器應(yīng)用&l
63、t;/p><p> (1)定時(shí)/計(jì)數(shù)器功能簡(jiǎn)介</p><p> AT89C51單片機(jī)內(nèi)部設(shè)有兩個(gè)16位可編程的定時(shí)/計(jì)數(shù)器,簡(jiǎn)稱定時(shí)器0和定時(shí)器1,分別用T0和T1表示。其功能同一般定時(shí)計(jì)數(shù)器,主要作用是:第一,作為一段特定時(shí)間長(zhǎng)短的定時(shí);第二,可以計(jì)算由T1或T0引腳輸入的脈沖數(shù),前者在應(yīng)用上可以產(chǎn)生正確的時(shí)間延遲及定時(shí)去執(zhí)行中斷服務(wù)程序,而后者則是計(jì)數(shù)器或者計(jì)頻器的設(shè)計(jì)。在本設(shè)計(jì)中這
64、兩種作用都用到了。</p><p> 這兩個(gè)定時(shí)器本身有四種工作模式可供使用,如表3所示。</p><p> 表3 四種工作模式</p><p> (2)定時(shí)器相關(guān)的控制寄存器</p><p> TMOD為模式控制寄存器,主要用來(lái)設(shè)置定時(shí)/計(jì)數(shù)器的操作模式;TCON為控制寄存器,主要用來(lái)控制定時(shí)器的啟動(dòng)與停止。兩個(gè)16位的定時(shí)/計(jì)數(shù)
65、器T0和T1均可以分成2個(gè)獨(dú)立的8位計(jì)數(shù)器即TH0、TL0、TH1、TL1,它們用于存定時(shí)或計(jì)數(shù)的初值。</p><p> ?、倌J娇刂萍拇嫫?-TMOD </p><p> TMOD是一個(gè)專用寄存器,用于控制T1和T0的操作模式及工作方式,其各位定義如下:</p><p> 定時(shí)器1 定時(shí)器0</p><
66、p> · GATE:門控位。當(dāng)GATE=0,定時(shí)器只由軟件控制位TR0或TR1來(lái)控制啟停。位為1,定時(shí)器啟動(dòng)開(kāi)始工作;為0時(shí),定時(shí)器停止工作。當(dāng)GATE=1時(shí),定時(shí)器的啟動(dòng)要由外部中斷引腳和位共同控制。只有當(dāng)外部中斷引腳或?yàn)楦邥r(shí),置1才能啟動(dòng)定時(shí)器工作。</p><p> ·C/:功能選擇位。當(dāng)C/=O時(shí)設(shè)置為定時(shí)器工作方式;計(jì)數(shù)脈沖由內(nèi)部提供,計(jì)數(shù)周期等于機(jī)器周期。當(dāng)C/=1時(shí)設(shè)置
67、為計(jì)數(shù)器工作方式,計(jì)數(shù)脈沖為外部引腳T0或T1的引入的外部脈沖信號(hào)。</p><p> ·M1、M0:操作模式控制位,2位可形成4種編碼,對(duì)應(yīng)于4種操作模式。</p><p> TMOD模式控制寄存器不能進(jìn)行位尋址,只能用字節(jié)傳送指令設(shè)置定時(shí)器的工作方式及操作模式,低4位用于定義定時(shí)器0,高4位用于定義定時(shí)器1。系統(tǒng)復(fù)位時(shí)TMOD所有位均為0。</p><
68、p> 模式控制字的設(shè)置舉例:</p><p> 若設(shè)置定時(shí)器1為定時(shí)器工作方式,由軟件啟動(dòng),選擇操作模式2;定時(shí)器0為計(jì)數(shù)方式,由軟件啟動(dòng),選擇操作模式1。則TMOD各位設(shè)置為:</p><p> 0 0 l 0 0 1 O l 25H</p><p> 用MOV TMOD,#25H指令寫(xiě)入TMOD中。</p><
69、;p> ?、诳刂萍拇嫫?-TCON</p><p> TCON的作用是用于控制定時(shí)器的啟動(dòng)、停止及定時(shí)器的溢出標(biāo)志和外部中斷觸發(fā)方式等。</p><p><b> 各位定義如下:</b></p><p> ·TF1和TF0;分別為定時(shí)器1和定時(shí)器0溢出標(biāo)志。當(dāng)定時(shí)器計(jì)滿產(chǎn)生溢出時(shí),由硬件自動(dòng)置“1”,并可申請(qǐng)中斷。進(jìn)人中斷
70、服務(wù)程序后,由硬件自動(dòng)清0。這兩位也可作為程序查詢的標(biāo)志位,在查詢方式下應(yīng)由軟件來(lái)清0。</p><p> ·TR1和TR0:為定時(shí)器1和定時(shí)器0的啟動(dòng)控制位。當(dāng)由軟件使清0而停止定時(shí)器的工作。定時(shí)器啟動(dòng)時(shí)該位應(yīng)置“1”。</p><p> 定時(shí)器的啟動(dòng)與門控位和外部中斷引腳有關(guān)。當(dāng)GATE設(shè)置為0,定時(shí)器的啟動(dòng)由=1控制;而當(dāng)GATE設(shè)置為1時(shí),定時(shí)器啟動(dòng)除了=1外,還要求
71、外部中斷引腳=1時(shí)定時(shí)器方可啟動(dòng)工作。</p><p> ·IE1和IE0:為外部中斷1和外部0的中斷請(qǐng)求標(biāo)志位。當(dāng)外部中斷源有請(qǐng)求時(shí)其對(duì)應(yīng)的中斷標(biāo)志位置“1”。其復(fù)位由觸發(fā)方式來(lái)設(shè)置。</p><p> ·IT1和IT0:為外部中斷1和外部中斷0的觸發(fā)方式選擇位。設(shè)置為“0”時(shí)為電平觸發(fā)方式;設(shè)置為“1”時(shí)為邊沿觸發(fā)方式。</p><p>
72、 TCON中低4位是與外部中斷有關(guān)的位,高4位為定時(shí)器控制位。它是一個(gè)可以進(jìn)行位尋址的寄存器。當(dāng)系統(tǒng)復(fù)位時(shí)所有位均為0。若要啟動(dòng)定時(shí)器可以使用位操作指令SETB 來(lái)啟動(dòng)。</p><p> (3)定時(shí)計(jì)數(shù)器的操作模式</p><p><b> ①模式0</b></p><p> 模式0是一個(gè)13位的定時(shí)/計(jì)數(shù)器,16位的寄存器只用了高
73、8位()和低5位(的D4-D0位),的高3位未用。</p><p><b> 計(jì)時(shí)工作脈沖</b></p><p> 定時(shí)器的工作時(shí)鐘可以由內(nèi)部或是外部來(lái)提供,由C/位來(lái)決定,當(dāng)C/=1時(shí),由外部引腳T0來(lái)供給,作為計(jì)數(shù)器使用,當(dāng)C/=0時(shí),則由內(nèi)部時(shí)鐘來(lái)提供,作為一般的定時(shí)器使用,而定時(shí)器的時(shí)鐘為系統(tǒng)工作時(shí)鐘除以12,在AT89C51中,石英振蕩晶體使用11.0
74、592MHz,所以定時(shí)器每一個(gè)計(jì)數(shù)時(shí)間脈沖寬為:</p><p> 12/11.0592MHz=1.085us (3.1.1)</p><p> 若石英振蕩晶體改為12MHz,定時(shí)器每一個(gè)計(jì)數(shù)時(shí)間脈沖寬為:</p><p> 12/12MHz=1.0us (3.1.2)<
75、;/p><p><b> 激活定時(shí)器</b></p><p> 定時(shí)器動(dòng)作的必要條件有:</p><p> ·GATE=0時(shí),TR0=1,定時(shí)器0就會(huì)工作;</p><p> ·GATE=1時(shí),除了TR0=1,INT0還須是高電平。</p><p> 若使用定時(shí)器內(nèi)部時(shí)鐘
76、工作C/=0,GATE=0,在模式0操作下,用命令:</p><p> MOV TMOD,#00H</p><p> 便可設(shè)置定時(shí)器0 于模式0做計(jì)時(shí)工作,將TR0設(shè)為1,定時(shí)器便會(huì)開(kāi)始工作了。</p><p><b> 定時(shí)時(shí)間長(zhǎng)短設(shè)置</b></p><p> 在模式0 工作下,計(jì)數(shù)器最多可計(jì)數(shù)個(gè)數(shù)為M==8
77、192,由0到8192便產(chǎn)生溢出而引發(fā)中斷信號(hào),引起定時(shí)器0的中斷(TF0=1)??赡苤灰?jì)數(shù)100個(gè)脈沖便產(chǎn)生中斷,只要將初值8092(8192-100)加載計(jì)數(shù)器即可,一旦激活計(jì)數(shù)器后,計(jì)數(shù)變?yōu)?093、8094、……一直到8192則產(chǎn)生中斷,這樣就計(jì)數(shù)100次了,而時(shí)間長(zhǎng)度為:</p><p> 1.085us*100=108.5us (3.1.3)</p>
78、;<p> 也就是經(jīng)過(guò)108.5us后就產(chǎn)生中斷了。</p><p> 在定時(shí)器0中,加載定時(shí)器的初值,匯編語(yǔ)言指令為:</p><p> TL0=(8192-C).MOD.32 (3.1.4)</p><p> TH0=(8192-C)/32 (3.1.5)</
79、p><p> 其中C為所要計(jì)數(shù)的值,“MOD”為取余數(shù)的運(yùn)算,除以32后取余數(shù)部分?!?”為除法運(yùn)算,在做完除法后取整數(shù)部分。</p><p><b> 計(jì)時(shí)溢出</b></p><p> 當(dāng)計(jì)時(shí)終了產(chǎn)生溢出,定時(shí)器應(yīng)用兩種方法可知道系統(tǒng)產(chǎn)生定時(shí)器中斷了:</p><p> ·檢查其中斷控制寄存器TCON中
80、的TF0及TF1,若為1則表示產(chǎn)生計(jì)時(shí)溢出了。</p><p> ·執(zhí)行對(duì)應(yīng)的中斷服務(wù)程序。</p><p><b> ②模式1</b></p><p> 在模式1 工作下,計(jì)數(shù)器最多可計(jì)數(shù)個(gè)數(shù)為 M==65536,計(jì)時(shí)時(shí)間最長(zhǎng)為</p><p> 1.085us*65536=72ms
81、 (3.1.6)</p><p> 而計(jì)數(shù)初值的加載方法為:</p><p> TL0=(65536-C).MOD.256 (3.1.7)</p><p> TH0=(65536-C)/256 (3.1.8)</p><p> 其中C為所要
82、計(jì)數(shù)的值,計(jì)數(shù)時(shí)間長(zhǎng)度為:</p><p> 1.085us*C (3.1.9)</p><p><b> ?、勰J?</b></p><p> 模式2有自動(dòng)重新加載初值的功能,使定時(shí)器做更精確的計(jì)時(shí)。在模式2 工作下,計(jì)數(shù)器最多可計(jì)數(shù)個(gè)數(shù)為M==256,計(jì)時(shí)時(shí)間最長(zhǎng)為:</p>
83、;<p> 1.085us*256=0.28ms (3.1.10)</p><p> 而計(jì)數(shù)初值的加載方法為:</p><p> TH0=256-C (3.1.11)</p><p> 其中C為所要計(jì)數(shù)的值,計(jì)數(shù)時(shí)間長(zhǎng)度為:</p><p
84、> 1.085us*C (3.1.12)</p><p><b> ?、苣J?</b></p><p> 在模式3中,定時(shí)器1停止計(jì)時(shí)工作,而定時(shí)器0分為兩個(gè)獨(dú)立的8位定時(shí)器。其計(jì)數(shù)初值加載方法同模式2。</p><p> 3.1.2 中斷控制應(yīng)用</p><p&g
85、t;<b> (1)中斷源</b></p><p> AT89C51單片機(jī)的中斷源:2個(gè)外部輸人中斷源(P3.2)和(P3.3);3個(gè)內(nèi)部中斷源T0和T1的溢出中斷源及串行口發(fā)送/接收中斷源。在本系統(tǒng)中只使用了3個(gè)內(nèi)部中斷源:</p><p> TF0和TF1:定時(shí)器0和定時(shí)器1的溢出中斷。當(dāng)T0或T1計(jì)數(shù)器加1,計(jì)數(shù)產(chǎn)生溢出時(shí),則將TCON中的TF0或TF1置
86、1,向CPU申請(qǐng)中斷。</p><p> RI和TF1:串行口的接收和發(fā)送中斷。當(dāng)串行口接收或發(fā)送完一幀數(shù)據(jù)時(shí),將TCON中的RI或TI位置1,向CPU申請(qǐng)中斷。</p><p> 當(dāng)某中斷源的中斷請(qǐng)求被CPU響應(yīng)之后,CPU將自動(dòng)把此中斷源的中斷入口地址(又稱中斷矢量地址)裝入PC,中斷服務(wù)程序即從此地址開(kāi)始執(zhí)行。因此一般在此地址單元中存放一條絕對(duì)跳轉(zhuǎn)指令,可以跳至用戶安排的中斷服務(wù)
87、程序的入口處。AT89C51單片機(jī)各中斷源的矢量地址是固定的。見(jiàn)表4。</p><p> 表4 單片機(jī)中斷源的矢量地址表</p><p><b> (2)中斷請(qǐng)求標(biāo)志</b></p><p><b> SCON的中斷標(biāo)志</b></p><p> 串行口的中斷請(qǐng)求標(biāo)志由串行口控制寄存器SC
88、ON的D0和D1位來(lái)設(shè)置。RI(SCON.0)為接收中斷標(biāo)志位;TI(SCON.1)為發(fā)送中斷標(biāo)志位。其中斷申請(qǐng)信號(hào)的產(chǎn)生過(guò)程為:</p><p> 發(fā)送過(guò)程:當(dāng)CPU將一個(gè)數(shù)據(jù)寫(xiě)入發(fā)送緩沖器SBUF時(shí),就啟動(dòng)發(fā)送。每發(fā)送完一幀數(shù)據(jù)。由硬件自動(dòng)將TI位置1。但CPU響應(yīng)中斷時(shí),并不能清除TI位,所以必須由軟件清除。</p><p> 接收過(guò)程:在串行口允許接收時(shí).即可串行接收數(shù)據(jù),當(dāng)一
89、幀數(shù)據(jù)接收完畢,由硬件自動(dòng)將RI位置1。同樣CPU響應(yīng)中斷時(shí)不能清除RI位,必須由軟件清除。</p><p> AT89C51單片機(jī)系統(tǒng)復(fù)位后,TCON和SCON中各位均清0,應(yīng)用時(shí)要注意各位的初始狀態(tài)。</p><p><b> (3)中斷允許控制</b></p><p><b> ?、僦袛嗟拈_(kāi)放和屏蔽</b><
90、;/p><p> AT89C51單片機(jī)中的專用寄存器IE稱為中斷允許寄存器,其作用是用來(lái)對(duì)各中斷源進(jìn)行開(kāi)放或屏蔽的控制。其各位的定義如下:</p><p> —IE.7:EA0。CPU中斷允許位。EA=1,CPU開(kāi)放中斷;EA=0,CPU屏蔽所有中斷請(qǐng)求。</p><p> —IE.4:ES0。串行中斷允許位。ES=1,允許串行口中斷;ES=0,禁止串行口中斷。&
91、lt;/p><p> —IE.3:ET1。T1中斷允許位。ET1=1,允許T1中斷;ET1=0,禁止T1中斷。</p><p> —IE.2:EX1。外部中斷1允許位。EX1=1,允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。</p><p> —IE.1:ET0。T0中斷允許位。ET0=1,允許T0中斷;ET0=0,禁止T0中斷。</p>&
92、lt;p> —IE.0:EX0。外部中斷0允許位。EX0=1,允許外部中斷0中斷;EX0=0,禁止外部中斷0 中斷。</p><p> 系統(tǒng)復(fù)位后,IE中各中斷允許位均被清零,即禁止所有中斷。</p><p><b> ?、谥袛嘣磧?yōu)先級(jí)結(jié)構(gòu)</b></p><p> 靠設(shè)置IP寄存器把各中斷源的優(yōu)先級(jí)分為高低2級(jí),它遵循2條基本原則
93、:</p><p> ·低優(yōu)級(jí)中斷可以較高優(yōu)先級(jí)中斷所中斷,反之不能。</p><p> ·一種中斷(不管什么優(yōu)先級(jí))一旦得到響應(yīng),與它同級(jí)的中斷不能再中斷它。</p><p> 為了實(shí)現(xiàn)這2條規(guī)則,中斷系統(tǒng)內(nèi)部包含2個(gè)不可尋址的“優(yōu)先級(jí)激活”觸發(fā)器。其中一個(gè)指示某高優(yōu)級(jí)的中斷正在得到服務(wù),所有后來(lái)的中斷都被阻斷。另一個(gè)觸發(fā)器指示某低優(yōu)先級(jí)
94、的中斷正在得到服務(wù),所有同級(jí)的中斷都被阻斷,但不阻斷高優(yōu)先級(jí)的中斷。</p><p> 當(dāng)CPU同時(shí)收到幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),根據(jù)內(nèi)部的硬件查詢順序,CPU將按自然優(yōu)先級(jí)順序確定該響應(yīng)哪個(gè)中斷請(qǐng)求。其自然優(yōu)先級(jí)由硬件形成,排列如表:</p><p><b> 表5 自然優(yōu)先級(jí)</b></p><p> 在每一個(gè)機(jī)器周期中,CPU對(duì)
95、所有中斷源都順序地檢查一遍,這樣到任一機(jī)器周期的S6狀態(tài),可找到所有已激活的中斷請(qǐng)求,并排好了優(yōu)先級(jí)。在下一個(gè)機(jī)器周期的S1狀態(tài),只要不受阻斷就開(kāi)始響應(yīng)其中最高優(yōu)先級(jí)的中斷請(qǐng)求。若發(fā)生下列情況,中斷響應(yīng)會(huì)受到阻斷:</p><p> ·同級(jí)或高優(yōu)先級(jí)的中斷正在進(jìn)行中;</p><p> ·現(xiàn)在的機(jī)器周期還不是執(zhí)行指令的最后一個(gè)機(jī)器周期,即正在執(zhí)行的指令還沒(méi)完成前不響
96、應(yīng)任何中斷;</p><p> ·正在執(zhí)行的是中斷返回指令RETI或是訪問(wèn)專用寄存器IE或IP的指令,換而言之,在RETI或者讀寫(xiě)IE或IP之后,不會(huì)馬上響應(yīng)中斷請(qǐng)求,至少要在執(zhí)行其它一條指令之后才會(huì)響應(yīng)。</p><p> 若存在上述任一種情況,中斷查詢結(jié)果就被取消。否則,在緊接著的下一個(gè)機(jī)器周期,中斷查詢結(jié)果變?yōu)橛行А?lt;/p><p><b&
97、gt; (4)中斷處理過(guò)程</b></p><p> 中斷處理過(guò)程可分為三個(gè)階段:即中斷響應(yīng)、中斷處理和中斷返回。由于各計(jì)算機(jī)系統(tǒng)的中斷系統(tǒng)硬件結(jié)構(gòu)不同,中斷響應(yīng)的方式就有所不同。</p><p><b> ?、僦袛囗憫?yīng)</b></p><p><b> 中斷響應(yīng)條件</b></p><
98、;p> CPU響應(yīng)中斷的條件有:</p><p> ·有中斷源發(fā)出中斷請(qǐng)求;</p><p> ·中斷總允許位EA=1,即CPU開(kāi)中斷;</p><p> ·申請(qǐng)中斷的中斷源的中斷允許位為1,即沒(méi)有被屏蔽。</p><p> 以上條件滿足,一般CPU會(huì)響應(yīng)中斷,但在上一節(jié)中所述的中斷受阻斷的情況下
99、,本次的中斷請(qǐng)求CPU不會(huì)響應(yīng)。</p><p> 如果中斷響應(yīng)條件滿足,而且不存在中斷受阻的情況下,則CPU將響應(yīng)中斷。在此情況下,CPU首先使被響應(yīng)中斷的相應(yīng)“優(yōu)先級(jí)激活”觸發(fā)器置位,以阻斷同級(jí)和低級(jí)的中斷。然后,根據(jù)中斷源的類別,在硬件的控制下內(nèi)部自動(dòng)形成長(zhǎng)調(diào)用指令(LCALL),此指令的作用將自動(dòng)把斷點(diǎn)壓入堆棧,但不自動(dòng)保存PSW的內(nèi)容。然后將對(duì)應(yīng)的中斷源的矢量地址裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向該中斷的
100、矢量地址,以轉(zhuǎn)至中斷服務(wù)程序?qū)?yīng)的入口地址。</p><p> 在使用時(shí),通常在這些地址單元中存放一條絕對(duì)跳轉(zhuǎn)指令,使程序轉(zhuǎn)移到用戶安排的中斷服務(wù)程序入口處。</p><p><b> ?、谥袛嗵幚?lt;/b></p><p> 中斷處理包括兩部分內(nèi)容:一是保護(hù)現(xiàn)場(chǎng),二是中斷服務(wù)。</p><p> 現(xiàn)場(chǎng)通常有PSW、
101、工作寄存器、專用寄存器等。如果在中斷服務(wù)程序中要用這些寄存器,則在進(jìn)入中斷服務(wù)之前應(yīng)將它們的內(nèi)容保護(hù)起來(lái)稱為保護(hù)現(xiàn)場(chǎng);同時(shí)在中斷結(jié)束,執(zhí)行RETI指令之前應(yīng)恢復(fù)現(xiàn)場(chǎng)。</p><p> 編寫(xiě)中斷服務(wù)程序時(shí)需注意到:</p><p> ·各中斷源的入口矢量地址之間,只相隔8個(gè)單元,一般中斷服務(wù)程序是容納不下的,最常用的解決方法是在中斷人口矢量地址單元處存放一條無(wú)條件轉(zhuǎn)移指令,而
102、轉(zhuǎn)至存儲(chǔ)器其它的任何空間去。</p><p> ·若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,應(yīng)用軟件關(guān)閉CPU中斷,或屏蔽更高級(jí)中斷源的中斷,在中斷返回前再開(kāi)放中斷。</p><p> ·在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)時(shí),為了不使現(xiàn)場(chǎng)信息受到破壞或造成混亂,在此情況下,應(yīng)關(guān)CPU中斷,使CPU暫不響應(yīng)新的中斷請(qǐng)求。這樣就要求在編寫(xiě)中斷服務(wù)程序時(shí),注意在保護(hù)現(xiàn)場(chǎng)之前要關(guān)中斷,
103、在保護(hù)現(xiàn)場(chǎng)之后若允許高優(yōu)先級(jí)中斷打斷它,則應(yīng)開(kāi)中斷。同樣在恢復(fù)現(xiàn)場(chǎng)之前應(yīng)關(guān)中斷,恢復(fù)之后再開(kāi)中斷。</p><p><b> ?、壑袛喾祷?lt;/b></p><p> 中斷處理程序的最后一條指令是中斷返回指令RET1。它的功能是將斷點(diǎn)彈出送回PC中,使程序能返回到原來(lái)被中斷的程序繼續(xù)執(zhí)行。</p><p> AT89C51的RETI指令除了彈
104、出斷點(diǎn)之外,它還通知中斷系統(tǒng)已完成中斷處理,并將“優(yōu)先級(jí)激活”觸發(fā)器清除(該觸發(fā)器在響應(yīng)中斷時(shí)置1)。</p><p> 3.1.3 測(cè)溫部分</p><p> 單片機(jī)初始化程序由主函數(shù)實(shí)現(xiàn),主要完成定時(shí)器T0、T1的初始化、中斷系統(tǒng)的初始化等功能。定時(shí)器T0中斷函數(shù)每隔5ms執(zhí)行1次;定時(shí)器T1中斷函數(shù)每隔50ms中斷1次,每中斷20次(1秒)即讀取DS18B20的溫度代碼,轉(zhuǎn)換為溫
105、度值,再拆分成單個(gè)數(shù)碼后送入顯示緩沖區(qū)。</p><p> DS18B20接口程序主要由復(fù)位函數(shù)、讀位函數(shù)、讀字節(jié)函數(shù)、寫(xiě)位函數(shù)、寫(xiě)字節(jié)函數(shù)、讀溫度函數(shù)等組成。由于DS18B20是在一根I/O線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從
106、設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)自主啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。</p><p> DS18B20的讀時(shí)序:</p><p> 對(duì)于DS18B20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程,圖14。</p><p> 對(duì)于DS18B20的讀時(shí)序是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線
107、,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。</p><p> 圖 14主CPU讀0、1時(shí)序</p><p> DS18B20的寫(xiě)時(shí)序:</p><p> 對(duì)于DS18B20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程。</p><p> 對(duì)于DS18B20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的
108、要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。</p><p> 圖 15主CPU寫(xiě)0、1時(shí)序</p><p> 3.1.4 紅外發(fā)送和接收</p><p> 由于通用紅外遙控系統(tǒng)發(fā)射和接收實(shí)際是兩個(gè)相反的
109、過(guò)程,所以在這里只給出了發(fā)射部分原理和設(shè)計(jì),接收部分原理與其相同只要做一個(gè)逆反過(guò)程便可得到相應(yīng)的結(jié)果。</p><p> 考慮到紅外光反射的原因,發(fā)送的信號(hào)也可能會(huì)被本身接收,因此紅外通信需采用異步半雙工方式,即通信的某一方發(fā)送和接收是交替進(jìn)行的。這里設(shè)置單片機(jī)的串行口采用方式3通信;通信的數(shù)據(jù)格式為每幀11位,包括1位起始位、8位數(shù)據(jù)位、1位奇偶校驗(yàn)位和1位停止位;片內(nèi)定時(shí)器T1作為波特率發(fā)生器,選擇傳送的波
110、特率為1200bps,則定時(shí)器T1的初值應(yīng)設(shè)置為TL1=TH1=E8H,另外應(yīng)禁止定時(shí)器T1中斷,以免因定時(shí)器T1溢出而產(chǎn)生不必要的中斷。</p><p> 進(jìn)行紅外通信之前,通信雙方首先要根據(jù)系統(tǒng)的功能要求制訂某種特定的通信協(xié)議,然后才能編寫(xiě)相應(yīng)的通信程序。紅外抄表系統(tǒng)中,紅外通信的一方是測(cè)溫端,另一方是手持抄表器,雙方遵循表6格式的通信協(xié)議。</p><p> 在紅外通信過(guò)程中,手
111、持抄表器是通信的發(fā)起者,其發(fā)送和接收都是主動(dòng)的。它的具體工作過(guò)程為:CPU不斷掃描鍵盤,若發(fā)現(xiàn)有命令鍵按下,則調(diào)用發(fā)送子程序發(fā)送相應(yīng)的操作命令;發(fā)送結(jié)束后即啟動(dòng)接收子程序,以接收測(cè)溫端回送的信息,然后對(duì)接收到的信息進(jìn)行后續(xù)處理,在數(shù)碼管上顯示出來(lái)。</p><p> 表 6 抄表系統(tǒng)的通信協(xié)議</p><p> 大概有以下兩種編碼格式(Format)。第一種格式為1913、9012、1
112、621 格式;第二種為3010 格式。其中尤以第一種格式用得最多。</p><p> 第一種格式以1621 為例,當(dāng)按下遙控器上的某個(gè)按鍵時(shí),遙控器將發(fā)射出一幀數(shù)據(jù),幀數(shù)據(jù)的編碼格式由三部分組成:引導(dǎo)碼(Lead code)、客戶碼(Custom code)和數(shù)據(jù)碼(Data code),見(jiàn)圖 16。</p><p> 圖 16 1621格式幀格式</p><p&g
113、t; 遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼,能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。該芯片的用戶識(shí)別碼固定為十六進(jìn)制01H;后16位為8位操作碼(功能碼)及其反碼。UPD6121G最多額128種不同組合的編碼。</p><p> 遙控器在按鍵按下后,周期性地發(fā)出同一種32位二進(jìn)制碼,周期約為108ms。一組碼本身的持續(xù)時(shí)間隨它包含的二進(jìn)制“0”和“1”的個(gè)數(shù)不同而不同,大約在4
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遠(yuǎn)程電力抄表系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 基于gps智能抄表導(dǎo)航系統(tǒng) 畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于vb的抄表管理系統(tǒng)的設(shè)計(jì)
- USB紅外抄表器設(shè)計(jì).pdf
- 基于gps智能抄表導(dǎo)航系統(tǒng)-后臺(tái)設(shè)計(jì)-畢業(yè)設(shè)計(jì)
- 基于zigbee技術(shù)的無(wú)線抄表系統(tǒng)的設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的電能表自動(dòng)抄表系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)——紅外測(cè)溫系統(tǒng)的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)紅外測(cè)溫系統(tǒng)的設(shè)計(jì)
- 紅外遙控電風(fēng)扇系統(tǒng)畢業(yè)設(shè)計(jì)
- 電子紅外遙控窗簾系統(tǒng)畢業(yè)設(shè)計(jì)
- 電氣工程及其自動(dòng)化畢業(yè)設(shè)計(jì)-遠(yuǎn)程無(wú)線抄表系統(tǒng)的設(shè)計(jì)
- 基于zigbee技術(shù)的無(wú)線抄表系統(tǒng)的設(shè)計(jì)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 單片機(jī)紅外遙控系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 多點(diǎn)紅外火災(zāi)探測(cè)系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 單片機(jī)紅外遙控系統(tǒng)畢業(yè)設(shè)計(jì)
- 通信電纜紅外防盜系統(tǒng)設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 無(wú)線抄表系統(tǒng)設(shè)計(jì).pdf
- 畢業(yè)設(shè)計(jì)---紅外數(shù)據(jù)通訊系統(tǒng)的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)電力載波通信抄表集中器硬件設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論