版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢業(yè)設(shè)計(jì)論文基于單片機(jī)的智能電流檢測(cè)系統(tǒng)的設(shè)計(jì)摘要:電流檢測(cè)系統(tǒng)是一種比較成熟的技術(shù),但是基于單片機(jī)的電流檢測(cè)系統(tǒng)是近來(lái)新興的一種技術(shù),主要優(yōu)點(diǎn)是可以一次將多個(gè)電流信號(hào)測(cè)量并顯示出來(lái)。本文闡述了基于單片機(jī)的智能電流系統(tǒng)設(shè)計(jì)的組成及設(shè)計(jì)方法。它的設(shè)計(jì)是為了檢測(cè)比如直流、交流以及脈沖電流信號(hào)的有效值或者平均值。它是在at89c51單片機(jī)的基礎(chǔ)上搭建硬件,配合c語(yǔ)言編程,通過(guò)keil軟件和proteus軟件將仿真結(jié)果顯示出來(lái)。最后與準(zhǔn)確電流的對(duì)比,精確程度能達(dá)到98%。本文只是進(jìn)行了理論仿真,未進(jìn)行實(shí)物搭建,對(duì)后續(xù)工作還有待于進(jìn)一步研究。關(guān)鍵字:電流檢測(cè)系統(tǒng);單片機(jī)硬件;編程;仿真design of
2、 intelligent current detection system based on mcuabstract: the current detection system is a relatively mature technology, but the microcontroller-based current detection system is a recently emerging technology. its main advantage is that more than current signals can be measured and displayed.thi
3、s article describes the composition and design methodology of design of intelligent current detection system based on mcu. it is in order to detect such as dc, ac and pulse current signal rms or average. it is to build the hardware on the basis of at89c51 microcontroller with c language programming,
4、 keil software and proteus software simulation results displayed. finally, compared with accurate and current, the precision of the detection system can reach 98%.this article run a theoretical simulation, without building physical structures. thefollow-up also needs further study.key word: current
5、detection system; single-chip; hardware; programming; simulation畢業(yè)設(shè)計(jì)論文目 錄緒論11 電流測(cè)量系統(tǒng)的整體設(shè)計(jì)22 電流檢測(cè)系統(tǒng)的硬件設(shè)計(jì)32.1 電流供給電路設(shè)計(jì)32.2 數(shù)據(jù)采集及轉(zhuǎn)換電路設(shè)計(jì)32.2.1adc0808簡(jiǎn)介32.2.2單片機(jī)與adc0808接口設(shè)計(jì)62.3 單片機(jī)顯示電路設(shè)計(jì)72.3.1 液晶顯示器lm016l簡(jiǎn)介72.3.2 lm016l與單片機(jī)接口設(shè)計(jì)112.4 電流系統(tǒng)的轉(zhuǎn)化電路122.4.1 單片機(jī)i/o端口介紹123 電流檢測(cè)系統(tǒng)軟件設(shè)計(jì)153.1 ad轉(zhuǎn)換和數(shù)據(jù)采集程序設(shè)計(jì)153.2 電流檢測(cè)系
6、統(tǒng)的顯示子程序153.3 單片機(jī)內(nèi)部數(shù)據(jù)傳輸程序和外部中斷程序154 數(shù)據(jù)轉(zhuǎn)換計(jì)算164.1數(shù)據(jù)標(biāo)定164.2數(shù)據(jù)采集164.3數(shù)據(jù)轉(zhuǎn)換計(jì)算164.4 數(shù)據(jù)驗(yàn)算165 子程序流程圖175.1 ad模數(shù)轉(zhuǎn)換和數(shù)據(jù)采集流程圖及程序附錄175.2 lm016l顯示流程圖及程序附錄195.3單片機(jī)內(nèi)部數(shù)據(jù)傳輸程序和外部中斷流程圖及程序附錄225.4 單片機(jī)總流程圖及程序附錄235.5 電流測(cè)量系統(tǒng)硬件電路圖附錄29結(jié)論30致謝31參考文獻(xiàn)32i緒 論單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器cpu隨機(jī)存儲(chǔ)器ram、只讀存儲(chǔ)器rom、多種i/o口和中斷系統(tǒng)、定時(shí)
7、器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)?;趩纹瑱C(jī)的電流智能檢測(cè)系統(tǒng)的設(shè)計(jì)是利用單片機(jī)的多處理性能,來(lái)完成電流測(cè)量系統(tǒng)的智能控制。這樣可以很方便的實(shí)現(xiàn)快速的對(duì)多個(gè)電流信號(hào)進(jìn)行實(shí)時(shí)檢測(cè)。國(guó)外對(duì)基于單片機(jī)的智能電流測(cè)量系統(tǒng)的技術(shù)研究較早,始于20世紀(jì)70年代。顯示采用模擬式的組合儀表,采集現(xiàn)場(chǎng)信息進(jìn)行指示、記錄和控制。80年代末出現(xiàn)了分布式控制系統(tǒng)。目前正開(kāi)發(fā)和研制計(jì)算機(jī)數(shù)據(jù)采集控制系統(tǒng)的多音字綜合控制系統(tǒng)?,F(xiàn)在世界各國(guó)的電流檢測(cè)技術(shù)發(fā)展的很快,一些國(guó)家在實(shí)現(xiàn)自動(dòng)化的基礎(chǔ)上正向著完全自動(dòng)化、無(wú)人化的
8、方向發(fā)展。我國(guó)對(duì)于電流測(cè)量技術(shù)的研究比較晚。我國(guó)工程技術(shù)人員在吸收發(fā)達(dá)國(guó)家電流測(cè)控技術(shù)的基礎(chǔ)上,才掌握了基于單片機(jī)的電流測(cè)量的技術(shù)。從總體上正從消化吸收,檢點(diǎn)應(yīng)用階段向?qū)嵱没⒕C合性應(yīng)用階段過(guò)度和發(fā)展。在技術(shù)上,我國(guó)的單片機(jī)智能測(cè)量電流的技術(shù)趨于成熟,但是在微電流測(cè)量這方面,由于單片機(jī)本身材料的缺陷使得我國(guó)與國(guó)外還有一定差距,還有待于發(fā)展。國(guó)內(nèi)許多廠商已經(jīng)開(kāi)始研究基于單片機(jī)的測(cè)量電流的系統(tǒng),并且獲得了一定的研究成果,在精度方面達(dá)到了一定的水平。本課題可應(yīng)用于測(cè)量,以及為科研領(lǐng)域提供精確的可供參考的數(shù)據(jù)。在研究方法上,要將理論與實(shí)踐結(jié)合起來(lái),以嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度來(lái)實(shí)現(xiàn)系統(tǒng)的仿真運(yùn)行。本次的畢業(yè)設(shè)計(jì)是
9、應(yīng)用單片機(jī)技術(shù)來(lái)實(shí)現(xiàn)電流的只能測(cè)量,重在掌握單片機(jī)技術(shù),并且能從單片機(jī)的電流智能檢測(cè)系統(tǒng)的設(shè)計(jì)中了解一些測(cè)量領(lǐng)域的知識(shí)。第32頁(yè) 共32頁(yè)1 電流測(cè)量系統(tǒng)的整體設(shè)計(jì)電流測(cè)量系統(tǒng)的總體設(shè)計(jì)如下(圖1.1):先由外部電路給adc0808輸入數(shù)據(jù),然后adc0808由單片機(jī)(at89c51)編程控制實(shí)現(xiàn)自動(dòng)轉(zhuǎn)換,然后經(jīng)過(guò)轉(zhuǎn)換的數(shù)據(jù)傳回單片機(jī)內(nèi),經(jīng)過(guò)單片機(jī)處理,然后再經(jīng)過(guò)lm016l液晶顯示器顯示出來(lái)。其間需要通過(guò)其他的外圍設(shè)備支持。圖1.1 總體設(shè)計(jì)此次設(shè)計(jì)的電流測(cè)量系統(tǒng)采集的是平均電流和有效電流,限于技術(shù)水平和硬件條件,不能測(cè)量動(dòng)態(tài)電流。2 電流檢測(cè)系統(tǒng)的硬件設(shè)計(jì)2.1 電流供給電路設(shè)計(jì)外部電流型
10、號(hào)需要通過(guò)霍爾傳感器將電流轉(zhuǎn)換成為電壓,然后由滑動(dòng)變阻器和電源共同組成電流供給電路,如圖2.1所示:圖2.1 電流供給電路2.2 數(shù)據(jù)采集及轉(zhuǎn)換電路設(shè)計(jì)2.2.1 adc0808簡(jiǎn)介數(shù)據(jù)采集電路中需要用到a/d轉(zhuǎn)換器adc0808,先對(duì)其進(jìn)行簡(jiǎn)單介紹:adc0808是采樣頻率為8位的、以逐次逼近原理進(jìn)行模數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個(gè)8通道多路開(kāi)關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行a/d轉(zhuǎn)換。 1主要特性1)8路8位ad轉(zhuǎn)換器,即分辨率8位2)具有轉(zhuǎn)換起??刂贫?)轉(zhuǎn)換時(shí)間為100s4)單個(gè)5v電源供電5)模擬輸入電壓范圍05v,不需零點(diǎn)和滿刻度校準(zhǔn)6)工作溫度
11、范圍為-4085攝氏度7)低功耗,約15mw2內(nèi)部結(jié)構(gòu)adc0808是cmos單片型逐次逼近式ad轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖2.2.1所示,它由8路模擬開(kāi)關(guān)、地址鎖存與譯碼器、比較器、8位開(kāi)關(guān)樹(shù)型da轉(zhuǎn)換器、逐次逼近。圖2.2.1 adc08083外部特性(引腳功能)adc0808芯片有28條引腳,采用雙列直插式封裝,如圖2.2.2所示。下面說(shuō)明各引腳功能:in0in7:8路模擬量輸入端2-12-8:8位數(shù)字量輸出端adda、addb、addc:3位地址輸入線,用于選通8路模擬輸入中的一路ale:地址鎖存允許信號(hào),輸入,高電平有效start: ad轉(zhuǎn)換啟動(dòng)信號(hào),輸入,高電平有效eoc: ad轉(zhuǎn)換結(jié)束
12、信號(hào),輸出,當(dāng)ad轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)oe:數(shù)據(jù)輸出允許信號(hào),輸入,高電平有效。當(dāng)ad轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開(kāi)輸出三態(tài)門,輸出數(shù)字量clk:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640khzref(+)、ref(-):基準(zhǔn)電壓vcc:電源,單一 5vgnd:地圖2.2.2 adc0808外部引腳圖當(dāng)電流通過(guò)in0通道進(jìn)入adc0808時(shí),通過(guò)單片機(jī)給其指令使其開(kāi)始轉(zhuǎn)換。adc0808的工作過(guò)程是:首先輸入3位地址,并使ale=1,將地址存入地址鎖存器中。此 地址經(jīng)譯碼選通8路模擬輸入之一到比較器。start上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) a
13、d轉(zhuǎn)換,之后eoc輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到ad轉(zhuǎn)換完成,eoc變?yōu)楦唠娖?,指示ad轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可 用作中斷申請(qǐng)。當(dāng)oe輸入高電平時(shí),輸出三態(tài)門打開(kāi),轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。工作時(shí)序如圖2.2.3所示:圖2.2.3 adc0808工作時(shí)序圖極限參數(shù):電源電壓(vcc):6.5v控制端輸入電壓:-0.3v15v其它輸入和輸出端電壓:-0.3vvcc+0.3v貯存溫度:-65+150功耗(t=+25):875mw引線焊接溫度:氣相焊接(60s):215;紅外焊接(15s):220抗靜電強(qiáng)度:400v輸出端注意:out7為最低位-out0為最高位,ou
14、t7-out0分別接單片機(jī)的p0.0到p0.7端。2.2.2單片機(jī)與adc0808接口設(shè)計(jì)根據(jù)adc0808的功能及其工作過(guò)程,可將其與單片機(jī)的接口設(shè)計(jì)如圖2.2.4所示:圖2.2.4 單片機(jī)與adc0808硬件接線圖2.3 單片機(jī)顯示電路設(shè)計(jì)2.3.1 液晶顯示器lm016l簡(jiǎn)介 單片機(jī)處理過(guò)的數(shù)據(jù)要通過(guò)lm016l液晶顯示器將結(jié)果顯示出來(lái)。所以這里有必要對(duì)lm016l進(jìn)行簡(jiǎn)單的介紹:lm016l液晶模塊采用hd44780控制器,hd44780具有簡(jiǎn)單而功能較強(qiáng)的指令集,可以實(shí)現(xiàn)字符移動(dòng),閃爍等功能,lm016l與單片機(jī)mcu通訊可采用8位或4位并行傳輸兩種方式,hd44780控制器由兩個(gè)8
15、位寄存器,指令寄存器(ir)和數(shù)據(jù)寄存器(dr)忙標(biāo)志(bf),顯示數(shù)ram(ddram),字符發(fā)生器roma(cgorom)字符發(fā)生器ram(cgram),地址計(jì)數(shù)器ram(ac)。ir用于寄存指令碼,只能寫入不能讀出,dr用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動(dòng)寫入ddram和cgram,或者暫存從ddram和cgram讀出的數(shù)據(jù),bf為1時(shí),液晶模塊處于內(nèi)部模式,不響應(yīng)外部操作指令和接受數(shù)據(jù),ddtam用來(lái)存儲(chǔ)顯示的字符,能存儲(chǔ)80個(gè)字符碼,cgrom由8位字符碼生成5*7點(diǎn)陣字符160中和5*10點(diǎn)陣字符32種.8位字符編碼和字符的對(duì)應(yīng)關(guān)系,可以查看下面的ascii碼表。cgram是為用戶編寫
16、特殊字符留用的,它的容量?jī)H64字節(jié),可以自定義8個(gè)5*7點(diǎn)陣字符或者4個(gè)5*10點(diǎn)陣字符,ac可以存儲(chǔ)ddram和cgram的地址,如果地址碼隨指令寫入ir,則ir自動(dòng)把地址碼裝入ac,同時(shí)選擇ddram或cgram但愿,lm016l液晶模塊的引腳如圖2.3.1所示:圖2.3.1 lm016l引腳圖引腳說(shuō)明:lm016l字符型lcd通常有14條引腳線或16條引腳線的lcd,多出來(lái)的2條線是背光電源線vcc(15腳)和地線gnd(16腳),其控制原理與14腳的lcd完全一樣,表2.3.1是lm016l的引腳功能表2.3.1 lm016l引腳功能引腳符號(hào)功能說(shuō)明1vss一般接地2vdd接電源(+5
17、v)3v0液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10k的電位器調(diào)整對(duì)比度)4rsrs為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器5r/wr/w為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。6ee(或en)端為使能(enable)端,下降沿使能。7db0底4位三態(tài)、 雙向數(shù)據(jù)總線 0位(最低位)8db1底4位三態(tài)、 雙向數(shù)據(jù)總線 1位9db2底4位三態(tài)、 雙向數(shù)據(jù)總線 2位10db3底4位三態(tài)、 雙向數(shù)據(jù)總線 3位11db4高4位三態(tài)、 雙向數(shù)據(jù)總線 4位12db5高4位三態(tài)、 雙
18、向數(shù)據(jù)總線 5位13db6高4位三態(tài)、 雙向數(shù)據(jù)總線 6位14db7高4位三態(tài)、 雙向數(shù)據(jù)總線 7位(最高位)(也是busy flang)15bla背光電源正極16blk背光 電源負(fù)極寄存器選擇控制表如下表2.3.2:表2.3.2 寄存器選擇控制表rsr/w操作說(shuō)明00寫入指令寄存器(清除屏等)01都busy flag(db7),以及讀取位址計(jì)數(shù)器(db0db6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)注:1.關(guān)于e=h脈沖開(kāi)始時(shí)初始化e為0,然后置e為1,再清0。2.busy flag(db7):在此位為被清除為0時(shí),lcd將無(wú)法再處理其他的指令要求。工作時(shí)序:讀寫操作時(shí)
19、序如圖2.3.2和2.3.3所示:圖2.3.2 讀操作時(shí)序圖2.3.3 寫操作時(shí)序字符集:lm016l液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(cgrom)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“a”的代碼是01000001b(41h),顯示時(shí)模塊把地址41h中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“a”。 因?yàn)閘m016l識(shí)別的是ascii碼,試驗(yàn)可以用ascii碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如a。圖2.3.4是lm016l的16進(jìn)制ascii碼表。讀的時(shí)候,先
20、讀上面那列,再讀左邊那行,如:感嘆號(hào)!的ascii為0x21,字母b的ascii為0x42(前面加0x表示十六進(jìn)制)。 顯示地址:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1600h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0ah 0bh 0ch 0dh 0eh 0fh40h 41h 42h 43h 44h 45h 46h 47h 48h 49h 4ah 4bh 4ch 4dh 4eh 4fhlm016l通過(guò)d0d7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置: (初始化)0011 0000 0x38 設(shè)置162顯示,57點(diǎn)陣,8位數(shù)據(jù)
21、接口;顯示開(kāi)關(guān)及光標(biāo)設(shè)置:(初始化)0000 1dcb d光標(biāo)顯示(1有效)、c光標(biāo)顯示(1有效)、b光標(biāo)閃爍(1有效)0000 01ns n=1(讀或?qū)懸粋€(gè)字符后地址指針加1 &光標(biāo)加1),n=0(讀或?qū)懸粋€(gè)字符后地址指針減1 &光標(biāo)減1)s=1 且 n=1 (當(dāng)寫一個(gè)字符后,整屏顯示左移)s=0 當(dāng)寫一個(gè)字符后,整屏顯示不移動(dòng)數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為80h,所以數(shù)據(jù)地址為80h+地址碼(0-27h,40-67h)其他設(shè)置:01h(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02h(顯示回車,數(shù)據(jù)指針=0)。通常推薦的初始化過(guò)程:延時(shí)15ms寫指令38h延時(shí)5ms寫指令38h 延時(shí)5ms 寫指
22、令38h 延時(shí)5ms(以上都不檢測(cè)忙信號(hào)) (以下都要檢測(cè)忙信號(hào))寫指令38h寫指令08h 關(guān)閉顯示寫指令01h 顯示清屏寫指令06h 光標(biāo)移動(dòng)設(shè)置寫指令0ch 顯示開(kāi)及光標(biāo)設(shè)置單片機(jī)通過(guò)以上指令集和相應(yīng)的ascii碼表顯示數(shù)據(jù)。圖2.3.4 lm016l的ascii碼表2.3.2 lm016l與單片機(jī)接口設(shè)計(jì)單片機(jī)與lm016l可用以圖2.3.5的接法連接:圖2.3.5 lm016l與單片機(jī)的接口2.4 電流系統(tǒng)的轉(zhuǎn)化電路2.4.1 單片機(jī)i/o端口介紹轉(zhuǎn)換電路的主要部分是單片機(jī)at89c51,它也屬于51單片機(jī)中的一類。at89c51能處理各類信號(hào),在信號(hào)送達(dá)后單片機(jī)內(nèi)的各個(gè)存儲(chǔ)器和寄存器
23、開(kāi)始相應(yīng)的動(dòng)作來(lái)完成所要求的結(jié)果。at89c51有四個(gè)端口,p0,p1,p2,p3四個(gè)口,每個(gè)端口內(nèi)部結(jié)構(gòu)相同,但是所屬職能有所不同。圖2.4.1為單片機(jī)的引腳圖:圖2.4.1 單片機(jī)引腳圖p0口:p0口是一組8位漏極開(kāi)路型雙向io口,也即地址數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能以吸收電流的方式驅(qū)動(dòng)8個(gè)ttl邏輯門電路,對(duì)端口p0寫“l(fā)”時(shí),可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在flash編程時(shí),p0口接收指令字節(jié)。而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。p1口:p1 是一個(gè)帶內(nèi)部
24、上拉電阻的8位雙向io口,p1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門電路。對(duì)端口寫“l(fā)”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。與at89c5l不同之處是,p1.0和p1.1還可分別作為定時(shí)計(jì)數(shù)器2的外部計(jì)數(shù)輸入(p1.0t2)和輸入(p1.1t2ex)。flash編程和程序校驗(yàn)期間,pl接收低8位地址。p2口:p2 是一個(gè)帶有內(nèi)部上拉電阻的8位雙向io口,p2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門電路。對(duì)端口p2寫“l(fā)”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可
25、作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。在訪問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行movxdptr指令)時(shí),p2口送出高8位地址數(shù)據(jù)。在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行movxri指令)時(shí),p2口輸出p2鎖存器的內(nèi)容。flash編程或校驗(yàn)時(shí),p2亦接收高位地址和一些控制信號(hào)。p3口:p3口是一組帶有內(nèi)部上拉電阻的8位雙向io口。p3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門電路。對(duì)p3口寫入“l(fā)”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的p3口將用上拉電阻輸出電流(iil)。p3口除了作
26、為一般的io口線外,更重要的用途是它的第二功能,如表2.3.3所示:表 2.3.3 p3口引腳的第二功能端口引腳第二功能p3.0rxd(串行輸入口)p3.1txd(穿行輸出口)p3.2int0(外部中斷0)p3.3int1(外部中斷1)p3.4t0(定時(shí)器/計(jì)數(shù)器0)p3.5t1(定時(shí)器/計(jì)數(shù)器1)p3.6wr(外部數(shù)據(jù)儲(chǔ)存器寫選通)p3.7rd(外部數(shù)據(jù)儲(chǔ)存器讀選通)此外,p3口還接收一些用于flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。單片機(jī)除了4個(gè)端口外,還有其他引腳,在這里簡(jiǎn)單介紹一下: rst:復(fù)位輸入。當(dāng)振蕩器工作時(shí),rst引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。alepro
27、g:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ale仍以時(shí)鐘振蕩頻率的l6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ale脈沖。對(duì)flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(prog)。如有必要,可通過(guò)對(duì)特殊功能寄存器(sfr)區(qū)中的8eh單元的d0位置位,可禁止ale操作。該位置位后,只有一條movx和movc指令才能將ale激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ale禁止位無(wú)效。psen:程序儲(chǔ)存允許(psen)輸出是外部程序存儲(chǔ)器的讀選通
28、信號(hào),當(dāng)at89c51 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次psen有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次psen信號(hào)。eavpp:外部訪問(wèn)允許。欲使cpu僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000hffffh),ea端必須保持低電平(接地)。需注意的是:如果加密位lb1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。flash存儲(chǔ)器編程時(shí),該引腳加上+12v的編程允許電源vpp,當(dāng)然這必須是該器件是使用12v編程電壓vpp。xtal1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。xtal2:振蕩器反相
29、放大器的輸出端。3 電流檢測(cè)系統(tǒng)軟件設(shè)計(jì)3.1 ad轉(zhuǎn)換和數(shù)據(jù)采集程序設(shè)計(jì)數(shù)據(jù)采集是由adc0808實(shí)現(xiàn)的,adc0808是以逐次逼近原理進(jìn)行模/數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個(gè)8通道多路開(kāi)關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行a/d轉(zhuǎn)換為了使adc0808據(jù)采集和轉(zhuǎn)換工作,需要給adc0808引腳發(fā)入觸發(fā)信號(hào):為了使adc0808工作起來(lái),需要有時(shí)鐘信號(hào)clk,為了使adc0808能夠開(kāi)始轉(zhuǎn)換數(shù)據(jù)需要使st和ale有下降沿信號(hào)發(fā)生,因而需要為st和ale端口提供下降沿信號(hào);為了能使轉(zhuǎn)換完的數(shù)據(jù)輸出,需要為adc0808提供輸出信號(hào),即oe管腳需要高電平。在數(shù)據(jù)輸出
30、完成后,oe管腳要置于低電平,以為下次數(shù)據(jù)輸出做準(zhǔn)備。3.2 電流檢測(cè)系統(tǒng)的顯示子程序電流系統(tǒng)的結(jié)果顯示是有l(wèi)m016l液晶顯示器顯示出來(lái)。液晶顯示器共有16個(gè)管腳,數(shù)據(jù)指令傳送端d0d7,還有數(shù)據(jù)和地址命令切換端rw,rs。當(dāng)rs為高電平時(shí),d0d7端口傳送地址信號(hào),當(dāng)rw為高電平時(shí),d7d0傳送指令信號(hào)。在此期間,d7管腳除了傳輸數(shù)據(jù)和指令還兼做判斷busy flag(以下簡(jiǎn)稱bf)寄存器的指示端。當(dāng)bf為0時(shí),不執(zhí)行指令,只傳輸同一種類型的數(shù)據(jù);當(dāng)bf為1時(shí),執(zhí)行指令,開(kāi)始切換數(shù)據(jù)傳輸?shù)念愋?。bf的置位由液晶顯示器自動(dòng)執(zhí)行。e管腳是使能信號(hào)輸入端,當(dāng)為1時(shí),能為lm016l傳送數(shù)據(jù),當(dāng)為
31、0時(shí)不能傳送數(shù)據(jù)。3.3 單片機(jī)內(nèi)部數(shù)據(jù)傳輸程序和外部中斷程序單片機(jī)在執(zhí)行數(shù)據(jù)顯示的程序時(shí),有p0口傳送到p2的數(shù)據(jù)和單片機(jī)內(nèi)本身傳送給p2的“current flow”數(shù)據(jù),為了防止兩個(gè)數(shù)據(jù)發(fā)生干擾,于是選擇應(yīng)用中斷程序。因?yàn)閍dc0808完數(shù)據(jù)之后會(huì)由eoc管腳發(fā)出一個(gè)脈沖信號(hào)來(lái)提示單片機(jī)轉(zhuǎn)換完成,所以可以用這個(gè)信號(hào)成為單片機(jī)的int0外部中斷。這樣單片機(jī)內(nèi)部的數(shù)據(jù)和p0口傳到p2口的數(shù)據(jù)之間不會(huì)產(chǎn)生干擾,可以分時(shí)傳送數(shù)據(jù)。4 數(shù)據(jù)轉(zhuǎn)換計(jì)算4.1數(shù)據(jù)標(biāo)定 在未將數(shù)據(jù)轉(zhuǎn)換之前,adc0808的顯示范圍為0255(十進(jìn)制數(shù)),為了能使顯示的數(shù)據(jù)更準(zhǔn)確,需要對(duì)未轉(zhuǎn)換之前的數(shù)據(jù)進(jìn)行標(biāo)定,分別將數(shù)據(jù)
32、分為大,中,小3部分進(jìn)行,從而方便采集。標(biāo)定值為:085,86170,171255.4.2數(shù)據(jù)采集在標(biāo)定好數(shù)據(jù)之后,從標(biāo)定的范圍中選取三組數(shù)據(jù)進(jìn)行數(shù)學(xué)分析和計(jì)算,從而得出轉(zhuǎn)換所需要的參數(shù),表4.2.1是所選取的三組數(shù)據(jù):表4.2.1 數(shù)據(jù)采集實(shí)際電流值i(ma)標(biāo)定范圍顯示數(shù)據(jù)d1000855118086170925001712552524.3數(shù)據(jù)轉(zhuǎn)換計(jì)算數(shù)據(jù)在采集好之后,要對(duì)其進(jìn)行處理。根據(jù)圖5.5.1可知電流檢測(cè)系統(tǒng)中實(shí)際電流值和顯示數(shù)據(jù)之間呈現(xiàn)線性關(guān)系:i=kd+b。其中k和d是所求的參數(shù)。將上述采集的數(shù)據(jù)帶入線性關(guān)系式之后,解線性方程組可求得k=1.99,b=-1.49。將k,d這兩個(gè)
33、參數(shù)帶入程序中就可顯示最終的結(jié)果。4.4 數(shù)據(jù)驗(yàn)算一般而言,最終的顯示結(jié)果和真實(shí)結(jié)果之間的誤差在1%之內(nèi)算合格。通過(guò)最終驗(yàn)算,所測(cè)數(shù)據(jù)98%在合格范圍內(nèi),能達(dá)到一般精度等級(jí)。5 子程序流程圖5.1 ad模數(shù)轉(zhuǎn)換和數(shù)據(jù)采集流程圖及程序附錄 功能說(shuō)明:此流程圖實(shí)現(xiàn)的功能是將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。模數(shù)轉(zhuǎn)換和數(shù)據(jù)采集子程序附錄:#include #include #include #include #define uchar unsigned char #define uint unsigned int sbit rs=p15; sbit rw=p16; sbit e=p17; sbit st=p3
34、0;sbit oe=p31;sbit ale=p32;sbit adda=p11;sbit addb=p12;sbit addc=p13;sbit eoc=p33;void ad0808()/ad0808轉(zhuǎn)換子程序 uchar i;adda=0;addb=0;addc=0;st=0;ale=0;delay(100);st=1;ale=0;while(!eoc);oe=1;table2i=p0;oe=0;5.2 lm016l顯示流程圖及程序附錄功能說(shuō)明:此流程圖實(shí)現(xiàn)的功能是將adc0808轉(zhuǎn)換完的數(shù)據(jù)由液晶顯示器顯示出來(lái)。lm016l顯示子程序附錄:#include #include #incl
35、ude #include #define uchar unsigned char #define uint unsigned int sbit rs=p15; sbit rw=p16; sbit e=p17; sbit st=p30; sbit oe=p31; sbit ale=p32; sbit adda=p11; sbit addb=p12; sbit addc=p13; sbit eoc=p33; uchar table1=current flow:; uchar table3=ma; bit lcd_bz() bit result;rs=0;rw=1;e=1;_nop_();_nop_
36、();_nop_();_nop_();result=(bit)(p2&0x80);e=0;return result; void lcd_wcmd(uchar cmd) while(lcd_bz();rs=0;rw=0;e=0;_nop_();_nop_();_nop_();_nop_();p2=cmd;_nop_();_nop_();_nop_();_nop_();e=1;_nop_();_nop_();_nop_();_nop_();e=0; void lcd_pos(uchar pos)lcd_wcmd(pos|0x80);void lcd_wdat(uchar dat)while(lc
37、d_bz();rs=1;rw=0;e=0;_nop_();_nop_();_nop_();_nop_();p2=dat;_nop_();_nop_();_nop_();_nop_();e=1;_nop_();_nop_();_nop_();_nop_();e=0;void lcd_init()lcd_wcmd(0x38);lcd_wcmd(0x0c);lcd_wcmd(0x06);lcd_wcmd(0x01);5.3單片機(jī)內(nèi)部數(shù)據(jù)傳輸程序和外部中斷流程圖及程序附錄 功能說(shuō)明:此流程圖實(shí)現(xiàn)的功能是將單片機(jī)內(nèi)部數(shù)據(jù)以及外部轉(zhuǎn)換分時(shí)數(shù)據(jù)顯示到液晶顯示器上。 單片機(jī)內(nèi)部數(shù)據(jù)傳輸程序和外部中斷程序附錄:
38、#include #include #include #include#define uint unsigned intuint table28;void timer_0() interrupt 2int i;table2i=p0;p2=table2i;5.4 單片機(jī)總流程圖及程序附錄通過(guò)以上子程序流程圖的總結(jié),可以總結(jié)出下列主程序流程圖:?jiǎn)纹瑱C(jī)程序附錄:#include #include #include #include #define uchar unsigned char #define uint unsigned int sbit rs=p15; sbit rw=p16; sbit
39、e=p17; sbit st=p30; sbit oe=p31; sbit ale=p32; sbit adda=p11; sbit addb=p12; sbit addc=p13; sbit eoc=p33; uchar table1=current flow:; uint table28; uchar table3=ma; void delay(uchar ms)/延時(shí)子程序 uchar i;while(ms-)for(i=0;i255;i-);_nop_();_nop_();_nop_();_nop_(); void ad0808()/ad0808轉(zhuǎn)換子程序 uchar i;st=0;a
40、le=0;delay(100);st=1;ale=0;while(!eoc);oe=1;table2i=p0;oe=0; bit lcd_bz()/位函數(shù) bit result;rs=0;rw=1;e=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(p2&0x80);e=0;return result; void lcd_wcmd(uchar cmd)/lcd指令輸入子函數(shù) while(lcd_bz();rs=0;rw=0;/下降沿觸發(fā)lcd使能信號(hào)e=0;_nop_();_nop_();_nop_();_nop_();p2=cmd;_nop_()
41、;_nop_();_nop_();_nop_();e=1;_nop_();_nop_();_nop_();_nop_();e=0; void lcd_pos(uchar pos)/lcd顯示位置子函數(shù)lcd_wcmd(pos|0x80);void lcd_wdat(uchar dat)/lcd數(shù)據(jù)輸入子函數(shù)while(lcd_bz();rs=1;rw=0;e=0;_nop_();_nop_();_nop_();_nop_();p2=dat;_nop_();_nop_();_nop_();_nop_();e=1;_nop_();_nop_();_nop_();_nop_();e=0;void l
42、cd_init()/lcd初始化子函數(shù)lcd_wcmd(0x38);lcd_wcmd(0x0c);lcd_wcmd(0x06);lcd_wcmd(0x01);void main()/主函數(shù)uchar i;adda=0;addb=0;addc=0;ie=0x84;while(1)ad0808();delay(100);lcd_init();delay(5);lcd_pos(0x01);i=0;while(table1i!=0)lcd_wdat(table1i);i+;delay(50);lcd_pos(0x42);i=0;while(table2i!=0)table2i=table2i*1.99
43、-1.49;lcd_wdat(table2i/100+0x30);/bailcd_wdat(table2i%100/10+0x30);/shilcd_wdat(table2i%100%10+0x30);/gei+;delay(50);lcd_pos(0x46);i=0;while(table3i!=0)lcd_wdat(table3i);i+;void timer_0() interrupt 2uchar i;p2=table2i;5.5 電流測(cè)量系統(tǒng)硬件電路圖附錄圖5.5.1 硬件電路設(shè)計(jì)結(jié)論此次畢業(yè)設(shè)計(jì)大體上實(shí)現(xiàn)了任務(wù)書上的功能,可以對(duì)某些電流信號(hào)可以實(shí)現(xiàn)實(shí)時(shí)檢測(cè),但是還存在較多的不足之處,比如:(1)該系統(tǒng)只能對(duì)持續(xù)的電流信號(hào)進(jìn)行檢測(cè),不能對(duì)電流波動(dòng)幅度太大的信號(hào)進(jìn)行點(diǎn)對(duì)點(diǎn)檢測(cè),只能是
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024報(bào)價(jià)高中介忽悠簽合同
- 2025服裝定作買賣合同樣本
- 2025整體裝修合同書范文
- 二零二五年度加油站安全管理與維修服務(wù)合同3篇
- 2024版智能物流系統(tǒng)設(shè)計(jì)與實(shí)施合同
- 2025年度梅翠與張偉離婚協(xié)議及子女學(xué)業(yè)支持協(xié)議3篇
- 2024年版貨運(yùn)代理與分銷合同
- 2024幼兒園食品安全風(fēng)險(xiǎn)管理與培訓(xùn)協(xié)議3篇
- 二零二五年度BIM技術(shù)咨詢服務(wù)與運(yùn)維管理合同2篇
- 2024正規(guī)火鍋店經(jīng)營(yíng)許可與食品安全監(jiān)督合同3篇
- 叉車定期檢驗(yàn)研究報(bào)告
- 人教版一年級(jí)數(shù)學(xué)上冊(cè)期末無(wú)紙筆考試試卷(A卷)【含答案】
- 2,3-二甲苯酚的理化性質(zhì)及危險(xiǎn)特性表
- 申報(bào)職稱:副教授演示課件
- 型濾池計(jì)算說(shuō)明書
- 格力離心機(jī)技術(shù)服務(wù)手冊(cè)
- 水泥攪拌樁計(jì)算(完美)
- 旭化成離子交換膜的介紹
- JJRB輕鋼龍骨隔墻施工方案要點(diǎn)
- 石油石化用化學(xué)劑產(chǎn)品質(zhì)量認(rèn)可實(shí)施細(xì)則
- 快遞證明模板
評(píng)論
0/150
提交評(píng)論