單片機(jī)的數(shù)字電壓表_第1頁(yè)
單片機(jī)的數(shù)字電壓表_第2頁(yè)
單片機(jī)的數(shù)字電壓表_第3頁(yè)
單片機(jī)的數(shù)字電壓表_第4頁(yè)
單片機(jī)的數(shù)字電壓表_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、畢 業(yè) 論 文題目 單片機(jī)的數(shù)字電壓表 姓 名 系(院) 2011年 6月 22日27摘要隨著電子科學(xué)技術(shù)的發(fā)展,電子測(cè)量成為廣大電子工作者必須掌握得手段,對(duì)測(cè)量的精度和功能的要求也越來越高,二電壓的測(cè)量甚為突出,因?yàn)殡妷旱臏y(cè)量最為普遍。本文首先簡(jiǎn)要介紹了設(shè)計(jì)電壓表的主要方式以及單片機(jī)系統(tǒng)的優(yōu)勢(shì);然后詳細(xì)介紹了直流數(shù)字電壓表的設(shè)計(jì)流程,以及硬件和軟件系統(tǒng)的設(shè)計(jì),并給出了硬件電路的設(shè)計(jì)細(xì)節(jié),包括各部分電路的走向、芯片的選擇以及方案的可行性分析等。本文介紹一種基于at89s52單片機(jī)的一種電壓測(cè)量電路,該電路采用icl7135高精度、雙積分a/d轉(zhuǎn)換電路,測(cè)量范圍直流0-2000伏,使用lcd液晶

2、模塊顯示,可以與pc機(jī)進(jìn)行串行通信。正文著重給出了軟硬件系統(tǒng)的各部分電路,介紹了雙積分電路的原理,89s52的特點(diǎn),icl7135的功能和應(yīng)用,lcd1601的功能和應(yīng)用。該電路設(shè)計(jì)新穎、功能強(qiáng)大、可擴(kuò)展性強(qiáng)。傳統(tǒng)的電壓表在測(cè)量電壓時(shí)需要手動(dòng)切換量程,不僅不方便,而且要求不能超過該量程。如果在測(cè)量時(shí)忘記改變量程,則會(huì)出現(xiàn)很大的測(cè)量誤差,甚至有將電壓表燒壞的可能。本文中采用運(yùn)算放大器和集成多路模擬開關(guān)電路設(shè)計(jì)了電壓表量程自動(dòng)切換技術(shù),通過單片機(jī)檢測(cè)可實(shí)現(xiàn)電壓表的自動(dòng)轉(zhuǎn)換,它具有體積小,動(dòng)作快,結(jié)構(gòu)簡(jiǎn)單,操作方便的優(yōu)點(diǎn),可用于實(shí)驗(yàn)教學(xué)中。關(guān)鍵詞:電壓測(cè)量,icl7135,雙積分a/d轉(zhuǎn)換器,160

3、1液晶模塊bstractas electronic science and technology development, electronic measurement to become broad electronic workers must acquire tactics, and, for the accuracy of measurement and functional requirements are increasingly high, two voltage measurement is outstanding, the most popular because volta

4、ge measurement. this paper firstly introduces the design of the main way and voltmeter scm system advantage; then introduces the design process of dc digital voltmeter, and the design of hardware and software system, and gives the hardware circuit design details, including each part of the circuit,

5、the option and direction and chip scheme of feasibility analysis, etc. 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 carried out wi

6、th 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 traditional voltmeter when in measuring voltage need

7、to manually switched range, not only not convenient, and it requires no more than this range. if in measurement forget span gas, will appear in large measurement error, have even will burn out possible. voltmeter this paper using amplifier and integrated multi-channel analog switch circuit design au

8、tomatically switch the voltmeter range, by the technology can realize the microcontroller detection voltmeter automatically convert, it has small, action quick, simple structure, convenient operation, can be used for the advantages of experimental teaching. the circuit design nnovative, powerful, ca

9、n be expansionary strong.key words : digital voltmeter icl7135 lcd1601 89s52目錄摘要ibstractii目錄iii前言iv第一章 系統(tǒng)原理及基本框圖1第二章 硬件設(shè)計(jì)22.1 輸入電路22.2 a/d 轉(zhuǎn)換電路22.2.1雙積a/d 轉(zhuǎn)換器的工作原理22.2.2 icl7135芯片的應(yīng)用32.2.2.3與單片機(jī)系統(tǒng)的串行連接5第三章 單片機(jī)部分6第四章 液晶顯示部分74.1 1601使用說明84.2 液晶顯示部分與89s52的接口10第五章 通訊模塊10第六章 系統(tǒng)的軟件設(shè)計(jì)116.1主程序設(shè)計(jì)116.2 a/d中斷程

10、序設(shè)計(jì)116.3通訊模塊程序設(shè)計(jì)136.4原理圖設(shè)計(jì)如下14附錄15總結(jié)24參考文獻(xiàn)25致 謝26前言數(shù)字電壓表(digital voltmeter)簡(jiǎn)稱dvm,它是采用數(shù)字化測(cè)量技術(shù),把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。傳統(tǒng)的指針式電壓表功能單一、精度低,不能滿足數(shù)字化時(shí)代的需求,采用單片機(jī)的數(shù)字電壓表,由精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便,還可與pc進(jìn)行實(shí)時(shí)通信。目前,由各種單片a/d 轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表,已被廣泛用于電子及電工測(cè)量、工業(yè)自動(dòng)化儀表、自動(dòng)測(cè)試系統(tǒng)等智能化測(cè)量領(lǐng)域,示出強(qiáng)大的生命力。與此同時(shí),由dvm擴(kuò)展而成的各種通用及專用

11、數(shù)字儀器儀表,也把電量及非電量測(cè)量技術(shù)提高到嶄新水平。本章重點(diǎn)介紹單片a/d 轉(zhuǎn)換器以及由它們構(gòu)成的基于單片機(jī)的數(shù)字電壓表的工作原理。第一章 系統(tǒng)原理及基本框圖輸入電路a/d轉(zhuǎn)換89s52單片機(jī)lcd顯示通訊模塊1.1圖如圖1.1所示,模擬電壓經(jīng)過檔位切換到不同的分壓電路衰減后,經(jīng)隔離干擾送到a/d轉(zhuǎn)換器進(jìn)行a/d轉(zhuǎn)換,然后送到單片機(jī)中央處理器中進(jìn)行數(shù)據(jù)處理。處理后的數(shù)據(jù)送到lcd中顯示,同時(shí)通過串行通訊與上位機(jī)通信。實(shí)現(xiàn)遠(yuǎn)距離控制,適合現(xiàn)在工業(yè)中數(shù)據(jù)采集,實(shí)用性強(qiáng)。 圖1.1系統(tǒng)基本方框圖第二章 硬件設(shè)計(jì)2.1 輸入電路圖2.1.1量程切換開關(guān) 圖2.1.2衰減輸入電路輸入電路的作用是把不同

12、量程的被測(cè)的電壓規(guī)范到a/d轉(zhuǎn)換器所要求的電壓值。智能化數(shù)字電壓表所采用的單片雙積分型adc芯片icl7135,它要求輸入電壓0-2v。本儀表設(shè)計(jì)是0-1000v電壓,靈敏度高所以可以不加前置放大器,只需衰減器,如圖3.1.2所示9m、900k、90k、和10k電阻構(gòu)成1/10、1/100、1/1000的衰減器。衰減輸入電路可由開關(guān)來選擇不同的衰減率,從而切換檔位。為了能讓cpu自動(dòng)識(shí)別檔位,還要有圖3.1.1的硬件連接。2.2 a/d 轉(zhuǎn)換電路a/d 轉(zhuǎn)換器的轉(zhuǎn)換精度對(duì)測(cè)量電路極其重要,它的參數(shù)關(guān)系到測(cè)量電路性能。本設(shè)計(jì)采用雙積a/d 轉(zhuǎn)換器,它的性能比較穩(wěn)定,轉(zhuǎn)換精度高,具有很高的抗干擾能

13、力,電路結(jié)構(gòu)簡(jiǎn)單,其缺點(diǎn)是工作速度較低。在對(duì)轉(zhuǎn)換精度要求較高,而對(duì)轉(zhuǎn)換速度要求不高的場(chǎng)合如電壓測(cè)量有廣泛的應(yīng)用。2.2.1雙積a/d 轉(zhuǎn)換器的工作原理圖3.2.1.1雙積a/d 轉(zhuǎn)換器圖3.2.1.2雙積a/d 轉(zhuǎn)換器的波形圖 如圖所示:對(duì)輸入模擬電壓和基準(zhǔn)電壓進(jìn)行兩次積分,先對(duì)輸入模擬電壓進(jìn)行積分,將其變換成與輸入模擬電壓成正比的時(shí)間間隔 t1,再利用計(jì)數(shù)器測(cè)出此時(shí)間間隔,則計(jì)數(shù)器所計(jì)的數(shù)字量就正比于輸入的模擬電壓;接著對(duì)基準(zhǔn)電壓進(jìn)行同樣的處理。在常用的a/d轉(zhuǎn)換芯片(如adc -0809、icl7135、icl7109等)中,icl7135與其余幾種有所不同,它是一種四位半的雙積分a/d轉(zhuǎn)

14、換器,具有精度高(精度相當(dāng)于14位二進(jìn)制數(shù))、價(jià)格低廉、抗干擾能力強(qiáng)等優(yōu)點(diǎn)。本文介紹用單片機(jī)并行方式采集icl7135的數(shù)據(jù)以實(shí)現(xiàn)單片機(jī)電壓表和小型智能儀表的設(shè)計(jì)方案。2.2.2 icl7135芯片的應(yīng)用7135是采用cmos工藝制作的單片4位半a/d轉(zhuǎn)換器,其所轉(zhuǎn)換的數(shù)字值以多工掃描的方式輸出,只要附加譯碼器,數(shù)碼顯示器,驅(qū)動(dòng)器及電阻電容等元件,就可組成一個(gè)滿量程為2v的數(shù)字電壓表。2.2.2.1 7135主要特點(diǎn)雙積型a/d轉(zhuǎn)換器,轉(zhuǎn)換速度慢。在每次a/d轉(zhuǎn)換前,內(nèi)部電 3.2.1.1 icl7135引腳圖路都自動(dòng)進(jìn)行調(diào)零操作,可保證零點(diǎn)在常溫下的長(zhǎng)期穩(wěn)定。在20000字(2v滿量程)范圍

15、內(nèi),保證轉(zhuǎn)換精度1字相當(dāng)于14bita/d轉(zhuǎn)換器。 具有自動(dòng)極性轉(zhuǎn)換功能。能在但極性參考電壓下對(duì)雙極性模擬輸入電壓進(jìn)行a/d轉(zhuǎn)換,模擬電壓的范圍為01.9999v。 模擬出入可以是差動(dòng)信號(hào),輸入電阻極高,輸入電流典型值1pa。 所有輸出端和ttl電路相容。 有過量程(or)和欠量程(ur)標(biāo)志信號(hào)輸出,可用作自動(dòng)量程轉(zhuǎn)換的控制信號(hào)。 輸出為動(dòng)態(tài)掃描bcd碼。 對(duì)外提供六個(gè)輸入,輸出控制信號(hào)(r/h,bush,st,pol,or,ur),因此除用于數(shù)字電壓表外,還能與異步接收 /發(fā)送器,微處理器或其它控制電路連接使用。 采用28外引線雙列直插式封裝,外引線功能端排列如圖所示。 2.2.2.2 7

16、135數(shù)字部分及連接數(shù)字部分主要由計(jì)數(shù)器、鎖存器、多路開關(guān)及控制邏輯電路等組成。7135一次a/d轉(zhuǎn)換周期分為四個(gè)階段:1、自動(dòng)調(diào)零(az);2、被測(cè)電壓積分(int);3、基準(zhǔn)電壓反積分(de);4、積分回零(zi)。具體內(nèi)部轉(zhuǎn)換過程這里不做祥細(xì)介紹,主要介紹引腳的使用。r/h(25腳)當(dāng)r/h=“1”(該端懸空時(shí)為“1”)時(shí),7135處于連續(xù)轉(zhuǎn)換狀態(tài),每40002個(gè)時(shí)鐘周期完成一次a/d轉(zhuǎn)換。若r/h由“1”變“0”,則7135在完成本次a/d轉(zhuǎn)換后進(jìn)入保持狀態(tài),此時(shí)輸出為最后一次轉(zhuǎn)換結(jié)果,不受輸入電壓變化的影響。因此利用r/h端的功能可以使數(shù)據(jù)有保持功能。若把r/h端用作啟動(dòng)功能時(shí),只要

17、在該端輸入一個(gè)正脈沖(寬度300ns),轉(zhuǎn)換器就從az階段開始進(jìn)行a/d轉(zhuǎn)換。注意:第一次轉(zhuǎn)換周期中的az階段時(shí)間為9001-10001個(gè)時(shí)鐘脈沖,這是由于啟動(dòng)脈沖和內(nèi)部計(jì)數(shù)器狀態(tài)不同步造成的。/st(26腳)每次a/d轉(zhuǎn)換周期結(jié)束后,st端都輸出5個(gè)負(fù)脈沖,其輸出時(shí)間對(duì)應(yīng)在每個(gè)周期開始時(shí)的5個(gè)位選信號(hào)正脈沖的中間,st負(fù)脈沖寬度等于1/2時(shí)鐘周期。圖3.2.1.2 icl7135的波形圖第一個(gè)st負(fù)脈沖在上次轉(zhuǎn)換周期結(jié)束后101個(gè)時(shí)鐘周期產(chǎn)生。因?yàn)槊總€(gè)選信號(hào)(d5-d1)的正脈沖寬度為200個(gè)時(shí)鐘周期(只有az和de階段開始時(shí)的第一個(gè)d5的脈沖寬度為201個(gè)clk 周期),所以st負(fù)脈沖之間

18、相隔也是200個(gè)時(shí)鐘周期。需要注意的是,若上一周期為保持狀態(tài)(r/h=“0”)則st無脈沖信號(hào)輸出。st信號(hào)主要用來控制將轉(zhuǎn)換結(jié)果向外部鎖存器、uarts或微處理器進(jìn)行傳送。busy(21腳)在雙積分階段(int+de),busy為高電平,其余時(shí)為低電平。因此利用busy功能,可以實(shí)現(xiàn)a/d轉(zhuǎn)換結(jié)果的遠(yuǎn)距離雙線傳送,其還原方法是將busy和clk“與”后來計(jì)數(shù)器,再減去10001就可得到原來的轉(zhuǎn)換結(jié)果。or(27腳)當(dāng)輸入電壓超出量程范圍(20000),or將會(huì)變高。該信號(hào)在busy信號(hào)結(jié)束時(shí)變高。在de階段開始時(shí)變低。ur(28腳)當(dāng)輸入電壓等于或低于滿量程的9%(讀數(shù)為1800),則一當(dāng)b

19、ust信號(hào)結(jié)束,ur將會(huì)變高。該信號(hào)在int階段開始時(shí)變低。pol(23腳)該信號(hào)用來指示輸入電壓的極性。當(dāng)輸入電壓為正,則pol等于“1”,反之則等于“0”。該信號(hào)de階段開始時(shí)變化,并維持一個(gè)a/d轉(zhuǎn)換調(diào)期。位驅(qū)動(dòng)信號(hào)d5、d4、d3、d2、d1(12、17、18、19、20腳)每一位驅(qū)動(dòng)信號(hào)分別輸出一個(gè)正脈沖信號(hào),脈沖寬度為200個(gè)時(shí)鐘周期,其中d5對(duì)應(yīng)萬位選通,以下依次為千、百、十、個(gè)位。在正常輸入情況下,d5-d1輸出連續(xù)脈沖。當(dāng)輸入電壓過量程時(shí),d5-d1在az階段開始時(shí)只分別輸出一個(gè)脈沖,然后都處于低電平,直至de階段開始時(shí)才輸出連續(xù)脈沖。利用這個(gè)特性,可使得顯示器件在過程時(shí)產(chǎn)生

20、一亮一暗的直觀現(xiàn)象。 b8、b4、b2、b1(16、15、14、13腳)該四端為轉(zhuǎn)換結(jié)果bcd碼輸出,采用動(dòng)態(tài)掃描輸出方式,即當(dāng)位選信號(hào)d5=“1”時(shí),該四端的信號(hào)為萬位數(shù)的內(nèi)容,d4=“1”時(shí)為千位數(shù)內(nèi)容,其余依次類推。在個(gè)、十、百、千四位數(shù)的內(nèi)容輸出時(shí),bcd碼范圍為0000-1001,對(duì)于萬位數(shù)只有0和1兩種狀態(tài),所以其輸出的bcd碼為“0000”和“0001”。當(dāng)輸入電壓過量程時(shí),各位數(shù)輸出全部為零,這一點(diǎn)在使用時(shí)應(yīng)注意。 最后還要說明一點(diǎn),由于數(shù)字部分以dgng端作為接地端,所以所有輸出端輸出電平以dgng作為相對(duì)參考點(diǎn)?;鶞?zhǔn)電壓,基準(zhǔn)電壓的輸入必須對(duì)于模擬公共端com是正電壓。硬件

21、連接:設(shè)mcs-51的外接晶振fosc=6mhz,則ale輸出約為1mhz,將ale信號(hào)輸入cd4040的clk引腳.cd4040是由12個(gè)t型觸發(fā)器組成的串行二進(jìn)制計(jì)數(shù)器/分頻器,有12個(gè)分頻輸出端,q1q12,最大分頻系數(shù)為212=4096,由于cd4040的所有輸入,輸出端都設(shè)有緩沖器,所以有較好的噪聲容限.cd4040的q2輸出是對(duì)ale進(jìn)行了22=4分頻,故輸入icl7135的時(shí)鐘為1mhz/4=250khz,可得tcp=1/250ms=0.004ms,由于一次轉(zhuǎn)換最多需(10001+10000+20001)=40002個(gè)脈沖,故轉(zhuǎn)換一次需0.00440002160ms,因此icl7

22、135的轉(zhuǎn)換速度為6.25次/s.選擇這一頻率,以犧牲icl7135抗工頻干擾為代價(jià),使mcs-51的16位計(jì)數(shù)器能一次計(jì)數(shù)a/d轉(zhuǎn)換的cp脈沖數(shù).在滿電壓輸入時(shí),busy寬度為正向積分10000個(gè)cp脈沖,反向積分20001個(gè)cp脈沖(總計(jì)30001個(gè)cp脈沖).在fosc=6mhz情況下,8031內(nèi)部定時(shí)頻率為6mhz/12=500khz,比icl7135時(shí)鐘頻率250khz大了1倍.在滿刻度電壓輸入時(shí),定時(shí)器計(jì)數(shù)值應(yīng)為30 0012=60002,不超過mcs-51的16位計(jì)數(shù)的最大可計(jì)數(shù)值(216),故在busy高電平期間,計(jì)數(shù)器計(jì)數(shù)值除以2,再減去10000(2710h),余數(shù)就是被測(cè)

23、電壓的數(shù)值. 2.2.2.3與單片機(jī)系統(tǒng)的串行連接在icl7135與單片機(jī)系統(tǒng)進(jìn)行連接時(shí),使用并行采集方式,要連接bcd碼數(shù)據(jù)輸出線,可以將icl7135的/stb信號(hào)接至at89c52的p3.2(int0)。 icl7135需要外部的時(shí)鐘信號(hào),本設(shè)計(jì)采用cd4060來對(duì)4m信號(hào)進(jìn)行32分頻得到125khz的時(shí)鐘信號(hào)。cd4060計(jì)數(shù)為級(jí)進(jìn)制計(jì)數(shù)器,在數(shù)字集成電路中可實(shí)現(xiàn)的分頻次數(shù)最高,而且cd4060還包含振蕩電路所需的非門,使用更為方便。圖2.2.1.3 icl7135與系統(tǒng)的連接圖 圖2.2.1.4 cd4060時(shí)鐘發(fā)生電路 第三章 單片機(jī)部分單片機(jī)選用的是atmel公司新推出的at89

24、s52,如圖 3.2.1所示。該芯片具有低功耗、高性能的特點(diǎn),是采用cmos工藝的8位單片機(jī),與at89c51完全兼容。at89s52還有以下主要特點(diǎn): 采用了atmel公司的高密度、非易失性存儲(chǔ)器(nv-sram)技術(shù); 其片內(nèi)具有256字節(jié)ram,8kb的可在線編程(isp)flash存儲(chǔ)器,三級(jí)加密程序存儲(chǔ)器; 有2種低功耗節(jié)電工作方式:空閑模式和掉電模式 片內(nèi)含有一個(gè)看門狗定時(shí)器(wdt),wdt包含一個(gè)14位計(jì)數(shù)器和看門狗定時(shí)器復(fù)位寄存器(wdtrst),只要對(duì)wdtrst按順序先寫入01eh,后寫入0e1h,wdt便啟動(dòng),當(dāng)cpu由于擾動(dòng)而使程序陷入死循環(huán)或“跑飛”狀態(tài)時(shí),wdt即

25、可有效地使系統(tǒng)復(fù)位,提高了系統(tǒng)的抗干擾性能。全雙工uart串行通道。p0 口:p0口是一個(gè)8位漏極開路的雙向i/o口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)ttl邏輯電平。對(duì)p0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),p0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,p0具有內(nèi)部上拉電阻。在flash編程時(shí),p0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。p1 口:p1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向i/o 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)ttl 邏輯電平。對(duì)p1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使

26、用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。此外,p1.0和p1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(p1.0/t2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(p1.1/t2ex),具體如下表所示。在flash編程和校驗(yàn)時(shí),p1口接收低8位地址字節(jié)。引腳號(hào)第二功能p1.0 t2(定時(shí)器/計(jì)數(shù)器t2的外部計(jì)數(shù)輸入),時(shí)鐘輸出p1.1 t2ex(定時(shí)器/計(jì)數(shù)器t2的捕捉/重載觸發(fā)信號(hào)和方向控制)p1.5 mosi(在系統(tǒng)編程用)p1.6 miso(在系統(tǒng)編程用)p1.7 sck(在系統(tǒng)編程用)p2 口:p2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向i/o 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)tt

27、l 邏輯電平。對(duì)p2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行movx dptr)時(shí),p2 口送出高八位地址。在這種應(yīng)用中,p2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如movx ri)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),p2口輸出p2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),p2口也接收高8位地址字節(jié)和一些控制信號(hào)。p3 口:p3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向i/o 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)ttl 邏輯電平。對(duì)p3 端口寫“1”

28、時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。p3口亦作為at89s52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗(yàn)時(shí),p3口也接收一些控制信號(hào)。at89s52引腳號(hào)第二功能p3.0 rxd(串行輸入),p3.1 txd(串行輸出),p3.2 int0(外部中斷0),p3.3 int0(外部中斷0),p3.4 t0(定時(shí)器0外部輸入),p3.5 t1(定時(shí)器1外部輸入),p3.6 wr(外部數(shù)據(jù)存儲(chǔ)器寫選通),p3.7 rd(外部數(shù)據(jù)存儲(chǔ)器寫選通),rst: 復(fù)位輸入。晶振工作時(shí),rst腳持續(xù)2 個(gè)

29、機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,rst 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器auxr(地址8eh)上的disrto位可以使此功能無效。disrto默認(rèn)狀態(tài)下,復(fù)位高電平有效。ale/prog:地址鎖存控制信號(hào)(ale)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳(prog)也用作編程輸入脈沖。在一般情況下,ale 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ale脈沖將會(huì)跳過。如果需要,通過將地址為8eh的sfr的第0位置“1”,ale操作將無效。這一位置“1”,ale 僅

30、在執(zhí)行movx 或movc指令時(shí)有效。否則,ale 將被微弱拉高。這個(gè)ale 使能標(biāo)志位(地址為8eh的sfr的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無效。psen:外部程序存儲(chǔ)器選通信號(hào)(psen)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)at89s52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),psen在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),psen將不被激活。ea/vpp:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000h 到ffffh的外部程序存儲(chǔ)器讀取指令,ea必須接gnd。為了執(zhí)行內(nèi)部程序指令,ea應(yīng)該接vcc。在flash編程期間,ea也接收12伏vpp電壓。xtal1:振蕩器反相放大器和內(nèi)部

31、時(shí)鐘發(fā)生電路的輸入端。xtal2:振蕩器反相放大器的輸出端。第四章 液晶顯示部分圖 3.2.1.1 89s52引腳圖顯示接口用來顯示系統(tǒng)的狀態(tài),命令或采集的電壓數(shù)據(jù)。本系統(tǒng)顯示部分用的是lcd液晶模塊,采用一個(gè)161的字符型液晶顯示模塊, 點(diǎn)陣圖形式液晶由 m 行n 列個(gè)顯示單元組成,假設(shè) lcd 顯示屏有64行,每行有 128列,每 8列對(duì)應(yīng) 1 個(gè)字節(jié)的 8 個(gè)位,即每行由 16 字節(jié),共 168=128個(gè)點(diǎn)組成,屏上 6416 個(gè)顯示單元和顯示 ram 區(qū) 1024 個(gè)字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容和屏上相應(yīng)位置的亮暗對(duì)應(yīng)。一個(gè)字符由 68 或 88點(diǎn)陣組成,即要找到和屏上某幾個(gè)位置對(duì)應(yīng)的顯

32、示 ram區(qū)的 8 個(gè)字節(jié),并且要使每個(gè)字節(jié)的不同的位為1,其它的為0,為1的點(diǎn)亮,為0的點(diǎn)暗,這樣一來就組成某個(gè)字符。但對(duì)于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡(jiǎn)單了,可讓控制器工作在文本方式,根據(jù)在lcd 上開始顯示的行列號(hào)及每行的列數(shù)找出顯示 ram對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。4.1 1601使用說明圖3.4.1.1 1601引腳圖表3.4.1.1 lcd1601液晶模塊的引腳引腳符號(hào)功能說明1gnd接地2vcc5v3vl驅(qū)動(dòng)lcd,一般將此腳接地4rs寄存器選擇 0:指令寄存器(write)busy flag,位址計(jì)數(shù)器(read) 1:數(shù)據(jù)寄存器(wri

33、te,read)5r/wread/write選擇 1:read 0:wtite6e讀寫使能(下降沿使能)7db0低4位三態(tài)、雙向數(shù)據(jù)總線續(xù)表3.4.1.1 lcd1601液晶模塊的引腳8db19db210db311db4高4位三態(tài)、雙向數(shù)據(jù)總線另外db7也是一個(gè)busy flag12db513db614db7寄存器選擇,如表所示:表3.4.1.3 寄存器選擇控制線操作rsr/w操作說明00寫入指令寄存器(清除屏幕等)01讀busy flag(db7),以及讀取位址計(jì)數(shù)器(db0db6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)busy flag(db7):在此位未被清除為“0

34、”時(shí),lcd將無法再處理其他指令要求。(1)顯示地址:內(nèi)部地址計(jì)數(shù)器的計(jì)數(shù)地址:sb7=0(db0db6)第一行00、01、02 等,第二行40、41、42 等,可配合檢測(cè)db7=1 (rs=0,r/w=1)讀取目前顯示字的地址,判斷是否需要換行。表3.4.1.4 lcd1601 161 顯示字的地址1234567891011121314151600010203040506074041424344454647(2)外部地址:db7=1,亦即80h內(nèi)部計(jì)數(shù)地址,可以用此方式將字顯示在某一位置。lcd各地址列舉如下表:表3.4.1.5 lcd1601 161 顯示字的外部地址161 16字1行 1

35、601123456789101112131415168081828384858687c0c1c2c3c4c5c6c7表3.4.1.6 lcd1601 的指令組指 令說 明設(shè)置碼rs r/wd7d6d5d4d3d2d1d0清除顯示幕000000000*光標(biāo)回到原點(diǎn)000000001*進(jìn)入模式設(shè)定00000001i/ds顯示幕on/off0000001dcb移位000001s/cr/l*功能設(shè)定00001dlnf*字發(fā)生器地址設(shè)定0001agc設(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 表

36、示顯示幕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表示510點(diǎn)矩陣 f=0表示57點(diǎn)矩陣n n=1表示2行顯示行 n=0表示1行顯示行bf bf=1:內(nèi)部正在動(dòng)作 bf=0:可接收指令或數(shù)據(jù)碼4.2 液晶顯示部分與89s52的接口 如圖所示:用89s52的p2口作為數(shù)據(jù)線,用p0.1、p0.2、p0.3分別作為lcd的

37、e、r/w、rs。其中e是下降沿觸發(fā)的片選信號(hào),r/w是讀寫信號(hào),rs是寄存器選擇信號(hào)本模塊設(shè)計(jì)要點(diǎn)如下:顯示模塊初始化:首先清屏,再設(shè)置接口數(shù)據(jù)位為8位,顯示行數(shù)為1行,字型為57點(diǎn)陣,然后設(shè)4.2.1 液晶與89s52的接口置為整體顯示,取消光標(biāo)和字體閃爍,最后設(shè)置為正向增量方式且不移位。向lcd的顯示緩沖區(qū)中送字符,程序中采用2個(gè)字符數(shù)組,一個(gè)顯示字符,另一個(gè)顯示電壓數(shù)據(jù),要顯示的字符或數(shù)據(jù)被送到相應(yīng)的數(shù)組中,完成后再統(tǒng)一顯示.首先取一個(gè)要顯示的字符或數(shù)據(jù)送到lcd的顯示緩沖區(qū),程序延時(shí)2.5ms,判斷是否夠顯示的個(gè)數(shù),不夠則地址加一取下一個(gè)要顯示的字符或數(shù)據(jù)。第五章 通訊模塊89s52

38、內(nèi)部已集成通信接口urt,只需擴(kuò)展一片max232芯片將輸出信號(hào)轉(zhuǎn)換成rs-232協(xié)議規(guī)定的電平標(biāo)準(zhǔn), max232 是 一 種 雙 組 驅(qū) 動(dòng) 器 / 接 收 器 ,每個(gè)接收器將eia/tia-232-e電平輸入轉(zhuǎn)換為5vttl/cmos電平。 每個(gè)驅(qū)動(dòng)器將ttl/cmos輸入電平轉(zhuǎn)換 為 eia/tia-232-e電平。即eia接口,就是把5v轉(zhuǎn)換為-8v到-15v電位0v轉(zhuǎn)換為8v到15v再經(jīng)rxd輸出,接收時(shí)由rxd輸入,把-8v到-15v電位轉(zhuǎn)換為5v,8v到15v轉(zhuǎn)換為0v。max232的工作電壓只需5v,內(nèi)部有振蕩電路產(chǎn)生正負(fù)9v電位。圖3.5.1 max232引腳功能圖第六章

39、系統(tǒng)的軟件設(shè)計(jì)6.1主程序設(shè)計(jì)icl7135a/d與單片機(jī)連接電路的軟件設(shè)計(jì)系統(tǒng)的程序流程圖如圖所示。主程序一開始運(yùn)行則設(shè)置堆棧起始地址為70h,設(shè)置中斷寄存器,用來對(duì)icl7135的中斷進(jìn)行計(jì)數(shù),每5次后清零,完成一次數(shù)據(jù)采集工作,然后設(shè)置icl7135的stb端的中斷的優(yōu)先級(jí)。緊接著lcdm1601b進(jìn)行一次清屏,使其各個(gè)指令、數(shù)據(jù)寄存器的值進(jìn)行清空,屏幕不顯示任何字符。以前面對(duì)1601b的介紹,只要將01h送到數(shù)據(jù)總線,使rs=0,r/w=0,e有個(gè)下降沿的脈沖就可以完成清屏工作。用以下指令實(shí)現(xiàn) mov p2,#01h ;送到數(shù)據(jù)db7-db0,調(diào)用子程序 enable,由于下降沿時(shí),內(nèi)

40、部數(shù)據(jù)要送到ram區(qū),所以要有一個(gè)延時(shí)子程序,使這個(gè)下降沿持續(xù)2.5毫秒。內(nèi)部ram有指令代碼后就開始對(duì)ram進(jìn)行清零,所以屏幕原有的字符將被清除。接著對(duì)1601進(jìn)行功能的設(shè)定。mov p2,#01111000b,按表3.4.5來看是設(shè)定圖4.1.1 主程序流程圖顯示器按2行顯示,每行8位,57點(diǎn)陣。調(diào)用一次子程序enable程序,寫入cpu的指令寄存器中。每次向lcdm中寫入一個(gè)指令,就調(diào)用一次enable,然后再對(duì)顯示器進(jìn)行閃爍、光標(biāo)等功能進(jìn)行設(shè)定。顯示器的ram地址按加方法進(jìn)行讀寫。再設(shè)定第一行字符,也就是voltage的顯示地址80h。字符voltage的table表地址送到dptr中

41、,然后調(diào)用遠(yuǎn)程查表命令,依次把數(shù)據(jù)送到p2口,這時(shí)再調(diào)用子程序write3,使lcd1601的rs=1,r/w=0使使能端e產(chǎn)生一個(gè)下降沿脈沖,將數(shù)據(jù)送入到數(shù)據(jù)寄存器中,接下來執(zhí)行子程序display1,它的主要功能是將table表中的字符輸出到lcd中去。調(diào)定好顯示字符數(shù)即遠(yuǎn)程查表的次數(shù),就開始查表了。 例如第一個(gè)字符“v”的ascii碼是56h,就將這個(gè)碼送到p2口,再調(diào)用使能數(shù)據(jù)子程序,使rs=1(數(shù)據(jù)區(qū)使能)寫入顯示數(shù)據(jù)區(qū),r/w=0表示寫,e=來個(gè)下降沿延時(shí)2.5毫秒,使數(shù)據(jù)寫入ram內(nèi)。完成圖4.1.2 數(shù)據(jù)地址table表輸出以后,向指令ram中寫入第2行的起始地址為och,再調(diào)

42、用顯示采樣數(shù)據(jù)的子程序。采樣數(shù)據(jù)存放的數(shù)據(jù)地址安排如下圖所示,首先將60h中的數(shù)顯示在正負(fù)號(hào)的位置上,按照ascii碼表,正號(hào)不顯示(#20h),負(fù)號(hào)顯示“”(#2dh)。6.2 a/d中斷程序設(shè)計(jì)圖4.2.1 中斷子程序流程圖icl7135每一分鐘完成3次據(jù)的采集工作,1/3秒完成后向cpu申請(qǐng)中斷,cpu這時(shí)暫停工作,為中斷服務(wù).中斷響應(yīng)后關(guān)中斷,將psw、acc壓棧,判斷是否首次中斷,如果是首次中斷,則將正負(fù)號(hào)標(biāo)志位置入60h,再把萬位置入61h中,如果不是首次中斷,則跳到next處,如果是第二次中斷,則將千位數(shù)置入62h中,如果是第三次中斷,再將百位數(shù)置入63h中,第四次中斷則將十位數(shù)

43、置入64h中,第五次中斷則將小數(shù)點(diǎn)位置入65h中,同時(shí)個(gè)位置入66h中。同時(shí)清除中斷次數(shù)寄存器30h中的值,完成中斷后將acc、psw出棧,開中斷。消隱的思想:每次電壓采集后,cpu將數(shù)據(jù)送到lcd顯示,將可能出現(xiàn)以下幾種需要消隱的情況。例如:2000v檔量程:0199.9此時(shí)萬位的值0不符合人們的視覺習(xí)慣,需要把萬位的值消隱掉,編程是將#20h送入萬位,使其在lcd中不顯示任何字符即可。同樣的情況如下:需要消隱萬位、千位需要消隱萬位、千位、百位2000v檔量程:0019.90001.9需要消隱萬位需要消隱萬位、千位200v檔量程:019.99001.99需要消隱萬位20v檔量程:01.999

44、在采集到數(shù)據(jù)之后,置數(shù)之前判斷檔位,是2v檔不消隱,是其他檔位時(shí)再看要消隱的位之前有幾個(gè)是零。例如2000v檔量程,-0001.9v,在2次中斷時(shí)判斷檔位是2000v檔,第1位是零,消隱第2位千位。6.3通訊模塊程序設(shè)計(jì)89s52單片機(jī)內(nèi)部有一個(gè)全雙工的串行通信口,即串行接收和發(fā)送緩沖器(sbuf),這兩個(gè)在物理上獨(dú)立的接收發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器則只能寫入不能讀出,它們的地址為99h。這個(gè)通信口既可以用于網(wǎng)絡(luò)通信,亦可實(shí)現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可方便地構(gòu)成標(biāo)準(zhǔn)的rs-2

45、32接口。89s52的串行口有4種工作方式,1種同步方式,3種異步方式。本方式選方式1,一幀數(shù)據(jù)有10位,包括起始位0、8位數(shù)據(jù)位和1位停止位1。串行口電路在發(fā)送時(shí)能自動(dòng)加入起始位和停止位。在接收時(shí),停止位進(jìn)入scon中的rb8位。方式1的波特率是可變的,由定時(shí)器1的溢出率決定。由定時(shí)器1最好工作在方式2上(自動(dòng)重裝載模式),這樣只需對(duì)th1設(shè)置一次即可。數(shù)據(jù)通過txd輸出,在8個(gè)位輸出完畢后,scon寄存器的ti位被設(shè)為1,cpu只要判斷ti是1,接著發(fā)送下一個(gè)字節(jié)。波特率的設(shè)定:定時(shí)器t1工作在方式2的初值為:(1.1)為了減小誤差,時(shí)鐘振蕩頻率采用11.0592mhz,選用定時(shí)器t1工作

46、在方式2作波特率發(fā)生器,波特率為300,設(shè)smod為0,依公式(1.1)得初值為:所以th1 = tl1 = a0hmov scon ,#50h ;urat工作在方式1上mov tmod ,#20h ;time1工作在方式2上mov th1 , #0a0h ;設(shè)置波特率為300本設(shè)計(jì)的中斷十分重要,為了減少相互間的干擾,保證可靠性,采用查詢方式判斷是否發(fā)送完畢。 a6: jbc ti , a5 ;如果發(fā)送完畢跳,清標(biāo)志位,跳到a5。 ajmp a6 ;否則跳到a6,等待 a5: inc r0 6.4原理圖設(shè)計(jì)如下附錄#include#include#define uchar unsigned

47、char uchar code seg=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;sbit oe_595=p26;sbit clk_595=p27;sbit p20=p20;sbit p21=p21;sbit p22=p22;sbit p23=p23;sbit feng=p15;sbit zheng=p16;sbit bu=p17;uchar aa,bb,key,tab;uchar ab,bc,cd;uchar a,b,c,d,e,f;void display();void query();void display1();vo

48、id xin();void roo();void zoo();void tiao();void init()tmod=0x11;th0=(65536-50000)/256;tl0=(65536-50000)%256;th1=(65536-50000)/256;tl1=(65536-50000)%256;ea=1;et0=1;et1=1;/pt1=1;aa=0;bb=0;void main()uchar i1=0;ab=10;bc=20;cd=30;tab=3;a=8;b=8;c=8;d=8;e=8;f=8;key=12;init();oe_595=0;tr0=1;while(1)/feng=0;display();/tiao();void roo()while(1)zheng=1;feng=0;bu=0;query();feng=0;if(tab!=0)if(key=10)key=12;display1();/break;void zoo()while(1)zheng=0;bu=1;feng=1;query();if(key=0)key=12;display();void display1()uchar k=0,i,t1=10,t2=10,t3=10,t4=10,t5=10,t6=10;while(1)sbuf=se

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論