基于AT89S51簡易數(shù)字電壓表的設(shè)計(jì)_第1頁
基于AT89S51簡易數(shù)字電壓表的設(shè)計(jì)_第2頁
基于AT89S51簡易數(shù)字電壓表的設(shè)計(jì)_第3頁
基于AT89S51簡易數(shù)字電壓表的設(shè)計(jì)_第4頁
基于AT89S51簡易數(shù)字電壓表的設(shè)計(jì)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于AT89S51的簡易數(shù)字電壓表的設(shè)計(jì)摘要:本課題是利用單片機(jī)設(shè)計(jì)一個(gè)數(shù)字電壓表,能夠測量05V之間的直流電壓值,四位數(shù)碼管顯示,使用的元器件數(shù)目較少。外界電壓模擬量輸入到A/D轉(zhuǎn)換部分的輸入端,通過ADC0809轉(zhuǎn)換變?yōu)閿?shù)字信號,輸送給單片機(jī)。然后由單片機(jī)給數(shù)碼管數(shù)字信號,控制其發(fā)光,從而顯示數(shù)字。此外,本文還討論了設(shè)計(jì)過程中的所用的軟件硬件環(huán)境,調(diào)試所出現(xiàn)的問題等。關(guān)鍵詞:單片機(jī); AT89S51;數(shù)字電壓表; ADC0809,四位數(shù)碼管任務(wù)書1.設(shè)計(jì)題目基于AT89S51的簡易數(shù)字電壓表的設(shè)計(jì)。2.設(shè)計(jì)內(nèi)容與要求用AT89S51單片機(jī)和ADC0809組成一個(gè)數(shù)字電壓表,要求能夠測量05

2、V的直流電壓值,并用四位數(shù)碼管顯示,并要求所用元器件最少。3,。設(shè)計(jì)目的意義(1).通過親身的設(shè)計(jì)應(yīng)用電路,將所用的理論知識應(yīng)用到實(shí)踐中,增強(qiáng)實(shí)踐動手能力,進(jìn)而促進(jìn)理論知識的強(qiáng)化。(2).通過數(shù)字電壓表的設(shè)計(jì)系統(tǒng)掌握51單片機(jī)的應(yīng)用。掌握A/D轉(zhuǎn)換的原理及軟件編程及硬件設(shè)計(jì)的方法,掌握根據(jù)課題的要求,提出選擇設(shè)計(jì)方案,查找所需元器,設(shè)計(jì)并搭建硬件電路,編程寫入EPROM并進(jìn)行調(diào)試等。目錄一、系統(tǒng)原理框圖二、AT89S51的結(jié)構(gòu)三、器件的比較與選擇四、系統(tǒng)硬件及仿真圖五、相關(guān)軟件簡介六、程序流程圖與源程序七、數(shù)字電壓表發(fā)展及未來八、設(shè)計(jì)體會九、參考文獻(xiàn)基于AT89S51的簡易數(shù)字電壓表的設(shè)計(jì)第一

3、章 系統(tǒng)原理框圖選擇AT89S51作為單片機(jī)芯片,選用四位8段共陰極LED數(shù)碼管實(shí)現(xiàn)電壓顯示,利用ADC0809作為數(shù)模轉(zhuǎn)換芯片。將數(shù)據(jù)采集接口電路輸入電壓傳入ADC0809數(shù)模轉(zhuǎn)換元件,經(jīng)轉(zhuǎn)換后通過D0至D7與單片機(jī)P0口連接,把轉(zhuǎn)換完的模擬信號以數(shù)字信號的信號的形式傳給單片機(jī),信號經(jīng)過單片機(jī)處理從LED數(shù)碼顯示管顯示。P2口接數(shù)碼管位選,P1接數(shù)碼管,實(shí)現(xiàn)數(shù)據(jù)的動態(tài)顯示,如圖4.1所示。AT89S51P1 P0P3 P2AD0809D0D7IN0IN7VREF+VREF- CLKOEST、ALE四位數(shù)碼管位選段選控制線數(shù)據(jù)待測電壓圖4.1 系統(tǒng)原理框圖第二章: AT89S51的結(jié)構(gòu)在本次課

4、題設(shè)計(jì)中我們選擇了AT89S51芯片。AT89S51是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。 2.1 AT89S51內(nèi)部結(jié)構(gòu)概述 三級程序存儲器保密鎖定 128*8位內(nèi)部RAM 32條可編程I/O線 兩個(gè)16位定時(shí)器/計(jì)

5、數(shù)器 6個(gè)中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路圖2.1 單片機(jī)(AT89S51)引腳及外觀2.2 CPU結(jié)構(gòu)CPU 是單片機(jī)的核心部件。它由運(yùn)算器和控制器等部件組成。1. 運(yùn)算器 運(yùn)算器以完成二進(jìn)制的算術(shù)/邏輯運(yùn)算部件ALU為核心。它可以對半字節(jié)(4)、單字節(jié)等數(shù)據(jù)進(jìn)行操作。例如,能完成加、減、乘、除、加1、減1、BCD碼十進(jìn)制調(diào)整、比較等算術(shù)運(yùn)算,完成與、或、異或、求反、循環(huán)等邏操作,操作結(jié)果的狀態(tài)信息送至狀態(tài)寄存器。運(yùn)算器還包含有一個(gè)布爾處理器,用以處理位操作。它以進(jìn)位標(biāo)志位C為累加器,可執(zhí)行置位、復(fù)位、取反、位判斷轉(zhuǎn)移,可在進(jìn)位標(biāo)志位與其他可位尋

6、址的位之間進(jìn)行位數(shù)據(jù)傳誦等操作,還可以完成進(jìn)位標(biāo)志位與其他可位尋址的位之間進(jìn)行邏輯與、或操作。2.程序計(jì)數(shù)器PCPC是一個(gè)16位的計(jì)數(shù)器,用于存放一條要執(zhí)行的指令地址,尋址范圍為64kB,PC有自動加1功能,即完成了一條指令的執(zhí)行后,其內(nèi)容自動加1。3.指令寄存器 指令寄存器用于存放指令代碼。CPU執(zhí)行指令時(shí),由程序存儲器中讀取的指令代碼送如指令寄存器,經(jīng)指令譯碼器譯碼后由定時(shí)有控制電路發(fā)出相應(yīng)的控制信號,完成指令功能。2.3 存儲器和特殊功能寄存器1. 存儲器(Memory)是計(jì)算機(jī)系統(tǒng)中的記憶設(shè)備,用來存放程序和數(shù)據(jù)。計(jì)算機(jī)中的全部信息,包括輸入的原始數(shù)據(jù)、計(jì)算機(jī)程序、中間運(yùn)行結(jié)果和最終運(yùn)

7、行結(jié)果都保存在存儲器中。它根據(jù)控制器指定的位置存入和取出信息。2.特殊功能寄存器特殊功能寄存器(SFR)的地址范圍為80HFFH。在MCS51中,除程序計(jì)數(shù)器PC和四個(gè)工作寄存器區(qū)外,其余21個(gè)特殊功能寄存器都在這SFR塊中。其中5個(gè)是雙字節(jié)寄存器,它們共占用了26個(gè)字節(jié)。各特殊功能寄存器的符號和地址見附表2。其中帶號的可位尋址。特殊功能寄存器反映了8051的狀態(tài),實(shí)際上是8051的狀態(tài)字及控制字寄存器。用于CPU PSW便是典型一例。這些特殊功能寄存器大體上分為兩類,一類與芯片的引腳有關(guān),另一類作片內(nèi)功能的控制用。與芯片引腳有關(guān)的特殊功能寄存器是P0P3,它們實(shí)際上是4個(gè)八位鎖存器(每個(gè)I/

8、O口一個(gè)),每個(gè)鎖存器附加有相應(yīng)的輸出驅(qū)動器和輸入緩沖器就構(gòu)成了一個(gè)并行口。MCS51共有P0P3四個(gè)這樣的并行口,可提供32根I/O線,每根線都是雙向的,并且大都有第二功能。其余用于芯片控制的寄存器中,累加器A、標(biāo)志寄存器PSW、數(shù)據(jù)指針DPTR等的功能前已提及。2.4 P0-P3口結(jié)構(gòu)P0口功能 :P0口具有兩種功能:第一,P0口可以作為通用I/O接口使用,P0.7P0.0用于傳送CPU的輸入/輸出數(shù)據(jù)。輸出數(shù)據(jù)時(shí)可以得到鎖存,不需外接專用鎖存器,輸入數(shù)據(jù)可以得到緩沖。第二,P0.7P0.0在CPU訪問片外存儲器時(shí)用于傳送片外存儲器de低8位地址,然后傳送CPU對片外存儲器的讀寫P1口 功

9、能  :P1口的功能和P0口de第一功能相同,僅用于傳遞I/O輸入/輸出數(shù)據(jù)。 P2口的功能 :P2口的第一功能和上述兩組引腳的第一功能相同,即它可以作為通用I/O使用。它的第二功能和P0口引腳的第二功能相配合,作為地址總線用于輸出片外存儲器的高8位地址。 P3口功能 :P3口有兩個(gè)功能:第一功能與其余三個(gè)端口的第一功能相同;第二功能作控制用,每個(gè)引腳都不同。 表2.1 P3口第二功能引腳名稱功能P3.0RXD串行數(shù)據(jù)接收口P3.1TXD串行數(shù)據(jù)發(fā)送口P3.2INT0外中斷0輸入P3.3INT1外中斷1輸入P3.4T0計(jì)數(shù)器0計(jì)數(shù)輸入P3.5T1計(jì)數(shù)器1計(jì)數(shù)輸入P3.6WR外部RAM

10、寫選通信號P3.7RD外部RAM讀選通信號2.5 時(shí)鐘電路和復(fù)位電路1.時(shí)鐘電路單片機(jī)的時(shí)鐘一般需要多相時(shí)鐘,所以時(shí)鐘電路由振蕩器和分頻器組成。 MCS-51內(nèi)部有一個(gè)用于構(gòu)成振蕩器的可控高增益反向放大器。兩個(gè)引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。在片外跨接一晶振和兩個(gè)匹配電容C1、C2如圖2.5所示。就構(gòu)成一個(gè)自激振蕩器。振蕩頻率根據(jù)實(shí)際要求的工作速度,從幾百千赫至24MHz可適當(dāng)選取某一頻率。匹配電容C1、C2要根據(jù)石英晶體振蕩器的要求選取。當(dāng)晶振頻率為12MHz時(shí),C1C2一般選30pF左右。圖2.5中PD是電源控制寄存器PCON.1的掉電方式位,正常工作方式PD=0

11、。當(dāng)PD=1時(shí)單片機(jī)進(jìn)入掉電工作方式,是一種節(jié)能工作方式。上述電路是靠MCS-51單片機(jī)內(nèi)部電路產(chǎn)生振蕩的。也可以由外部振蕩器或時(shí)鐘直接驅(qū)動MCS-51。 圖4.3 復(fù)位電路的內(nèi)部及外部方式2.復(fù)位電路復(fù)位是單片機(jī)的初始化操作。其功能主要是將程序計(jì)數(shù)器(PC)初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序,并將特殊功能寄存器賦一些特定值。復(fù)位是使單片機(jī)退出低功耗工作方式而進(jìn)入正常狀態(tài)一種操作。復(fù)位是上電的第一個(gè)操作,然后程序從0000H開始執(zhí)行。在運(yùn)行中,外界干擾等因素可能會使單片機(jī)的程序陷入死循環(huán)狀態(tài)或“跑飛”。要使其進(jìn)入正常狀態(tài),唯一辦法是將單片機(jī)復(fù)位,以重新啟動。復(fù)位后,程序計(jì)

12、數(shù)器(PC)及各特殊功能寄存器(SFR)的值如表4.2所示。表4.2 程序計(jì)數(shù)器及各特殊功能寄存器的復(fù)位值寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTH100HACC00HP0P3FFHPSW00HIPxx000000BSP07HIE0xx00000BDPTR0000HTMOD00HTCON00HSCON00HTL000HSBUF不定TH000HPCON0xxx0000BTL100HRST引腳是復(fù)位端,高電平有效。在該引腳輸入至少連續(xù)兩個(gè)機(jī)器周期以上的高電平,單片機(jī)復(fù)位。RST引腳內(nèi)部有一個(gè)斯密特ST觸發(fā)器(圖2.10)以對輸入信號整形,保證內(nèi)部復(fù)位電路的可靠,所以外部輸入信號不一定要求是數(shù)字

13、波形。使用時(shí),一般在此引腳與VSS引腳之間接一個(gè)8.2k的下拉電阻,與VCC引腳之間接一個(gè)約10F的電解電容,即可保證上電自動復(fù)位。圖4.4自動和手動復(fù)位電路圖上電或手動復(fù)位要求電源接通后,單片機(jī)自動復(fù)位,并且在單片機(jī)運(yùn)行期間,用開關(guān)操作也能使單片機(jī)復(fù)位。上電后,由于電容C3的充電和反相門的作用,使RST持續(xù)一段時(shí)間的高電平。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵K后松開,也能使RST為一段時(shí)間的高電平,從而實(shí)現(xiàn)上電或手動復(fù)位的操作。第三章 器件的比較與選擇3.1顯示器本次設(shè)計(jì)中有顯示模塊,而常用的顯示器件比較多,有數(shù)碼管,LED點(diǎn)陣,1602液晶,12864液晶等。1. 數(shù)碼管是最常用的一種顯示

14、器件,它是由幾個(gè)發(fā)光二極管組成的8字段顯示器件,其特點(diǎn)是價(jià)格非常的便宜,使用也非常的方便,顯示效果非常的清楚。小電流下可以驅(qū)動每光,發(fā)光響應(yīng)時(shí)間極短,體積小,重量輕,抗沖擊性能好,壽命長。但數(shù)碼管只能是顯示09的數(shù)據(jù)。不能夠顯示字符。這也是數(shù)碼管的不足之處。2. LED點(diǎn)陣顯示器件是由好多個(gè)發(fā)光二極管組成的。具有高亮度,功耗低,視角大,壽命長,耐濕,冷,熱等特點(diǎn),LED點(diǎn)陣顯示器件可以顯示數(shù)字,英文字符,中文字符等。3. 1602液晶是工業(yè)字符型液晶,能夠同時(shí)顯示16*2即32個(gè)字符。1602液晶模塊內(nèi)部的字符發(fā)生存儲器已經(jīng)存儲了160個(gè)不同的點(diǎn)陣字符圖形,這些字這些字符有:阿拉伯?dāng)?shù)字、英文字

15、母的大小寫、常用的符號、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼。使用時(shí)直接編寫軟件程序按一定的時(shí)序驅(qū)動即可。它的特點(diǎn)是顯示字跡清楚,價(jià)格相對便宜。4. 12864液晶也是一種工業(yè)字符型液晶,它不僅能夠顯示1602液晶所可以顯示的字符,數(shù)字等信息,而且還可以顯示8*4個(gè)中文漢字和一些簡單的圖片,顯示信息也非常的清楚。使用時(shí)也直接編寫軟件程序按一定的時(shí)序驅(qū)動即可。不過它的價(jià)格比1602液晶貴了很多。綜合上述,根據(jù)本設(shè)計(jì)的要求和價(jià)格的考慮,選擇數(shù)碼管顯示器。單位數(shù)碼管如圖4.4所示,四位共陰極數(shù)碼管如圖4.5所示。圖4.4 單位數(shù)碼管圖4.5 四位共陰極數(shù)碼管3.2模數(shù)(A/D)芯片A/D轉(zhuǎn)換器

16、是模擬量輸入通道中的一個(gè)環(huán)節(jié),單片機(jī)通過A/D轉(zhuǎn)換器把輸入模擬量變成數(shù)字量再處理。A/D轉(zhuǎn)換的常用方法有:計(jì)數(shù)式A/D轉(zhuǎn)換,逐次逼近型A/D轉(zhuǎn)換,雙積分式A/D轉(zhuǎn)換, V/F變換型A/D轉(zhuǎn)換。在這些轉(zhuǎn)換方式中,記數(shù)式A/D轉(zhuǎn)換線路比較簡單,但轉(zhuǎn)換速度較慢,所以現(xiàn)在很少應(yīng)用。雙積分式A/D轉(zhuǎn)換精度高,多用于數(shù)據(jù)采集及精度要求比較高的場合,如5G14433(31/2位),AD7555(41/2位或51/2位)等,但速度更慢。隨著大規(guī)模集成電路的發(fā)展,目前不同廠家已經(jīng)生產(chǎn)出了多種型號的A/D轉(zhuǎn)換器,以滿足不同應(yīng)用場合的需要。如果按照轉(zhuǎn)換原理劃分,主要有3種類型,即雙積分式A/D轉(zhuǎn)換器、逐次逼近式A/

17、D轉(zhuǎn)換器和并行式A/D轉(zhuǎn)換器。目前最常用的是雙積分和逐次逼近式。(1)A/D芯片的比較 雙積分式A/D轉(zhuǎn)換器具有抗干擾能力強(qiáng)、轉(zhuǎn)換精度高、價(jià)格便宜等優(yōu)點(diǎn)。1. AD0809是8位逐次逼近型A/D轉(zhuǎn)換器,它是由一個(gè)8路的模擬開關(guān)、一個(gè)地址鎖存譯碼器、一個(gè)A/D 轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個(gè)模擬通道,允許8 路模擬量分時(shí)輸入,共用A/D 轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。些A/D轉(zhuǎn)換器是的特點(diǎn)是8位精度,屬于并行口,如果輸入的模擬量變化大快,必須在輸入之前增加采樣電路。2. AD0832也是8位逐次逼近型A/D轉(zhuǎn)換器,可支持致命傷個(gè)單端輸入通道和一個(gè)差分輸入通道。它易于和微處理器接口或獨(dú)立使用

18、;可滿量程工作;可用地址邏輯多路器選通各輸入通道。3. TLC2543C是12位開關(guān)電容逐次逼近A/D轉(zhuǎn)換,每個(gè)器件有三個(gè)控制輸入端,片選,輸入/輸出時(shí)鐘以及地址輸入端。它可以從主機(jī)高速傳輸轉(zhuǎn)換數(shù)據(jù)。它有高速的轉(zhuǎn)換,通用的控制能力,具有簡化比率轉(zhuǎn)換,刻度以及模擬電路與邏輯電路和電源噪聲隔離,耐高溫等特點(diǎn)。綜合上述,逐次逼近型A/D轉(zhuǎn)換既照顧了轉(zhuǎn)換速度,有具有一定的精度,這里選用的是逐次逼近型的A/D轉(zhuǎn)換芯片ADC0809。圖4.6 ADC0809內(nèi)部結(jié)構(gòu)圖4.6 ADC0809引腳圖(2)ADC0809 的工作原理 1.IN0IN7:8 條模擬量輸入通道 ADC0809 對輸入模擬量要求:信號

19、單極性,電壓范圍是05V,若信號太小,必須進(jìn)行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。 2.數(shù)字量輸出及控制線:11 條 ST 為轉(zhuǎn)換啟動信號。當(dāng)ST 上跳沿時(shí),所有內(nèi)部寄存器清零;下跳沿時(shí),開始進(jìn)行A/D 轉(zhuǎn)換;在轉(zhuǎn)換期間,ST 應(yīng)保持低電平。EOC 為轉(zhuǎn)換結(jié)束信號。當(dāng)EOC 為高電平時(shí),表明轉(zhuǎn)換結(jié)束;否則,表明正在進(jìn)行A/D 轉(zhuǎn)換。OE為輸出允許信號,用于控制三條輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7D0 為數(shù)字量輸出線。 CLK為時(shí)鐘輸入信號線。因ADC0809的內(nèi)部沒有時(shí)

20、鐘電路,所需時(shí)鐘信號必須由外界提供,通常使用頻率為500KHZ, VREF(),VREF()為參考電壓輸入。 3. ADC0809 應(yīng)用說明 ADC0809 內(nèi)部帶有輸出鎖存器,可以與AT89S51 單片機(jī)直接相連。 初始化時(shí),使ST 和OE信號全為低電平。 送要轉(zhuǎn)換的哪一通道的地址到A,B,C 端口上。 在ST 端給出一個(gè)至少有100ns 寬的正脈沖信號。 是否轉(zhuǎn)換完畢,我們根據(jù)EOC 信號來判斷。 當(dāng)EOC變?yōu)楦唠娖綍r(shí),這時(shí)給OE 為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機(jī)了。第四章 系統(tǒng)硬件及仿真圖4.1 系統(tǒng)仿真圖 4.2 系統(tǒng)原理圖 4.3 系統(tǒng)PCB圖 第五章 相關(guān)軟件簡介5.1 Prot

21、el99 與KeilProtel99SE是應(yīng)用于Windows9X/2000/NT操作系統(tǒng)下的EDA設(shè)計(jì)軟件,采用設(shè)計(jì)庫管理模式,可以進(jìn)行聯(lián)網(wǎng)設(shè)計(jì),具有很強(qiáng)的數(shù)據(jù)交換能力和開放性及3D模擬功能,是一個(gè)32位的設(shè)計(jì)軟件,可以完成電路原理圖設(shè)計(jì),印制電路板設(shè)計(jì)和可編程邏輯器件設(shè)計(jì)等工作,可以設(shè)計(jì)32個(gè)信號層,16個(gè)電源-地層和16個(gè)機(jī)加工層。(1)Protel 99 SE的系統(tǒng)組成按照系統(tǒng)功能來劃分,Protel99se主要包含以下倆大部分和6個(gè)功能模塊。1.電路工程設(shè)計(jì)部分電路原理設(shè)計(jì)部分(Advanced Schematic 99)印刷電路板設(shè)計(jì)系統(tǒng)(Advanced PCB 99)自動布線系

22、統(tǒng)(Advanced Route 99)(2)電路仿真與PLD部分電路模擬仿真系統(tǒng)(Advanced SIM 99)可編程邏輯設(shè)計(jì)系統(tǒng)(Advanced PLD 99)高級信號完整性分析系統(tǒng)(Advanced Integrity 99)(3)Protel 99 SE的功能特性開放式集成化的設(shè)計(jì)管理體系 超強(qiáng)功能的、修改與編輯功能 強(qiáng)大的設(shè)計(jì)自動化功能 Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。單片機(jī)開發(fā)中除必要的硬件

23、外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。5.2 Protues

24、Protues軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。 (1)功能特點(diǎn)Protues軟件具有其它EDA工具軟件(例:multisim)的功能。 (2)革命性的特點(diǎn) 1.互動的電路仿真 用戶甚至可以實(shí)時(shí)采用諸如RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 2.仿真處理器及其外圍電路 可以仿真51系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于原理圖

25、的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Protues建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。(3)四大功能模塊1.智能原理圖設(shè)計(jì)(ISIS) 2.完善的電路仿真功能(Prospice) 3.獨(dú)特的單片機(jī)協(xié)同仿真功能(VSM) 4.實(shí)用的PCB設(shè)計(jì)平臺 (4)軟件仿真支持當(dāng)前的主流單片機(jī),如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。 1.提供軟件調(diào)試功能 2.提供豐富的外圍接口器件及其仿真 3.提供豐富的虛擬儀器 4.具有強(qiáng)大的原理圖繪制功能(5)電路功能仿真在PROT

26、UES繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTUES的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過程。 PROTUES 是單片機(jī)課堂教學(xué)的先進(jìn)助手。PROTUES不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。 第六章 程序流程圖與源程序6.1 程序流程圖初始化開始ST、OE端口拉低ST上升沿清除AD緩存器

27、CLK提供AD工作的時(shí)鐘信號ST下降沿,AD開始轉(zhuǎn)換轉(zhuǎn)換結(jié)束?P1口讀取數(shù)據(jù),存儲在地址70H數(shù)據(jù)除以51,商為電壓整數(shù)部分,儲存在地址71H余數(shù)乘以10后,再除以51,為電壓小數(shù)相應(yīng)位部分,分別儲存在地址72H74H電壓小數(shù)相應(yīng)位加5調(diào)整余數(shù)>25?四位處理完?NYP2口為位選延時(shí)1.5msP0分別賦地址71H74H里的值,P0口為段選查詢數(shù)碼管顯示表四位顯示完?返回程序開始圖 6.1 程序流程圖NY6開始AD采集函數(shù)數(shù)據(jù)處理函數(shù)顯示函數(shù)圖6.2主函數(shù)流程圖6.2 匯編語言程序清單QIAN EQU 71HBAI EQU 72HSHI EQU 73HGEWEI EQU 74H;71H-7

28、4H存放顯示數(shù)據(jù),依次為個(gè)位、十位、百位、千位SHUJU EQU 70H ;地址70H存放采集數(shù)據(jù) ST BIT P3.0 ;START和ALE共用一個(gè)端口OE BIT P3.6EOC BIT P3.7CLK BIT P3.3 ORG 0000HLJMP STARTORG 0030HTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH START: MAIN: LCALL TEST ;數(shù)據(jù)采集函數(shù)LCALL TURNDATA ;數(shù)據(jù)處理函數(shù) LCALL DISPLAY ;顯示函數(shù) LJMP MAIN/*延時(shí)函數(shù)*/DELAY: MOV R7,#06H

29、;約延時(shí)1.5msLOOP1:MOV R6,#0FFHLOOP2:DJNZ R6,LOOP2DJNZ R7,LOOP1 RET/*ADC0809采集函數(shù)*/TEST: CLR ST CLR OE SETB ST CLR ST ;ST端口下降沿,開始轉(zhuǎn)換LOOPCLK:SETB CLK ;由軟件來提供ADC0809工作的時(shí)鐘頻率CLR CLKJNB EOC,LOOPCLK ;EOC=1時(shí),退出循環(huán)SETB OE ;轉(zhuǎn)換后數(shù)據(jù)的傳送 MOV P1,#0FFH ;P1端口讀數(shù)據(jù),需先給高電平MOV A,P1 CLR OE MOV SHUJU,A ;存儲數(shù)據(jù)到地址70H RET/*數(shù)據(jù)處理函數(shù)*/TU

30、RNDATA: MOV A,SHUJUMOV B,#51DIV AB ;余數(shù)在B,相除以后C=0MOV QIAN,A ;儲存千位 CLR F0MOV A,B SUBB A,#1AH ;A減去26,測試上面AB相除時(shí),余數(shù)與26相比較MOV F0,C ;余數(shù)<26,則C=1,不用加5調(diào)整MOV A,#10MUL ABMOV B,#51DIV AB JB F0,LP1ADD A,#5 ;若AB相除后B>=26,百位加五LP1: MOV BAI,A ;儲存百位CLR F0 MOV A,BSUBB A,#1AH MOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJ

31、B F0,LP2 ;F0=1時(shí),轉(zhuǎn)移 ADD A,#5 ;若AB相除后B>=26,十位加五 LP2:MOV SHI,A ;儲存十位CLR F0MOV A,BSUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LP3 ;F0=1時(shí),轉(zhuǎn)移 ADD A,#5 ;若AB相除后B>=26,個(gè)位加五 LP3:MOV GEWEI,A ;儲存?zhèn)€位 RET/*顯示函數(shù)*/DISPLAY: MOV R1,#4 ;循環(huán)四次 MOV R2,#0FEHMOV R0,#71H ;存放顯示初始地址XIANSHI: MOV DPTR,#TAB MOV A,

32、R0MOVC A,A+DPTRCJNE R2,#0FEH,NOT_ONE ;不是左邊第一個(gè)數(shù)碼管,則轉(zhuǎn)移ORL A,#80H ;左邊第一個(gè)數(shù)碼管顯示小數(shù)點(diǎn)NOT_ONE:MOV P0,A ;數(shù)碼管段選 MOV P2,R2 ;數(shù)碼管位選LCALL DELAY ;延時(shí)MOV A,R2RL A ;循環(huán)左移MOV R2,AINC R0 ;選取下一個(gè)地址DJNZ R1,XIANSHI RETEND6.3 C語言程序清單#include<reg51.h>sbit CLK=P33;sbit OE=P36;sbit ST=P30;sbit EOC=P37;unsigned int dianya;u

33、nsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/*延時(shí)函數(shù)*/void delay(unsigned int z)while(z-);/*ADC0809采集函數(shù)*/void ADC_0809()unsigned char temp=2;ST=0;OE=0; ST=1;ST=0; CLK=1; CLK=0; CLK=1; CLK=0;while(!EOC) CLK=1; CLK=0;OE=1;P1=0xff; /讀取P1端口數(shù)據(jù)temp

34、=P1; dianya=(unsigned int)temp*19.53;OE=0;/*數(shù)據(jù)轉(zhuǎn)換和顯示函數(shù)*/void Vpp_Show()unsigned char qian,bai,shi,ge;qian=dianya/1000; bai=dianya%1000/100;shi=dianya%100/10;ge=dianya%10; P2=0xfe;P0=tableqian|0x80; /顯示小數(shù)點(diǎn)delay(50); P2=0xfd;P0=tablebai; delay(50); P2=0xfb; P0=tableshi; delay(50); P2=0xf7;P0=tablege;vo

35、id main()while(1) ADC_0809(); Vpp_Show();第七章 系統(tǒng)功能分析與說明數(shù)字電壓表(Digital Voltmeter)簡稱DVM,它是采用數(shù)字化測量技術(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ù)字電壓表,已被廣泛用于電子及電工測量、工業(yè)自動化儀表、自動測試系統(tǒng)等智能化測量領(lǐng)域,示出強(qiáng)大的生命力。與此同時(shí),由DVM擴(kuò)展而成的各種通用及專用數(shù)字儀器儀表,也把電量及非電量測量技術(shù)提高到嶄新水平。本章重點(diǎn)介紹單片A/D 轉(zhuǎn)換器以及由它們構(gòu)成的基于單片機(jī)的數(shù)字電壓表的工作原理。數(shù)字電壓表的系統(tǒng)工作原理:首先,被測電壓信號進(jìn)入AD轉(zhuǎn)換器,單片機(jī)中控制信號線發(fā)出控制信號,啟動AD轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,其采樣得到的數(shù)字信號數(shù)據(jù)在相應(yīng)的碼制轉(zhuǎn)換模塊中轉(zhuǎn)換為顯示代碼。最后發(fā)出顯示控制與驅(qū)動信號,驅(qū)動外部的數(shù)碼管顯示相應(yīng)的數(shù)據(jù)。圖2.1所示為DVM的基本組成框圖,需指出的是,圖中將DVM分成模擬和數(shù)字兩大部分,從框圖上看,AD轉(zhuǎn)換器包含在模擬部分,這樣劃分并不嚴(yán)格,因?yàn)?/p>

溫馨提示

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

評論

0/150

提交評論