電阻電容電感測試儀設計說明_第1頁
電阻電容電感測試儀設計說明_第2頁
電阻電容電感測試儀設計說明_第3頁
電阻電容電感測試儀設計說明_第4頁
電阻電容電感測試儀設計說明_第5頁
已閱讀5頁,還剩48頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、編號:畢 業 設 計題 目:電阻、電容、電感測試儀院 (系): 應用科技學院專 業: 電子信息工程 題目類型:理論研究 實驗研究 工程設計工程技術研究 軟件開發48 / 53摘 要在使用電子元器件時,首先需要了解參數。采用傳統的儀表進行測量時,首先要從電路板上焊開器件,再根據元件的類型,手動選擇量程擋位進行測量,這樣不僅麻煩而且破壞了電路板的美觀。基于單片機控制實現的RLC測量儀可以在線測量、智能識別、量程自動轉換等多種功能,大大提高測量儀的測量速度和精度,擴大了測量圍。因此這種RLC測量儀既可改善系統測量的性能,又保持了印刷電路的美觀,較傳統的測量儀還具有高度的智能儀和功能的集成化,在未來的

2、應用中將具有廣闊的前景。本課題主要研究容為設計一個基于單片機的RLC智能測量儀器,能夠智能地識別出待測元件是電容、電感還是電阻;能精確測量出電阻、電容、電感的參數值,同時還能加入語音播報的功能;可以實現量程電阻的自動轉換,無須人工選擇檔位;對測量儀進行擴充后還實現了二極管、三極管的測量。關鍵詞:RLC測量儀;AT89S52;NE555AbstractIn the use of electronic components, the first need to understand parameters.Using the traditional instrument to measure, th

3、e first circuit board from a welding device, according to the type of components, manually select range Shift to measure, this is not only troublesome but also undermine The appearance of the circuit board. Based on SCM control to achieve the RLC-measuring instrument can measure, intelligent identif

4、ication, range automatic conversion, and other features, thereby greatly increasing the meter measuring speed and accuracy, expanded the range. So this RLC measuring instrument can improve the performance measurement system, and maintain the appearance of the printed circuit, the more traditional me

5、asuring instrument also is highly intelligent and functional instrument of integration and application in the future will have broad prospects. The main topics for the design of research has been based on the RLC SCM smart measuring instruments, smart and able to identify components under test is ca

6、pacitors, inductors or resistance; can be accurately measured resistors, capacitors, inductors of the parameters, while adding Voice of the broadcast function can be automatically converted range of the resistance, not artificial selection stalls; measuring instrument to carry out the expanded also

7、to achieve the diodes, transistors measurement.Key words:RLC meter;AT89S52;NE555目 錄引言11 硬件電路21.1 設計要求21.2 電路方框圖與說明21.3 各部分電路設計21.3.1 電阻測量電路21.3.2 電容測量電路31.3.3 電感測量電路41.3.4 多路選擇開關電路51.3.5 按鍵與顯示電路51.3.6 單片機模塊61.3.7 量程選擇模塊71.3.8 電源模塊82 軟件部分82.1 主程序流程圖82.2 程序清單93 相關元器件193.1 元件清單193.2 AT89S52資料203.3 ICM7

8、218資料313.4 74LS390資料323.5 CD4052資料333.6 NE555資料333.7 共陽4位LED數碼管資料403.8 三極管相關資料413.9 三端穩壓管LM7805資料423.10 繼電器資料434 調試總結435 結論44辭45參考文獻46附錄47引言測量電子元器件集中參數R、C、L的儀表種類較多,方法也各有不同,但都有其優缺點。一般的測量方法都存在計算復雜、不易實現自動測量而且很難實現智能化。本測試儀是把電子元件的參數R、C、L轉換成頻率信號f,然后用單片機計數后在運算求出R、C、L,并送顯示,轉換原理分別是RC振蕩和LC三點式振蕩,這樣就能夠把模擬量近似的轉換位

9、數字量,而頻率f是單片機很容易處理的數字量,這種數字化的處理一方面便于使儀表實現智能化。1 硬件電路1.1 設計要求設計并制作一臺數字顯示的電阻、電容和電感參數測試儀,具體要求數據如下:(1)測量圍:電阻1001M;電容100PF10000PF;電感100UH10mH。(2)測量精度:5%;制作4位數碼管顯示器,顯示測量數值,并用發光二極管分別知識所測元件的類型和單位。(3)加入語音播報功能:如測量結果為6.8K歐姆則語音播報“六點八K歐姆”;如電阻小于100歐姆則語音播報“電阻小于100歐姆”。電阻電容器電感器測試儀數字顯示外供+9V電源1.2 電路方框圖與說明系統分三大部分,既測量電路、通

10、道選擇和控制電路。如圖1.2.1。被測電阻被測電容被測電感電容三點式震蕩電路分頻電路 RC震蕩電路RC震蕩電路 多路選擇開關CD4052二極管 指示數字 顯示語音 播報按鍵選擇測量電路 AT89S52Addr測量頻率FrFcFl量程切換量程切換圖1.2.1 RLC測量儀電路方框圖1.3 各部分電路設計1.3.1 電阻測量電路 電阻的測量采用“脈沖計數法”,如圖1.3.1所示由555電路構成的多諧振蕩電路,通過計算振蕩輸出的頻率來計算被測電阻的大小。555接成多諧振蕩器的形式,其振蕩周期為:T=t1+t2=(ln2)(R1+Rx)*C1+(ln2)Rx*C1得到:Fx=1/(ln2)(R2+2R

11、x)C1即:Rx=1/(ln2)C1-R1/2電路分為2檔: RH設置為高電平輸出,RL設為低電平輸出;1、 100Rx1000歐姆: R3=200歐姆;C14=0.22uF;Rx=(6.56*(1e+6)/(2*fx)-330/2 對應的頻率圍為:2.8Kfx 16K 2、 1000Rx1M歐姆:R2=20k歐姆;C1=103PF; Rx =(1.443*(1e+8)/(2*fx)-(1e+4)對應的頻率圍為:141Hzfx6.8K圖1.3.1 電阻測量電路1.3.2 電容測量電路 電容的測量同樣采用“脈沖計數法”,如圖1.3.2所示由555電路構成的多諧振蕩電路,通過計算振蕩輸出的頻率來計

12、算被測電容的大小。555接成多諧振蕩器的形式,其振蕩周期為:T=t1+t2=(ln2)(R1+R2)*Cx+(ln2)R2*Cx我們設置R1=R2;得到:Fx=1/3(ln2)R1*Cx即:Cx=1/3(ln2)R1*Fx電路分為2檔:1、 R1560K歐姆:CL設置為高電平輸出; R4=R6;Cx= (0.94*(1e+6)/ fx;對應的頻率圍為:9.4Kfx 0.94K。2、 R1100K歐姆: CH設置為高電平輸出;R5=R6;Cx =(4.81*(1e+6)/ fx; 對應的頻率圍為:480Hzfx 4.8K。圖1.3.2 電容測量電路1.3.3 電感測量電路電感的測量是采用電容三點

13、式振蕩電路來實現的。三點式電路是指:LC回路中與發射極相連的兩個電抗元件必須是同性質的,另外一個電抗元件必須為異性質的,而與發射極相連的兩個電抗元件同為電容時的三點式電路,成為電容三點式電路。Fx=1/(2)即:Lx=1/( 4*Fx*Fx)Lx=38*(1e+6)/ 圖1.3.3 電感測量電路1.3.4 多路選擇開關電路利用CD4052實現測量類別的轉換,CD4052是雙4選一的模擬開關選擇器件。當選擇了某一通道的頻率后,輸出頻率通過通過P35作為CPU定時器的時鐘源并開始計數,當計數到3秒后讀出計數器的值,除以3就得到了被測R/C/L所對應產生的頻率,通過計算得到要被測值。P13P14測量

14、類別00Y0-R01Y1-L10Y2-C11*圖1.3.4 多路選擇開關電路1.3.5 按鍵與顯示電路 按鍵和二極管分別表示不同類別的測量,如下表所示:按鍵二極管對應測試項KEY1L1測試RKEY2L2測試CKEY3L3測試L圖1.3.5.1 測量選擇與指示電路圖1.3.5.2 顯示模塊1計數結果需要顯示出來供人們讀數, 74LS390能驅動七段數碼管以十進制數顯示出來記數結果,如圖:圖1.3.5.3 顯示模塊21.3.6 單片機模塊單片機系統連接如圖1.3.6所示:圖1.3.6 單片機模塊1.3.7 量程選擇模塊包括電阻量程選擇模塊和電容量程選擇模塊,如圖1.3.7.1和1.3.7.2所示:

15、圖1.3.7.1電阻量程選擇模塊圖1.3.7.2 電容量程選擇模塊1.3.8 電源模塊 電源模塊如圖1.3.8所示:圖1.3.8 電源模塊2 軟件部分2.1 主程序流程圖如圖2.1所示:初始化鍵掃描鍵分析,置狀態yesR測試狀態C測試狀態L測試狀態開中斷定時器設置通道與指示燈的設置采值并計算顯示是否語音播報放音yesNono圖2.1 主程序流程圖2.2 程序清單#include #include #include #define ICM7218 XBYTE0x00ff/7218A地址unsigned char Tab = 0xFB,0xB0,0xED,0xF5,0xB6, 0xD7,0xDF,

16、0xF0,0xFF,0xF7 ;/7218A數碼管段代碼表unsigned char Addr = 0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38, 0x40,0x48,0x50,0x60,0x68,0x70,0x78 ;/ISD1420播放地址代碼表 /(0,1,2,3,4,5,6,7,8,9, 乘以10的,次方,歐,皮法,微亨)unsigned char P_tab7 = 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF ;/語音播放結果列表 unsigned char SaveData8 = 0xCE,0xCE,0xCE,0xCE,0x

17、CE,0xCE,0xCE,0xCE ;/最終結果unsigned char count = 0, counter = 0, bai = 0, shi = 0, ge = 0, cifang = 0;unsigned long int pinlv = 0, result = 0, flag = 0;sbit Mode = P12;/7218A工作模式sbit R_select = P32;/電阻測量選擇按鍵sbit C_select = P33;/電容測量選擇按鍵sbit L_select = P34;/電感測量選擇按鍵sbit R_led = P22;/電阻指示燈sbit C_led = P2

18、1;/電容指示燈sbit L_led = P20;/電感指示燈sbit R_change = P24;/電阻量程轉變sbit C_change = P23;/電容量程轉變sbit F_B = P14;/模擬開關sbit F_A = P13;sbit Play = P26;/語音播放sbit Feedback = P27;/ISD1420反饋信號/* 延時*/void delay(unsigned int k) unsigned int a; for(a=0; a=k; a+);/* 頻率測量*/void pl(void) TMOD = 0x51;/定時器0工作方式1,計數器1工作方式1 TH0

19、 = 0x3c; TL0 = 0xb0;/50ms定時 TH1 = 0; TL1 = 0;/計數器清零 EA = 1; ET0 = 1; ET1 = 1; TR0 = 1; TR1 = 1;/啟動計時計數器 while(count 20000 & result 400000)/修正 result = result * 939 / 1000; else result = result * 891 / 1000; /* 容值公式換算(單位:PF)*/void C_deal(void) result = 13383072 / pinlv;/1001000PF if (C_change = 0)/10

20、0010000PF result = 2540851 / pinlv; if (result = 277 & result = 288 & result = 318 & result = 450 & result = 470 & result = 3295 & result = 3600)/修正 result = result * 2; if (result = 2445 & result = 1245 & result = 552 & result = 465 & result = 328 & result 465) result = result * 1000 / 765; if (res

21、ult = 2) cifang = i-2; else cifang = 0; for (j=0; jcifang; j+) result = result / 10; bai = result / 100; shi = result / 10 % 10; ge = result % 10; SaveData0 = Tabbai; SaveData1 = Tabshi; SaveData2 = Tabge; SaveData3 = Tabcifang;/* ICM7218_LED顯示*/void display(void) unsigned char i; Mode = 1;/寫命令字 ICM

22、7218 = 0xf0;/十六進制非譯碼正常工作,后跟顯示數據 Mode = 0;/寫入數據 for (i=0; i8; i+) ICM7218 = SaveDatai; /* ISD1420語音播放 */void play(void) unsigned char i; P_tab0 = Addrbai;/給表賦值 P_tab1 = Addrshi; P_tab2 = Addrge; P_tab3 = Addr10; P_tab4 = Addrcifang; P_tab5 = Addr11; if (R_led = 0)/電阻-歐 P_tab6 = Addr12; if (C_led = 0)

23、/電容-皮法 P_tab6 = Addr13; if (L_led = 0)/電感-微亨 P_tab6 = Addr14; for (i=0; i7; i+) P0 = P_tabi;/地址 delay(20000); Play = 0;/播放 delay(20000); while (Feedback = 1);/等待EOM結束反饋 Play = 1; delay(20000); /* 主函數*/void main(void) R_select = 1;/初始化 C_select = 1; L_select = 1; R_led = 1; C_led = 1; L_led = 1; Play

24、 = 1; Feedback = 1; while (1) /*電阻*/ if (R_select =0 )/測電阻 delay(2000);/去抖動 if (R_select = 0) R_led = 0; C_led = 1; L_led = 1; F_B = 0;/模擬開關電阻頻率輸出 F_A = 0; delay(20000); C_change = 1; R_change = 1;/低量程 delay(50000); delay(50000); pl();/測頻 if (pinlv 164)/是否需要轉換(高量程)? R_change = 0; delay(50000); delay

25、(50000); pl(); R_deal();/結果 daima();/代碼轉換 display();/顯示 /play();/語音播放 /*電容*/ if (C_select = 0)/測電容 delay(2000);/去抖動 if (C_select = 0) C_led = 0; R_led = 1; L_led = 1; F_B = 0;/模擬開關電容頻率輸出 F_A = 1; delay(20000); C_change = 1;/低量程 R_change = 1; delay(50000); delay(50000); pl();/測頻 if (pinlv 13383)/是否需要

26、轉換(高量程)? C_change=0; delay(50000); delay(50000); pl(); C_deal();/結果 daima();/代碼轉換 display();/顯示 /play();/語音播放 /*電感*/ if (L_select=0)/測電感 delay(2000);/去抖動 if (L_select = 0) L_led = 0; R_led = 1; C_led = 1; C_change = 1; R_change = 1; F_B = 1;/模擬開關電感頻率輸出 F_A = 0; delay(20000); pl();/測頻 L_deal();/結果 da

27、ima();/代碼轉換 display();/顯示 /play();/語音播放 3 相關元器件3.1 元件清單AT89S52芯片一個(帶DIP40插槽)ICM7218芯片一個(帶DIP28插槽)74LS390芯片一個(帶DIP16插槽)CD4052芯片一個(帶DIP16插槽)555芯片兩個(帶兩個DIP8插槽)共陽4位LED數碼管NPN三極管9013、PNP三極管9015各兩個三端穩壓管LM7805兩個5伏光藕兩個5伏繼電器兩個二極管兩個輕觸開關4個LED指示燈7個1K8腳排阻1個插針若干電阻:1個2個680 3個1K 2個2K 4個3K 2個3.9K 1個10K 6個20K 1個30K 1個

28、100K 2個560K 1個電容:30PF 2個75P 1個103 2個203 1個104 7個0.22UF 3個10UF 1個470UF 2個1000uF 2個3.2 AT89S52資料單片機也被稱為微控制器(Microcontroler),是因為它最早被用在工業控制領域。單片機由芯片僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統更小,更容易集成進復雜的而對提與要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以后,單片機和專用處理器的發展便分道揚鑣。早期的單片機都是8位或4位的。其中最成功的是INTEL

29、的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發展出了MCS51系列單片機系統。基于這一系統的單片機系統直到現在還在廣泛使用。隨著工業控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想并未得到很廣泛的應用。90年代后隨著消費電子產品大發展,單片機技術得到了巨大的提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出

30、廠價格跌落至1美元,最高端的型號也只有10美元。當代單片機系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。 單片機比專用處理器最適合應用于嵌入式系統,因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、計算器、家用電器、電子玩具、掌上電腦以與鼠標等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業控制系統上甚至可

31、能有數百臺單片機在同時工作。單片機的數量不僅遠超過PC機和其他計算的綜合,甚至比人類的數量還要多。AT89S52主要性能與MCS-51單片機產品兼容。8K字節在系統可編程Flash存儲器。1000次擦寫周期。全靜態操作:0Hz33Hz。三級加密程序存儲器。32個可編程I/O口線。三個16位定時器/計數器。八個中斷源。全雙工UART串行通道。低功耗空閑和掉電模式。掉電后中斷可喚醒。看門狗定時器。雙數據指針。掉電標識符。功能特性描述AT89S52是一種低功耗、高性能 CMOS 8 位微控制器,具有8K 在系統可編程 Flash 存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業80C5

32、1產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8k字節Flash,256字節RAM,32 位I/O口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片晶振與時鐘電路。另外,AT89S52可降至 0Hz 靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM容被保存

33、,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。引腳功能描述VCC電源。GND 地。P0口P0 口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0具有部上拉電阻。在flash編程時,P0口也用來接收指令字節;在程序校驗時,輸出指令字節。程序校驗時,需要外部上拉電阻。P1口P1 口是一個具有部上拉電阻的8位雙向I/O 口,P1輸出緩沖器能驅動4個TTL邏輯電平。對 P1 端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口

34、使用。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2的觸發輸入(P1.1/T2EX)。在flash編程和校驗時,P1口接收低8位地址字節。P2口P2 口是一個具有部上拉電阻的8 位雙向I/O口,P2 輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVXDPTR)時,P2口送出高八位地址

35、。在這種應用中,P2口使用很強的部上拉發送1。在使用8 位地址(如 MOVX RI)訪問外部數據存儲器時,P2 口輸出 P2 鎖存器的容。在flash編程和校驗時,P2口也接收高8位地址字節和一些控制信號。P3口P3 口是一個具有部上拉電阻的8位雙向 I/O 口,p2 輸出緩沖器能驅動 4 個TTL 邏輯電平。對 P3 端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流(IIL)。P3口亦作為 AT89S52 特殊功能(第二功能)使用。在flash編程和校驗時,P3口也接收一些控制信號。RST復位輸入。晶振工作時,RST

36、腳持續 2 個機器周期高電平將使單片機復位。看門狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態下,復位高電平有效。ALE/PROG地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調,在每次訪問外部數據存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE

37、僅在執行 MOVX 或 MOVC 指令時有效。否則,ALE 將被微弱拉高。這個 ALE 使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執行模式下無效。PSEN外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89S52從外部程序存儲器執行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數據存儲器時,PSEN將不被激活。EA/VPP訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執行部程序指令,EA應該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1振蕩器反相放大器和部時

38、鐘發生電路的輸入端。XTAL2振蕩器反相放大器的輸出端。特殊功能寄存器并不是所有的地址都被定義了。片上沒有定義的地址是不能用的。讀這些地址,一般將得到一個隨機數據;寫入的數據將會無效。用戶不應該給這些未定義的地址寫入數據“1”。由于這些寄存器在將來可能被賦予新的功能,復位后,這些位都為“0”。定時器2寄存器寄存器T2CON和T2MOD包含定時器2的控制位和狀態位,寄存器對RCAP2H和RCAP2L是定時器2的捕捉/自動重載寄存器。中斷寄存器各中斷允許位在IE寄存器中,六個中斷源的兩個優先級也可在IE中設置。雙數據指針寄存器:為了更有利于訪問部和外部數據存儲器,系統提供了兩路16位數據指針寄存器

39、:位于SFR中82H83H的DP0和位于84H85。特殊寄存器AUXR1中DPS0選擇 DP0;DPS=1 選擇 DP1。用戶應該在訪問數據指針寄存器前先初始化DPS 至合理的值。掉電標志位掉電標志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上電期間POF置“1”。POF可以軟件控制使用與否,但不受復位影響。存儲器結構MCS-51器件有單獨的程序存儲器和數據存儲器。外部程序存儲器和數據存儲器都可以64K 尋址。程序存儲器如果EA引腳接地,程序讀取只從外部存儲器開始。對于89S52,如果EA接VCC,程序讀寫先從部存儲器(地址為0000H1FFFH)開始,接著從外部尋址,尋址地址

40、為:2000HFFFFH。數據存儲器AT89S52有256字節片數據存儲器。高128字節與特殊功能寄存器重疊。也就是說高128字節與特殊功能寄存器有一樣的地址,而物理上是分開的。當一條指令訪問高于7FH的地址時,尋址方式決定CPU訪問高128字節RAM還是特殊功能寄存器空間。直接尋址方式訪問特殊功能寄存器(SFR)。例如,下面的直接尋址指令訪問0A0H(P2口)存儲單元MOV 0A0H , #data使用間接尋址方式訪問高128字節 RAM。例如,下面的間接尋址方式中,R0容為0A0H,訪問的是地址 0A0H 的寄存器,而不是 P2 口(它的地址也是0A0H)。MOV R0, #data堆棧操

41、作也是簡介尋址方式。因此,高128字節數據RAM也可用于堆棧空間。看門狗定時器WDT 是一種需要軟件控制的復位方式。WDT 由 13 位計數器和特殊功能寄存器中的看門狗定時器復位存儲器(WDTRST)構成。WDT 在默認情況下無法工作;為了激活WDT,戶用必須往 WDTRST 寄存器(地址:0A6H)中依次寫入 01EH 和 0E1H。當WDT 激活后,晶振工作,WDT 在每個機器周期都會增加。WDT 計時周期依賴于外部時鐘頻率。除了復位(硬件復位或WDT溢出復位),沒有辦法停止WDT工作。當WDT溢出,它將驅動RSR引腳一個高個電平輸出。WDT的使用為了激活WDT,用戶必須向WDTRST寄存

42、器(地址為0A6H的SFR)依次寫入0E1H和0E1H。當WDT激活后,用戶必須向WDTRST寫入01EH和0E1H喂狗來避免WDT溢出。當計數達到8191(1FFFH)時,13位計數器將會溢出,這將會復位器件。晶振正常工作、WDT激活后,每一個機器周期WDT都會增加。為了復位WDT,用戶必須向WDTRST寫入01EH 和0E1H(WDTRST是只讀寄存器)。WDT 計數器不能讀或寫。當WDT計數器溢出時,將給RST引腳產生一個復位脈沖輸出,這個復位脈沖持續96個晶振周期(TOSC),其中 TOSC=1/FOSC。為了很好地使用WDT,應該在一定時間周期性寫入那部分代碼,以避免WDT復位。掉電

43、和空閑方式下的WDT在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。在這種方式下,用戶不必喂狗。有兩種方式可以離開掉電模式:硬件復位或通過一個激活的外部中斷。通過硬件復位退出掉電模式后,用戶就應該給 WDT 喂狗,就如同通常AT89S52 復位一樣。通過中斷退出掉電模式的情形有很大的不同。中斷應持續拉低很長一段時間,使得晶振穩定。當中斷拉高后,執行中斷服務程序。為了防止WDT在中斷保持低電平的時候復位器件,WDT直到中斷拉低后才開始工作。這就意味著WDT應該在中斷服務程序中復位。為了確保在離開掉電模式最初的幾個狀態WDT不被溢出,最好在進入掉電模式前就復位WDT。在進入待機模式前,特殊

44、寄存器AUXR的WDIDLE位用來決定WDT是否繼續計數。默認狀態下,在待機模式下,WDIDLE0,WDT繼續計數。為了防止WDT在待機模式下復位 AT89S52,用戶應該建立一個定時器,定時離開待機模式,喂狗,再重新進入待機模式。UART在AT89S52中,UART的操作與AT89C51和AT89C52一樣。為了獲得更深入的關于UART 的信息,可參考ATMEL(.atmel.)。從這個主頁,選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“Product Overview”即可。定時器0和定時器1在AT89S52中,定時器0和定時器1的操作與AT89C5和AT89C52一樣。為了獲得更深入的關于UART的信息,可參考ATMEL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論