單片機的數(shù)字電壓論文_第1頁
單片機的數(shù)字電壓論文_第2頁
單片機的數(shù)字電壓論文_第3頁
單片機的數(shù)字電壓論文_第4頁
單片機的數(shù)字電壓論文_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 2006 屆本科畢業(yè)設(shè)計基于單片機的數(shù)字電壓表姓 名: 趙營 系 別: 物理與信息工程系 專 業(yè): 電子信息工程 學(xué) 號: 040314034 指導(dǎo)教師: 李曉偉 2006年 4 月 12 日基于單片機的數(shù)字電壓表趙營 商丘師范學(xué)院物理與信息工程系 040314班 河南商丘 476000摘要:本文介紹一種基于89S52單片機的一種電壓測量電路,該電路采用ICL7135高精度、雙積分A/D轉(zhuǎn)換電路,測量范圍直流0-±2000伏,使用LCD液晶模塊顯示,可以與PC機進行串行通信。正文著重給出了軟硬件系統(tǒng)的各部分電路,介紹了雙積分電路的原理,89S52的特點,ICL7135的功能和應(yīng)用,

2、LCD1601的功能和應(yīng)用。該電路設(shè)計新穎、功能強大、可擴展性強。關(guān)鍵詞:電壓測量,ICL7135,雙積分A/D轉(zhuǎn)換器,1601液晶模塊Abstract : The introduction of a cost-based 89S52 MCU a voltage measurement circuits, the circuits used ICL7135 high-precision, dual-scoring A/D conversion circuits, measuring scope DC 0-2000 volts, the use of LCD that can be carrie

3、d out with a PC serial communications. The paper focuses on providing a software and hardware system components circuit, introduced double integral circuit theory, 89S52 features ICL7135 functions and applications, LCD1601 functions and applications. the circuit design innovative, powerful, can be e

4、xpansionary strong.Key Words : Digital Voltmeter ICL7135 LCD1601 89S521前言數(shù)字電壓表(Digital Voltmeter)簡稱DVM,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。傳統(tǒng)的指針式電壓表功能單一、精度低,不能滿足數(shù)字化時代的需求,采用單片機的數(shù)字電壓表,由精度高、抗干擾能力強,可擴展性強、集成方便,還可與PC進行實時通信。目前,由各種單片A/D 轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表,已被廣泛用于電子及電工測量、工業(yè)自動化儀表、自動測試系統(tǒng)等智能化測量領(lǐng)域,示出強大的生命力

5、。與此同時,由DVM擴展而成的各種通用及專用數(shù)字儀器儀表,也把電量及非電量測量技術(shù)提高到嶄新水平。本章重點介紹單片A/D 轉(zhuǎn)換器以及由它們構(gòu)成的基于單片機的數(shù)字電壓表的工作原理。2 系統(tǒng)原理及基本框圖輸入電路A/D轉(zhuǎn)換89S52單片機LCD顯示通訊模塊如圖2.1所示,模擬電壓經(jīng)過檔位切換到不同的分壓電路衰減后,經(jīng)隔離干擾送到A/D轉(zhuǎn)換器進行A/D轉(zhuǎn)換,然后送到單片機中進行數(shù)據(jù)處理。處理后的數(shù)據(jù)送到LCD中顯示,同時通過串行通訊與上位機通信。 圖2.1系統(tǒng)基本方框圖3硬件設(shè)計3.1 輸入電路圖量程切換開關(guān) 圖衰減輸入電路輸入電路的作用是把不同量程的被測的電壓規(guī)范到A/D轉(zhuǎn)換器所要求的電壓值。智能

6、化數(shù)字電壓表所采用的單片雙積分型ADC芯片ICL7135,它要求輸入電壓0-±2V。本儀表設(shè)計是0-1000V電壓,靈敏度高所以可以不加前置放大器,只需衰減器,如圖所示9M、900K、90K、和10K電阻構(gòu)成1/10、1/100、1/1000的衰減器。衰減輸入電路可由開關(guān)來選擇不同的衰減率,從而切換檔位。為了能讓CPU自動識別檔位,還要有圖的硬件連接。3.2 A/D 轉(zhuǎn)換電路A/D 轉(zhuǎn)換器的轉(zhuǎn)換精度對測量電路極其重要,它的參數(shù)關(guān)系到測量電路性能。本設(shè)計采用雙積A/D 轉(zhuǎn)換器,它的性能比較穩(wěn)定,轉(zhuǎn)換精度高,具有很高的抗干擾能力,電路結(jié)構(gòu)簡單,其缺點是工作速度較低。在對轉(zhuǎn)換精度要求較高,

7、而對轉(zhuǎn)換速度要求不高的場合如電壓測量有廣泛的應(yīng)用。雙積A/D 轉(zhuǎn)換器的工作原理圖.1雙積A/D 轉(zhuǎn)換器圖.2雙積A/D 轉(zhuǎn)換器的波形圖 如圖所示:對輸入模擬電壓和基準(zhǔn)電壓進行兩次積分,先對輸入模擬電壓進行積分,將其變換成與輸入模擬電壓成正比的時間間隔 T1,再利用計數(shù)器測出此時間間隔,則計數(shù)器所計的數(shù)字量就正比于輸入的模擬電壓;接著對基準(zhǔn)電壓進行同樣的處理。在常用的A/D轉(zhuǎn)換芯片(如ADC -0809、ICL7135、ICL7109等)中,ICL7135與其余幾種有所不同,它是一種四位半的雙積分A/D轉(zhuǎn)換器,具有精度高(精度相當(dāng)于14位二進制數(shù))、價格低廉、抗干擾能力強等優(yōu)點。本文介紹用單片機

8、并行方式采集ICL7135的數(shù)據(jù)以實現(xiàn)單片機電壓表和小型智能儀表的設(shè)計方案。 7135的應(yīng)用7135是采用CMOS工藝制作的單片4位半A/D轉(zhuǎn)換器,其所轉(zhuǎn)換的數(shù)字值以多工掃描的方式輸出,只要附加譯碼器,數(shù)碼顯示器,驅(qū)動器及電阻電容等元件,就可組成一個滿量程為2V的數(shù)字電壓表。7135主要特點如下:雙積型A/D轉(zhuǎn)換器,轉(zhuǎn)換速度慢。在每次A/D轉(zhuǎn)換前,內(nèi)部電 .1 ICL7135引腳圖路都自動進行調(diào)零操作,可保證零點在常溫下的長期穩(wěn)定。在20000字(2V滿量程)范圍內(nèi),保證轉(zhuǎn)換精度1字相當(dāng)于14bitA/D轉(zhuǎn)換器。   具有自動極性轉(zhuǎn)換功能。能在但極性參考電壓下對雙極性模擬輸

9、入電壓進行A/D轉(zhuǎn)換,模擬電壓的范圍為0±1.9999V。   模擬出入可以是差動信號,輸入電阻極高,輸入電流典型值1PA。   所有輸出端和TTL電路相容。   有過量程(OR)和欠量程(UR)標(biāo)志信號輸出,可用作自動量程轉(zhuǎn)換的控制信號。   輸出為動態(tài)掃描BCD碼。   對外提供六個輸入,輸出控制信號(R/H,BUSH,ST,POL,OR,UR),因此除用于數(shù)字電壓表外,還能與異步接收 /發(fā)送器,微處理器或其它控制電路連接使用。   采用28外引線雙列直插式封裝

10、,外引線功能端排列如圖所示。   7135數(shù)字部分數(shù)字部分主要由計數(shù)器、鎖存器、多路開關(guān)及控制邏輯電路等組成。7135一次A/D轉(zhuǎn)換周期分為四個階段:1、自動調(diào)零(AZ);2、被測電壓積分(INT);3、基準(zhǔn)電壓反積分(DE);4、積分回零(ZI)。具體內(nèi)部轉(zhuǎn)換過程這里不做祥細介紹,主要介紹引腳的使用。R/H(25腳)當(dāng)R/H=“1”(該端懸空時為“1”)時,7135處于連續(xù)轉(zhuǎn)換狀態(tài),每40002個時鐘周期完成一次A/D轉(zhuǎn)換。若R/H由“1”變“0”,則7135在完成本次A/D轉(zhuǎn)換后進入保持狀態(tài),此時輸出為最后一次轉(zhuǎn)換結(jié)果,不受輸入電壓變化的影響。因此利用R/H端的功能可以

11、使數(shù)據(jù)有保持功能。若把R/H端用作啟動功能時,只要在該端輸入一個正脈沖(寬度300ns),轉(zhuǎn)換器就從AZ階段開始進行A/D轉(zhuǎn)換。注意:第一次轉(zhuǎn)換周期中的AZ階段時間為9001-10001個時鐘脈沖,這是由于啟動脈沖和內(nèi)部計數(shù)器狀態(tài)不同步造成的。/ST(26腳)每次A/D轉(zhuǎn)換周期結(jié)束后,ST端都輸出5個負脈沖,其輸出時間對應(yīng)在每個周期開始時的5個位選信號正脈沖的中間,ST負脈沖寬度等于1/2時鐘周期。圖.2 ICL7135的波形圖第一個ST負脈沖在上次轉(zhuǎn)換周期結(jié)束后101個時鐘周期產(chǎn)生。因為每個選信號(D5-D1)的正脈沖寬度為200個時鐘周期(只有AZ和DE階段開始時的第一個D5的脈沖寬度為2

12、01個CLK 周期),所以ST負脈沖之間相隔也是200個時鐘周期。需要注意的是,若上一周期為保持狀態(tài)(R/H=“0”)則ST無脈沖信號輸出。ST信號主要用來控制將轉(zhuǎn)換結(jié)果向外部鎖存器、UARTs或微處理器進行傳送。BUSY(21腳)在雙積分階段(INT+DE),BUSY為高電平,其余時為低電平。因此利用BUSY功能,可以實現(xiàn)A/D轉(zhuǎn)換結(jié)果的遠距離雙線傳送,其還原方法是將BUSY和CLK“與”后來計數(shù)器,再減去10001就可得到原來的轉(zhuǎn)換結(jié)果。OR(27腳)當(dāng)輸入電壓超出量程范圍(20000),OR將會變高。該信號在BUSY信號結(jié)束時變高。在DE階段開始時變低。UR(28腳)當(dāng)輸入電壓等于或低于

13、滿量程的9%(讀數(shù)為1800),則一當(dāng)BUST信號結(jié)束,UR將會變高。該信號在INT階段開始時變低。POL(23腳)該信號用來指示輸入電壓的極性。當(dāng)輸入電壓為正,則POL等于“1”,反之則等于“0”。該信號DE階段開始時變化,并維持一個A/D轉(zhuǎn)換調(diào)期。位驅(qū)動信號D5、D4、D3、D2、D1(12、17、18、19、20腳)每一位驅(qū)動信號分別輸出一個正脈沖信號,脈沖寬度為200個時鐘周期,其中D5對應(yīng)萬位選通,以下依次為千、百、十、個位。在正常輸入情況下,D5-D1輸出連續(xù)脈沖。當(dāng)輸入電壓過量程時,D5-D1在AZ階段開始時只分別輸出一個脈沖,然后都處于低電平,直至DE階段開始時才輸出連續(xù)脈沖。

14、利用這個特性,可使得顯示器件在過程時產(chǎn)生一亮一暗的直觀現(xiàn)象。 B8、B4、B2、B1(16、15、14、13腳)該四端為轉(zhuǎn)換結(jié)果BCD碼輸出,采用動態(tài)掃描輸出方式,即當(dāng)位選信號D5=“1”時,該四端的信號為萬位數(shù)的內(nèi)容,D4=“1”時為千位數(shù)內(nèi)容,其余依次類推。在個、十、百、千四位數(shù)的內(nèi)容輸出時,BCD碼范圍為0000-1001,對于萬位數(shù)只有0和1兩種狀態(tài),所以其輸出的BCD碼為“0000”和“0001”。當(dāng)輸入電壓過量程時,各位數(shù)輸出全部為零,這一點在使用時應(yīng)注意。   最后還要說明一點,由于數(shù)字部分以DGNG端作為接地端,所以所有輸出端輸出電平以DGNG作為相對參考點

15、?;鶞?zhǔn)電壓,基準(zhǔn)電壓的輸入必須對于模擬公共端COM是正電壓。  與單片機系統(tǒng)的串行連接在ICL7135與單片機系統(tǒng)進行連接時,使用并行采集方式,要連接BCD碼數(shù)據(jù)輸出線,可以將ICL7135的/STB信號接至AT89C52的P3.2(INT0)。 ICL7135需要外部的時鐘信號,本設(shè)計采用CD4060來對4M信號進行32分頻得到125KHz的時鐘信號。CD4060計數(shù)為級進制計數(shù)器,在數(shù)字集成電路中可實現(xiàn)的分頻次數(shù)最高,而且CD4060還包含振蕩電路所需的非門,使用更為方便。圖3.2.1.3 ICL7135與系統(tǒng)的連接圖 圖3.2.1.4 CD4060時鐘發(fā)生電路 3.3單片機部分

16、單片機選用的是ATMEL公司新推出的AT89S52,如圖 .1所示。該芯片具有低功耗、高性能的特點,是采用CMOS工藝的8位單片機,與AT89C51完全兼容。AT89S52還有以下主要特點:    采用了ATMEL公司的高密度、非易失性存儲器(NV-SRAM)技術(shù);    其片內(nèi)具有256字節(jié)RAM,8KB的可在線編程(ISP)FLASH存儲器;    有2種低功耗節(jié)電工作方式:空閑模式和掉電模式    片內(nèi)含有一個看門狗定時器(WDT),WDT包含一個14位計數(shù)器和看門狗定

17、時器復(fù)位寄存器(WDTRST),只要對WDTRST按順序先寫入01EH,后寫入0E1H,WDT便啟動,當(dāng)CPU由于擾動而使程序陷入死循環(huán)或“跑飛”狀態(tài)時,WDT即可有效地使系統(tǒng)復(fù)位,提高了系統(tǒng)的抗干擾性能。3.4液晶顯示部分圖 .1 89S52引腳圖顯示接口用來顯示系統(tǒng)的狀態(tài),命令或采集的電壓數(shù)據(jù)。本系統(tǒng)顯示部分用的是LCD液晶模塊,采用一個16×1的字符型液晶顯示模塊, 點陣圖形式液晶由 M 行×N 列個顯示單元組成,假設(shè) LCD 顯示屏有64行,每行有 128列,每 8列對應(yīng) 1 個字節(jié)的 8 個位,即每行由 16 字節(jié),共 16×8=128個點組成,屏上 6

18、4×16 個顯示單元和顯示 RAM 區(qū) 1024 個字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和屏上相應(yīng)位置的亮暗對應(yīng)。一個字符由 6×8 或 8×8點陣組成,即要找到和屏上某幾個位置對應(yīng)的顯示 RAM區(qū)的 8 個字節(jié),并且要使每個字節(jié)的不同的位為1,其它的為0,為1的點亮,為0的點暗,這樣一來就組成某個字符。但對于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可讓控制器工作在文本方式,根據(jù)在LCD 上開始顯示的行列號及每行的列數(shù)找出顯示 RAM對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可。 1601使用說明圖.1 1601引腳圖表.1 LCD1601液晶模塊的引腳引腳

19、符號功能說明1GND接地2Vcc5V3VL驅(qū)動LCD,一般將此腳接地4RS寄存器選擇 0:指令寄存器(WRITE)Busy flag,位址計數(shù)器(READ) 1:數(shù)據(jù)寄存器(WRITE,READ)5R/WREAD/WRITE選擇 1:READ 0:WTITE6E讀寫使能(下降沿使能)7DB0低4位三態(tài)、雙向數(shù)據(jù)總線續(xù)表.1 LCD1601液晶模塊的引腳8DB19DB210DB311DB4高4位三態(tài)、雙向數(shù)據(jù)總線另外DB7也是一個Busy flag12DB513DB614DB7寄存器選擇,如表所示:表.3 寄存器選擇控制線操作RSR/W操作說明00寫入指令寄存器(清除屏幕等)01讀Busy fl

20、ag(DB7),以及讀取位址計數(shù)器(DB0DB6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)Busy flag(DB7):在此位未被清除為“0”時,LCD將無法再處理其他指令要求。(1)顯示地址:內(nèi)部地址計數(shù)器的計數(shù)地址:SB7=0(DB0DB6)第一行00、01、02 等,第二行40、41、42 等,可配合檢測DB7=1 (RS=0,R/W=1)讀取目前顯示字的地址,判斷是否需要換行。表.4 LCD1601 16×1 顯示字的地址1234567891011121314151600010203040506074041424344454647(2)外部地址:DB7=1

21、,亦即80H內(nèi)部計數(shù)地址,可以用此方式將字顯示在某一位置。LCD各地址列舉如下表:表.5 LCD1601 16×1 顯示字的外部地址16×1 16字1行 1601123456789101112131415168081828384858687C0C1C2C3C4C5C6C7表.6 LCD1601 的指令組指 令說 明設(shè)置碼RS R/WD7D6D5D4D3D2D1D0清除顯示幕000000000*光標(biāo)回到原點000000001*進入模式設(shè)定00000001I/DS顯示幕ON/OFF0000001DCB移位000001S/CR/L*功能設(shè)定00001DLNF*字發(fā)生器地址設(shè)定00

22、01AGC設(shè)置顯示地址0001ADD忙碌標(biāo)志位BF001BF顯示數(shù)據(jù)10寫入數(shù)據(jù)讀取數(shù)據(jù)11讀取數(shù)據(jù)I/D I/D=1 表示加1, I/D=0 表示減1S S=1 表示顯示幕ON S=0表示OFFD D=1 表示顯示屏幕ON D=0表示顯示屏幕OFFC C=1 表示光標(biāo)ON C=0表示光標(biāo)OFFB B=1 表示閃爍ON B=0表示顯示閃爍OFFS/C S/C=1表示顯示屏幕移位 S/C=0光標(biāo)移位R/L R/L=1表示右移 R/L=0表示左移DL DL=1表示8位 DL=0表示4位F F=1表示5×10點矩陣 F=0表示5×7點矩陣N N=1表示2行顯示行 N=0表示1行顯

23、示行BF BF=1:內(nèi)部正在動作 BF=0:可接收指令或數(shù)據(jù)碼 液晶顯示部分與89S52的接口 如圖所示:用89S52的P2口作為數(shù)據(jù)線,用P0.1、P0.2、P0.3分別作為LCD的E、R/W、RS。其中E是下降沿觸發(fā)的片選信號,R/W是讀寫信號,RS是寄存器選擇信號本模塊設(shè)計要點如下:顯示模塊初始化:首先清屏,再設(shè)置接口數(shù)據(jù)位為8位,顯示行數(shù)為1行,字型為5×7點陣,然后設(shè).1 液晶與89S52的接口置為整體顯示,取消光標(biāo)和字體閃爍,最后設(shè)置為正向增量方式且不移位。向LCD的顯示緩沖區(qū)中送字符,程序中采用2個字符數(shù)組,一個顯示字符,另一個顯示電壓數(shù)據(jù),要顯示的字符或數(shù)據(jù)被送到相應(yīng)

24、的數(shù)組中,完成后再統(tǒng)一顯示.首先取一個要顯示的字符或數(shù)據(jù)送到LCD的顯示緩沖區(qū),程序延時2.5ms,判斷是否夠顯示的個數(shù),不夠則地址加一取下一個要顯示的字符或數(shù)據(jù)。3.5 通訊模塊圖 MAX232引腳功能圖89S52內(nèi)部已集成通信接口URT,只需擴展一片MAX232芯片將輸出信號轉(zhuǎn)換成RS-232協(xié)議規(guī)定的電平標(biāo)準(zhǔn),  MAX232 是 一 種 雙 組 驅(qū) 動 器 / 接 收 器 ,每個接收器將EIA/TIA-232-E電平輸入轉(zhuǎn)換為5V  TTL/CMOS電平。 每個驅(qū)動器將TTL/CMOS輸入電平轉(zhuǎn)換 為 EIA/TIA-232-E電平。即EIA接口,就是把5

25、V轉(zhuǎn)換為-8V到-15V電位0V轉(zhuǎn)換為8V到15V再經(jīng)RXD輸出,接收時由RXD輸入,把-8V到-15V電位轉(zhuǎn)換為5V,8V到15V轉(zhuǎn)換為0V。MAX232的工作電壓只需5V,內(nèi)部有振蕩電路產(chǎn)生正負9V電位。4 系統(tǒng)的軟件設(shè)計4.1主程序設(shè)計ICL7135A/D與單片機連接電路的軟件設(shè)計系統(tǒng)的程序流程圖如圖所示。主程序一開始運行則設(shè)置堆棧起始地址為70H,設(shè)置中斷寄存器,用來對ICL7135的中斷進行計數(shù),每5次后清零,完成一次數(shù)據(jù)采集工作,然后設(shè)置ICL7135的STB端的中斷的優(yōu)先級。緊接著LCDM1601B進行一次清屏,使其各個指令、數(shù)據(jù)寄存器的值進行清空,屏幕不顯示任何字符。以前面對1

26、601B的介紹,只要將01H送到數(shù)據(jù)總線,使RS=0,R/W=0,E有個下降沿的脈沖就可以完成清屏工作。用以下指令實現(xiàn) MOV P2,#01H ;送到數(shù)據(jù)DB7-DB0,調(diào)用子程序 ENABLE,由于下降沿時,內(nèi)部數(shù)據(jù)要送到RAM區(qū),所以要有一個延時子程序,使這個下降沿持續(xù)2.5毫秒。內(nèi)部RAM有指令代碼后就開始對RAM進行清零,所以屏幕原有的字符將被清除。接著對1601進行功能的設(shè)定。MOV P2,#01111000B,按表來看是設(shè)定圖 主程序流程圖顯示器按2行顯示,每行8位,5×7點陣。調(diào)用一次子程序ENABLE程序,寫入CPU的指令寄存器中。每次向LCDM中寫入一個指令,就調(diào)用

27、一次ENABLE,然后再對顯示器進行閃爍、光標(biāo)等功能進行設(shè)定。顯示器的RAM地址按加方法進行讀寫。再設(shè)定第一行字符,也就是Voltage的顯示地址80H。字符Voltage的TABLE表地址送到DPTR中,然后調(diào)用遠程查表命令,依次把數(shù)據(jù)送到P2口,這時再調(diào)用子程序WRITE3,使LCD1601的RS=1,R/W=0使使能端E產(chǎn)生一個下降沿脈沖,將數(shù)據(jù)送入到數(shù)據(jù)寄存器中,接下來執(zhí)行子程序DISPLAY1,它的主要功能是將TABLE表中的字符輸出到LCD中去。調(diào)定好顯示字符數(shù)即遠程查表的次數(shù),就開始查表了。 例如第一個字符“V”的ASCII碼是56H,就將這個碼送到P2口,再調(diào)用使能數(shù)據(jù)子程序,

28、使RS=1(數(shù)據(jù)區(qū)使能)寫入顯示數(shù)據(jù)區(qū),R/W=0表示寫,E=來個下降沿延時2.5毫秒,使數(shù)據(jù)寫入RAM內(nèi)。完成圖 數(shù)據(jù)地址TABLE表輸出以后,向指令RAM中寫入第2行的起始地址為OCH,再調(diào)用顯示采樣數(shù)據(jù)的子程序。采樣數(shù)據(jù)存放的數(shù)據(jù)地址安排如下圖所示,首先將60H中的數(shù)顯示在正負號的位置上,按照ASCII碼表,正號不顯示(#20H),負號顯示“”(#2DH)。4.2 A/D中斷程序設(shè)計圖 中斷子程序流程圖ICL7135每一分鐘完成3次據(jù)的采集工作,1/3秒完成后向CPU申請中斷,CPU這時暫停工作,為中斷服務(wù).中斷響應(yīng)后關(guān)中斷,將PSW、ACC壓棧,判斷是否首次中斷,如果是首次中斷,則將正

29、負號標(biāo)志位置入60H,再把萬位置入61H中,如果不是首次中斷,則跳到NEXT處,如果是第二次中斷,則將千位數(shù)置入62H中,如果是第三次中斷,再將百位數(shù)置入63H中,第四次中斷則將十位數(shù)置入64H中,第五次中斷則將小數(shù)點位置入65H中,同時個位置入66H中。同時清除中斷次數(shù)寄存器30H中的值,完成中斷后將ACC、PSW出棧,開中斷。消隱的思想:每次電壓采集后,CPU將數(shù)據(jù)送到LCD顯示,將可能出現(xiàn)以下幾種需要消隱的情況。例如:2000V檔量程:0199.9此時萬位的值0不符合人們的視覺習(xí)慣,需要把萬位的值消隱掉,編程是將#20H送入萬位,使其在LCD中不顯示任何字符即可。同樣的情況如下:需要消隱

30、萬位、千位需要消隱萬位、千位、百位2000V檔量程:0019.90001.9需要消隱萬位需要消隱萬位、千位200V檔量程:019.99001.99需要消隱萬位20V檔量程:01.999在采集到數(shù)據(jù)之后,置數(shù)之前判斷檔位,是2V檔不消隱,是其他檔位時再看要消隱的位之前有幾個是零。例如2000V檔量程,-0001.9V,在2次中斷時判斷檔位是2000V檔,第1位是零,消隱第2位千位。4.3通訊模塊程序設(shè)計89S52單片機內(nèi)部有一個全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個在物理上獨立的接收發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器則只能寫入不能讀出,它們的地址為99H。這個通信口既可以用于網(wǎng)絡(luò)通信,亦可實現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可方便地構(gòu)成標(biāo)準(zhǔn)的RS-232接口。89S52的串行口有4種工作方式,1種同步方式,3種異步方式。本方式選方式1,一幀數(shù)據(jù)有10位,包括起始位0、8位數(shù)據(jù)位和1位停止位1。串行口電路在發(fā)送時能自動加入起始位和停止位。在接收時,停止位進入SCON中的RB8位。方式1的

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論