版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 第一章 微控制器應(yīng)用系統(tǒng)綜合課程設(shè)計(jì)的目的意義</p><p><b> 1.1 設(shè)計(jì)目的</b></p><p> 《微控制器應(yīng)用系統(tǒng)綜合設(shè)計(jì)》是為測控專業(yè)《微控制器技術(shù)》課程而開設(shè)的課程設(shè)計(jì)教學(xué)環(huán)節(jié),其目的在于培養(yǎng)學(xué)生綜合運(yùn)用理論知識來分析和解決實(shí)際問題的能力,是通過設(shè)計(jì)以微控制器為核心的單片機(jī)檢測系統(tǒng),加深學(xué)生對微控制器技術(shù)的了解,
2、進(jìn)一步掌握其程序設(shè)計(jì)與硬件接口技術(shù)。</p><p> 本課程的主要任務(wù)是運(yùn)用所學(xué)微控制器技術(shù)、微機(jī)原理等方面的知識,設(shè)計(jì)出一臺以80C32MCU為核心的單片機(jī)數(shù)據(jù)采集、通訊或測控系統(tǒng),完成信息的采集、處理、輸出及人機(jī)接口電路等部分的軟、硬件設(shè)計(jì)。</p><p> 本課程設(shè)計(jì)涉及《微控制器技術(shù)》課程的基本概念和理論,主要要求學(xué)生掌握微控制器的指令系統(tǒng)、中斷技術(shù)、總線擴(kuò)展、模擬與數(shù)字I
3、/O接口技術(shù)與通訊技術(shù)等,重點(diǎn)是培養(yǎng)學(xué)生掌握微控制器在自動(dòng)化測控應(yīng)用系統(tǒng)中的設(shè)計(jì)與開發(fā)方法。</p><p> 1.2 課程在教學(xué)計(jì)劃中的地位和作用</p><p> 單片機(jī)(微控制器)是20世紀(jì)70年代中期發(fā)展起來的一種面向控制的大規(guī)模集成電路模塊,具有功能強(qiáng)、體積小、可靠性高、價(jià)格低廉等特點(diǎn),在工業(yè)控制、數(shù)據(jù)采集、智能儀表、機(jī)電一體化、家用電器等領(lǐng)域得到了廣泛的應(yīng)用,極大地提高了
4、這些了領(lǐng)域的技術(shù)水平和自動(dòng)化程度。目前,各高等院校相關(guān)專業(yè)都將單片機(jī)課程列為其教學(xué)計(jì)劃的重要組成部分,紛紛開設(shè)單片機(jī)及相關(guān)課程。同時(shí),在課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)、電子設(shè)計(jì)競賽等許多實(shí)踐環(huán)節(jié)中,單片機(jī)都得到了廣泛的應(yīng)用。 </p><p> 單片微型計(jì)算機(jī)簡稱單片機(jī),它在一塊芯片上集成了計(jì)算機(jī)的所有基本功能部件。單片機(jī)也被稱為微控制器(Microcontroler),是因?yàn)樗钤绫挥迷诠I(yè)控制領(lǐng)
5、域。單片機(jī)最突出的特點(diǎn)是面向控制,能針對性地解決各類工業(yè)控制問題,特別適用于較高速和較復(fù)雜的實(shí)時(shí)控制應(yīng)用。從而使得它在現(xiàn)在的課程教學(xué)中顯得尤為重要。</p><p> 第二章 多路壓力參數(shù)實(shí)時(shí)采集與處理系統(tǒng)設(shè)計(jì)</p><p> 2.1 設(shè)計(jì)內(nèi)容及要求</p><p> 設(shè)計(jì)一個(gè)可以采集兩路參數(shù)、參數(shù)分辨率為8位的實(shí)時(shí)數(shù)據(jù)采集與處理系統(tǒng)。假定兩路壓力參數(shù)對
6、應(yīng)的直流電壓在0~5V范圍內(nèi)變化,輸出顯示為0~2000Pa,要求對通道0每隔1s采樣一次,共采集20次;對通道1每隔2s采樣一次,共采集10次。并要求將不同通道采集的數(shù)據(jù)進(jìn)行相應(yīng)的處理后以電壓值的形式分別顯示在顯示器的不同區(qū)域上。</p><p> 本課程設(shè)計(jì)的重點(diǎn)是培養(yǎng)學(xué)生利用微控制器的硬、軟件開發(fā)技術(shù)進(jìn)行微控制器系統(tǒng)的設(shè)計(jì)與開發(fā)能力。具體設(shè)計(jì)內(nèi)容包括兩個(gè)部分。</p><p>
7、2.1.1必做實(shí)驗(yàn)部分</p><p><b> 1.步進(jìn)電機(jī)控制</b></p><p><b> 2.直流電機(jī)控制</b></p><p> 3.?dāng)U展鍵盤顯示接口實(shí)驗(yàn)</p><p> 4.LED 16X16 點(diǎn)陣顯示實(shí)驗(yàn)</p><p> 5.LCD液晶顯示接
8、口實(shí)驗(yàn)</p><p> 6.雙積分式A/D芯片M C 14433的擴(kuò)展接口實(shí)驗(yàn)</p><p> 7.電機(jī)控制機(jī)電一體化實(shí)驗(yàn)平臺實(shí)驗(yàn)</p><p> 8.溫度、壓力測量與控制實(shí)驗(yàn)平臺實(shí)驗(yàn)</p><p> 2.1.2選做設(shè)計(jì)部分</p><p> 由指導(dǎo)老師提供多個(gè)不同的微控制器系統(tǒng)設(shè)計(jì)題目,學(xué)生根據(jù)愛好
9、自由選擇,或經(jīng)老師同意選擇其它題目。本次選做的課程設(shè)計(jì)題目為《多路壓力參數(shù)實(shí)時(shí)采集與處理系統(tǒng)設(shè)計(jì)》,設(shè)計(jì)要求如下:</p><p> 顯示器上可以設(shè)計(jì)兩個(gè)窗口,用來顯示兩個(gè)不同通道的壓力值,同時(shí)在不同窗口上顯示出相應(yīng)通道號的提示信息。由此,設(shè)計(jì)中需要設(shè)計(jì)一個(gè)主程序和一至二個(gè)中斷服務(wù)程序,即時(shí)鐘中斷服務(wù)程序或轉(zhuǎn)換結(jié)束中斷服務(wù)程序。</p><p> 設(shè)計(jì)相應(yīng)的A/D、鍵盤和壓力檢測、處理
10、與顯示電路,可在線鍵盤參數(shù)設(shè)置、定時(shí)檢測、顯示和報(bào)警。共有兩種設(shè)計(jì)方案可選,</p><p> a.多路ADC0809采樣,LCD 顯示,喇叭報(bào)警。</p><p> b.多路ADC0809采樣,LED 顯示,喇叭報(bào)警或燈光報(bào)警</p><p> 2.2 課程設(shè)計(jì)的要求</p><p> 本課程設(shè)計(jì)涉及《微控制器技術(shù)》課程的基本
11、概念和理論,主要要求學(xué)生掌握微控制器的指令系統(tǒng)、中斷技術(shù)、總線擴(kuò)展、模擬與數(shù)字I/O接口技術(shù)與通訊技術(shù)等,重點(diǎn)是培養(yǎng)學(xué)生掌握微控制器在自動(dòng)化測控應(yīng)用系統(tǒng)中的設(shè)計(jì)與開發(fā)方法。</p><p> 課程設(shè)計(jì)的基本要求如下:</p><p> 1.掌握單片微控制器硬件結(jié)構(gòu)和工作原理、中斷與定時(shí)系統(tǒng)、嵌入式應(yīng)用、現(xiàn)場總線等基本概念和原理;</p><p> 2.熟悉8/
12、16位單片微控制器的主要功能單元和指令系統(tǒng);</p><p> 3.熟悉測控網(wǎng)絡(luò)中嵌入式微控制器的應(yīng)用和現(xiàn)場總線應(yīng)用技術(shù)。</p><p> 4.利用微控制器的接口技術(shù)進(jìn)行簡單的測控及自動(dòng)化應(yīng)用系統(tǒng)設(shè)計(jì);</p><p> 5.每人提交系統(tǒng)設(shè)計(jì)報(bào)告一份,現(xiàn)場演示驗(yàn)收設(shè)計(jì)系統(tǒng)。</p><p><b> 第三章 硬件設(shè)計(jì)&l
13、t;/b></p><p><b> 3.1 設(shè)計(jì)思想</b></p><p> 硬件系統(tǒng)是指構(gòu)成微機(jī)系統(tǒng)的實(shí)體和裝置,通常由運(yùn)算器、控制器、存儲器、輸入接口電路和輸入輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。單片機(jī)實(shí)質(zhì)上是一個(gè)硬件的芯片,在實(shí)際應(yīng)用中,通常很難直接和被控對象進(jìn)行電氣連接,必須外加各種擴(kuò)展接口電路、外部設(shè)備、被控對象等硬件和軟件,才能構(gòu)成一個(gè)
14、單片機(jī)應(yīng)用系統(tǒng)。本設(shè)計(jì)選用以AT89S51單片機(jī)為主控單元。顯示部分:采用7段LED動(dòng)態(tài)顯示。按鍵部分,采用8279擴(kuò)展鍵盤。數(shù)據(jù)采集部分,采用ADC0809芯片。</p><p> 多路壓力參數(shù)實(shí)時(shí)采集與處理的系統(tǒng)設(shè)計(jì)采用雙通道,將壓力參數(shù)的模擬參數(shù)采集進(jìn)來,再經(jīng)A/D芯片轉(zhuǎn)換成數(shù)字信號,再將信號經(jīng)過處理后在LED上顯示。雙通道采集數(shù)據(jù),對通道0每隔1s采樣一次,共采集20次;對通道1每隔2s采樣一次,共采集
15、10次。</p><p> 功能模塊,當(dāng)EXEC鍵按下后,開始定時(shí)器T0與T1的初始化,等待中斷。壓力參數(shù)采集部分,設(shè)計(jì)了兩個(gè)A/D采樣子程序,分別為通道0和通道1的采樣,通過鍵盤設(shè)置報(bào)警值,并判斷當(dāng)前采樣值是否超過報(bào)警值,超過則報(bào)警;未超過則采樣繼續(xù),程序繼續(xù)往下執(zhí)行,將采樣值分別在8279鍵盤上的LED上顯示,前三個(gè)數(shù)碼管顯示0通道以及該通道的采樣值,采樣值經(jīng)A/D轉(zhuǎn)換后以16進(jìn)制的電壓值顯示,之后三個(gè)數(shù)碼
16、管則顯示1通道的采樣值,同樣也是A/D轉(zhuǎn)換后的16進(jìn)制電壓值形式顯示,最后兩個(gè)數(shù)碼管則顯示當(dāng)前的報(bào)警值。</p><p> 圖3.1 系統(tǒng)硬件結(jié)構(gòu)框圖</p><p> 3.2 硬件電路設(shè)計(jì)系統(tǒng)原理圖及其說明</p><p> 圖3.2多路壓力參數(shù)實(shí)時(shí)采集與處理系統(tǒng)硬件原理圖</p><p> 3.2.1 CUP主控單元電路<
17、/p><p> AT89C51片內(nèi)配置有4KB Flash閃速程序存儲器,可經(jīng)受1000次以上的寫入/擦出周期,并有程序存儲器加密邏輯,給單片機(jī)產(chǎn)品的開發(fā)和生產(chǎn)帶來了極大地方便89C51單片機(jī)有兩種封裝形式,40引腳雙列直插(PDIP)封裝形式和44引腳的方形(PLCC)封裝方式。89C51采用地址總線(AB)、數(shù)據(jù)總線(DB)、和控制總線(CB)三種總線結(jié)構(gòu)。并集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多種功
18、能的I/O口等基本功能部件。</p><p> 圖3.3 CPU主控單元硬件原理圖</p><p> 3.2.2 8279擴(kuò)展鍵盤電路</p><p> 圖3.4 8279擴(kuò)展鍵盤硬件接線圖</p><p> 如圖3.4所示為8279鍵盤顯示接口的硬件連線圖,利用8279可以實(shí)現(xiàn)對鍵盤/顯示器的自動(dòng)掃描,以減輕對CPU負(fù)擔(dān),具有顯示
19、穩(wěn)定,程序簡單,不會出現(xiàn)誤動(dòng)作等特點(diǎn)。在外接鍵盤的鍵盤功能板上,按下相應(yīng)的數(shù)字鍵或是功能鍵,數(shù)碼管上顯示相應(yīng)數(shù)據(jù)。具體接線方式如下:</p><p> 1.將KEY區(qū)D0-D7用8芯排線連到BUS2區(qū)XD0-XD7上。</p><p> 2.將KEY區(qū)WR、RD、ALE分別連到BUS3區(qū)的XWR、XRD、ALE上。</p><p> 3.KEY區(qū)A0連到BUS
20、1區(qū)得XA0上。</p><p> 4.KEY區(qū)RST連到AT89C51的RST上。</p><p> 5.KEY區(qū)CS連到BUS3的Y3上。</p><p> 3.2.3 ADC0809數(shù)據(jù)采集與處理電路</p><p> 該部分電路主要完成雙通道數(shù)據(jù)的采集和轉(zhuǎn)換功能,CLOCK端外接分頻輸出T4,參考電壓為5V,74LS02的2、
21、6接Y1,3接XWR,5接XRD,數(shù)據(jù)采集通道0輸入接IN0端口,數(shù)據(jù)采集通道1輸入接IN1端口。</p><p> 圖3.5 A/D0809數(shù)據(jù)采集原理圖</p><p> 3.3 所用到的芯片及其各自功能說明</p><p> 3.3.1 芯片列表</p><p> 1.AT89C51芯片</p><p&g
22、t; 2.ADC0809芯片</p><p><b> 3.8279芯片</b></p><p> 4.74LS138芯片</p><p> 5.74LS393芯片</p><p> 6.74LS02芯片</p><p> 3.3.2 AT89C51的功能簡介</p>&
23、lt;p> AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管
24、腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖3.6所示。</p><p> 圖3.6 AT89C51芯片管腳圖</p><p><b> 1.主要特性</b></p>
25、<p> ·與MCS-51 兼容</p><p> ·4K字節(jié)可編程FLASH存儲器</p><p> ·壽命:1000寫/擦循環(huán)</p><p> ·數(shù)據(jù)保留時(shí)間:10年</p><p> ·全靜態(tài)工作:0Hz-24MHz</p><p>
26、·三級程序存儲器鎖定</p><p> ·128×8位內(nèi)部RAM</p><p> ·32可編程I/O線</p><p> ·兩個(gè)16位定時(shí)器/計(jì)數(shù)器</p><p><b> ·5個(gè)中斷源</b></p><p><b&g
27、t; ·可編程串行通道</b></p><p> ·低功耗的閑置和掉電模式</p><p> ·片內(nèi)振蕩器和時(shí)鐘電路</p><p><b> 2.管腳說明</b></p><p><b> VCC:供電電壓。</b></p><
28、;p><b> GND:接地。</b></p><p> P0口:P0口為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p&
29、gt; P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(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口被寫“1”時(shí),其管腳被內(nèi)
30、部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。</p><p> P3口:P3口管腳是8個(gè)帶內(nèi)
31、部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p> P3口也可作為AT89C51的一些特殊功能口,如下表所示:</p><p><b> 口管腳 備選功能</b></p><p>
32、P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(串行輸出口)</p><p> P3.2 /INT0(外部中斷0)</p><p> P3.3 /INT1(外部中斷1)</p><p> P3.4 T0(記時(shí)器0外部輸入)</p><p> P3.5 T1(記時(shí)器1外部輸入)</p&
33、gt;<p> P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)</p><p> P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)</p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。</p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p> ALE/PROG:
34、當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處
35、理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p> /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的/PSEN信號將不出現(xiàn)。</p><p> /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),/EA將內(nèi)部鎖
36、定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出。</p><p> 3.3.3 ADC0809的功能簡介</p><p> AD
37、C0809是采用逐次逼近法的8位A/D轉(zhuǎn)換芯片,28引腳雙列直插式封裝,片內(nèi)除A/D轉(zhuǎn)換部分外還有8路模擬開關(guān)部件。最多允許8路模擬量分時(shí)輸入,共用一個(gè)A/D轉(zhuǎn)換器。</p><p> 圖3.7 ADC0809內(nèi)部邏輯結(jié)構(gòu)與引腳圖</p><p><b> 1.主要特性</b></p><p> 1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分
38、辨率為8位。</p><p> 2)具有轉(zhuǎn)換起??刂贫?。</p><p> 3)轉(zhuǎn)換時(shí)間為100μs(時(shí)鐘為640kHz時(shí)),130μs(時(shí)鐘為500kHz時(shí)) </p><p> 4)單個(gè)+5V電源供電</p><p> 5)模擬輸入電壓范圍0~+5V,不需零點(diǎn)和滿刻度校準(zhǔn)。</p><p> 6)工作溫度
39、范圍為-40~+85攝氏度</p><p> 7)低功耗,約15mW。</p><p><b> 2.引腳功能</b></p><p> ADC0809芯片有28條引腳,采用雙列直插式封裝,下面說明各引腳功能。</p><p> IN0~I(xiàn)N7:8路模擬量輸入端。</p><p> 2-
40、1~2-8:8位數(shù)字量輸出端。</p><p> ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路</p><p> ALE:地址鎖存允許信號,輸入,高電平有效。</p><p> START: A/D轉(zhuǎn)換啟動(dòng)脈沖輸入端,輸入一個(gè)正脈沖(至少100ns寬)使其啟動(dòng)(脈沖上升沿使0809復(fù)位,下降沿啟動(dòng)A/D轉(zhuǎn)換)。</p>
41、<p> EOC: A/D轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。</p><p> OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。</p><p> CLK:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ。</p><p> REF
42、(+)、REF(-):基準(zhǔn)電壓。</p><p> Vcc:電源,單一+5V。</p><p><b> GND:地。</b></p><p> 3.ADC0809的工作過程</p><p> 首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐
43、次逼近寄存器復(fù)位。下降沿啟動(dòng) A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號可用作中斷申請。當(dāng)OE輸入高電平 時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。</p><p> 轉(zhuǎn)換數(shù)據(jù)的傳送 A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時(shí)傳送給單片機(jī)進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因?yàn)橹挥写_認(rèn)完成后,才
44、能進(jìn)行傳送。為此可采用下述三種方式。</p><p><b> ?。?)定時(shí)傳送方式</b></p><p> 對于一種A/D轉(zhuǎn)換其來說,轉(zhuǎn)換時(shí)間作為一項(xiàng)技術(shù)指標(biāo)是已知的和固定的。例如ADC0809轉(zhuǎn)換時(shí)間為128μs,相當(dāng)于6MHz的MCS-51單片機(jī)共64個(gè)機(jī)器周期??蓳?jù)此設(shè)計(jì)一個(gè)延時(shí)子程序,A/D轉(zhuǎn)換啟動(dòng)后即調(diào)用此子程序,延遲時(shí)間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著
45、就可進(jìn)行數(shù)據(jù)傳送。</p><p><b> ?。?)查詢方式</b></p><p> A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0809的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可確認(rèn)轉(zhuǎn)換是否完成,并接著進(jìn)行數(shù)據(jù)傳送。</p><p><b> ?。?)中斷方式</b></p><
46、;p> 把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進(jìn)行數(shù)據(jù)傳送。</p><p> 不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即可通過指令進(jìn)行數(shù)據(jù)傳送。首先送出口地址并以信號有效時(shí),OE信號即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機(jī)接受。</p><p> 3.3.4 8279的功能簡介</p><p> 8279是可編程的鍵盤、顯
47、示接口芯片。它既具有按鍵處理功能,又具有自動(dòng)顯示功能,在單片機(jī)系統(tǒng)中應(yīng)用很廣泛。8279內(nèi)部有鍵盤FIFO/傳感器,雙重功能的8x8=64B RAM,鍵盤控制部分可控制8x8=64個(gè)按鍵或8x8陣列方式的傳感器。該芯片能自動(dòng)消抖并具有雙鍵鎖定保護(hù)功能。顯示RAM容量為16x8,即顯示器最大配置可達(dá)16位LED數(shù)碼顯示。</p><p> 圖3.8 8279芯片引腳</p><p> 1
48、.管腳、引線與功能</p><p> 8279采用40引腳封裝,其管腳、引線功能如圖3.8所示。其引腳功能如下:</p><p> D0~D7(數(shù)據(jù)總線):雙向、三態(tài)總線,和系統(tǒng)數(shù)據(jù)總線相連;用于CPU和8279間的數(shù)據(jù)/命令傳遞。</p><p> CLK(系統(tǒng)時(shí)鐘):輸入線,為8279提供內(nèi)部時(shí)鐘的輸入端。</p><p> RE
49、SET(復(fù)位):輸入線,當(dāng)RESET=1時(shí),8279復(fù)位,其復(fù)位狀態(tài)為:16個(gè)字符顯示;編碼掃描鍵盤--雙鍵鎖定;程序時(shí)鐘編碼為31。</p><p> CS(片選):輸入線,當(dāng)CS=0時(shí)8279被選中,允許CPU對其讀、寫,否則被禁止。</p><p> A0(數(shù)據(jù)選擇):輸入線。當(dāng)A0=1時(shí)CPU寫入數(shù)據(jù)為命令字,讀出數(shù)據(jù)為狀態(tài)字;A0=0時(shí)CPU讀、寫的字節(jié)均為數(shù)據(jù)。</p
50、><p> RD、WR(讀、寫信號):輸入線。低電平有效,來自CPU的控制信號,控制8279的讀、寫操作。</p><p> IRQ(中斷請求):輸出線。高電平有效。</p><p> 在鍵盤工作方式中,當(dāng)FIFO/傳感器RAM存有數(shù)據(jù)時(shí),IRQ為高電平。CPU每次從RAM中讀出數(shù)據(jù)時(shí),IRQ變?yōu)榈碗娖?。若RAM中仍有數(shù)據(jù),則IRQ再次恢復(fù)高電平。</p&g
51、t;<p> 在傳感器工作方式中,每當(dāng)檢測到傳感器狀態(tài)變化時(shí),IRQ就出現(xiàn)高電平。</p><p> SL0~SL3(掃描線):輸出線。用來掃描鍵盤和顯示器。它們可以編程設(shè)定為編碼(4中取1)或譯碼輸出(16取1)。</p><p> RL0~RL7(回復(fù)線):輸入線。它們是鍵盤矩陣或傳感矩陣的列(或行)信號輸入線。</p><p> SHIF
52、T(移位信號):輸入線、高電平有效。該輸入信號是鍵盤數(shù)據(jù)的最高位(D7),通常用來擴(kuò)充鍵開關(guān)的功能,作為控制功能鍵用。</p><p> 在選通輸入方式時(shí),該信號的上升沿可將來自RL0~RL7的數(shù)據(jù)存入FIFO RAM中。在傳感器輸入下,該信號無效。</p><p> OUTA0~OUTA3(A組顯示信號):輸出線。</p><p> OUTB0~OUTB3(
53、B組顯示信號):輸出線。</p><p> 這兩組引線都是顯示數(shù)據(jù)輸出線,與多位數(shù)字顯示的掃描線SL0~SL3同步,兩組可以獨(dú)立使用,也可以合并使用。</p><p> BD(顯示消隱):輸出線。低電平有效。該信號在數(shù)字切換顯示或使用消隱命令時(shí),將顯示消隱。</p><p> 3.3.5 74LS138的功能簡介</p><p> 7
54、4LS138 為3 線-8 線譯碼器,共有 54/74S138和 54/74LS138 兩種線路結(jié)構(gòu)型式,其工作原理如下: 當(dāng)一個(gè)選通端(G1)為高電平,另兩個(gè)選通端(/(G2A)和/(G2B))為低電平時(shí),可將地址端(A、B、C)的二進(jìn)制編碼在一個(gè)對應(yīng)的輸出端以低電平譯出。 利用 G1、/(G2A)和/(G2B)可級聯(lián)擴(kuò)展成 24 線譯碼器;若外接一個(gè)反相器還可級聯(lián)擴(kuò)展成 32 線譯碼器。
55、60;若將選通端中的一個(gè)作為數(shù)據(jù)輸入端時(shí),74LS138還可作數(shù)據(jù)分配器,用與非門組成的3線-8線譯碼器74LS138。管腳如圖3.9所示。</p><p> 圖3.9 74LS138芯片引腳</p><p> 3.3.6 74LS393的功能簡介</p><p><b> 1.特點(diǎn):</b></p><p>
56、·獨(dú)立時(shí)鐘的雙 4 位二進(jìn)制計(jì)數(shù)器</p><p> ·每個(gè)計(jì)數(shù)器都有直接清除</p><p><b> ·有效提高系統(tǒng)密度</b></p><p> ·緩沖輸出減小集電極轉(zhuǎn)換的可能性</p><p><b> 2.說明:</b></p>
57、<p> 這種雙單片電路有八個(gè)主從觸發(fā)器和附加門,以構(gòu)成兩個(gè)獨(dú)立的4 位二進(jìn)制計(jì)數(shù)器,可以構(gòu)成N 位二進(jìn)制計(jì)數(shù)器。每個(gè)計(jì)數(shù)器又有一個(gè)清除輸入和一個(gè)時(shí)鐘輸入。由于每個(gè)計(jì)數(shù)級都有并行輸出,所以系統(tǒng)定時(shí)信號可以獲得輸入計(jì)數(shù)頻率的任何因子。 </p><p> 圖3.10 74LS194管腳圖</p><p><b
58、> 第四章 軟件設(shè)計(jì)</b></p><p> 4.1 匯編語言設(shè)計(jì)特點(diǎn)</p><p> 單片機(jī)能執(zhí)行的程序,可以用多種語言來編寫,單從語言結(jié)構(gòu)及其與單片機(jī)的關(guān)系來看,可分為三大類型:機(jī)器語言,匯編語言和高級語言。在單片機(jī)的應(yīng)用系統(tǒng)程序設(shè)計(jì)時(shí),常用的是匯編語言和C語言,本系統(tǒng)采用匯編語言來編寫程序,匯編語言具有直觀、易懂、易用且易于記憶等優(yōu)點(diǎn)。用匯編語言編寫的
59、程序占用內(nèi)存少,執(zhí)行速度快,尤其適用于實(shí)時(shí)應(yīng)用場合的程序設(shè)計(jì)。因此,在單片機(jī)應(yīng)用系統(tǒng)中主要應(yīng)用匯編語言來編寫程序。</p><p> 4.2 總體設(shè)計(jì)流程圖</p><p> 圖4.1多路壓力參數(shù)采集系統(tǒng)主程序流程圖 圖4.2 定時(shí)中斷服務(wù)程序流程圖</p><p> 4.3 流程圖及其說明</p><p> 鍵盤管理子程序模
60、塊,在程序運(yùn)行過程中,可通過鍵盤在線設(shè)置報(bào)警值,并將其顯示在LED數(shù)碼管上。在采樣程序運(yùn)行過程中可以通過LAST鍵來設(shè)置報(bào)警值,程序運(yùn)行時(shí)按下LAST鍵可以進(jìn)入報(bào)警值的設(shè)置,當(dāng)輸入兩位16進(jìn)制的報(bào)警值后系統(tǒng)自動(dòng)保存新的報(bào)警值,使得程序下次運(yùn)行到報(bào)警子程序時(shí)將采樣值與設(shè)置的報(bào)警值比較來判斷是否報(bào)警。</p><p> 雙通道采樣子程序,兩個(gè)通道分別采用不同的采樣方式,并在不同區(qū)域顯示采樣值,采樣將模擬量轉(zhuǎn)換成數(shù)字
61、量并顯示。進(jìn)入中斷服務(wù)程序時(shí),判斷秒計(jì)數(shù)器是否達(dá)到20和秒計(jì)數(shù)器是否等于2來決定是否調(diào)用采樣子程序。雙通道的采樣子程序流程圖分別如圖4.4和圖4.5所示。</p><p> 報(bào)警子程序部分采用LED燈光報(bào)警,當(dāng)采樣值與報(bào)警值是比較后高于報(bào)警值時(shí)便會產(chǎn)生報(bào)警,LED燈閃爍報(bào)警,當(dāng)采樣值低于報(bào)警值時(shí)LED燈熄滅,不報(bào)警。報(bào)警子程序流程圖如圖4.6所示。</p><p> 第五章 系統(tǒng)調(diào)試
62、及使用說明</p><p><b> 5.1系統(tǒng)調(diào)試</b></p><p> 調(diào)試過程中主要遇到的是軟件方面的問題,硬件方面的問題較少,僅有一次我所用的設(shè)備有個(gè)LED燈顯示出了問題,換了一個(gè)新的后便可以了。軟件方面,剛開始著手設(shè)計(jì)該系統(tǒng)時(shí),在LED的顯示程序花了點(diǎn)時(shí)間,首先通過A/D0809將采集的數(shù)據(jù)存儲在寄存器中,接著便是要把采集到的數(shù)據(jù)顯示在8279擴(kuò)展鍵
63、盤上指定的LED數(shù)碼管上,8279擴(kuò)展鍵盤共有8個(gè)數(shù)碼管,一開始采集的數(shù)據(jù)總是不能實(shí)時(shí)的顯示在數(shù)碼管上,最后分析改正程序,調(diào)試了5、6次終于能在指定的數(shù)碼管上實(shí)時(shí)的顯示采集進(jìn)來的數(shù)據(jù)。</p><p> 單通道的采樣顯示設(shè)計(jì)成功了,雙通道也就很容易的出來了。接下來設(shè)計(jì)鍵盤功能設(shè)置模塊是設(shè)計(jì)整個(gè)系統(tǒng)過程中花的時(shí)間最長的。首先,在采樣過程中可以隨時(shí)進(jìn)行鍵盤的設(shè)置,主要設(shè)置報(bào)警值,并且設(shè)置報(bào)警之后,以新的報(bào)警值為標(biāo)準(zhǔn)
64、,系統(tǒng)自動(dòng)判斷是否超過報(bào)警值從而決定是否報(bào)警。為了滿足要求我一一調(diào)試程序,一步一步滿足,記得當(dāng)時(shí)我的程序能夠設(shè)置報(bào)警值并在相應(yīng)LED數(shù)碼管上顯示,但是系統(tǒng)不能以新設(shè)置的報(bào)警值報(bào)警,于是再改程序,改正后調(diào)試發(fā)現(xiàn)設(shè)置功能不起作用,系統(tǒng)在采樣過程中不響應(yīng)鍵盤設(shè)置子程序,如此反復(fù)改了好多次,最后一個(gè)禮拜的設(shè)計(jì)終于是調(diào)試成功,最后要做的就是將報(bào)警子程序加進(jìn)去就行了,這部分是比較簡單的,調(diào)試了一兩次就成功了。最后運(yùn)行程序時(shí),沒有錯(cuò)誤,各部分功能都能
65、很好的實(shí)現(xiàn)。</p><p><b> 5.2使用說明</b></p><p> 按照系統(tǒng)硬件原理圖3.2接線,接通電源,此時(shí)8279擴(kuò)展鍵盤上8個(gè)數(shù)碼管從左至右分別顯示:000100,第7和第8個(gè)數(shù)碼管初始不顯示。左邊3個(gè)數(shù)碼管為0通道顯示,第1個(gè)0表示通道0,第2和第3個(gè)0表示0通道的初始值為零,第4個(gè)數(shù)碼管到第6個(gè)數(shù)碼管為1通道顯示,1表示1通道,00為初始
66、值。</p><p> 按下8279擴(kuò)展鍵盤上的EXEC功能鍵,系統(tǒng)便開始運(yùn)行,此時(shí)可以看到第2和第3個(gè)數(shù)碼管上顯示0通道的采樣值,第5和第6個(gè)數(shù)碼管上顯示1通道的采樣值。運(yùn)行時(shí)可以隨時(shí)按下LAST功能鍵來設(shè)置新報(bào)警值,設(shè)置過程中會在第7和第8個(gè)數(shù)碼管上顯示當(dāng)前設(shè)置的新報(bào)警值。</p><p> 若采樣值超過報(bào)警值led燈會開始閃爍報(bào)警。當(dāng)采樣值低于報(bào)警值時(shí)led燈停止閃爍,報(bào)警解除。
67、</p><p> 第六章 收獲、體會</p><p> 通過單片機(jī)課程設(shè)計(jì),我不僅加深了對單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新,是要我們學(xué)會將理論很好地聯(lián)系實(shí)際,并不斷地去開動(dòng)自己的大腦的。這次單片機(jī)課程設(shè)計(jì)不僅鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上沒有學(xué)到過的知識,掌握了一種系統(tǒng)的研究方
68、法,可以進(jìn)行一些簡單的編程。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,因此可以針對性地學(xué)習(xí)和鞏固自己的不懂和已學(xué)的知識。 </p><p> 經(jīng)過半個(gè)多月的努力,順利的完成了單片機(jī)課設(shè)。這是一個(gè)磨練意志的過程。從課題的選擇開始,流程框圖
69、的設(shè)計(jì)、硬件和軟件系統(tǒng)的設(shè)計(jì)、到最后的Proteus軟件仿真完成,這其中經(jīng)歷了很多困難,但是更重要的是在這個(gè)過程中我得到了很大的鍛煉。一方面通過C51單片機(jī)等一些器件的設(shè)計(jì)讓我學(xué)習(xí)和掌握了單片機(jī)技術(shù)的基礎(chǔ)知識和技術(shù)要點(diǎn),也使以前學(xué)的很多知識都得到了運(yùn)用;另一方面在用Proteus軟件畫電路圖時(shí),然后再轉(zhuǎn)換成一維的WORD中進(jìn)行編輯,這個(gè)過程中讓我掌握了計(jì)算機(jī)輔助的設(shè)計(jì)技術(shù)。當(dāng)然,這是一個(gè)需要不斷的嘗試,不斷的校核,不斷的修改,最后完成一
70、個(gè)合理的設(shè)計(jì)的過程。需要的是細(xì)心和耐心。在很大程度上培養(yǎng)了我拼搏的工作精神。使我受益匪淺,更加明確了自己專業(yè)的方向。</p><p> 通過本次課設(shè),我學(xué)到了更多的關(guān)于單片機(jī)技術(shù)方面的許多專業(yè)知識,其實(shí)如何有效和快速的找到資料也是本次課程設(shè)計(jì)給我的啟發(fā),利用好圖書館和網(wǎng)絡(luò),是資源的到最好的利用。與他人交流思想是取得成功的關(guān)鍵,在交流中,不僅強(qiáng)化了自己原有的知識體系,也擴(kuò)展了自己的思維。課程設(shè)計(jì)過程中遇到不懂的難
71、題可以向老師或者是同學(xué)請教,這樣不僅可以讓自己學(xué)到更多,同時(shí)討論過程中使得和你討論的同學(xué)雙方都能有對單片機(jī)更深的認(rèn)識。這是一個(gè)通過思考、發(fā)問、自己解惑并動(dòng)手、提高的過程。我會在以后的學(xué)習(xí)中不斷學(xué)習(xí),積累經(jīng)驗(yàn),完善自己。</p><p> 這里我要感謝我的課程設(shè)計(jì)指導(dǎo)老師,xx老師!沒有xx老師的細(xì)致講解和耐心的檢查,也就沒有我的多路參數(shù)采集系統(tǒng)的設(shè)計(jì)成功,非常感謝!</p><p>
72、附錄 源程序及說明</p><p> ORG 0000H</p><p><b> AJMP MAIN</b></p><p> ORG 000BH</p><p> AJMP T0INT</p><p> ORG 001BH</p><p> AJM
73、P T1INT</p><p> ORG 0030H</p><p> MAIN: MOV SP,#53H</p><p> MOV 30H,#86H</p><p> MOV 31H,#40H</p><p> LCALL KEY82 ;調(diào)鍵盤管理子程序</p><
74、p> MOV R5,#20H</p><p> MOV IE,#8AH</p><p> MOV IP,#0AH</p><p> MOV TMOD,#51H ;設(shè)置定時(shí)器工作方式</p><p> MOV R5,#20H</p><p> MOV TL0,#58H ;定時(shí)5
75、0ms</p><p> MOV TH0,#9EH </p><p> MOV TL1,#0B0H ;定時(shí)100ms</p><p> MOV TH1,#3CH</p><p> MOV R2,#2</p><p> SETB TR0 ;開T0中斷</p><
76、;p> SETB TR1 ;開T1中斷</p><p> MAIN1: ACALL AD0</p><p><b> ACALL AD1</b></p><p> SJMP MAIN1</p><p> ;********定時(shí)器中斷服務(wù)子程序**********</p>
77、<p> T0INT: MOV TL0,#58H</p><p> MOV TH0,#9EH</p><p> DJNZ R5,BACK1</p><p> MOV R5,#20H </p><p> BACK1: RETI</p><p> T1INT: MOV TL1
78、,#0B0H</p><p> MOV TH1,#3CH</p><p> DJNZ R2,BACK2</p><p> MOV R2,#2 </p><p> BACK2: RETI</p><p> ;**********EXEC鍵控制采樣是否開始****************</p>
79、;<p> KEY82 : MOV DPTR,#0B001H ;初始化顯示</p><p> MOV A,#00H</p><p> MOVX @DPTR,A</p><p> MOV A,#32H</p><p> MOVX @DPTR,A</p><p> MOV A
80、,#0DFH</p><p> MOVX @DPTR,A</p><p> CSH:MOVX A,@DPTR</p><p> JB ACC.7,CSH</p><p> MOV DPTR,#0B000H ;第一個(gè)數(shù)碼管顯示0 ,表示通道 0</p><p> MOV A,#0CH<
81、/p><p> MOVX @DPTR,A</p><p><b> INC DPTR</b></p><p> MOV A,#80H</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#0B001H ;第3個(gè)數(shù)碼管顯示1 ,表示通道1</
82、p><p> MOV A,#83H</p><p> MOVX @DPTR,A</p><p> MOV A,#9FH</p><p> MOV DPTR,#0B000H</p><p> MOVX @DPTR,A</p><p><b> INC DPTR</b>
83、</p><p> MOV A,#83H</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#0B001H ;初始顯示0</p><p> MOV A,#81H</p><p> MOVX @DPTR,A</p><p> MOV A,#
84、0CH</p><p> MOV DPTR,#0B000H</p><p> MOVX @DPTR,A</p><p><b> INC DPTR</b></p><p> MOV A,#81H</p><p> MOVX @DPTR,A</p><p> MO
85、V DPTR,#0B001H ;初始顯示0</p><p> MOV A,#82H</p><p> MOVX @DPTR,A</p><p> MOV A,#0CH</p><p> MOV DPTR,#0B000H</p><p> MOVX @DPTR,A</p><
86、p><b> INC DPTR</b></p><p> MOV A,#82H</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#0B001H ;初始顯示0</p><p> MOV A,#84H</p><p> MOVX @DP
87、TR,A</p><p> MOV A,#0CH</p><p> MOV DPTR,#0B000H</p><p><b> INC DPTR</b></p><p> MOV A,#84H</p><p> MOVX @DPTR,A</p><p> MOV
88、 DPTR,#0B001H ;初始顯示0</p><p> MOV A,#85H</p><p> MOVX @DPTR,A</p><p> MOV A,#0CH</p><p> MOV DPTR,#0B000H</p><p> MOVX @DPTR,A</p><p
89、><b> INC DPTR</b></p><p> MOV A,#85H</p><p> MOVX @DPTR,A</p><p> E_KEYSM:MOV DPTR,#0B001H ;判斷EXEC執(zhí)行鍵是否按下</p><p> MOVX A,@DPTR</p><
90、;p> ANL A,#07H</p><p> CJNE A,#00H,E_K</p><p> AJMP E_KEYSM</p><p> E_K: MOV B,#0E1H</p><p> MOV DPTR,#0B000H</p><p> MOVX A,@DPTR</p>&
91、lt;p> CJNE A,B,E_KEYSM</p><p><b> RET</b></p><p> ;*************雙通道采樣*********************</p><p> AD0: MOV A,#01H ;0通道采樣顯示</p><p>
92、 MOV DPTR,#9000H</p><p> MOVX @DPTR,A</p><p> MOVX A,@DPTR</p><p><b> MOV R0,A</b></p><p> LCALL F1 ;調(diào)鍵盤設(shè)置子程序</p><p><b> MOV
93、 A,R0</b></p><p><b> SWAP A</b></p><p> ANL A,#0FH</p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p><b> MOV R1,A</b>&
94、lt;/p><p> MOV DPTR,#0B001H</p><p> MOV A,#81H</p><p> MOVX @DPTR,A</p><p><b> MOV A,R1</b></p><p> MOV DPTR,#0B000H</p><p> MO
95、VX @DPTR,A</p><p><b> INC DPTR</b></p><p> MOV A,#81H</p><p> MOVX @DPTR,A</p><p><b> MOV A,R0</b></p><p> ANL A,#0FH</p>
96、;<p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p><b> MOV R1,A</b></p><p> MOV DPTR,#0B001H</p><p> MOV A,#82H</p><p> MOVX @DPTR,
97、A</p><p><b> MOV A,R1</b></p><p> MOV DPTR,#0B000H</p><p> MOVX @DPTR,A</p><p><b> INC DPTR</b></p><p> MOV A,#82H</p>
98、<p> MOVX @DPTR,A</p><p><b> MOV A,R0</b></p><p> MOV R1,30H</p><p> CJNE R1,#88H,AL</p><p> LCALL ALARM1 ;設(shè)置報(bào)警值后檢測報(bào)警</p><p>
99、;<b> SJMP TO</b></p><p> AL: LCALL ALARM ;未設(shè)置報(bào)警值檢測報(bào)警</p><p> TO: LCALL DELAY</p><p> LCALL DELAY</p><p><b> RET</b></p&g
100、t;<p> AD1: MOV A,#02H ;1通道采樣顯示</p><p> MOV DPTR,#9000H</p><p> MOVX @DPTR,A</p><p> MOVX A,@DPTR</p><p><b> MOV R0,A</b></p>
101、<p><b> MOV A,R0</b></p><p><b> SWAP A</b></p><p> ANL A,#0FH</p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p><b
102、> MOV R1,A</b></p><p> MOV DPTR,#0B001H</p><p> MOV A,#84H</p><p> MOVX @DPTR,A</p><p><b> MOV A,R1</b></p><p> MOV DPTR,#0B000H
103、</p><p> MOVX @DPTR,A</p><p><b> INC DPTR</b></p><p> MOV A,#84H</p><p> MOVX @DPTR,A</p><p><b> MOV A,R0</b></p><p
104、> ANL A,#0FH</p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p><b> MOV R1,A</b></p><p> MOV DPTR,#0B001H</p><p> MOV A,#85H</p>
105、;<p> MOVX @DPTR,A</p><p><b> MOV A,R1</b></p><p> MOV DPTR,#0B000H</p><p> MOVX @DPTR,A</p><p><b> INC DPTR</b></p><p>
106、; MOV A,#85H</p><p> MOVX @DPTR,A</p><p><b> MOV A,R0</b></p><p> AL1: LCALL ALARM ;未設(shè)置報(bào)警值檢測報(bào)警</p><p> LCALL DELAY</p><p>
107、 LCALL DELAY</p><p><b> RET</b></p><p> F1: MOV R4,A</p><p> MOV DPTR,#0B001H ;判斷F1鍵是否按下</p><p> MOVX A,@DPTR</p><p> ANL A,#07H
108、</p><p> CJNE A,#00H,KCH</p><p><b> RET</b></p><p> KCH: MOV B,#0E3H</p><p> MOV DPTR,#0B000H</p><p> MOVX A,@DPTR</p><p>
109、 CJNE A,B,OUT1</p><p><b> AJMP CHK</b></p><p> OUT1: MOV A,R4</p><p><b> MOV R0,A</b></p><p><b> RET</b></p><p>
110、CHK: MOV 30H,#86H</p><p> MOV 31H,#40H</p><p> CHK0: MOV DPTR,#0B001H ;鍵盤設(shè)置報(bào)警值</p><p> MOVX A,@DPTR</p><p> ANL A,#07H</p><p> CJNE A,#00H
111、,CHK1</p><p><b> SJMP CHK0</b></p><p> CHK1: MOV DPTR,#0B000H</p><p> MOVX A,@DPTR</p><p><b> MOV B,A</b></p><p> MOV R3,#00H
112、</p><p> MOV DPTR,#KEYTAB1</p><p> CHK2: MOV A,#00H</p><p> MOVC A,@A+DPTR</p><p> CJNE A,B,CHK3</p><p><b> AJMP CHK4</b></p><
113、p> CHK3: INC DPTR</p><p><b> INC R3</b></p><p><b> MOV A,R3</b></p><p><b> AJMP CHK2</b></p><p> CHK4: MOV A,30H</p>
114、<p> MOV DPTR,#0B001H</p><p> MOVX @DPTR,A</p><p><b> MOV A,R3</b></p><p> MOV R1,31H</p><p><b> MOV @R1,A</b></p><p>&
115、lt;b> INC 31H</b></p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p> MOV DPTR,#0B000H</p><p> MOVX @DPTR,A</p><p><b> INC 30H</b&
116、gt;</p><p><b> MOV A,30H</b></p><p> MOV R1,30H</p><p> CJNE A,#88H,CON</p><p><b> MOV A,R3</b></p><p> ANL A,#0FH</p>
117、<p><b> ADD A,R0</b></p><p><b> MOV 32H,A</b></p><p><b> SJMP OUT1</b></p><p> CON: MOV A,R3</p><p> ANL A,#0FH</p>
118、;<p><b> SWAP A</b></p><p><b> MOV R0,A</b></p><p><b> LJMP CHK0</b></p><p> ;**********報(bào)警檢測1******************</p><p>
119、ALARM: MOV R6,#067H ;初始報(bào)警值</p><p><b> MOV R4,A</b></p><p><b> CLR C</b></p><p><b> CLR P1.7</b></p><p><b> SUBB A,R
120、6</b></p><p><b> JC OUT</b></p><p><b> CLR P1.7</b></p><p> ACALL DELAY</p><p><b> SETB P1.7</b></p><p><b
121、> MOV A,R4</b></p><p><b> MOV R0,A</b></p><p><b> RET</b></p><p> ; *********** 報(bào)警檢測2***************</p><p> ALARM1:MOV R6,32H
122、 ;鍵盤設(shè)置報(bào)警值后報(bào)警檢測</p><p><b> MOV A,R4</b></p><p><b> CLR C</b></p><p><b> CLR P1.7</b></p><p><b> SUBB A,R6</b><
123、/p><p><b> JC OUT</b></p><p><b> CLR P1.7</b></p><p> ACALL DELAY</p><p><b> SETB P1.7</b></p><p><b> MOV A,R4&
124、lt;/b></p><p><b> MOV R0,A</b></p><p><b> RET</b></p><p> OUT: MOV A,R4</p><p><b> MOV R0,A</b></p><p><b&g
125、t; RET</b></p><p> DELAY: MOV R6,#0FFh</p><p> DELAY2:MOV R7,#0FFh</p><p> DELAY1:DJNZ R7,DELAY1</p><p> DJNZ R6,DELAY2</p><p><b> RET<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多路彩燈控制器課程設(shè)計(jì)
- 多路彩燈控制器課程設(shè)計(jì)
- 多路彩燈控制器 課程設(shè)計(jì)
- eda課程設(shè)計(jì)--多路彩燈控制器
- 數(shù)電課程設(shè)計(jì)---多路彩燈控制器
- eda課程設(shè)計(jì)--多路彩燈控制器的設(shè)計(jì)
- 課程設(shè)計(jì)---數(shù)據(jù)采集及處理系統(tǒng)的設(shè)計(jì)
- 基于FPGA+DSP的多路采集與實(shí)時(shí)處理系統(tǒng)的設(shè)計(jì).pdf
- 數(shù)字電路課程設(shè)計(jì)--多路彩燈控制器的設(shè)計(jì)
- 課程設(shè)計(jì)---多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
- 多路數(shù)據(jù)采集系統(tǒng)課程設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)—多路彩燈控制器的設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)報(bào)告---多路彩燈控制器
- 多路溫度采集課程設(shè)計(jì)
- 實(shí)時(shí)圖像處理系統(tǒng)中的DMA控制器設(shè)計(jì)和實(shí)現(xiàn).pdf
- 多路溫度采集課程設(shè)計(jì)
- eda課程設(shè)計(jì)--用vhdl實(shí)現(xiàn)多路彩燈控制器的設(shè)計(jì)
- 圖像實(shí)時(shí)采集處理系統(tǒng)的研究與設(shè)計(jì).pdf
- 電子信息工程課程設(shè)計(jì)---多路彩燈控制器的設(shè)計(jì)
- 基于微控制器的壓載水電解處理系統(tǒng).pdf
評論
0/150
提交評論