




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于AT89C52的數(shù)字式壓力表設(shè)計(jì)及實(shí)現(xiàn)一 設(shè)計(jì)要求4位LED顯示傳感器調(diào)理電路A/D電路數(shù)據(jù)處理0 10v15vMAX197如1/2本數(shù)字式壓力表傳感器能夠辨識(shí)-10kN到+10kN壓力,需設(shè)計(jì)傳感器供電電路,即10V穩(wěn)壓電路。傳感器在量程范圍內(nèi)返回-17mV到+17mV電壓,以供AD采樣電路進(jìn)行模擬到數(shù)字轉(zhuǎn)換,為使原始數(shù)據(jù)能夠到達(dá)足夠采樣精度,需設(shè)計(jì)調(diào)理電路及相應(yīng)的供電電路。數(shù)據(jù)處理模塊需設(shè)計(jì)計(jì)算機(jī)代碼及相應(yīng)的顯示模塊,如LED,用以用戶查看當(dāng)前的壓力信息。二 器件選型2.1 傳感器傳感器默認(rèn)為老師指定型號(hào),由于提供了供電管腳及信號(hào)管腳,那么可對該類傳感器進(jìn)行應(yīng)用。2.2 調(diào)理電路調(diào)理電
2、路為實(shí)現(xiàn)放大及濾波功能,選用AD620及OP07,按照典型電路進(jìn)行連接。其中AD620為低本錢,高精度的單片儀器放大器,為8引腳SOIC塑封外形,見圖1,其主要特點(diǎn)如表1。表1供電電源增益選擇增益范圍最大增益誤差%帶寬功耗電阻編程1至10k0.7%1MHz最大650mV輸入失調(diào)電壓輸入失調(diào)漂移輸入偏置電流最小共模抑制比溫度范圍最大125uV最大1uV/攝氏度最大20nA93dB-40至85攝氏度圖1 AD620塑封外形 圖2 OP07塑封外形AD620具有高精度(最大非線性度40 ppm)、低失調(diào)電壓(最大50 µV)和低失調(diào)漂移(最大0.6 µV/°C)特性,是
3、電子秤和傳感器接口等精密數(shù)據(jù)采集系統(tǒng)的理想之選。它還具有低噪聲、低輸入偏置電流和低功耗特性,使之非常適合ECG和無創(chuàng)血壓監(jiān)測 儀等醫(yī)療應(yīng)用。由于其輸入級(jí)采用Supereta處理,因此可以實(shí)現(xiàn)最大1.0 nA的低輸入偏置電流。AD620在1 kHz時(shí)具有9 nV/Hz的低輸入電壓噪聲,在0.1 Hz至10 Hz頻帶內(nèi)的噪聲為0.28 µV峰峰值,輸入電流噪聲為0.1 pA/ Hz,因而作為前置放大器使用效果很好。同時(shí),AD620的0.01%建立時(shí)間為15 µs,非常適合多路復(fù)用應(yīng)用;而且本錢很低,足以實(shí)現(xiàn)每通道一個(gè)儀表放大器的設(shè)計(jì)。OP07芯片是一種低噪聲,塑封見圖2,非斬波
4、穩(wěn)零的雙極性運(yùn)算放大器集成電路。由于OP07具有非常低的輸入失調(diào)電壓對于OP07A最大為 25V,所以O(shè)P07在很多應(yīng)用場合不需要額外的調(diào)零措施。OP07同時(shí)具有輸入偏置電流低OP07A為±2nA和開環(huán)增益高對于OP07A為 300V/mV的特點(diǎn),這種低失調(diào)、高開環(huán)增益的特性使得OP07特別適用于高增益的測量設(shè)備和放 大傳感器的微弱信號(hào)等方面,以下為其局部特性:超低偏移: 150V最大。 低輸入偏置電流: 1.8nA 。低失調(diào)電壓漂移: 0.5V/ 。 超穩(wěn)定,時(shí)間: 2V/month最大高電源電壓范圍: ±3V至±22V。2.3 AD模塊模數(shù)轉(zhuǎn)換模塊選用MAX1
5、97進(jìn)行模數(shù)轉(zhuǎn)換,塑封圖見圖3。MAX197無需外接元器件就可獨(dú)立完成A/D轉(zhuǎn)換功能。它可分為內(nèi)部采樣模式和外部采樣模式,采樣模式由控制存放器的D5位決定。在內(nèi)部采樣控制模式 (控制位置0)中,由寫脈沖啟動(dòng)采樣間隔,經(jīng)過瞬間的采樣間隔(芯片時(shí)鐘為2MHz時(shí),為3ms),即開始A/D轉(zhuǎn)換。在外部采樣模式(D5=1)中,由 兩個(gè)寫脈沖分別控制采樣和A/D轉(zhuǎn)換。在第一個(gè)寫脈沖出現(xiàn)時(shí),寫入ACQMOD為1,開始采樣間隔。在第二個(gè)寫脈沖出現(xiàn)時(shí),寫入控制字ACQMOD為 0,MAX197停止采樣,開始A/D轉(zhuǎn)換。這兩個(gè)寫脈沖之間的時(shí)間間隔為一次采樣時(shí)間。當(dāng)一次轉(zhuǎn)換結(jié)束后,MAX197相應(yīng)的INT引腳置低電
6、平,通知 處理器可以讀取轉(zhuǎn)換結(jié)果。內(nèi)部采樣模式的數(shù)據(jù)轉(zhuǎn)換時(shí)序?qū)τ谀M到數(shù)字量的轉(zhuǎn)換,時(shí)序要求非常嚴(yán)格,由于MAX197的數(shù)字信號(hào)輸出引腳是復(fù)用的,要正確讀 出轉(zhuǎn)換結(jié)果,時(shí)序要求尤其重要。在一次采樣開始前,可以通過單片機(jī)的8位數(shù)據(jù)線把這些控制字寫入MAX197來初始化相應(yīng)的參數(shù)。然后按照一定的時(shí)序進(jìn)行 采樣和轉(zhuǎn)換。圖3 MAX197塑封圖對于模擬到數(shù)字量的轉(zhuǎn)換,時(shí)序要求非常嚴(yán)格,由于MAX197的數(shù)字信號(hào)輸出引腳是復(fù)用的,要正確讀出轉(zhuǎn)換結(jié)果,時(shí)序要求尤其重要。在一次采樣開始前,可 以通過單片機(jī)的8位數(shù)據(jù)線把這些控制字寫入MAX197來初始化相應(yīng)的參數(shù)。然后按照一定的時(shí)序進(jìn)行采樣和轉(zhuǎn)換。 圖3中H
7、BEN為12位數(shù)據(jù)高4位或低8位有效控制位,當(dāng)此位為高時(shí),高4位數(shù)據(jù)有效,為低時(shí)低8位數(shù)據(jù)有效??梢酝ㄟ^控制這個(gè)引腳來讀取12位的轉(zhuǎn)換結(jié)果。2.4 數(shù)據(jù)處理模塊數(shù)據(jù)處理模塊選用AT89C52內(nèi)核單片機(jī),外圍電路選用MAX232實(shí)現(xiàn)串口通信,LED用以顯示用戶期望數(shù)據(jù)。AT89C52是51系列單片機(jī)的一個(gè)型號(hào),它是ATMEL公司生產(chǎn)的。AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器RAM,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中
8、央處理器和Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C52單片機(jī)可為您提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出I/O端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)本錢。兼容MCS51指令系統(tǒng)· 8k可反復(fù)擦寫(>1000次Flash ROM · 32個(gè)雙向I/O口 · 256x8bit內(nèi)部RAM
9、 · 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷 · 時(shí)鐘頻率0-24MHz · 2個(gè)串行中斷 · 可編程UART串行通道 · 2個(gè)外部中斷源 · 共6個(gè)中斷源 · 2個(gè)讀寫中斷口線 · 3級(jí)加密位 · 低功耗空閑和掉電模式 · 軟件設(shè)置睡眠和喚醒功能 AT89C52P為40 腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對會(huì)聚主IC 內(nèi)部存放器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)
10、聚測試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL119 腳和XTAL218 腳為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd9 腳為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC40 腳和VSS20 腳為供電端口,分別接+5V電源的正負(fù)端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0 端口3239 腳被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS18腳和SCLS19腳端口,12 腳、27 腳及28 腳定義為握手信號(hào)功
11、能端口,連接主板CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。P0 口P0 口是一組8 位漏極開路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL邏輯門電路,對端口P0 寫“1時(shí),可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址低8 位和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash 編程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。P1 口P1 是一個(gè)帶內(nèi)部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級(jí)可驅(qū)動(dòng)吸收或輸出電流4 個(gè)TTL 邏輯
12、門電路。對端口寫“1,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。與AT89C52 不同之處是,P1.0 和P1.1 還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入P1.0/T2和輸入P1.1/T2EX,參見表1。Flash 編程和程序校驗(yàn)期間,P1 接收低8 位地址。表1引腳號(hào)功能特性T2,時(shí)鐘輸出T2EX定時(shí)/計(jì)數(shù)器2P2 口P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)吸收或輸出電流4 個(gè)TTL 邏輯門電路。對端口P2 寫“1,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)
13、可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問外部程序存儲(chǔ)器或16 位地址的外部數(shù)據(jù)存儲(chǔ)器例如執(zhí)行MOVX DPTR 指令時(shí),P2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲(chǔ)器如執(zhí)行MOVX RI 指令時(shí),P2 口輸出P2 鎖存器的內(nèi)容。Flash 編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。P3 口P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)吸收或輸出電流4 個(gè)TTL 邏輯門電路。對P3 口寫入“1時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3 口將用上拉電阻輸出
14、電流IIL。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能P3 口還接收一些用于Flash 閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。RST復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ALE/PROG當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE地址鎖存允許輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的脈沖信號(hào),因此它可對外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE 脈沖。對Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖PROG。如有必要,可通過對特殊功能存放器SFR
15、區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位無效。PSEN程序儲(chǔ)存允許PSEN輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52 由外部程序存儲(chǔ)器取指令或數(shù)據(jù)時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。EA/VPP外部訪問允許。欲使CPU 僅訪問外部程序存儲(chǔ)器地址為0000HFFFFH,EA 端必須保持低電平接地。需注意的是:如果加密位LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高
16、電平接Vcc端,CPU 那么執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。Flash 存儲(chǔ)器編程時(shí),該引腳加上+12V 的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V 編程電壓Vpp。XTAL1振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2振蕩器反相放大器的輸出端。特殊功能存放器在AT89C52 片內(nèi)存儲(chǔ)器中,80H-FFH 共128 個(gè)單元為特殊功能存放器SFE,SFR 的地址空間映象如表2 所示。并非所有的地址都被定義,從80HFFH 共128 個(gè)字節(jié)只有一局部被定義,還有相當(dāng)一局部沒有定義。對沒有定義的單元讀寫將是無效的,讀出的數(shù)值將不確定,而寫入的數(shù)據(jù)也將喪失。不應(yīng)將數(shù)據(jù)“1寫入未定義的單
17、元,由于這些單元在將來的產(chǎn)品中可能賦予新的功能,在這種情況下,復(fù)位后這些單元數(shù)值總是“0。 AT89C52除了與AT89C52所有的定時(shí)/計(jì)數(shù)器0 和定時(shí)/計(jì)數(shù)器1 外,還增加了一個(gè)定時(shí)/計(jì)數(shù)器2。定時(shí)/計(jì)數(shù)器2 的控制和狀態(tài)位位于T2CON、T2MOD,存放器對RCAO2H、RCAP2L是定時(shí)器2 在16 位捕獲方式或16 位自動(dòng)重裝載方式下的捕獲/自動(dòng)重裝載存放器。數(shù)據(jù)存儲(chǔ)器AT89C52 有256 個(gè)字節(jié)的內(nèi)部RAM,80H-FFH 高128 個(gè)字節(jié)與特殊功能存放器SFR地址是重疊的,也就是高128字節(jié)的RAM 和特殊功能存放器的地址是相同的,但物理上它們是分開的。當(dāng)一條指令訪問7FH
18、以上的內(nèi)部地址單元時(shí),指令中使用的尋址方式是不同的,也即尋址方式?jīng)Q定是訪問高128 字節(jié)RAM 還是訪問特殊功能存放器。如果指令是直接尋址方式那么為訪問特殊功能存放器。例如,下面的直接尋址指令訪問特殊功能存放器0A0H即P2 口地址單元。MOV 0A0H,#data間接尋址指令訪問高128 字節(jié)RAM,例如,下面的間接尋址指令中,R0 的內(nèi)容為0A0H,那么訪問數(shù)據(jù)字節(jié)地址為0A0H,而不是P2 口0A0H。MOV R0,#data堆棧操作也是間接尋址方式,所以,高128 位數(shù)據(jù)RAM 亦可作為堆棧區(qū)使用。·定時(shí)器0和定時(shí)器1:AT89C52的定時(shí)器0和定時(shí)器1 的工作方式與AT89
19、C52 相同。定時(shí)器2定時(shí)器2 是一個(gè)16 位定時(shí)/計(jì)數(shù)器。它既可當(dāng)定時(shí)器使用,也可作為外部事件計(jì)數(shù)器使用,其工作方式由特殊功能寄存器T2CON如表3的C/T2 位選擇。定時(shí)器2 有三種工作方式:捕獲方式,自動(dòng)重裝載向上或向下計(jì)數(shù)方式和波特率發(fā)生器方式,工作方式由T2CON 的控制位來選擇。定時(shí)器2 由兩個(gè)8 位存放器TH2 和TL2 組成,在定時(shí)器工作方式中,每個(gè)機(jī)器周期TL2 存放器的值加1,由于一個(gè)機(jī)器周期由12 個(gè)振蕩時(shí)鐘構(gòu)成,因此,計(jì)數(shù)速率為振蕩頻率的1/12。在計(jì)數(shù)工作方式時(shí),當(dāng)T2 引腳上外部輸入信號(hào)產(chǎn)生由1 至0 的下降沿時(shí),存放器的值加1,在這種工作方式下,每個(gè)機(jī)器周期的5S
20、P2 期間,對外部輸入進(jìn)行采樣。假設(shè)在第一個(gè)機(jī)器周期中采到的值為1,而在下一個(gè)機(jī)器周期中采到的值為0,那么在緊跟著的下一個(gè)周期的S3P1 期間存放器加1。由于識(shí)別1 至0 的跳變需要2 個(gè)機(jī)器周期24 個(gè)振蕩周期,因此,最高計(jì)數(shù)速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個(gè)完整周期的時(shí)間,以保證輸入信號(hào)至少被采樣一次。捕獲方式在捕獲方式下,通過T2CON 控制位EXEN2 來選擇兩種方式。如果EXEN2=0,定時(shí)器2 是一個(gè)16 位定時(shí)器或計(jì)數(shù)器,計(jì)數(shù)溢出時(shí),對T2CON 的溢出標(biāo)志TF2 置位,同時(shí)激活中斷。如果EXEN2=1,定時(shí)器2 完成相同的操作,而當(dāng)
21、T2EX 引腳外部輸入信號(hào)發(fā)生1 至0 負(fù)跳變時(shí),也出現(xiàn)TH2 和TL2 中的值分別被捕獲到RCAP2H 和RCAP2L 中。另外,T2EX 引腳信號(hào)的跳變使得T2CON 中的EXF2 置位,與TF2 相仿,EXF2 也會(huì)激活中斷。捕獲方式如圖4 所示。自動(dòng)重裝載向上或向下計(jì)數(shù)器方式當(dāng)定時(shí)器2工作于16位自動(dòng)重裝載方式時(shí),能對其編程為向上或向下計(jì)數(shù)方式,這個(gè)功能可通過特殊功能存放器T2CON的DCEN 位允許向下計(jì)數(shù)來選擇的。復(fù)位時(shí),DCEN 位置“0,定時(shí)器2 默認(rèn)設(shè)置為向上計(jì)數(shù)。當(dāng)DCEN置位時(shí),定時(shí)器2 既可向上計(jì)數(shù)也可向下計(jì)數(shù),這取決于T2EX 引腳的值,參見圖5,當(dāng)DCEN=0 時(shí),
22、定時(shí)器2 自動(dòng)設(shè)置為向上計(jì)數(shù),在這種方式下,T2CON 中的EXEN2 控制位有兩種選擇,假設(shè)EXEN2=0,定時(shí)器2 為向上計(jì)數(shù)至0FFFFH 溢出,置位TF2 激活中斷,同時(shí)把16 位計(jì)數(shù)存放器RCAP2H 和RCAP2L重裝載,RCAP2H 和RCAP2L 的值可由軟件預(yù)置。假設(shè)EXEN2=1,定時(shí)器2 的16 位重裝載由溢出或外部輸入端T2EX 從1 至0 的下降沿觸發(fā)。這個(gè)脈沖使EXF2 置位,如果中斷允許,同樣產(chǎn)生中斷。定時(shí)器2 的中斷入口地址是:002BH 0032H 。當(dāng)DCEN=1 時(shí),允許定時(shí)器2 向上或向下計(jì)數(shù),如圖6 所示。這種方式下,T2EX 引腳控制計(jì)數(shù)器方向。T2
23、EX 引腳為邏輯“1時(shí),定時(shí)器向上計(jì)數(shù),當(dāng)計(jì)數(shù)0FFFFH 向上溢出時(shí),置位TF2,同時(shí)把16 位計(jì)數(shù)存放器RCAP2H 和RCAP2L 重裝載到TH2 和TL2 中。 T2EX 引腳為邏輯“0時(shí),定時(shí)器2 向下計(jì)數(shù),當(dāng)TH2 和TL2 中的數(shù)值等于RCAP2H 和RCAP2L中的值時(shí),計(jì)數(shù)溢出,置位TF2,同時(shí)將0FFFFH 數(shù)值重新裝入定時(shí)存放器中。當(dāng)定時(shí)/計(jì)數(shù)器2 向上溢出或向下溢出時(shí),置位EXF2 位。波特率發(fā)生器當(dāng)T2CON表3中的TCLK 和RCLK 置位時(shí),定時(shí)/計(jì)數(shù)器2 作為波特率發(fā)生器使用。如果定時(shí)/計(jì)數(shù)器2 作為發(fā)送器或接收器,其發(fā)送和接收的波特率可以是不同的,定時(shí)器1 用
24、于其它功能,如圖7 所示。假設(shè)RCLK 和TCLK 置位,那么定時(shí)器2工作于波特率發(fā)生器方式。波特率發(fā)生器的方式與自動(dòng)重裝載方式相仿,在此方式下,TH2 翻轉(zhuǎn)使定時(shí)器2 的存放器用RCAP2H 和RCAP2L 中的16位數(shù)值重新裝載,該數(shù)值由軟件設(shè)置。在方式1 和方式3 中,波特率由定時(shí)器2 的溢出速率根據(jù)下式確定:方式1和3的波特率=定時(shí)器的溢出率/16定時(shí)器既能工作于定時(shí)方式也能工作于計(jì)數(shù)方式,在大多數(shù)的應(yīng)用中,是工作在定時(shí)方式C/T2=0。定時(shí)器2 作為波特率發(fā)生器時(shí),與作為定時(shí)器的操作是不同的,通常作為定時(shí)器時(shí),在每個(gè)機(jī)器周期1/12 振蕩頻率存放器的值加1,而作為波特率發(fā)生器使用時(shí),
25、在每個(gè)狀態(tài)時(shí)間1/2 振蕩頻率存放器的值加1。波特率的計(jì)算公式如下:方式1和3的波特率=振蕩頻率/32*65536-(RCP2H,RCP2L)式中RCAP2H,RCAP2L是RCAP2H 和RCAP2L中的16 位無符號(hào)數(shù)。定時(shí)器2 作為波特率發(fā)生器使用的電路如圖7 所示。T2CON 中的RCLK 或TCLK=1 時(shí),波特率工作方式才有效。在波特率發(fā)生器工作方式中,TH2 翻轉(zhuǎn)不能使TF2 置位,故而不產(chǎn)生中斷。但假設(shè)EXEN2 置位,且T2EX 端產(chǎn)生由1 至0 的負(fù)跳變,那么會(huì)使EXF2 置位,此時(shí)并不能將RCAP2H,RCAP2L的內(nèi)容重新裝入TH2 和TL2 中。所以,當(dāng)定時(shí)器2 作為
26、波特率發(fā)生器使用時(shí),T2EX 可作為附加的外部中斷源來使用。需要注意的是,當(dāng)定時(shí)器2 工作于波特率器時(shí),作為定時(shí)器運(yùn)行TR2=1時(shí),并不能訪問TH2 和TL2。因?yàn)榇藭r(shí)每個(gè)狀態(tài)時(shí)間定時(shí)器都會(huì)加1,對其讀寫將得到一個(gè)不確定的數(shù)值。然而,對RCAP2 那么可讀而不可寫,因?yàn)閷懭氩僮鲗⑹侵匦卵b載,寫入操作可能令寫和/或重裝載出錯(cuò)。在訪問定時(shí)器2或RCAP2 存放器之前,應(yīng)將定時(shí)器關(guān)閉去除TR2??删幊虝r(shí)鐘輸出定時(shí)器2 可通過編程從P1.0 輸出一個(gè)占空比為50%的時(shí)鐘信號(hào),如圖8 所示。P1.0 引腳除了是一個(gè)標(biāo)準(zhǔn)的I/O 口外,還可以通過編程使其作為定時(shí)/計(jì)數(shù)器2 的外部時(shí)鐘輸入和輸出占空比50%
27、的時(shí)鐘脈沖。當(dāng)時(shí)鐘振蕩頻率為16MHz 時(shí),輸出時(shí)鐘頻率范圍為61Hz4MHz。當(dāng)設(shè)置定時(shí)/計(jì)數(shù)器2 為時(shí)鐘發(fā)生器時(shí),C/T2T2CON .1=0,T2OE T2MOD.1 =1,必須由TR2T2CON.2啟動(dòng)或停止定時(shí)器。時(shí)鐘輸出頻率取決于振蕩頻率和定時(shí)器2 捕獲存放器RCAP2H,RCAP2L的重新裝載值,公式如下:輸出時(shí)鐘頻率=振蕩器頻率/4*65536-(RCP2H,RCP2L)在時(shí)鐘輸出方式下,定時(shí)器2 的翻轉(zhuǎn)不會(huì)產(chǎn)生中斷,這個(gè)特性與作為波特率發(fā)生器使用時(shí)相仿。定時(shí)器2 作為波特率發(fā)生器使用時(shí),還可作為時(shí)鐘發(fā)生器使用,但需要注意的是波特率和時(shí)鐘輸出頻率不能分開確定,這是因?yàn)樗鼈兺褂?/p>
28、RCAP2L和RCAP2L。UART AT89C52的UART 工作方式與AT89C52 工作方式相同。中斷AT89C52 共有6 個(gè)中斷向量:兩個(gè)外中斷INT0 和INT1,3 個(gè)定時(shí)器中斷定時(shí)器0、1、2和串行口中斷。所有這些中斷源如圖9 所示。這些中斷源可通過分別設(shè)置專用存放器IE 的置位或清0 來控制每一個(gè)中斷的允許或禁止。IE 也有一個(gè)總禁止位EA,它能控制所有中斷的允許或禁止。注意表5 中的IE.6 為保存位,在AT89C52 中IE.5 也是保存位。程序員不應(yīng)將“1寫入這些位,它們是將來AT89 系列產(chǎn)品作為擴(kuò)展用的。定時(shí)器2 的中斷是由T2CON 中的TF2 和EXF2 邏輯或
29、產(chǎn)生的,當(dāng)轉(zhuǎn)向中斷效勞程序時(shí),這些標(biāo)志位不能被硬件去除,事實(shí)上,效勞程序需確定是TF2 或EXF2 產(chǎn)生中斷,而由軟件去除中斷標(biāo)志位。定時(shí)器0 和定時(shí)器1 的標(biāo)志位TF0 和TF1 在定時(shí)器溢出那個(gè)機(jī)器周期的S5P2 狀態(tài)置位,而會(huì)在下一個(gè)機(jī)器周期才查詢到該中斷標(biāo)志。然而,定時(shí)器2 的標(biāo)志位TF2 在定時(shí)器溢出的那個(gè)機(jī)器周期的S2P2 狀態(tài)置位,并在同一個(gè)機(jī)器周期內(nèi)查詢到該標(biāo)志。時(shí)鐘振蕩器AT89C52 中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反應(yīng)元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖
30、10。外接石英晶體或陶瓷諧振器及電容C1、C2 接在放大器的反應(yīng)回路中構(gòu)成并聯(lián)振蕩電路。對外接電容C1、C2 雖然沒有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的上下、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pF±10pF,而如使用陶瓷諧振器建議選擇40pF±10F。用戶也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖10 右圖所示。這種情況下,外部時(shí)鐘脈沖接到XTAL1 端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2 那么懸空。由于外部時(shí)鐘信號(hào)是通過一個(gè)2 分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對外部時(shí)鐘信號(hào)的占空比沒有特殊要求,但
31、最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求??臻e節(jié)電模式在空閑工作模式狀態(tài), CPU 自身處于睡眠狀態(tài)而所有片內(nèi)的外設(shè)仍保持激活狀態(tài),這種方式由軟件產(chǎn)生。此時(shí),同時(shí)將片內(nèi)RAM 和所有特殊功能存放器的內(nèi)容凍結(jié)??臻e模式可由任何允許的中斷請求或硬件復(fù)位終止。由硬件復(fù)位終止空閑狀態(tài)只需兩個(gè)機(jī)器周期有效復(fù)位信號(hào),在此狀態(tài)下,片內(nèi)硬件禁止訪問內(nèi)部RAM,但可以訪問端口引腳,當(dāng)用復(fù)位終止空閑方式時(shí),為防止可能對端口產(chǎn)生意外寫入,激活空閑模式的那條指令后一條指令不應(yīng)是一條對端口或外部存儲(chǔ)器的寫入指令。掉電模式在掉電模式下,振蕩器停止工作,進(jìn)入掉電模式的指令是最后一條被執(zhí)行的指令,片內(nèi)
32、RAM 和特殊功能存放器的內(nèi)容在終止掉電模式前被凍結(jié)。退出掉電模式的唯一方法是硬件復(fù)位,復(fù)位后將重新定義全部特殊功能存放器,但不改變RAM中的內(nèi)容,在Vcc恢復(fù)到正常工作電平前,復(fù)位應(yīng)無效,且必須保持一定時(shí)間以使振蕩器重啟動(dòng)并穩(wěn)定工作。程序存儲(chǔ)器的加密AT89C52 有3 個(gè)程序加密位,可對芯片上的3 個(gè)加密位LB1、LB2、LB3 進(jìn)行編程P或不編程U來得到。當(dāng)加密位LB1 被編程時(shí),在復(fù)位期間,EA 端的邏輯電平被采樣并鎖存,如果單片機(jī)上電后一直沒有復(fù)位,那么鎖存起的初始值是一個(gè)隨機(jī)數(shù),且這個(gè)隨機(jī)數(shù)會(huì)一直保存到真正復(fù)位為止。為使單片機(jī)能正常工作,被鎖存的EA 電平值必須與該引腳當(dāng)前的邏輯電
33、平一致。此外,加密位只能通過整片擦除的方法去除。Flash存儲(chǔ)器的編程AT89C52單片機(jī)內(nèi)部有8k字節(jié)的Flash PEROM,這個(gè)Flash 存儲(chǔ)陣列出廠時(shí)已處于擦除狀態(tài)即所有存儲(chǔ)單元的內(nèi)容均為FFH,用戶隨時(shí)可對其進(jìn)行編程。編程接口可接收高電壓+12V或低電壓Vcc的允許編程信號(hào)。低電壓編程模式適合于用戶在線編程系統(tǒng),而高電壓編程模式可與通用EPROM 編程器兼容。AT89C52 單片機(jī)中,有些屬于低電壓編程方式,而有些那么是高電壓編程方式,用戶可從芯片上的型號(hào)和讀取芯片內(nèi)的簽名字節(jié)獲得該信息。AT89C52 的程序存儲(chǔ)器陣列是采用字節(jié)寫入方式編程的,每次寫入一個(gè)字節(jié),要對整個(gè)芯片內(nèi)的P
34、EROM 程序存儲(chǔ)器寫入一個(gè)非空字節(jié),必須使用片擦除的方式將整個(gè)存儲(chǔ)器的內(nèi)容去除。編程方法編程前,須按表9 和圖11 所示設(shè)置好地址、數(shù)據(jù)及控制信號(hào), AT89C52 編程方法如下:1 在地址線上加上要編程單元的地址信號(hào)。2 在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。3 激活相應(yīng)的控制信號(hào)。4 在高電壓編程方式時(shí),將EA/Vpp 端加上+12V 編程電壓。5 每對Flash 存儲(chǔ)陣列寫入一個(gè)字節(jié)或每寫入一個(gè)程序加密位,加上一個(gè)ALE/PROG 編程脈沖。每個(gè)字節(jié)寫入周期是自身定時(shí)的,通常約為1.5ms。重復(fù)15 步驟,改變編程單元的地址和寫入的數(shù)據(jù),直到全部文件編程結(jié)束。數(shù)據(jù)查詢AT89C52 單片機(jī)用
35、Data Palling 表示一個(gè)寫周期結(jié)束為特征,在一個(gè)寫周期中,如需讀取最后寫入的一個(gè)字節(jié),那么出的數(shù)據(jù)的最高位P0.7是原來寫入字節(jié)最高位的反碼。寫周期完成后,所輸出的數(shù)據(jù)是有效的數(shù)據(jù),即可進(jìn)入下一個(gè)字節(jié)的寫周期,寫周期開始后,Data Palling 可能隨時(shí)有效。Ready/Busy:字節(jié)編程的進(jìn)度可通過“RDY/BSY 輸出信號(hào)監(jiān)測,編程期間,ALE 變?yōu)楦唠娖健癏后,P3.4RDY/BSY端電平被拉低,表示正在編程狀態(tài)忙狀態(tài)。編程完成后,P3.4 變?yōu)楦唠娖奖硎緶?zhǔn)備就緒狀態(tài)。·程序校驗(yàn):如果加密位LB1、LB2 沒有進(jìn)行編程,那么代碼數(shù)據(jù)可通過地址和數(shù)據(jù)線讀回原編寫的數(shù)
36、據(jù),采用如圖12的電路。加密位不可直接校驗(yàn),加密位的校驗(yàn)可通過對存儲(chǔ)器的校驗(yàn)和寫入狀態(tài)來驗(yàn)證。芯片擦除:利用控制信號(hào)的正確組合表6并保持ALE/PROG 引腳10mS 的低電平脈沖寬度即可將PEROM 陣列4k字節(jié)和三個(gè)加密位整片擦除,代碼陣列在片擦除操作中將任何非空單元寫入“1,這步驟需再編程之前進(jìn)行。·讀片內(nèi)簽名字節(jié):AT89C52 單片機(jī)內(nèi)有3 個(gè)簽名字節(jié),地址為030H、031H 和032H。用于聲明該器件的廠商、型號(hào)和編程電壓。讀AT89C52 簽名字節(jié)需將P3.6 和P3.7 置邏輯低電平,讀簽名字節(jié)的過程和單元030H、031H 及032H 的正常校驗(yàn)相仿,只返回值意義
37、如下:030H=1EH 聲明產(chǎn)品由ATMEL公司制造。031H=52H 聲明為AT89C52 單片機(jī)。032H=FFH 聲明為12V 編程電壓。032H=05H 聲明為5V 編程電壓。三 硬件設(shè)計(jì)在原理圖設(shè)計(jì)中,使用網(wǎng)絡(luò)標(biāo)號(hào)代替連接線,使得原理圖清晰美觀,容易辨識(shí);將各個(gè)模塊進(jìn)行了分割,利于針對各個(gè)模塊進(jìn)行電源及網(wǎng)絡(luò)的調(diào)整;電路設(shè)計(jì)均采用供給商提供的經(jīng)典電路及網(wǎng)絡(luò)發(fā)燒友提供的改良電路,仿真狀態(tài)下運(yùn)行良好,由于沒有進(jìn)行印刷制版,所以在干擾及噪聲環(huán)境下的測試沒有進(jìn)行。在PCB設(shè)計(jì)中,使用大片覆銅作為地,能夠提高地的穩(wěn)定性;電源線寬度為50mil,并且走線轉(zhuǎn)角均為45度,減少電流慣性對銅導(dǎo)線的影響;
38、對于走線比擬稠密的地方,多采用過孔的方法防止導(dǎo)線交叉;局部元件封裝為自行設(shè)計(jì)(如0805);布局方式為手工布局,具體方法為按照各個(gè)模塊依次放置,使得布局美觀清晰;PCB板單面放置元器件,反面只有過孔線。根據(jù)設(shè)計(jì)需求設(shè)計(jì)硬件原理圖見附錄。四 軟件設(shè)計(jì)在代碼便攜方面,遵循大綱布局在細(xì)致微調(diào)的原那么,首先根據(jù)設(shè)計(jì)的要求,對各個(gè)部件模塊進(jìn)行初始化,然后對具體需要編程局部進(jìn)行針對性設(shè)計(jì);在LED顯示設(shè)計(jì)方面,利用人眼余輝,可以進(jìn)行掃描式顯示,在330ms間隔時(shí)間內(nèi)進(jìn)行切換顯示,8路IO控制顯示4路IO進(jìn)行片選到達(dá)控制4位8段數(shù)碼管的目的;AD模塊使用供給商提供的經(jīng)典程序歷程,仿真條件下運(yùn)行良好;AT89
39、C52頻率設(shè)定為12MHz,方便其中各個(gè)模塊時(shí)鐘的設(shè)計(jì);整體軟件設(shè)計(jì)在仿真情況下運(yùn)行良好。局部代碼實(shí)現(xiàn)見附錄。五 設(shè)計(jì)心得首先需要感謝王安老師給我提供這次時(shí)機(jī)能夠進(jìn)行本儀器的設(shè)計(jì),并對我進(jìn)行了細(xì)致的指導(dǎo),也感謝在進(jìn)行設(shè)計(jì)時(shí),對我提供無私幫助的劉三帥,張希銘和劉坤等同學(xué)。通過本次設(shè)計(jì)及實(shí)驗(yàn),了解了電路設(shè)計(jì)的根本知識(shí)和C語言編程在硬件系統(tǒng)上的實(shí)現(xiàn)與應(yīng)用,豐富了工程實(shí)踐經(jīng)驗(yàn),由于時(shí)間及資金的限制沒能進(jìn)行電路板的印刷是本次設(shè)計(jì)的一大遺憾,希望在以后的學(xué)習(xí)工作中能夠?qū)Υ诉M(jìn)行彌補(bǔ)。附錄#include <reg51.h> #include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit MAX197_CS=P27;sbit MAX197_WR=P26;sbit MAX197_RD=P25;sbit MAX197_HBEN=P24;sbit MAX197_INT=P32;void delays(uint i);void delayl(uint n)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公寓租賃標(biāo)準(zhǔn)合同樣本
- 某銀行牡丹貸記卡動(dòng)產(chǎn)質(zhì)押合同范本
- Module 1 Unit 2 Changes in our lives Listen and say Listen and enjoy (教學(xué)設(shè)計(jì))-2024-2025學(xué)年滬教牛津版(深圳用)英語六年級(jí)下冊
- 沿街商鋪購房合同范本
- 藝術(shù)家合作合同模板大全
- 企業(yè)融資成立合同:出資細(xì)節(jié)
- 房屋買賣合同真實(shí)案例解析
- 企業(yè)整體出售合同范本
- 10000以內(nèi)數(shù)的讀寫(教學(xué)設(shè)計(jì))-2023-2024學(xué)年二年級(jí)下冊數(shù)學(xué)人教版
- 11《爸爸媽媽在我心中 愛父母在行動(dòng)》(教學(xué)設(shè)計(jì))-部編版道德與法治三年級(jí)上冊
- 2025年四川司法警官職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 山東省德州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 本人報(bào)廢車輛委托書
- 雙減政策與五項(xiàng)管理解讀
- 2025年道德與法治小學(xué)六年級(jí)下冊教學(xué)計(jì)劃(含進(jìn)度表)
- 過橋資金操作流程
- 貨物學(xué) 課件1.2貨物的特性
- 新時(shí)代中國特色社會(huì)主義理論與實(shí)踐2024版研究生教材課件全集2章
- 2024年公路水運(yùn)工程施工企業(yè)主要負(fù)責(zé)人和安全生產(chǎn)管理人員安全生產(chǎn)考核試題庫(含答案)
- 2025年軍隊(duì)文職考試《公共科目》試題與參考答案
- 輔導(dǎo)員入職培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論