數字電壓表軟件設計_第1頁
數字電壓表軟件設計_第2頁
數字電壓表軟件設計_第3頁
數字電壓表軟件設計_第4頁
數字電壓表軟件設計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本科生畢業(yè)設計(論文)數字電壓表軟件設計SoftwareDesignofDigitalVoltmeter總計:26頁表格:2個插圖:14幅學院(系):電子與電氣工程專業(yè):電子信息工程數字電壓表軟件設計[摘要]本設計采用了以單片機為開發(fā)平臺,控制系統采用AT89C51單片機,A/D轉換采用8位的ADC0809,測量電壓值的范圍為0~5V。軟件設計完成后經過專業(yè)電子軟件的仿真達到設計的目的。設計模塊包括主控模塊、模數轉換模塊、顯示模塊、通信模塊等。本系統除能確保實現要求的功能外,還可以方便進行8路其它A/D轉換量的測量、與PC機進行串口通信,正文著重給出了電壓表的軟件設計,介紹了單片機(AT89C51)工作原理、模數轉換原理,以及專業(yè)軟件的仿真和程序的編程。該軟件的設計結構緊密,功能完善,在完成對電壓的測量之外可以進行通信,應用前景非常廣闊。[關鍵詞]單片機;A/D轉換;ADC0809;數據處理SoftwareDesignofDigitalVoltmeterAbstract:ThedesignhasadoptedMCUcontrolsystemfordevelopmentplatform,AT89C51microcontroller,A/Dconversionusing8-bitADC0809,measuringvoltagevaluesoftherangeof0~5V.Afterthecompletionofthesoftwaredesign,theprofessionalelectronicsoftwaresimulationtothepurposeofdesign.Thedesignincludescontrolmodule,frequency-fieldmodule,displaymodule,communicationmodule,etc.Thissystemcanensurerealizationofrequirementsinfunction,stillcanconvenientlyforeightotherA/Dconversionmeasurements,andPCforserialcommunication,textfocusesonthedesignofthesoftwarevoltmeterpresents,introducesmicrocontroller(AT89C51)workingprinciple,principleandfrequency-fieldprofessionalsoftwaresimulationandprogramming.Thedesignofthesoftwarestructure,perfectfunctions,inthemeasurementofvoltage,besidescancommunicateverybroadapplicationprospect.Keywords:Singlechipmicrocontrolle;A/Dconverter;ADC0809;dataprocessing目錄1引言 11.1選題的背景和意義 11.2發(fā)展過程 11.3研究內容 32系統設計方案 32.1設計思想 32.2整體設計框圖 33系統軟件設計 43.1主控模塊軟件設計 43.1.1AT89C51 43.1.2內部結構 53.1.3軟件設計 53.2模數轉換軟件設計 63.2.1主要性能指標 63.2.2內部邏輯機構 63.2.3數據采集軟件設計 83.3數碼管軟件設計 93.3.1數碼管顯示原理 93.3.2軟件設計 103.4看門狗及數據復位、存儲軟件設計 103.4.1X5045芯片 103.4.2X5045工作原理 113.4.3看門狗軟件設計 113.4.4EEPROM軟件設計 123.5通訊模塊軟件設計 123.5.1RS232接口 123.5.2串口通訊原理 133.5.3軟件設計 133.6鍵盤軟件設計 133.6.1鍵盤 133.6.2鍵盤軟件設計 134系統仿真與調試 144.1Proteus和Keil 144.2軟件仿真 16結束語 17參考文獻 17附錄1 18附錄2 19致謝 211引言1.1選題的背景和意義數字電壓表(DigitalVoltmeter)簡稱DVM,它是采用數字化測量技術,把連續(xù)的模擬量(直流輸入電壓)轉換成不連續(xù)、離散的數字形式并加以顯示的儀表。傳統的指針式電壓表功能單一,精度低,不能滿足數字化時代的需求,采用單片機的數字電壓表,由精度高、抗干擾能力強,可擴展性強、集成方便,還可與PC進行實時通信。目前,由各種單片A/D轉換器構成的數字電壓表,已被廣泛用于電子及電工測量、工業(yè)自動化儀表、自動測試系統等智能化測量領域,顯示出強大的生命力。與此同時,由DVM擴展而成的各種通用及專用數字儀器儀表,也把電量及非電量測量技術提高到嶄新水平。數字電壓表是諸多數字化儀表的核心與基礎,電壓表的數字化是將連續(xù)的模擬量如直流電壓轉換成不連續(xù)的離散的數字形式并加以顯示,這有別于傳統的以指針加刻度盤進行讀數的方法,避免了讀數視差和視覺疲勞。目前數字電壓表的內部核心部件是A/D轉換器,轉換器的精度很大程度上影響著數字電壓表的準確度,本文A/D轉換器采用ADC0809對輸人模擬信號進行轉換,控制核心AT89C51再對轉換的結果進行運算和處理,最后驅動輸出裝置顯示數字電壓信號。數字式電壓表是由高阻抗電壓表頭與分壓電路組成的。數字式電壓表頭的等效輸入電阻通常在200M歐以上,滿量程時所流經的電流通常在1皮安左右。以上述表頭制成的數字式電壓表,滿量程時所流經的電流與量程有關,通常在1皮安至100微安之間。數字電壓表(數字面板表)是當前電子、電工、儀器、儀表和測量領域大量使用的一種基本測量工具有關數字電壓表的書籍和應用已經非常普及了。數字電壓表的設計和開發(fā),已經有多種類型和款式。傳統的數字電壓表各有特點,它們適合在現場做手工測量,要完成遠程測量并要對測量數據做進一步處理,傳統數字電壓表是無法完成的。然而基于PC通信的數字電壓表,既可以完成測量數據的傳遞,又可借助PC,做測量數據的處理。所以這種類型的數字電壓表無論在功能和實際上,都具有傳統數字電壓表無法比擬的特點,這使得它的開發(fā)和應用具有良好的前景[1]。本系統采用單片機AT89C51構成數字電壓表控制系統,具有精度高、速度快、性能穩(wěn)定和電路簡單且工作可靠等特點,具有很好的使用價值。1.2發(fā)展過程數字化階段:50-60年代中期,電壓表的特點是運用各種原理實現模數(A/D)轉換,即將模擬量轉化成數字量,從而實現測量儀表的數字化。高準確度階段:由于精密電測量的需要,電壓表開始向高準確度、高位數方向發(fā)展,出現了所謂復合型原理的儀表。智能化階段:60年代末期,電子技術和工藝結構有了飛躍的發(fā)展,而大規(guī)模集成電路(LSI)與計算機技術相結合的產物是微處理器(簡寫為μP)。1972年,美國Intel公司首創(chuàng)微處理器不久即研制出微處理器式數字電壓表,實現了電壓表數據處理自動化和可編程序,因為帶有存貯器并使用軟件,所以可進行信息處理,可通過標準接口組成自動測試系統(簡寫為ATS)。這些儀表除了完成原有電壓表的各種功能外,還能夠自校、自檢,保證了自動測量的高準確度,實現了儀器、儀表的所謂“智能化”。當前,智能表發(fā)展十分迅速,而微處理式電壓表在智能儀表中占的比重最大,智能化的電壓表為實現各種物理量的動態(tài)測量提供了可能。智能化數字電壓表有以下幾個突出的本領:可以程序控制——利用事先編好的程序,可以讓數字儀表自動按程序進行操作。例如在測量時可以按程序完成自動校準、自動調零、自選量程,然后進行自動測量。測量得到的數據又可以按程序進行自動計算、自動判斷后進行自動調節(jié)和自動控制,并把數據按要求送往數據處理中心。在測量系統發(fā)生故障時或者利用測量的間隙,它又有自動診斷、自動排除故障的能力。所有這些工作又都是嚴格地按規(guī)定好的程序自動進行,不需要人的干預。人在做測量工作時還可能因為精神因素引入各種人為的誤差甚至造成失誤,而這種自動測量卻可以二十四小時不停地工作[2]。有自校和自動修正誤差的能力——數字電壓表的突出優(yōu)點是準確度高,但為了取得高準確度,數字電壓表也付出了很高的代價,不得不使用一些高精度、高穩(wěn)定度的元器件和使用各種復雜的電路。數字電壓表智能化以后,由于它有記憶、判斷、運算和貯存數據的功能,因此它可以在測量的間隙中,自動對工作條件(如溫度、濕度、氣壓、頻率等)的變化按給定的關系式進行計算,求出修正值,再根據誤差理論按編好的程序對測得的一系列數據自動進行計算求出整個測量系統購誤差,最后把它存進存貯器。在下一個測量周期內,智能電壓表能從測得的結果中自動地扣除這個系統誤差。這樣,就可以不再使用那些復雜的電路和高精度、高穩(wěn)定度的元器件而同樣可以得到很高的測量準確度。再加上雙積分電路可以集成化,于是使得智能化的數字電壓表體積縮小、結構簡化、成本降低,而質量仍很高,這對提高數字電壓表的準確度和推動數字儀表的普及是極有利的。自動變換數據——由于智能化儀表有運算功能,因此它能用測量一些簡單的數據,通過推算的辦法,求出一些復雜或難以測量的數據來。例如我們可以從測量的電容量C或電感量L通過關系式求出Q值、頻率、周期、波形等等。這對簡化測量方法是很有用的。有自檢、自修復能力——智能電壓表可以按程序對儀表進行自檢,如果發(fā)現了故障還可以立即轉入自修復程序,自動找出故障并修復。有些不允許停止控制的儀表(煉鋼護、化工反應爐、飛行器等),還可以把關鍵部分的備件放進儀表內,當自檢時發(fā)現故障后,它會立即自動轉換到備用電路上工作,保證控制不間斷。由于智能儀表的這些優(yōu)點,從上世紀七十年代末開始各國的數字儀表已轉向智能化儀表生產,進入八十年代后除了普及型的數字電壓表外,高檔的數字電壓表都已改為帶微處理器的數字電壓表[3]。1.3研究內容研究項目屬于單片機技術實際應用,該數字電壓表測量的范圍為直流電壓數據,工作原理是以51單片機為控制中心,A/D轉化采用常見的ADC0809,通過RS232串口通訊傳輸所測電壓數據,可與外部PC機進行通信。顯示部分用的是七段數碼管,將所采集到的數據通過單片機轉換輸出至數碼管上進行顯示。2系統設計方案2.1設計思想數字電壓表是電壓測量的常用儀器,本電壓表采用AT89C51單片機為核心器件,測量電路由A/D轉換,數據處理、及顯示部分組成。A/D轉換由集成電路ADC0809完成,顯示部分由單片機I/O端口連接LED數碼管進行顯示。由于ADC0809精度高,轉化速度快,故采用此設計方案。2.2整體設計框圖按照本論文設計要求和功能,將系統分為主控模塊(AT89C51)、A/D轉換模塊、LED數碼管顯示模塊、看門狗,EEPROM,通信接口等。數字電壓表設計整體框圖如圖1所示,主控模塊采用常見的AT89C51,模數轉換模塊采用8位的ADC0809,顯示模塊采用的是4位的七段數碼管,看門狗采用的是X5045,通信接口采用RS232,系統設計包括如下模塊:單片機系統A/D單片機系統A/D看門狗EEPROM數碼管顯示模塊通信接口鍵盤圖1整體設計框圖(1)主控模塊主控模塊主要作用是接收模數轉換模塊轉換后的數字信號,在經過運算后,調用顯示子程序選出相應段碼輸出到七段數碼管進行顯示,主控芯片采用常見的AT89C51單片機。(2)A/D模塊模數轉換功能是將輸入連續(xù)的的模擬電壓量轉換成數字量,本設計中采用的是8位的轉換芯片ADC0809,具有精度高,速度快等優(yōu)點。(3)顯示模塊通過編寫程序,調用顯示子程序可以完成對測量到的電壓數值進行實時顯示,顯示模塊采用常見的4位七段數碼管[4]。(4)看門狗模塊微處理器在運行中會受到各種各樣的干擾,如電源及空間電磁干擾,當其超過抗干擾極限時,就有可能引起微處理器死機或程序跑飛,有了看門狗這個監(jiān)控者,就能夠在MCU死機或程序跑飛后,重新使它復位運行,本設計中采用Xicor公司的X5045。(5)EEPROM模塊EEPROM可以存儲采集到的數據。(6)通信接口模塊通過編程可以實現對測量的電壓數值進行傳輸,遠程通信,通信接口采用RS232。(7)鍵盤模塊鍵盤的主要功能是數據通道的選擇,采用編碼式鍵盤設計。3系統軟件設計主控模塊完成初始化后開始調用A/D轉換子程序,數模轉換模塊開始采集電壓信號,完成采集后給出完成信號,主控模塊采用中斷方式,接收到信號后讀取數字量輸出至顯示模塊,當需要保存采集到的電壓數據則可以存入EEPROM中,系統軟件設計還可以對電壓數據與PC機進行數據傳輸,可以調用串口傳輸模塊,完成對電壓數據的傳輸工作。3.1主控模塊軟件設計3.1.1AT本系統采用的AT89C51是一個低功耗,高性能CMOS8位單片機,片內含4kBytes的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及AT89C51引腳結構,芯片內集成了通用8位中央處理器和ISPFlash存儲單元。AT89S51具有如下特點:40個引腳,4kBytesFlash片內程序存儲器,128bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個全雙工串行通信口,片內時鐘振蕩器[5]。3.1.2內部結構單片機有4個I/0端口,每個端口都是8位準雙向口,共占32根引腳。每個端口都包括一個鎖存器(即專用寄存器PO-P3)、一個輸入驅動器和輸入緩沖器。通常把4個端口稱為PO-P3。在無片外擴展的存儲器的系統中,這4個端口的每一位都可以作為雙向通用I/0端口使用。在具有片外擴展存儲器的系統中,P2口作為高8位地址線,PO口分時作為低8位地址線和雙向數據總線。在作為一般的通用I/O輸入時,都必須先向鎖存器寫入“1”以免誤讀數據。3.1.3軟件設計主控模塊工作主要是接收模數轉換模塊輸出的數字量,將接收到的數據進行一些列的運算,并處理運算的結果,將所得的數據送至顯示緩存區(qū),待延時時間到,送至數碼管顯示。主程序流程圖如圖2所示,程序見附錄2。開始初始化開始初始化調用A/D轉換延時后讀A/D轉換的結果對A/D轉換的結果進行運算Dout*5/255對運算后的結果進行處理,分別得到個,十位的數字并將這數字分別存入顯示緩沖區(qū)顯示圖2主控模塊程序流程圖3.2模數轉換軟件設計在單片機應用系統中,常常需要將檢測到的連續(xù)變化的模擬量如溫度、壓力、流量、速度等轉換成數字量,才能輸入到單片機中進行處理。然后在將處理的數字量轉換成模擬量輸出,實現對被控對象的控制。將模擬量轉換成數字量的過程稱為A/D轉換,將數字量轉換成模擬量的過程稱為D/A轉換。ADC0809是8通道8位CMOS逐次逼近式A/D轉換器,它由8路模擬開關、地址鎖存與譯碼器、比較器、8位開關型A/D轉換器、逐次逼近寄存器、三態(tài)輸出鎖存器等其它一些電路組成。因此,ADC0809可處理8路模擬量輸入,且有三態(tài)輸出能力,既可與各種微處理器相連,也可單獨工作。3.2.1主要性能指標(1)分辨率為8位。(2)最大不可調誤差:±1LSB。(3)單電源+5V供電,基準電壓由外部提供,典型值為+5V,此時允許輸入模擬電壓為0~5V。(4)具有鎖存控制的8路模擬選通開關。(5)可鎖存三態(tài)輸出,輸出電平與TTL電平兼容。(6)功耗15mW。(7)換度取決于芯片的時鐘頻率。時鐘的頻率范圍:10~1280KHz,當CLK=500KHz時,轉換時間為128us。3.2.2內部邏輯機構ADC0809內部邏輯結構如圖3所示。8位A/D轉換器三態(tài)輸出8位A/D轉換器三態(tài)輸出鎖存器8路模擬量開關地址鎖存與譯碼IN0︰︰IN7ADDAADDBADDCALEEOCOEVref+Vref-STARTCLKD0︰︰D7VccGND圖3ADC0809內部邏輯機構(1)IN0~IN7——8路模擬信號輸入端。(2)ADDA、ADDB、ADDC——3位地址碼輸入端,8路模擬信號轉換選擇由A、B、C決定,A為低位,C為高位,與低8位地址中A0~A2連接,由A0~A2地址000~111選擇IN0~IN78路A/D通道,真值表如表1所示。(3)CLK——外部時鐘輸入端。時鐘的頻率高,允許范圍為10~1280KHz,典型值為640KHz,此時A/D轉換時間為100us。通常單片機ALE端直接或分頻后與ADC0809的CLK端相連接。當MCS—51型單片機無讀寫外RAM操作時,ALE信號固定為CPU始終頻率的1/6,若晶振為6MHz,則1/6為1MHz,則A/D轉換時間為64us。(4)D0~D7——數字量輸出端。(5)OE——A/D轉換結果輸出允許控制端。當OE端為高電平時,允許將A/D轉換結果從D0~D7端輸出。通常MCS51型單片機RD端和ADC0809片選端(例如P2.0)通過或非門與ADC0809的OE端相連接。當DPTR為FEFFH,且執(zhí)行指令后,RD和P2.0均有效,或非后產生高電平,使ADC0809的OE端有效,ADC0809將A/D轉換結果送入數據總線P0口,CPU再讀入A中。表1ADDA、ADDB、ADDC真值表ADDCADDBADDA輸入通道000011110011001101010101IN0IN1IN2IN3IN4IN5IN6IN7(6)ALE——地址鎖存允許信號。8路模擬通道地址由A、B、C輸入,在ADC0809的ALE信號有效時將該8路地址鎖存。(7)START—啟動A/D轉換信號。當START端輸入一個正脈沖時,立即啟動ADC0809進行A/D轉換。START端與ALE端連在一起,有單片機WR和ADC0809片選端通過或非門相連,當DPTR為FEF8H時,執(zhí)行讀指令后,將啟動ADC0809模擬通道中0通道的A/D轉換。FEF8H~FEFFH分別為8路模擬輸入通道的地址。執(zhí)行寫指令,并將A中的內容寫進ADC0809,而是產生WR信號和P2.0有效,從而使ADC0809的START和ALE有效,且輸出A/D通道0地址為A0~A2。(8)EOC——A/D轉換結束信號。當啟動A/D轉換結束后,EOC輸出低電平,轉換結束后,EOC輸出高電平,表示可以讀取A/D轉換結果。該信號取反后,若與51型單片機引腳INT0或INT1連接,可引發(fā)CPU中斷,在中斷服務程序中讀A/D轉換的數字信號,也可以采用查詢方式。(9)VREF+、VREF——正負基準電壓輸入端?;鶞孰妷旱牡湫椭禐?5V,可與電源電壓(+5V)相連,但電源電壓往往有一定波動,將影響A/D精度。因此精度要求較高時,可用高穩(wěn)定度基準電壓輸入,當模擬信號電壓較低時,基準電壓也可取低于5V的數值。(10)VCC——正電源電壓(+5V)。(11)GND——接地端[6]。3.2.3數據采集軟件設計開始啟動測試A/D轉換結束讀數據開始啟動測試A/D轉換結束讀數據ADC0809地址加1地址數<8結束NYYN圖4A/D轉換測量子程序流程圖首先輸入3位地址,并使ALE為高電平,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器,START上升沿將逐次逼近寄存器復位。下降沿啟動A/D轉換,之后EOC輸出信號變低,指示轉換正在進行。直到A/D轉換完成,EOC變?yōu)楦唠娖?,指示A/D轉換結束,讀取數據,ADC0809地址加1,并將結果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平時,輸出三態(tài)門打開,轉換結果的數字量輸出到數據總線上,轉換過程結束。軟件設計流程圖如圖4所示,程序見附錄2。3.3數碼管軟件設計用單片機驅動LED數碼管有很多方法,按顯示方式分,有靜態(tài)顯示和動態(tài)顯示。靜態(tài)顯示就是顯示驅動電路具有輸出鎖存功能,單片機將所有要顯示的數據送出后就不再控制LED,直到下一次顯示時再傳送一次新的顯示數據。靜態(tài)顯示的數據穩(wěn)定,占用的CPU時間少。靜態(tài)顯示中,每一個顯示數碼管都要占用單獨的具有鎖存功能的I/O接口,該接口用于筆劃段字型代碼。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,該字段就可以顯示發(fā)送的字形。要顯示新的數據時,單片機再發(fā)送新的字形碼。另一種方法是動態(tài)掃描顯示。動態(tài)掃描方法是用其接口電路把所有顯示數碼管的8個筆畫段A-H同名端連在一起,而每一個顯示數碼管的公共極COM各自獨立受I/O線控制。CPU向字段輸出口送出字形碼時,所有顯示數碼管接收到相同的字形碼,但究竟是哪個亮則取決于COM段,而這一段是由I/O控制的,由單片機決定何時顯示哪一位。3.3.1數碼管顯示原理動態(tài)掃描的方法是輪流控制各個顯示器的COM端,使各個顯示器輪流點亮,在輪流點亮掃描過程中,每位顯示器的點亮時間極為短暫,但由于人的視覺暫留現象及發(fā)光二開始顯示段碼開始顯示段碼延時顯示等待位選信號4位數碼管位選YN圖5顯示子程序極管的余輝效應,給人的印象就是一組穩(wěn)定的顯示數據。靜態(tài)顯示雖然數據顯示穩(wěn)定,占用很少的CPU時間,但每個顯示單元都需要單獨的顯示驅動電路,使用的電路硬件較多,動態(tài)顯示需要CPU時刻對顯示器件進行數據刷新,顯示數據有閃爍感,占用的CPU時間多,但使用的硬件少,能節(jié)省線路板空間[7]。3.3.2軟件設計按照電路設計,數碼管顯示采用軟件譯碼的動態(tài)掃描方法實現顯示。本設計中采用共陰數碼管,顯示過程為:開始顯示前等待位選信號的到來,當選住數碼管的最低位時,立即輸出顯示段碼,延時過后,立刻選通下一位位選信號,依次下去,當位選信號未完成的時候則立刻返回等待位選信號,位選信號完成后,一個完整的電壓信號就完成了輸出顯示。設計流程圖如圖5所示,顯示子程序見附錄2。3.4看門狗及數據復位、存儲軟件設計看門狗電路一般有軟件看門狗和硬件看門狗兩種。軟件看門狗不需外接硬件電路,但系統需要出讓一個定時器資源,這在許多系統中很難辦到,而且若系統軟件運行不正常,可能導致看門狗系統也癱瘓。硬件看門狗是真正意義上的“程序運行監(jiān)視器”,如計數型的看門狗電路通常由555多諧振蕩器、計數器以及一些電阻、電容等組成,分立元件組成的系統電路較為復雜,運行不夠可靠。本設計采用硬件看門狗,選用X5045。3.4.1X5045芯片X5045是美國Xicor公司的生產的標準化8腳集成電路,它將EEPROM、看門狗定時器、電壓監(jiān)控三種功能組合在單個芯片之內,大大簡化了硬件設計,提高了系統的可靠性,減少了對印制電路板的空間要求,降低了成本和系統功耗,是一種理想的單片機外圍芯片。X5045芯片的引腳功能如下:SO:串行數據輸出腳,在一個讀操作的過程中,數據從SO腳移位輸出。在時鐘的下降沿時數據改變。SI:串行數據輸入腳,所有的操作碼、字節(jié)地址和數據從SI腳寫人,在時鐘的上升沿時數據被鎖定。SCK:串行時鐘,控制總線上數據輸入和輸出的時序。/CS:芯片使能信號,當其為高電平時,芯片不被選擇,SO腳為高阻態(tài),除非一個內部的寫操作正在進行,否則芯片處于待機模式;當引腳為低電平時,芯片處于活動模式,在上電后,在任何操作之前需要CS的一個從高電平到低電平的跳變。/WP:當WP引腳為低時,芯片禁止寫入,但是其他的功能正常。當WP引腳為高電平時,所有的功能都正常。當CS為低時,WP變?yōu)榈涂梢灾袛鄬π酒膶懖僮?。但是如果內部的寫周期已經被初始化后,WP變?yōu)榈筒粫懖僮髟斐捎绊?。RESET:復位輸出端。3.4.2X5045工作原理X5045是一種集上電復位、看門狗、電壓監(jiān)控和串行EEPROM四種功能于一身的可編程控制電路,它有助于簡化應用系統的設計,減少電路板的占用面積,提高可靠性。(1)上電復位X5045加電時會激活其內部的上電復位電路,從而使RESET引腳有效。該信號可避免系統微處理器在電壓不足或振蕩器未穩(wěn)定的情況下工作。當VCC超過器件的限值時,電路將在200ms(典型)延時后釋放RESET以允許系統開始工作。(2)低電壓檢測工作時,X5045對VCC電平進行監(jiān)測,若電源電壓跌落至預置的最小以下時,系統即確認RESET,從而避免微處理器在電源失效或斷開的情況下工作。當RESET被確認后,該信號將一直保持有效,直到電壓跌到低于1V。而當VCC返回并超過限值達200ms時,系統重新開始工作。(3)看門狗定時器看門狗定時器的作用是通過監(jiān)視WDI輸入來監(jiān)視微處理器是否激活。由于微處理器必須周期性的觸發(fā)CS/WDI引腳以避免RESET信號激活而使電路復位,所以CS/WDI引腳必須在看門狗超時時間終止之前受到由高至低信號的觸發(fā)。3.4.3看門狗軟件設計X5045芯片內包含有一個看門狗定時器,可通過軟件預置系統的監(jiān)控時間??撮T狗定時器的預置時間是通過X5045的狀態(tài)寄存器的相應位來設定的。X5045狀態(tài)寄存器共有6位有含義,其中WD1、WD0和看門狗電路有關,其余位和EEPR0M的工作設置有關。軟件設計流程如圖6,程序見附錄2。WD1=0,WD0=0,預置時間為1.4s。WD1=0,WD0=1,預置時間為0.6s。WD1=1,WD0=0,預置時間為0.2s。WD1=1,WD0=1,禁止看門狗工作。等待接收命令數據采集等待接收命令數據采集喂狗圖6看門狗喂狗程序流程圖3.4.4EEPROM軟件設計EEPROM采用的是X5045中的SPI串行存儲器件存儲器部分是帶塊鎖保護的CMOS串行EEPROM陣列,陣列的內部組織是X8位。X5045可提供最少1000,000次擦寫和100年的數據保存期,并具有串行外圍接口(SPI)和軟件協議的特點,允許工作在簡單的四總線上。X5045主要是通過一個8位的指令寄存器來控制器件的工作,其指令代碼通過SI輸入端(MSB在前)寫入寄存器。表2所列為X5045的指令格式及其操作[8]。表2X5045的指令格式及其操作指令名稱指令格式操作WREN00000110設置寫使能鎖存器(使能寫操作)WRDI00000100復位寫使能鎖存器(禁止寫操作)RSDR00000101讀狀態(tài)寄存器WRSR00000001寫狀態(tài)寄存器(看門狗和塊鎖)READ0000A80從選定的地址開始讀存儲器列陣的數據WRITE0000A8010從選下的地址開始寫入數據至存儲器陣列(1至16字節(jié))當存儲信號到來時,單片機首先等待傳輸命令,存儲信號到來通過傳輸指令將需要存儲的數據傳輸存儲到EEPROM中進行存儲。軟件設計流程圖如圖7所示,程序見附錄2。等待傳輸命令傳輸電壓數據等待傳輸命令傳輸電壓數據存儲圖7數據存儲流程圖3.5通訊模塊軟件設計3.5.1RS232接口RS232是個人計算機上的通訊接口之一,由電子工業(yè)協會(ElectronicIndustriesAssociation,EIA)所制定的異步傳輸標準接口。通常RS232接口以9個引腳(DB-9)或是25個引腳(DB-25)的型態(tài)出現,一般個人計算機上會有兩組RS232接口,分別稱為COM1和COM2。3.5.2串口通訊原理AT89C5單片機內部有一個全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個在物理上獨立的接收發(fā)送器,既可以接收數據也可以發(fā)送數據。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器則只能寫入不能讀出,這個通信口既可以用于網絡通信,亦可實現串行異步通信,還可以構成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉換器,就可方便地構成標準的RS232接口。AT89C51的串行口有4種工作方式,1種同步方式,3種異步方式。本方式選方式1,一幀數據有10位,包括起始位0、8位數據位和1位停止位1。串行口電路在發(fā)送時能自動加入起始位和停止位。在接收時,停止位進入SCON中的RB8位。方式1的波特率是可變的,由定時器1的溢出率決定。由定時器1最好工作在方式2上(自動重裝載模式),這樣只需對TH1設置一次即可。數據通過TXD輸出,在8個位輸出完畢后,SCON寄存器的TI位被設為1,CPU只要判斷TI是1,接著發(fā)送下一個字節(jié)。(1)波特率的設定:計算公式如公式(1)(1)為了減小誤差,時鐘振蕩頻率采用11.0592MHz,選用定時器T1工作在方式2,計算的初值為:160。3.5.3軟件設計首先對傳輸模塊進行初始化操作,然后等待傳輸信號的到來,當傳輸數據到來的時候,傳輸端口則將數據傳輸出去,當傳輸程序沒有到來時,則返回到初始化操作繼續(xù)等待傳輸程序,傳輸接口采用的是RS232。設計流程圖如圖8所示,程序見附錄2。3.6鍵盤軟件設計3.6.1鍵盤鍵盤是一組按鍵的集合,是最常用的單片機輸入設備。操作人員可以通過鍵盤輸入數據或命令,實現簡單的人—機通信。鍵盤分編碼鍵盤和非編碼鍵盤,鍵盤上閉合鍵的識別由專用的硬件譯碼器實現,并產生鍵編號或鍵值的稱為編碼鍵盤,如BCD碼鍵盤、ASCII碼鍵盤等;靠軟件識別的稱為非編碼鍵盤。3.6.2鍵盤軟件設計鍵盤采用中斷方式的編碼鍵盤,僅當有惟一一個鍵按下時,向單片機發(fā)送中斷信號并提供所按的鍵的編碼(4個二進制位)。該電路由一片可編程邏輯芯片GAL22V10D控制。對按鍵的監(jiān)控由可編程邏輯芯片GAL22V10D完成。當沒有鍵按下或不只一個鍵按下時,該芯片的輸出中斷信號為高,不引起單片機中斷;當有唯一一個鍵按下時,該芯片的輸出中斷信號為低,以引起單片機中斷并通過4位數據線提供按鍵的編碼信號,直到該鍵彈起或同時有其它鍵按下。鍵盤設計流程為初始化操作時,開始等待按鍵信號的到來,如有按鍵按下即通過軟件判斷哪個鍵按下,然后調用按鍵子程序執(zhí)行相應的程序。軟件設計流程圖如圖9所示,程序設計見附錄2。開始初始化等待傳輸信號完成傳輸開始初始化等待傳輸信號完成傳輸YN初始化調用按鍵子程序結束等待按鍵信號開始YN選擇通道圖8數據傳輸流程圖圖9鍵盤流程圖4系統仿真與調試4.1Proteus和Keil軟件的編程和仿真用的軟件包括有:Keil,Proteus等相關電子設計軟件。Proteus嵌入式系統仿真與開發(fā)平臺是由英國Labcenter公司開發(fā)的,是目前世界上最先進、最完整的嵌入式系統設計與仿真平臺。它是一種可視化支持多種型號單片機(如51、PIC、AVR、Motorola等),并且支持與當前流行的單片機開發(fā)環(huán)境(Keil、MPLAB、IAR)連接調試的軟硬件仿真系統。Proteus具有和其他EDA工具一樣的原理圖、PCB自動或人工布線及電路仿真功能外,針對微控制系統與外設的混合電路的電路仿真、軟件仿真、系統協同仿真也做到了一體化和互動效果,是目前電子設計愛好者廣泛使用的電子線路設計與仿真軟件Protel和Multisim功能的聯合和進一步擴展。目前,Proteus在國內單片機開發(fā)者及單片機愛好者之中一開始普及,有很多開發(fā)者已經開始用此開發(fā)環(huán)境進行仿真。本課題的設計軟件部分將在Proteus中進行,對電路的設計和連線,以及程序編寫后的調試都將在Proteus中仿真實施,設計初期完成對數字電壓表的電路設計。主程序的編寫在Keil中進行,新建工程、編寫程序、程序編寫好之后保存并進行編譯,檢查沒有錯誤后存檔,如圖10所示[9]。圖10Keil軟件程序編寫界面程序編寫完成后,經過檢查無誤后生成hex文件,并保存,如圖11所示。圖11hex文件的生成4.2軟件仿真(1)打開數字電壓表仿真原理圖。(2)將軟件程序(數顯電壓表.hex)燒入單片機中進行測試仿真,仿真如圖12所示。圖12仿真測試圖1(3)仿真測得最大電壓值為5V,調節(jié)電位器使輸入的模擬電壓發(fā)生變化,數碼管上的顯示數字發(fā)生變化,測試仿真結果如圖13所示。圖13仿真測試圖2由于單片機為8位處理器,當輸入電壓為5V時,ADC0809輸出數值為255(FFH),因此單片機最高的數值分辨率為0.0196V(5/255),約為0.02V,上圖仿真的結果誤差符合本文設計的要求。結束語到此為止,基于單片機的數字電壓表軟件設計已經完成。本系統最大的特點是測量準確、結構簡單、調試使用方便、性價比高、可以單獨使用,也可以與外進行通訊。為了確保整個系統運行的穩(wěn)定性,本系統還采用了看門狗復位電路。實驗證明,該裝置運行可靠,測量誤差小,具有很好的應用效果,因此,可以廣泛應用于對靈敏度要求較高的工業(yè)環(huán)境中。本文設計模數轉換采用的是8位的ADC0809,如果要獲得更高的精度要求,則應采用12位、13位的A/D轉換器。參考文獻[1]李朝青.單片機原理與接口技術.北京[M]北京航空航天大學出版社,1995[2]肖洪兵等編著.跟我學單片機.[M]北京機械工業(yè)出版社,1997[3]王福瑞.單片微機測控系統設計大全[M]北京航空航天大學出版社,1999[4]王忠誠.電子電路用元器件入門教程.[G]北京電子工業(yè)出版社,2006[5]劉義濤.ProtelDXP設計及應用教程.[G]北京清華大學出版社,2000[6]何立民.《單片機應用文集》[M]北京航空航天大學出版社,1994[7]周興華編.手把手教你學單片機[G]北京航空航天大學出版社,1993[8]胡宴如,耿蘇燕.模擬電子技術.[M]北京機械工業(yè)出版社,1999[9]齊秋群.MOTOROLA單片機實用技巧集萃.北京:電子工業(yè)出版社,1997[10]張明波編.數字電子技術.中國電力出版社,2003[11]何立明.單片機應用系統抗干擾技術[M].北京:北京航空航天大學出版社,2000[12]王幸之等.單片機應用系統抗干擾技術[M].北京:北京航空航天大學出版社,2000[13]劉大茂編著.單片機應用系統設計[M].機械工業(yè)出版社,1998[14]求是科技.單片機應用系統開發(fā)實例導航[M].北京:人民郵電出版社,2003[15]錢逸秋.單片機原理與應用[M].北京:電子工業(yè)出版社,2002[16]李軍.51系列單片機高級實例開發(fā)指南[M].北京:北京航空航天大學出版社,2004[17]胡漢才.單片機原理及其接口技術[M].北京:清華大學出版社,2002[18]周向紅.《51系列單片機應用與實踐教程》.北京航空航天大學出版社,2008年5月[19]張毅剛.《新編MCS-51單片機應用設計》.哈爾濱工業(yè)大學出版社,2003[20]閻石.數字電子技術基礎(第三版).北京:高等教育出版社,1989[21]李廣弟.單片機基礎.北京:北京航空航天大學出版社,1994[22]楊寶清.現代傳感器技術基礎[M].北京:中國鐵道出版社,2001[23]趙負圖.現代傳感器集成電路[M].北京:人民郵電出版社,2000[24]周航慈.單片機程序設計基礎[M].北京:北京航空航天大學出版社,2003[25]stefanSjoholm,lennartlindh著.邊計年,譯.北京:清華大學出版社.2000[26]Nunan,D.DesigningTasksfortheCommunicativeClassroom.Cambridge:CambridgeUniversityPress,1989附錄1原理圖附錄2(1)看門狗程序Main(){

WDTRST=0x1E;

WDTRST=0xE1;

//初始化看門狗。

While(1)

{

WDTRST=0x1E;

WDTRST=0xE1;

//喂狗指令

}}(2)串口通訊子程序voidchuan(){SCON=0x50;URAT工作在方式1上TMOD=0x20;TIME1工作在方式2上TH1=0xA0;}(3)主控模塊程序#include<stdio.h>#include<reg51.h>sbitA1=P3^4;//數碼管的位選信號sbit

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論