畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的數(shù)字電壓表設(shè)計(jì)(3).doc_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的數(shù)字電壓表設(shè)計(jì)(3).doc_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的數(shù)字電壓表設(shè)計(jì)(3).doc_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的數(shù)字電壓表設(shè)計(jì)(3).doc_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的數(shù)字電壓表設(shè)計(jì)(3).doc_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

前言數(shù)字電壓表設(shè)計(jì)前言伴隨著城市人口和建設(shè)規(guī)模的擴(kuò)大,各種用電設(shè)備的增多,用電量越來(lái)越大,城市的供電設(shè)備經(jīng)常超負(fù)荷運(yùn)轉(zhuǎn),用電環(huán)境變得越來(lái)越惡劣,對(duì)電源的“考驗(yàn)”越來(lái)越嚴(yán)重。據(jù)統(tǒng)計(jì),每天,用電設(shè)備都要遭受120次左右各種的電源問(wèn)題的侵?jǐn)_,電子設(shè)備故障的60%來(lái)自電源7。因此,電源問(wèn)題的重要性日益凸顯出來(lái)。原先作為配角,資金投入較少的電源越來(lái)越受到廠商和研究人員的重視,電源技術(shù)遂發(fā)展成為一門(mén)嶄新的技術(shù)。而今,小小的電源設(shè)備已經(jīng)融合了越來(lái)越多的新技術(shù)。例如開(kāi)關(guān)電源、硬開(kāi)關(guān)、軟開(kāi)關(guān)、參數(shù)穩(wěn)壓、線性反饋穩(wěn)壓、磁放大器技術(shù)、數(shù)控調(diào)壓、pwm、spwm、電磁兼容等等。實(shí)際需求直接推動(dòng)電源技術(shù)不斷發(fā)展和進(jìn)步,為了自動(dòng)檢測(cè)和顯示電流,并在過(guò)流、過(guò)壓等危害情況發(fā)生時(shí)具有自動(dòng)保護(hù)功能和更高級(jí)的智能控制,具有傳感檢測(cè)、傳感采樣、傳感保護(hù)的電源技術(shù)漸成趨勢(shì),檢測(cè)電流或電壓的傳感器便應(yīng)運(yùn)而生并在我國(guó)開(kāi)始受到廣大電源設(shè)計(jì)者的青睞,本文就是在這個(gè)背景下編著的。第33頁(yè)(共34頁(yè))第1章 緒論數(shù)字電壓表的基本工作原理是利用a/d轉(zhuǎn)換電路將待測(cè)的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),通過(guò)相應(yīng)換算后將測(cè)試結(jié)果以數(shù)字形式顯示出來(lái)的一種電壓表。較之于一般的模擬電壓表,數(shù)字電壓表具有精度高、測(cè)量準(zhǔn)確、讀數(shù)直觀、使用方便等優(yōu)點(diǎn)。電壓表的數(shù)字化測(cè)量,關(guān)鍵在于如何把隨時(shí)連續(xù)變化的模擬量轉(zhuǎn)化成數(shù)字量,完成這種轉(zhuǎn)換的電路叫模數(shù)轉(zhuǎn)換器(a/d)。數(shù)字電壓表的核心部件就是a/d轉(zhuǎn)換器,由于各種不同的a/d轉(zhuǎn)換原理構(gòu)成了各種不同類型的dvm。一般說(shuō)來(lái),a/d轉(zhuǎn)換的方式可分為兩類:積分式和逐次逼近式。積分式a/d轉(zhuǎn)換器是先用積分器將輸入的模擬電壓轉(zhuǎn)換成時(shí)間或頻率,再將其數(shù)字化。根據(jù)轉(zhuǎn)化的中間量不同,它又分為u-t(電壓-時(shí)間)式和u-f(電壓-頻率)式兩種。逐次逼近式a/d轉(zhuǎn)換器分為比較式和斜坡電壓式,根據(jù)不同的工作原理,比較式又分為逐次比較式及零平衡式等。斜坡電壓式又分為線性斜坡式和階梯斜坡式兩種。在高精度數(shù)字電壓表中,常采用由積分式和比較式相結(jié)合起來(lái)的復(fù)合式a/d轉(zhuǎn)換器。本設(shè)計(jì)以at89c51單片機(jī)為核心,以逐次比較型a/d轉(zhuǎn)換器adc0808、液晶顯示器lcd1602為主體,構(gòu)造了一款簡(jiǎn)易的數(shù)字電壓表,能夠測(cè)量1路050v直流電壓,最小分辨率0.02v。方案設(shè)計(jì)實(shí)現(xiàn)數(shù)字電壓表的方案較多,目前廣泛采用的是基于74系列邏輯器件方案,本設(shè)計(jì)將介紹基于單片機(jī)實(shí)現(xiàn)的方案。74系列邏輯器件方案采用雙積分電路+液晶顯示器+邏輯電路+定時(shí)采樣電路+數(shù)據(jù)處理實(shí)現(xiàn),被測(cè)電壓信號(hào)由信號(hào)輸入端加到測(cè)量系統(tǒng),進(jìn)行預(yù)處理后送到后級(jí)電路。單片機(jī)系統(tǒng)方案此方案采用輸入處理電路+adc0808+at89c51+液晶顯示實(shí)現(xiàn),被測(cè)信號(hào)由adc0808模擬輸入端輸入,單片機(jī)采集轉(zhuǎn)換數(shù)據(jù),將轉(zhuǎn)換數(shù)據(jù)送出顯示。方案選擇第二章 方案選擇2.1方案選擇2.1.1量程轉(zhuǎn)換方案設(shè)計(jì) 方案一:考慮到adc0808的八路模擬量輸入通道本質(zhì)上也是模擬開(kāi)關(guān),因此可以利用其八個(gè)模擬通道中的三個(gè)作為量程轉(zhuǎn)換器,即根據(jù)通道對(duì)應(yīng)的電壓測(cè)量范圍確定對(duì)應(yīng)的電壓發(fā)達(dá)倍數(shù)設(shè)計(jì)對(duì)應(yīng)的前置放大電路.方案二:選用模擬開(kāi)關(guān)芯片4066實(shí)現(xiàn)量程轉(zhuǎn)換。4066集成了4個(gè)模擬開(kāi)關(guān),每一路開(kāi)關(guān)都有一個(gè)控制端控制對(duì)應(yīng)開(kāi)關(guān)的通斷。用單片機(jī)對(duì)控制端進(jìn)行控制,實(shí)現(xiàn)不同量程的轉(zhuǎn)換。方案三:利用手動(dòng)開(kāi)關(guān)實(shí)現(xiàn)量程轉(zhuǎn)換。該方案可簡(jiǎn)化控制程序,減小系統(tǒng)開(kāi)銷,縮短反應(yīng)時(shí)間,不足之處在于操作麻煩。終上所述:方案三所需元件少、成本低且易于實(shí)現(xiàn),可選此方案。2.1.2顯示部分方案設(shè)計(jì)方案一:用液晶lcd1602來(lái)顯示電壓讀數(shù)可進(jìn)行片選,實(shí)現(xiàn)液晶的動(dòng)態(tài)點(diǎn)亮。因?yàn)橹恍枰黄壕Ь涂梢酝瓿涩F(xiàn)示工作,所以當(dāng)單片機(jī)控制前兩個(gè)控制端時(shí),最高位控制端應(yīng)接地。用軟件作為液晶的驅(qū)動(dòng)顯示,且具體譯碼由軟件控制。方案二:同方案一選用adc0808進(jìn)行片選,在譯碼驅(qū)動(dòng)部分選用液晶lcd1602,用軟件譯碼。終上所述:由于兩個(gè)方案都可以實(shí)現(xiàn)同樣的功能,但方案二設(shè)計(jì)簡(jiǎn)單、系統(tǒng)開(kāi)銷小、反應(yīng)速度較快,因此選擇此方案。2.2方案論證經(jīng)過(guò)以上方案設(shè)計(jì),決定采用如圖2-1所示方案。圖2-1 系統(tǒng)框硬件設(shè)計(jì)第3章 硬件設(shè)計(jì)3.1單片機(jī)控制模塊設(shè)計(jì)單片機(jī)控制模塊的作用是為控制各單元電路的運(yùn)行并完成數(shù)據(jù)的換算或處理,主要由單片機(jī)、時(shí)鐘電路、復(fù)位電路組成。3.1.1時(shí)鐘電路單片機(jī)工作的時(shí)間基準(zhǔn)是由時(shí)鐘電路提供的,在單片機(jī)的xtal1和xyal2兩個(gè)管腳接一只晶振及兩只電容就構(gòu)成了單片機(jī)的時(shí)鐘電路,電路中電容器和對(duì)振蕩頻率有微調(diào)作用,通常取(3010)pf石英晶體選擇6mhz或12mhz都可以。時(shí)鐘電路如圖3-1所示。 圖3-1系統(tǒng)時(shí)鐘電路 圖3-2系統(tǒng)復(fù)位電路3.1.2復(fù)位電路單片機(jī)的rst管腳為主機(jī)提供了一個(gè)外部復(fù)位信號(hào)輸入口。復(fù)位信號(hào)是高電平有效,高電平有效的持續(xù)時(shí)間為2個(gè)機(jī)器周期以上。單片機(jī)的復(fù)位方式可由手動(dòng)復(fù)位方式完成。電阻、電容器的參考值=10k、=10uf、=0.01uf。復(fù)位電路如圖3-2所示。3.2 量程轉(zhuǎn)換模塊設(shè)計(jì)3.2.1 電路選擇圖3-3量程轉(zhuǎn)換開(kāi)關(guān) 圖3-4衰減輸入電路輸入電路的作用是把不同量程的被測(cè)電壓,規(guī)范到a/d轉(zhuǎn)換器所要求的電壓值。數(shù)字電壓表所采用的是逐次逼近式a/d轉(zhuǎn)換芯片adc0808,它要求輸入電壓0-2v。本儀表設(shè)計(jì)的是0-50v電壓,靈敏度高所以可以不加前置放大器,只需衰減器,如圖所示9m、900k、90k、和10k電阻構(gòu)成1/10、1/100、1/1000的衰減器。衰減輸入電路可由開(kāi)關(guān)來(lái)選擇不同的衰減率,從而切換檔位。3.2.2 工作原理及換算關(guān)系如上圖通過(guò)電阻網(wǎng)絡(luò)實(shí)現(xiàn)電壓衰減測(cè)量的輸入阻抗約為r4、r5、r6。1端、2端單獨(dú)合上時(shí),vout的大小分別是:1腳單獨(dú)合上vout=vin1;2腳單獨(dú)合上vout= vin(r4+ r5+ r6)/(r3+ r4+ r5+ r6)。由上式可以看出,vout在一定范圍時(shí)電阻網(wǎng)絡(luò)衰減程度越大其可輸入電壓vin。量程調(diào)節(jié),只要把r5,r6的參數(shù)選好然后,由開(kāi)關(guān)1端、2斷選擇測(cè)量電壓輸出端即完成量程選定。3.3 逐次逼近式a/d轉(zhuǎn)換模塊設(shè)計(jì)逐次逼近型a/d轉(zhuǎn)換器屬于直接型a/d轉(zhuǎn)換器,它能把輸入的模擬電壓直接轉(zhuǎn)換為輸出的數(shù)字代碼,而不需要經(jīng)過(guò)中間變量。主要由比較器、環(huán)形分配器、控制門(mén)、寄存器與d/a轉(zhuǎn)換器組成。3.3.1 adc0808簡(jiǎn)介1adc0808引腳功能圖3-5adc0808引腳圖in0in7:8路模擬量輸入。a、b、c:3位地址輸入,2個(gè)地址輸入端的不同組合選擇八路模擬量輸入。ale:地址鎖存啟動(dòng)信號(hào),在ale的上升沿,將a、b、c上的通道地址鎖存到內(nèi)部的地址鎖存器。d0d7:八位數(shù)據(jù)輸出線,a/d轉(zhuǎn)換結(jié)果由這8根線傳送給單片機(jī)。oe:允許輸出信號(hào)。當(dāng)oe=1時(shí),即為高電平,允許輸出鎖存器輸出數(shù)據(jù)。start:?jiǎn)?dòng)信號(hào)輸入端,start為正脈沖,其上升沿清除adc0808的內(nèi)部的各寄存器,其下降沿啟動(dòng)a/d開(kāi)始轉(zhuǎn)換。eoc:轉(zhuǎn)換完成信號(hào),當(dāng)eoc上升為高電平時(shí),表明內(nèi)部a/d轉(zhuǎn)換已完成。2adc0808內(nèi)部結(jié)構(gòu)圖逐次逼近型a/d轉(zhuǎn)換器adc0808由八路模擬開(kāi)關(guān)、地址鎖存與譯碼器、比較器、d/a轉(zhuǎn)換器、寄存器、控制電路和三態(tài)輸出鎖存器等組成。其內(nèi)部結(jié)構(gòu)如圖3-6所示。圖3-6adc0808內(nèi)部結(jié)構(gòu)3.3.2 a/d轉(zhuǎn)換電路設(shè)計(jì)集成摸數(shù)轉(zhuǎn)換芯片adc0808實(shí)現(xiàn)的a/d轉(zhuǎn)換電路如圖3-7所示,被測(cè)信號(hào)由adc0808模擬輸入端輸入,完成a/d轉(zhuǎn)換后送入單片機(jī),經(jīng)相應(yīng)處理后送出顯示。圖3-7adc0808與單片機(jī)的連接3.4顯示模塊設(shè)計(jì)3.4.1 lcd顯示模塊lcd顯示器分為字段顯示和字符顯示兩種。其中字段顯示與led顯示相似,只要送對(duì)應(yīng)的信號(hào)到相應(yīng)的管腳就能顯示。字符顯示是根據(jù)需要顯示基本字符。本設(shè)計(jì)采用的是字符型顯示。系統(tǒng)中采用lcd1602作為顯示器件輸出信息。與傳統(tǒng)的led數(shù)碼管顯示器件相比,液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等優(yōu)點(diǎn),而且不需要外加驅(qū)動(dòng)電路,現(xiàn)在液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的顯示器件了。lcd1602可以顯示2行16個(gè)漢字。3.4.2 lcd1602的引腳功能lcd1602模塊的引腳如圖3-8所示,其引腳功能如下:rs:數(shù)據(jù)和指令選擇控制端,rs=0命令狀態(tài);rs=1數(shù)據(jù)r/w:讀寫(xiě)控制線,r/w=0寫(xiě)操作;r/w=1讀操作a:背光控制正電源 k:背光控制地e:數(shù)據(jù)讀寫(xiě)操作控制位,e線向lcd模塊發(fā)送一個(gè)脈沖,lcd模塊與單片機(jī)間將進(jìn)行一次數(shù)據(jù)交換db0db7:數(shù)據(jù)線,可以用8位連接,也可以只用高4位連接,節(jié)約單片機(jī)資源。vdd:電源端 vee:亮度控制端(1-5v)vss vdd vo rs r/w e db0 db1 db2 db3 db4 db5 db6 db7 a klcd 模 塊1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 vss:接地端圖3-8lcd1602模塊3.4.3 lcd1602的顯示操作1四種基本操作lcd有四種基本操作,具體如表3-1所示。表3-1 lcd與單片機(jī)之間有四種基本操作rsr/w操作00寫(xiě)命令操作(初始化,光標(biāo)定位等)01讀狀態(tài)操作(讀忙標(biāo)志位)10寫(xiě)數(shù)據(jù)操作(要顯示內(nèi)容)11讀數(shù)據(jù)操作(可以把顯示存儲(chǔ)區(qū)中的數(shù)據(jù)反讀出來(lái))(1)讀狀態(tài)字執(zhí)行讀狀態(tài)字操作,如表3-1滿足rs=0,r/w=1。根據(jù)管腳功能,當(dāng)為有效電平時(shí),狀態(tài)命令字可從lcd模塊傳輸?shù)綌?shù)據(jù)總線。同時(shí)可以保持一段時(shí)間,從而實(shí)現(xiàn)讀狀態(tài)字的功能。讀狀態(tài)字流程如圖3-9所示。圖3-9 讀入狀態(tài)字流程圖(2)命令字表3-2所示為命令字,其主要介紹了指令名稱、控制信號(hào)及控制代碼。其指令名稱是指要實(shí)現(xiàn)的功能;控制代號(hào)是采用的十六進(jìn)制的數(shù)值表示的。1)清零操作是指輸入某命令字后即能將整個(gè)屏幕顯示的內(nèi)容全部清除;2)歸home位:將光標(biāo)送到初始位;其中的號(hào)為任意,高低電平均可;3)輸入方式:設(shè)光標(biāo)移動(dòng)方向并指定整體顯示,是否移動(dòng)。i/d=0:減量方式,s=1:移位方式,s=0:不移位;4)顯示狀態(tài):d指設(shè)置整體顯示開(kāi)關(guān);c指設(shè)置光標(biāo)顯示開(kāi)關(guān);b指設(shè)置光標(biāo)的字符閃耀;5)光標(biāo)畫(huà)面滾動(dòng):r/l指右移或左移;s/c指移動(dòng)總體或光標(biāo);6)功能設(shè)置:dl接口數(shù)位,l指顯示行數(shù),f顯示字型;如dl=1:8位=0,4位n=1:2行=0:1行,g=1:510=0:57(點(diǎn)陣)7)cgram地址設(shè)制:相當(dāng)于一個(gè)數(shù)據(jù)庫(kù),可以在其中選擇所需要的符號(hào);8)ddram地址設(shè)制:顯示定位;9)讀bf和ac:b為最高位忙的標(biāo)志,f為標(biāo)志位;10)寫(xiě)數(shù)據(jù):將數(shù)據(jù)按要求寫(xiě)入到對(duì)應(yīng)的單元;11)讀數(shù)據(jù):讀相應(yīng)單元內(nèi)的數(shù)據(jù);表3-2命令字指令名稱控制信號(hào)控制代碼rsrwd7d6d5d4d3d2d1d0清屏0000000001歸home位000000001*輸入方式設(shè)制00000001i/ds顯示狀態(tài)設(shè)制0000001dcb無(wú)標(biāo)畫(huà)面滾動(dòng)000001s/crl*功能設(shè)置00001dlnf*cgram地址設(shè)制0001a5a4a3a2a1a0ddram地址設(shè)制001a6a5a4a3a2a1a0讀bf和ac01bfac6ac5ac4ac3ac2ac1ac0寫(xiě)數(shù)據(jù)10數(shù) 據(jù)讀數(shù)據(jù)11數(shù) 據(jù)(3)寫(xiě)命令字由表3-2可知當(dāng)rs=0,r/w=0時(shí),才可以通過(guò)單片機(jī)或用戶指令把數(shù)據(jù)寫(xiě)到lcd模塊,此時(shí)就對(duì)lcd進(jìn)行調(diào)制??刹捎貌樵兎绞剑合茸x入狀態(tài)字,再判斷忙標(biāo)志位,最后寫(xiě)命令字。圖3-10所示為寫(xiě)命令字的流程圖。圖3-10寫(xiě)命令字流程圖1)定義光標(biāo)位置顯示數(shù)據(jù)的某位,就是把顯示數(shù)據(jù)寫(xiě)在相應(yīng)的ddram地址中,ddram地址占7位。setddramaddress命令如表3-3所示。光標(biāo)定位,寫(xiě)入一個(gè)顯示字符后,ddram地址會(huì)自動(dòng)加1或減1,加或減由輸入方式設(shè)置。表3-3set ddram address命令rsr/wdb7db6db5db4db3db2db1db0001ac6ac5ac4ac3ac2ac1ac0第1行ddram地址與第2行ddram地址并不連續(xù),如表3-4所示。表3-4ddram地址row12345141516line180h81h82h83h84h8dh8eh8fhline20c0h0c1h0c2h0c3h0c4h0cdh0ceh0cfh2)lcd初始化從通電開(kāi)始延時(shí),先經(jīng)過(guò)判忙后再進(jìn)行功能設(shè)置,過(guò)一段時(shí)間后可以設(shè)制顯示狀態(tài)(如設(shè)制行、位或陣列)再經(jīng)過(guò)延時(shí)清屏后才可以設(shè)置輸入方式,具體實(shí)現(xiàn)過(guò)程如圖3-11所示。圖3-11lcd初始化流程圖2lcd顯示程序設(shè)計(jì)lcd顯示程序的設(shè)計(jì)一般先要確定lcd的初始化、光標(biāo)定位、確定顯示字符后,顯示流程如圖3-12顯示。圖3-12lcd顯示程序流程圖軟件設(shè)計(jì)第4章 軟件設(shè)計(jì)根據(jù)需要,可將系統(tǒng)軟件按照功能劃分為4個(gè)模塊,分別是主程序模塊、a/d轉(zhuǎn)換模塊、液晶顯示模塊、中斷服務(wù)程序模塊(改變顯示的小數(shù)點(diǎn)位置),各模塊的功能關(guān)系如圖4-1所示。編寫(xiě)系統(tǒng)軟件時(shí),可首先編寫(xiě)各模塊的底層驅(qū)動(dòng)程序,而后是系統(tǒng)聯(lián)機(jī)調(diào)試,編寫(xiě)上層主程序。系統(tǒng)主程序液晶管顯示a/d轉(zhuǎn)換中斷服務(wù).圖4-1系統(tǒng)軟件框圖4.1 主程序設(shè)計(jì)圖4-2主程序流程圖主程序主要負(fù)責(zé)各個(gè)模塊的初始化工作:設(shè)置定時(shí)器、寄存器的初值,啟動(dòng)a/d轉(zhuǎn)換,讀取轉(zhuǎn)換結(jié)果,處理量程轉(zhuǎn)換響應(yīng),控制液晶實(shí)時(shí)顯示等,其流程圖如圖4-2所示。4.2 a/d轉(zhuǎn)換程序a/d轉(zhuǎn)換程序的功能是采集數(shù)據(jù),在整個(gè)系統(tǒng)設(shè)計(jì)中占有很高的地位。當(dāng)系統(tǒng)設(shè)置好后,單片機(jī)掃描轉(zhuǎn)換結(jié)束管腳p2.6的輸入電平狀態(tài),當(dāng)輸入為高電平則轉(zhuǎn)換完成,將轉(zhuǎn)換的數(shù)值轉(zhuǎn)換并顯示輸出。若輸入為低電平,則繼續(xù)掃描。程序流程圖如圖4-3所示。圖4-3 a/d轉(zhuǎn)換程序流程圖4.3 中斷服務(wù)程序中斷服務(wù)程序的功能是為adc0808提供時(shí)鐘信號(hào),當(dāng)中斷發(fā)生時(shí)將at89c51單片機(jī)的p2.4管腳將輸出信號(hào)取反,為adc0808提供12khz時(shí)鐘信號(hào)。4.3.1、中斷和中斷源所謂中斷就是cpu暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)而執(zhí)行處理緊急事務(wù)的程序,并在該事務(wù)處理完后能自動(dòng)恢復(fù)執(zhí)行原先程序的過(guò)程。在此,稱引起緊急事務(wù)的事件為中斷源,稱處理緊急事務(wù)的程序?yàn)橹袛喾?wù)程序或中斷處理程序。 計(jì)算機(jī)系統(tǒng)還根據(jù)緊急事務(wù)的緊急程度,把中斷分為不同的優(yōu)先級(jí),并規(guī)定:高優(yōu)先級(jí)的中斷能暫停低優(yōu)先級(jí)的中斷服務(wù)程序的執(zhí)行。計(jì)算機(jī)系統(tǒng)有上百種可以發(fā)出中斷請(qǐng)求的中斷源,但最常見(jiàn)的中斷源是:外設(shè)的輸入輸出請(qǐng)求,如:鍵盤(pán)輸入引起的中斷,通信端口接受信息引起的中斷等;還有一些計(jì)算機(jī)內(nèi)部的異常事件,如:0作除數(shù)、奇偶校驗(yàn)錯(cuò)等。cpu在執(zhí)行程序時(shí),是否響應(yīng)中斷要取決于以下三個(gè)條件能否同時(shí)滿足:(1)、有中斷請(qǐng)求;(2)、允許cpu接受中斷請(qǐng)求;(3)、一條指令執(zhí)行完,下一條指令還沒(méi)有開(kāi)始執(zhí)行。條件(1)是響應(yīng)中斷的主體。除用指令int所引起的軟件中斷之外,其它中斷請(qǐng)求信號(hào)是隨機(jī)產(chǎn)生的,程序員是無(wú)法預(yù)見(jiàn)的。程序員可用程序部分地控制條件(2)是否滿足,即可用指令sti和cli來(lái)允許或不允許cpu響應(yīng)可屏蔽的外部中斷。而對(duì)于不可屏蔽中斷和內(nèi)部中斷,cpu一定會(huì)響應(yīng)它們的,程序員是無(wú)控制權(quán)的。cpu一定會(huì)執(zhí)行這些中斷的中斷服務(wù)程序。4.3.2、斷向量表和中斷服務(wù)程序中斷向量表是一個(gè)特殊的線性表,它保存著系統(tǒng)所有中斷服務(wù)程序的入口地址(偏移量和段地址)。在微機(jī)系統(tǒng)中,該向量表有256個(gè)元素(00ffh),每個(gè)元素占4個(gè)字節(jié),總共1k字節(jié),其在內(nèi)存中的存儲(chǔ)形式及其存儲(chǔ)內(nèi)容如圖8.2所示。圖4-4中的“中斷偏移量”和“中斷段地址”是指該中斷服務(wù)程序入口單元的“偏移量”和“段地址”。由此不難看出:假如中斷號(hào)為n,那么,在中斷向量表中存儲(chǔ)該中斷處理程序的入口地址的單元地址為:4n。表4-5說(shuō)明了前16個(gè)中斷向量表中列舉了部分常用的中斷號(hào)。圖4-4 中斷向量表表4-5 部分常用的中斷號(hào)及其含義中斷號(hào)含義中斷號(hào)含義0除法出錯(cuò)8定時(shí)器1單步9鍵盤(pán)2非屏蔽中斷a未用3斷點(diǎn)bcom24溢出ccom15打印屏幕d硬盤(pán)(并行口)6未用e軟盤(pán)7未用f打印機(jī)4.3.3引起中斷的指令中斷處理程序基本上是系統(tǒng)程序員編寫(xiě)好的,是為操作系統(tǒng)或用戶程序服務(wù)的。為了在應(yīng)用程序中使用中斷服務(wù)程序,程序員必須能夠在程序中有目的地安排中斷的發(fā)生。為此,指令系統(tǒng)提供了各種引起中斷的指令。1、中斷指令int中斷指令int的一般格式如下:int imm其中:立即數(shù)imm是一個(gè)00ffh范圍內(nèi)的整數(shù)。指令執(zhí)行的步驟:、把標(biāo)志寄存器壓棧,清除標(biāo)志位if和tf;、把代碼段寄存器cs的內(nèi)容壓棧,并把中斷服務(wù)程序入口地址的高字部分送cs;、32位段,壓32位ip。在該指令執(zhí)行完后,cpu將轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。由于有了指令int,程序員就能為滿足某種特殊的需要,在程序中有目的地安排中斷的發(fā)生,也就是說(shuō),該中斷不是隨機(jī)產(chǎn)生的,而是完全受程序控制的。一般情況下,一個(gè)中斷可有很多不同的功能,每個(gè)功能都有一個(gè)唯一的功能號(hào),所以,在安排中斷之前, 程序員還要決定需要該中斷的哪個(gè)功能,中斷的功能號(hào)都是由ah來(lái)確定的。有些中斷還需要其它參數(shù),常用中斷的功能和參數(shù)如附錄3所列。2、溢出指令into當(dāng)標(biāo)志位of為1時(shí),引起中斷。該指令的格式如下:into該指令影響標(biāo)志位:if和tf。4.3.4 中斷返回指令當(dāng)一個(gè)中斷服務(wù)程序執(zhí)行完畢時(shí),cpu將恢復(fù)被中斷的現(xiàn)場(chǎng),返回到引起中斷的程序中。為了實(shí)現(xiàn)此項(xiàng)功能,指令系統(tǒng)提供了一條專用的中斷返回指令。該指令的格式如下:iret/iretd該指令執(zhí)行的過(guò)程基本上是int指令的逆過(guò)程,具體如下:、從棧頂彈出內(nèi)容送入ip;、再?gòu)男聴m攺棾鰞?nèi)容送入cs;、再?gòu)男聴m攺棾鰞?nèi)容送入標(biāo)志寄存器;對(duì)80386及其以后的cpu,指令iretd從棧頂彈出32位內(nèi)容送入eip。4.3.5 中斷和子程序的比較中斷和子程序調(diào)用之間有其相似和不同之處。它們的工作過(guò)程非常相似,即:暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)而執(zhí)行另一程序段,當(dāng)該程序段執(zhí)行完時(shí),cpu都自動(dòng)恢復(fù)原程序的執(zhí)行。如圖4-6所示。圖4-6 中斷和子程序調(diào)用的工作過(guò)程它們的主要差異有:l 子程序調(diào)用一定是程序員在編寫(xiě)源程序時(shí)事先安排好的,是可知的,而中斷是由中斷源根據(jù)自身的需要產(chǎn)生的,是不可預(yù)見(jiàn)的(用指令int引起的中斷除外);l 子程序調(diào)用是用call指令來(lái)實(shí)現(xiàn)的,但沒(méi)有調(diào)用中斷的指令,只有發(fā)出中斷請(qǐng)求的事件(指令int是發(fā)出內(nèi)部中斷信號(hào),而不要理解為調(diào)用中斷服務(wù)程序);l 子程序的返回指令是ret,而中斷服務(wù)程序的返回指令是iret/iretd。l 在通常情況下,子程序是由應(yīng)用系統(tǒng)的開(kāi)發(fā)者編寫(xiě)的,而中斷服務(wù)程序是由系統(tǒng)軟件設(shè)計(jì)者編寫(xiě)的。系統(tǒng)仿真與調(diào)試第5章 系統(tǒng)仿真與調(diào)試在進(jìn)行電路的局部調(diào)試之后,我又進(jìn)行了系統(tǒng)整機(jī)調(diào)試。首先為adc0808接上+12v的電壓,為其它芯片接上+5v的工作電壓。另外還要輸入待測(cè)的模擬電壓,該電壓從200mv以下的電壓開(kāi)始輸起,依次增大,直到達(dá)到待測(cè)電壓的上限50v為止,記錄測(cè)量數(shù)據(jù)并分析系統(tǒng)性能。5.1 分局部調(diào)試1檢查adc0808是否工作adc0808集成了三個(gè)控制端。如果某一控制端為高電平則對(duì)應(yīng)的開(kāi)關(guān)將接通。為測(cè)量其是否工作,我們將它的三個(gè)控制端用導(dǎo)線引出分別接高低電平,發(fā)現(xiàn)測(cè)量結(jié)果與理論分析結(jié)果一致,adc0808工作正常。2各量程調(diào)節(jié)這一步調(diào)試是建立在上述兩步調(diào)試的基礎(chǔ)上的。針對(duì)不同的檔位,我們通過(guò)接入不同待測(cè)的模擬量來(lái)調(diào)節(jié)電壓。5.2 整機(jī)調(diào)試本系統(tǒng)的測(cè)試采用proteus軟件,系統(tǒng)在proteus軟件中仿真時(shí)使用的元件如表5-1所示。測(cè)試表明,系統(tǒng)運(yùn)行正常,能準(zhǔn)確將直流模擬信號(hào)的電壓轉(zhuǎn)換成數(shù)值顯示,并能精確到5位有效數(shù)字,達(dá)到了設(shè)計(jì)的要求。表5-1 元件名稱及屬性序號(hào)元件名屬性序號(hào)元件名屬性1at89c51單片機(jī)7lm016llcd16023cap電容8adc08088位a/d轉(zhuǎn)換器4cap-elec電解電容9pullup上拉電阻5crystal晶振10sw-pot44路模擬開(kāi)關(guān)6res電阻1174ls02與非門(mén)5.3 系統(tǒng)仿真采用keil編譯器進(jìn)行源程序編譯及仿真調(diào)試,調(diào)好程序后將目標(biāo)程序?qū)雙roteus進(jìn)行軟硬件調(diào)試,基于單片機(jī)實(shí)現(xiàn)的數(shù)字電壓表測(cè)試值見(jiàn)表5-2所示。表5-2測(cè)試值與真實(shí)值電壓表測(cè)得值/v0.000.3320.390.5070.9961.2501.5032.0002.480絕對(duì)誤差/v0.00+0.02+0.01+0.02+0.01+0.01+0.03+0.00+0.01電壓表測(cè)得值/v4.9805.079.9612.5015.0319.9229.8839.8449.80絕對(duì)誤差/v+0.00+0.02+0.01+0.01+0.02+0.02+0.02+0.03+0.02從表中可以看出,電壓表測(cè)得值誤差均在0.02v以內(nèi),這與采用8位a/d轉(zhuǎn)換器所能達(dá)到的理論誤差精度相比較接近,因此在一般的應(yīng)用場(chǎng)合都可以滿足要求。致謝結(jié) 論本設(shè)計(jì)以at89c51單片機(jī)為控制核心,通過(guò)集成摸數(shù)轉(zhuǎn)換芯片adc0808將被測(cè)信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),經(jīng)單片機(jī)內(nèi)部程序處理后,由液晶顯示器lcd1602顯示測(cè)量結(jié)果。仿真測(cè)試表明,系統(tǒng)性能良好,測(cè)量讀數(shù)穩(wěn)定易讀、更新速度合理,直流電壓測(cè)量范圍為050v,最小分辨率為0.02v,滿足任務(wù)書(shū)指標(biāo)要求。但是,該系統(tǒng)也存在一定程度的不足,例如:1、輸入電壓易發(fā)生干擾不穩(wěn)定,且驅(qū)動(dòng)能力可能存在不足,需在被測(cè)信號(hào)的輸入端加上一部分驅(qū)動(dòng)電路,比如將量程轉(zhuǎn)換電路改成帶放大能力的自動(dòng)量程轉(zhuǎn)換電路,將幅值較小的信號(hào)經(jīng)適當(dāng)放大后再測(cè)量,可顯著提高精度;2、輸出量可用平均值算法來(lái)改善,使測(cè)量準(zhǔn)確度更高。3、若能將測(cè)量的電壓值實(shí)時(shí)保存,使用時(shí)將更方便。4、adc0808可實(shí)現(xiàn)對(duì)8個(gè)通道的輸入信號(hào)輪流轉(zhuǎn)換,本設(shè)計(jì)僅僅使用了其中一個(gè)通道,造成了較大的資源浪費(fèi)。若能對(duì)電路稍加改進(jìn),實(shí)現(xiàn)對(duì)多路信號(hào)的輪流測(cè)量并自動(dòng)保存相應(yīng)結(jié)果,其應(yīng)用價(jià)值將會(huì)更大。致謝在畢業(yè)設(shè)計(jì)完成之際,我在這里向一直關(guān)心幫助我的老師、同學(xué)和朋友表示我誠(chéng)摯的謝意。首先感謝的是我的導(dǎo)師彭秀華老師。感謝他給我的指導(dǎo),在整個(gè)設(shè)計(jì)寫(xiě)作過(guò)程中,我始終得到彭秀華老師的悉心教導(dǎo)和認(rèn)真指點(diǎn),使得我的理論知識(shí)和認(rèn)識(shí)有了很大提高,為我的畢業(yè)設(shè)計(jì)的順利完成提供了保證。他身上,體現(xiàn)著嚴(yán)謹(jǐn)求實(shí)的教學(xué)作風(fēng),勇于探索的工作態(tài)度和求同思變、不斷創(chuàng)新的治學(xué)理念讓我印象深刻。他不知疲倦的敬業(yè)精神和精益求精的治學(xué)要求,端正了我的學(xué)習(xí)態(tài)度,使我受益匪淺。同時(shí),感謝來(lái)此參加我畢業(yè)答辯的各位老師,感謝你們的指導(dǎo)教育,感謝你們?cè)诖疝q時(shí)對(duì)我的論文給予的詳盡細(xì)致的審閱,衷心的感謝各位老師,謝謝你們無(wú)私的幫助。最后,感謝自動(dòng)化系和同組的各位同學(xué)以及所有支持我關(guān)心我的人。在你們的幫助和協(xié)助下共同完成了本次設(shè)計(jì)。謝謝你們!附錄一參考文獻(xiàn)1 單片機(jī)系統(tǒng)的proteus設(shè)計(jì)與仿真,張靖武等編著,電子工業(yè)出版社2 proteus 在 mcs-51&arm7 系統(tǒng)中的應(yīng)用百例(含光盤(pán)1張),周潤(rùn)景等編著,電子工業(yè)出版社3 51系列單片機(jī)設(shè)計(jì)實(shí)例(第2版) ,李光飛,北航出版社4 智能化測(cè)量控制儀表原理與設(shè)計(jì)(第2版)徐愛(ài)鈞,北航出版社5串行接口led數(shù)碼管及鍵盤(pán)管理器件的原理與應(yīng)用6只讀存儲(chǔ)器rom和隨機(jī)存取存儲(chǔ)器ram的使用與實(shí)例詳解7a/d轉(zhuǎn)換器及其接口的使用8單片機(jī)基礎(chǔ),李廣第,朱月秀,王秀山,北京航空航天大學(xué)出版社9a/d、d/a轉(zhuǎn)換器接口技術(shù)與實(shí)用電路,楊振江,西安電子科技大學(xué)出版社10單片機(jī)課程設(shè)計(jì)實(shí)例知道,李光飛,北京航空航天大學(xué)出版社11單片機(jī)原理與程序設(shè)計(jì)實(shí)驗(yàn)教程,于殿泓 王新年 西安電子科技大學(xué)出版社12單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì). 何立民.北京:北京航空航天大學(xué)出版社13 單片機(jī)c語(yǔ)言輕松入門(mén)出 版 社: 北京航空航天大學(xué)出版社作者: 周堅(jiān) 14 跟我學(xué)用單片機(jī)作者肖洪兵 胡輝 郭速學(xué)出 版 社北京航空航天大學(xué)出版社 15 嵌入式應(yīng)用技術(shù)基礎(chǔ)教程作者:王宜懷 出版社:清華大學(xué)出版社附錄 系統(tǒng)源程序附錄1comequ50hdatequ51hrsequp2.1;lcd寄存器選擇信號(hào)rwequp2.2;lcd讀/寫(xiě)選擇信號(hào)eequp2.3;lcd使能信號(hào)org0000hljmpmainorg000bhljmpbt0;t0中斷入口org0030h;主程序初始化main:movsp,#60hlcall intmov30h,#30hmov31h,#0a5hmov32h,#30hmov33h,#30hmov34h,#30hmovr7,#30hlcalln1;顯示voltage=0.000lcalln2;定時(shí)器初始化程序movtmod,#00hmovth0,#00hmovtl0,#00hsetbtr0mov24h,#03hmovie,#82hlp:movr7,#30h;顯示緩沖區(qū)首地址lcalldisplysjmplp;循環(huán)顯示;定時(shí)器中斷服務(wù)程序,讀取0809第0通道的轉(zhuǎn)換結(jié)果并轉(zhuǎn)換為顯示值bt0:pushaccpushpswmovpsw,#00hclrtr0movth0,#00hmovtl0,#00hdec24hmova,24hmova,p1anla,#03hdecazlc0decajzlc1lc0:jnzrtn1mov24h,#03hmovdptr,#0f6ffhmova,#00hmovxdptr,amovr7,#0cchdjnzr7,$movxa,dptrmov40h,amovb,#05h;a/d轉(zhuǎn)換結(jié)果化為顯示值mulab;(ad*5)/25mov30h,b;ad*5的高字節(jié)為整數(shù)部分movb,#0ahmulab;ad*5的低字節(jié)為/256的結(jié)果,為小數(shù)部分mov32h,b;二進(jìn)制小數(shù)換為10進(jìn)制數(shù)movb,#0ahmulabmov33h,bmovb,#0ahmulabmov34h,brtn1: setbtr0orl30h,#30hmov31h,#0a5horl32h,#30horl33h,#30horl34h,#30hmov35h,#30hljmplcclc1: jnzrtn2mov24h,#03hmovdptr,#0f6ffhmova, #00hmovxdptr,amovr7,#0cchdjnzr7,$movxa,dptrmov40h,amovb,#05h; a/d轉(zhuǎn)換結(jié)果顯示值mulab;(ad*5)/25mov30h,b;ad*5的高字節(jié)為整數(shù)部分movb,#0ahmulab;ad*5的低字節(jié)為/256的結(jié)果,為小數(shù)部分mov31h,b;二進(jìn)制小數(shù)換為10進(jìn)制數(shù)movb,#0ahmulabmov33h,bmovb,#0ahmulabmov34h,brtn2: setbtr0orl30h,#30horl31h,#30hmov32h,#0a5horl33h,#30horl34h,#30hmov35h,#30h;ajmplcclcc:noppoppswpopaccretidisply:;lcd顯示子程序movcom,#0cahlcallpr1movr1,#05hmovr0,#30hl:movdat,r0lcallpr2incr0djnzr1,lret;逐字依次輸入方式演示程序段n1:movcom,#01hlcallpr1movcom,#06hlcallpr1movcom,#0ehlcallpr1movdptr,#tabmovr2,#8hwrin1:movr3,#00hwrin:;寫(xiě)入mova,r3movca,a+dptrmovdat,alcallpr2incr3djnzr2,wrinretn2:movcom,#06hlcallpr1movcom,#0c0hlcallpr1movdptr,#tab1movr2,#9hsjmpwrin1tab:dblicaiyutab1:dbvoltag = ;lcd間接控制方式下的初始化子程序int:lcalldelay;調(diào)用延時(shí)子程序movcom,#3ch;設(shè)置工作方式lcallpr1movcom,#01h;清屏lcallpr1movcom,#06h;設(shè)置輸入方式lcallpr1movcom,#080h;設(shè)置顯示方式lcallpr1retdelay:movr6,#0fh;延時(shí)movr7,#00hdelay1: nopdjnzr7,delay1djnzr6,delay1ret;lcd間接工致方式的驅(qū)動(dòng)子程序;讀bf和ac的值pr0:pushaccmovp0,#0ffh;p0置位,準(zhǔn)備讀clrrs;rs=0,選擇指令寄存器setbrw;rw=1,讀setbe;片選,1有效lcalldelaymovcom,p0;讀bf和ac6-4值clrepopaccret;寫(xiě)指令代碼子程序pr1:pushaccclrrs;指令寄存器setbrwpr11:movp0,#0ffh;p0置位,準(zhǔn)備讀setbelcalldelaynopmova,p0clrejbacc.7,pr11;bf=1clrrwmovp0,comsetbeclrepopaccret;寫(xiě)顯示數(shù)據(jù)程序pr2:pushaccclrrssetbrwpr21:movp0,#0ffhsetb elcalldelaymova,p0;讀bf和ac6-4clrejbacc.7,pr21setbrsclrrwmovp0,dat;寫(xiě)入數(shù)據(jù)高4位setbeclrepopaccret;讀顯示數(shù)據(jù)程序pr3:pushaccclrrssetbrwpr31:movp0,#0ffh;p0置位,準(zhǔn)備讀setbelcalldelaymova,p0;讀bf和ac6-4clrejbacc.7,pr31setbrs;rs=1,選通數(shù)據(jù)寄存器setbrwmovp0,#0ffh;讀數(shù)據(jù)setbemovdat,p0clrepopaccretend;單片機(jī)畢業(yè)設(shè)計(jì)程序:數(shù)字電壓表的設(shè)計(jì)comequ50hdatequ51hrsequp2.1;lcd積存器選擇信號(hào)rwequp2.2;lcd讀/寫(xiě)選擇信號(hào)eequp2.3;lcd使能信號(hào)org0000hljmpmainorg000bhljmpbt0;t0中斷入口org0030h;主程序初始化main:movsp,#60hlcall intmov30h,#30hmov31h,#0a5hmov32h,#30hmov33h,#30hmov34h,#30hmovr7,#30hlcalln1;顯示voltage=0.000lcalln2;定時(shí)器初始化程序movtmod,#00hmovth0,#00hmovtl0,#00hsetbtr0mov24h,#03hmovie,#82hlp:movr7,#30h;顯示緩沖區(qū)首地址lcalldisplysjmplp;循環(huán)顯示;定時(shí)器中斷服務(wù)程序,讀取0808第0通道的轉(zhuǎn)換結(jié)果并轉(zhuǎn)換為顯示值bt0:pushaccpushpswmovpsw,#00hclrtr0movth0,#00hmovtl0,#00hdec24hmova,24hjnzrtn1mov24h,#03hmovdptr,#0f6ffhmova,#00hmovxdptr,amovr7,#0cchdjnzr7,$movxa,dptrmov40h,artn:movb,#05h;a/d轉(zhuǎn)換結(jié)果

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論