




已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)控直流恒流源的設(shè)計(jì)摘 要直流恒流源是提供穩(wěn)定直流電流的電源裝置,是科學(xué)實(shí)驗(yàn)和設(shè)備調(diào)試中的一種必備設(shè)備。本文介紹了采用AT89C51單片機(jī)為主控制器,通過鍵盤來設(shè)置直流恒流源的輸出電流,并由數(shù)碼管顯示電流設(shè)定值的數(shù)控直流恒流源。本系統(tǒng)由單片機(jī)程控設(shè)定數(shù)字信號(hào)經(jīng)過D/A轉(zhuǎn)換器輸出模擬量,再經(jīng)過V/I轉(zhuǎn)換電路的轉(zhuǎn)換輸出不同的電流。輸出電流范圍為10100mA,電流設(shè)置步進(jìn)為1mA,輸出電流調(diào)整率2%。本文主要分析了數(shù)控直流恒流源系統(tǒng)的設(shè)計(jì)需求,闡述了數(shù)控直流恒流源的軟硬件的設(shè)計(jì)原則,介紹了數(shù)控直流恒流源各模塊電路的功能及設(shè)計(jì)思路,完成了數(shù)控直流恒流源系統(tǒng)的全部設(shè)計(jì),給出了完整的電路圖和程序。本文設(shè)計(jì)的重點(diǎn)是單片機(jī)主控系統(tǒng)和D/A轉(zhuǎn)換電路,設(shè)計(jì)的難點(diǎn)是高線性、高穩(wěn)定度的電壓/電流轉(zhuǎn)換電路(V/I轉(zhuǎn)換電路)。測(cè)試結(jié)果表明,本系統(tǒng)能滿足需要高穩(wěn)定度的小功率直流恒流源領(lǐng)域的應(yīng)用要求。關(guān)鍵詞 數(shù)控 恒流源 V/I轉(zhuǎn)換ABSTRACTNumerical control DC constant current source is to provide a stable DC power devices, and equipment for scientific experiments debugging necessary equipment. This paper instructed the numerical control DC constant current source which makes use of the AT89C51 version single chip microcontroller is the main controller in this system, while the set value and the real output current can be displayed by LED. In this system, the digitally programmable signal from Single Chip Micro controller is converted to analog value by D/A converter, and then transited by voltage/current converter circuit, so adjustable output different current. Output current range of 10100mA, current set of 1mA step, the output current adjustment rate of less than 2%.This paper analyzes the numerical control DC constant current source system design needs, expounded numerical-controlled DC constant current source of the hardware and software design principles, instructed the numerical-controlled DC constant current source circuit of the module function and design ideas, completed the numerical-controlled DC current source of all design, and the circuit is complete and procedures. This paper focuses on the design of the control system microcontroller and D/A Conversion Circuit, The difficulty in the design of high linearity, high stability of the voltage/current converter circuit (V/I Conversion Circuit). The test results have showed that it can be applied in need areas of constant current source with high stability and low power.KEY WORDS numerical control constant current source V/I convert目 錄前 言1第1章系統(tǒng)總體設(shè)計(jì)21.1系統(tǒng)設(shè)計(jì)任務(wù)與要求21.1.1系統(tǒng)設(shè)計(jì)任務(wù)21.1.2系統(tǒng)設(shè)計(jì)要求21.2重點(diǎn)研究?jī)?nèi)容與實(shí)現(xiàn)方法21.2.1重點(diǎn)研究?jī)?nèi)容21.2.2實(shí)現(xiàn)途徑及方法31.3系統(tǒng)總體方案設(shè)計(jì)31.3.1主控模塊31.3.2鍵盤與顯示模塊41.3.3恒流源模塊41.3.4存儲(chǔ)器擴(kuò)展模塊41.3.5電源模塊51.3.6系統(tǒng)原理框圖5第2章系統(tǒng)硬件各功能模塊的設(shè)計(jì)62.1主控模塊的設(shè)計(jì)62.1.1AT89C51單片機(jī)簡(jiǎn)介62.1.2D/A轉(zhuǎn)換電路的設(shè)計(jì)72.1.3恒流源電路的設(shè)計(jì)92.1.4數(shù)據(jù)存儲(chǔ)器的擴(kuò)展102.1.5系統(tǒng)資源分配112.2人機(jī)接口的設(shè)計(jì)122.2.1鍵盤的設(shè)計(jì)122.2.2顯示電路的設(shè)計(jì)142.3系統(tǒng)抗干擾設(shè)計(jì)152.3.1看門狗電路的設(shè)計(jì)152.3.2電源供電系統(tǒng)的設(shè)計(jì)162.3.3基準(zhǔn)電壓的設(shè)計(jì)17第3章控制軟件的設(shè)計(jì)193.1主程序的設(shè)計(jì)193.1.1讀寫EEPROM子程序的設(shè)計(jì)193.1.2鍵盤處理子程序的設(shè)計(jì)203.1.3D/A轉(zhuǎn)換子程序的設(shè)計(jì)203.2鍵盤中斷服務(wù)程序的設(shè)計(jì)213.3顯示中斷服務(wù)程序的設(shè)計(jì)213.1.1正常顯示程序模塊213.1.2閃爍顯示程序模塊21第4章系統(tǒng)調(diào)試284.1硬件仿真調(diào)試284.2軟件的調(diào)試314.3數(shù)據(jù)測(cè)試及誤差分析35第5章結(jié)論41致 謝42參考文獻(xiàn)43附錄1:電路原理圖44附錄2:源程序48附錄3:英文原文62附錄4:中文譯文69II數(shù)控直流恒流源的設(shè)計(jì)前 言直流恒流源是提供穩(wěn)定直流電流的電源裝置,是科學(xué)實(shí)驗(yàn)和設(shè)備調(diào)試中的一種必備設(shè)備。所謂恒流源,是指對(duì)應(yīng)于一定的負(fù)載變化其所產(chǎn)生的電流變化趨于零。它能在外部電路的阻抗特性發(fā)生變化時(shí),仍輸出恒定的電流,具有很高的動(dòng)態(tài)輸出電阻。目前使用的直流恒流源大部分都是利用分立器件組成,其體積大,效率低,可靠性差,操作使用不方便,自我保護(hù)功能不夠完善,故障率較高。隨著電子技術(shù)的發(fā)展和數(shù)字電路應(yīng)用領(lǐng)域的擴(kuò)展,現(xiàn)今社會(huì)產(chǎn)品智能化、數(shù)字化已成為其發(fā)展的趨勢(shì)。數(shù)控直流恒流源作為測(cè)試/調(diào)試儀器在生產(chǎn)實(shí)際中有著廣泛的用途,如:工業(yè)上的電控調(diào)節(jié)閥,其閥門開度受輸入的控制電流大小控制,對(duì)于型表來說這個(gè)電流是010mA,對(duì)于型表來說這個(gè)電流是420mA。恒流源成為這些設(shè)備調(diào)試的必備工裝。在科學(xué)實(shí)驗(yàn)、電磁學(xué)測(cè)量、傳感器供電等領(lǐng)域都需要恒流源提供穩(wěn)定的標(biāo)準(zhǔn)電流。以單片機(jī)系統(tǒng)為核心而設(shè)計(jì)的新一代數(shù)控直流恒流源不但電路簡(jiǎn)單、結(jié)構(gòu)緊湊、價(jià)格低廉,而且單片機(jī)具有計(jì)算和控制能力,可對(duì)各種采樣數(shù)據(jù)進(jìn)行處理,控制其輸出電路,從而可減少或排除由于干擾信號(hào)引起的輸出電流波動(dòng),提高輸出電流的穩(wěn)定性。目前國(guó)內(nèi)一般使用的恒流電流源往往是固定的一種電流值,或只能設(shè)定有限數(shù)值的電流值,普遍存在著調(diào)節(jié)范圍小、熱穩(wěn)定性差等缺點(diǎn)。本設(shè)計(jì)結(jié)合單片機(jī)的控制技術(shù)、D/A轉(zhuǎn)換技術(shù)和集成電路技術(shù),設(shè)計(jì)一種數(shù)控的直流恒流源。它利用單片機(jī)作為核心控制器,通過鍵盤設(shè)置所需要的電流值。電流值取值精度高,使用方便靈活,它可以提供10100mA 的恒流輸出,并具有1mA的步進(jìn)電流調(diào)整功能,在0100負(fù)載下輸出電流調(diào)整率2?;趩纹瑱C(jī)的數(shù)控直流恒流源在科研和生產(chǎn)實(shí)際中應(yīng)用前景廣闊,可作為實(shí)驗(yàn)儀器或生產(chǎn)的必備工裝在各種需要的場(chǎng)合推廣使用。第1章 系統(tǒng)總體設(shè)計(jì)1.1 系統(tǒng)設(shè)計(jì)任務(wù)與要求1.1.1 系統(tǒng)設(shè)計(jì)任務(wù)該數(shù)控直流恒流源采用51系列單片機(jī)為主控芯片,通過D/A轉(zhuǎn)換實(shí)現(xiàn)對(duì)輸出電流的控制。主要技術(shù)指標(biāo):輸出電流直流10100mA可調(diào)整(0100負(fù)載下,以1mA為步進(jìn)單位);在0100負(fù)載下輸出電流調(diào)整率2。該恒流源由單片機(jī)系統(tǒng)、D/A轉(zhuǎn)換器、受控恒流源、鍵盤與顯示電路、看門狗電路和電源電路等構(gòu)成。1.1.2 系統(tǒng)設(shè)計(jì)要求根據(jù)設(shè)計(jì)任務(wù),詳細(xì)分析數(shù)控直流恒流源的設(shè)計(jì)需求,并進(jìn)行軟硬件的總體設(shè)計(jì)。在完成總體設(shè)計(jì)后,進(jìn)行硬件功能模塊的設(shè)計(jì),利用電子CAD軟件完成數(shù)控直流恒流源全部電路的設(shè)計(jì)工作,同時(shí)進(jìn)行控制軟件的流程設(shè)計(jì)及編制工作。利用Keil51軟件完成數(shù)控直流恒流源全部控制軟件的仿真調(diào)試工作。利用Proteus軟件完成大部分功能模塊的電路仿真。1.2 重點(diǎn)研究?jī)?nèi)容與實(shí)現(xiàn)方法1.2.1 重點(diǎn)研究?jī)?nèi)容本設(shè)計(jì)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)。硬件設(shè)計(jì)主要包括單片機(jī)主控系統(tǒng)、D/A轉(zhuǎn)換器、受控恒流源、鍵盤與顯示電路、看門狗電路和電源電路等,其中硬件設(shè)計(jì)重點(diǎn)是單片機(jī)主控系統(tǒng)和D/A轉(zhuǎn)換器,設(shè)計(jì)難點(diǎn)包括高線性、高穩(wěn)定度的電壓/電流轉(zhuǎn)換電路(V/I轉(zhuǎn)換電路)。軟件設(shè)計(jì)主要包括主控程序和中斷服務(wù)程序。主要完成系統(tǒng)初始化、鍵盤掃描、數(shù)據(jù)處理、電流值顯示、輸出電流控制和看門狗電路控制等工作,同時(shí)還應(yīng)考慮如何實(shí)現(xiàn)斷電后保存最后一次設(shè)定的電流值的問題。1.2.2 實(shí)現(xiàn)途徑及方法本系統(tǒng)主要通過資料查找、系統(tǒng)需求分析、系統(tǒng)總體設(shè)計(jì),軟硬件總體設(shè)計(jì)、詳細(xì)的軟件與硬件設(shè)計(jì)、系統(tǒng)仿真與調(diào)試、資料整理等步驟來完成。本系統(tǒng)利用Protel軟件完成硬件電路設(shè)計(jì)工作,利用Keil51軟件完成系統(tǒng)控制軟件的編譯調(diào)試工作,通過Proteus軟件完成所有功能模塊的電路仿真。1.3 系統(tǒng)總體方案設(shè)計(jì)按照系統(tǒng)設(shè)計(jì)要求,在保證實(shí)現(xiàn)的基礎(chǔ)上,要盡可能降低系統(tǒng)成本。整個(gè)系統(tǒng)從功能上劃分為5個(gè)模塊,并分別對(duì)每個(gè)模塊進(jìn)行方案論證比較。1.3.1 主控模塊方案一:采用各類數(shù)字電路來組成鍵盤控制系統(tǒng),進(jìn)行信號(hào)處理,如選用CPLD等可編程邏輯器件。本方案不利于系統(tǒng)的擴(kuò)展,對(duì)信號(hào)處理比較困難。方案二:采用MCS-51單片機(jī)作為整機(jī)的控制單元,通過改變D/A的輸入數(shù)字量來改變其輸出電壓,通過V/I變換電路間接地改變輸出電流的大小。此系統(tǒng)比較靈活,采用軟件方法來解決數(shù)據(jù)的預(yù)置以及電流的步進(jìn)控制,使系統(tǒng)硬件更加簡(jiǎn)潔,各類功能易于實(shí)現(xiàn),能很好地滿足題目的要求1。比較以上兩種方案的優(yōu)缺點(diǎn),方案二簡(jiǎn)潔、靈活、可擴(kuò)展性好,能達(dá)到題目的設(shè)計(jì)要求,故本設(shè)計(jì)采用方案二來實(shí)現(xiàn)。1.3.2 鍵盤與顯示模塊常用的非編碼鍵盤有兩種實(shí)現(xiàn)方案,一種是獨(dú)立式鍵盤,另一種是行列式鍵盤。獨(dú)立式鍵盤電路配置靈活,軟/硬件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵占用一根I/O口線,在按鍵較多時(shí),I/O口線浪費(fèi)較大。行列式鍵盤一般采用鎖存器和可編程并行I/O接口芯片組成,軟/硬件結(jié)構(gòu)復(fù)雜2。考慮到系統(tǒng)實(shí)現(xiàn)及成本等綜合因素,同時(shí)為了方便用戶使用,共設(shè)計(jì)了6個(gè)功能鍵,按鍵數(shù)量不多,因此本系統(tǒng)中采用獨(dú)立式鍵盤。在單片機(jī)的應(yīng)用系統(tǒng)中,通常使用LED(發(fā)光二極管)和LCD(液晶顯示器)來觀察和監(jiān)視單片機(jī)的運(yùn)行情況以及運(yùn)行中間的結(jié)果及狀態(tài)等信息。LED顯示器具有主動(dòng)發(fā)光、配置簡(jiǎn)單及使用壽命長(zhǎng)等優(yōu)點(diǎn),在本系統(tǒng)中需要顯示3位電流值,因此采用3個(gè)七段LED數(shù)碼管顯示設(shè)定的電流值。1.3.3 恒流源模塊方案一:采用四端可調(diào)恒流源,這種器件靠改變外圍電阻元件參數(shù),從而使電流達(dá)到可調(diào)的目的,這種器件能夠達(dá)到12000毫安的輸出電流。改變輸出電流,通常有兩種方法:一是通過手動(dòng)調(diào)節(jié)來改變輸出電流,這種方法不能滿足題目的數(shù)控調(diào)節(jié)要求;二是通過數(shù)字電位器來改變需要的電阻參數(shù),雖然可以達(dá)到數(shù)控的目的,但不夠方便調(diào)節(jié)輸出電流。方案二:壓控恒流源,通過改變恒流源的控制電壓,利用電壓的大小來控制輸出電流的大小。電壓控制電路采用數(shù)控的方式,利用單片機(jī)送出數(shù)字量,經(jīng)過D/A轉(zhuǎn)換轉(zhuǎn)變成模擬信號(hào),再送到運(yùn)算放大器進(jìn)行V/I轉(zhuǎn)換。當(dāng)改變負(fù)載大小時(shí),基本上不影響電流的輸出。該方案通過軟件方法實(shí)現(xiàn)輸出電流穩(wěn)定,易于實(shí)現(xiàn),便于操作,故選擇此方案。1.3.4 存儲(chǔ)器擴(kuò)展模塊在單片機(jī)應(yīng)用系統(tǒng)中,對(duì)某些狀態(tài)參數(shù),不僅要求能夠在線修改,而且斷電后能保存,以便上電恢復(fù)系統(tǒng)上一次的工作狀態(tài)。斷電數(shù)據(jù)保護(hù)方法可選用具有斷電保護(hù)功能的RAM和電可擦除存儲(chǔ)器EEPROM。具有斷電保護(hù)功能的RAM容量大,速度快,但占用口線多,成本高。EEPROM適合數(shù)據(jù)交換量較少對(duì)速度要求不高的場(chǎng)合。EEPROM有并行和串行之分。并行EEPROM速度比串行快,容量大,但在本系統(tǒng)中并不需要這么大的容量。串行芯片成本低,接口簡(jiǎn)單,工作可靠,占用單片機(jī)I/O口線資源少3。在本系統(tǒng)中只需要存儲(chǔ)3位電流值,數(shù)據(jù)量少,故采用串行EEPROM來存儲(chǔ)設(shè)置數(shù)據(jù)。1.3.5 電源模塊方案一:用開關(guān)穩(wěn)壓電源給整機(jī)供電,此方案能夠完成本設(shè)計(jì)直流恒流源的供電,但開關(guān)電源比較復(fù)雜,且輸出中帶有較大的高頻干擾。方案二:?jiǎn)纹瑱C(jī)控制系統(tǒng)以及外圍芯片供電采用78系列三端穩(wěn)壓器件,通過全波整流,然后進(jìn)行濾波穩(wěn)壓。電流源部分由于要給外圍測(cè)試電路提供比較大的功率,因此必須采用大功率器件。考慮到該電流源輸出電壓在24V以內(nèi),最大輸出電流不大于100mA,由公式可以粗略估算電流源的功耗為2.4W。同時(shí)考慮到恒流源運(yùn)算放大器部分的功耗,需要預(yù)留功率余量,因此供電電源要求能輸出5W以上。由于串聯(lián)穩(wěn)壓電路的輸出紋波小,符合恒流源的需求,故選用由78系列三端穩(wěn)壓器件構(gòu)成的穩(wěn)壓電源4。此方案輸出電壓能滿足系統(tǒng)要求,而且簡(jiǎn)單實(shí)用。1.3.6 系統(tǒng)原理框圖數(shù)控直流恒流源系統(tǒng)原理框圖如圖1-1所示。圖1-1 數(shù)控直流恒流源系統(tǒng)原理框圖第2章 系統(tǒng)硬件各功能模塊的設(shè)計(jì)2.1 主控模塊的設(shè)計(jì)2.1.1 AT89C51單片機(jī)簡(jiǎn)介單片機(jī)系統(tǒng)是整個(gè)數(shù)控直流恒流源系統(tǒng)的核心部分,它負(fù)責(zé)鍵盤處理、數(shù)據(jù)處理和實(shí)時(shí)調(diào)整輸出電流。主要包括AT89C51單片機(jī)、8位數(shù)/模轉(zhuǎn)換芯片DAC0832、串行EEPROM AT24C01芯片、譯碼芯片74LS138及數(shù)碼管驅(qū)動(dòng)芯片74LS273等器件。主控模塊是以單片機(jī)為核心的一個(gè)單片機(jī)應(yīng)用系統(tǒng)。本系統(tǒng)采用ATMEL公司的AT89C51單片機(jī),該型號(hào)單片機(jī)采用CMOS工藝,功耗低,因其與MCS-51單片機(jī)的完全兼容性、優(yōu)良的工作性能、使用的靈活性以及較高的性價(jià)比成為AT89系列單片機(jī)的主流機(jī)型,在嵌入式控制系統(tǒng)中獲得廣泛應(yīng)用1。AT89C51單片機(jī)與Intel8051單片機(jī)在引腳排列、工作特性、硬件組成、指令系統(tǒng)等方面完全兼容,引腳排列如圖2-1所示。其主要工作特性為:l 內(nèi)含4KB的Flash存儲(chǔ)器,擦寫次數(shù)達(dá)1000次;l 內(nèi)含128字節(jié)的RAM;l 具有32根可編程I/O線;l 具有2個(gè)16位可編程定時(shí)器;l 具有6個(gè)中斷源、5個(gè)中斷矢量、2級(jí)優(yōu)先權(quán)的中斷結(jié)構(gòu);l 具有1個(gè)全雙工的可編程串行通信接口;l 具有1個(gè)數(shù)據(jù)指針DPTR;l 兩種低功耗工作模式,即空閑模式和掉電模式;l 具有可編程的3級(jí)程序鎖定位;l 工作電源電壓為51.2V,典型值為5V;l 最高工作頻率為24MHz。圖2-1 AT89C51引腳排列(PDIP)2.1.2 D/A轉(zhuǎn)換電路的設(shè)計(jì)根據(jù)設(shè)計(jì)要求,所設(shè)計(jì)的直流恒流源應(yīng)具有數(shù)控功能,輸出電流為10100mA,步進(jìn)為1mA。由于本設(shè)計(jì)的直流電流源為壓控電流源,因此采用“單片機(jī)D/A”的方式來實(shí)現(xiàn)數(shù)控功能最為合適。根據(jù)指標(biāo)要求,D/A轉(zhuǎn)換芯片的位數(shù)至少為8位,故而選擇8位的D/A轉(zhuǎn)換芯片。由于單片機(jī)接口資源充足,所以選擇并行D/A轉(zhuǎn)換芯片,以提高轉(zhuǎn)換速度。DAC0832是使用較多的一種8位D/A轉(zhuǎn)換芯片,其轉(zhuǎn)換時(shí)間為1us,工作電壓為+5V+15V,基準(zhǔn)電壓為+5V5。其引腳排列如圖2-2所示。各引腳功能如下:l DI0DI7:數(shù)據(jù)輸入線,TTL電平,有效時(shí)間大于90ns;l ILE:數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效;l CS:片選信號(hào)輸入端,低電平有效;l WR1:輸入寄存器的寫選通輸入端,低電平有效;l XFER:傳送控制信號(hào)輸入線,低電平有效;l WR2:DAC寄存器寫選通輸入線,負(fù)脈沖有效;l IOUT1:輸出電流1,當(dāng)輸入數(shù)據(jù)為全1時(shí),IOUT1最大;l IOUT2:輸出電流2,當(dāng)輸入數(shù)據(jù)為全1時(shí),IOUT2最??;l Rfb:運(yùn)算放大器外接反饋電阻引線端;l Vcc:芯片電源電壓,其值為+5V+15V;l Vref:基準(zhǔn)電壓輸入線,其值為-10V+10V;l AGND:模擬地,為模擬信號(hào)和基準(zhǔn)電源的參考地;l DGND:數(shù)字地,為工作電源地和數(shù)字邏輯地。圖2-2 DAC0832引腳排列DAC0832利用WR1、WR2、ILE、XFER控制信號(hào)可以構(gòu)成三種不同的工作方式,分別為直通方式、單緩沖方式和雙緩沖方式6。在本設(shè)計(jì)中,因?yàn)橹挥幸宦纺M量輸出,所以采用單緩沖方式。DAC0832與單片機(jī)的接口如圖2-3所示。圖2-3 DAC0832單緩沖方式與單片機(jī)的接口電路2.1.3 恒流源電路的設(shè)計(jì)在本設(shè)計(jì)中,恒流源電路采用壓控電流源來實(shí)現(xiàn)。壓控電流源的核心就是電壓/電流(V/I)轉(zhuǎn)換電路,主要由給定與比較放大單元、功率放大單元組成7。其電路原理圖如圖2-4所示。在輸出回路中引入一個(gè)反饋電阻,輸出電流經(jīng)反饋電阻得到一個(gè)反饋電壓,經(jīng)、加到運(yùn)算放大器的兩個(gè)輸入端。由電路可知,其反相端和同相端的電壓分別為、。式中為反相端的電壓,為同相端的電壓,為輸入電壓(來自D/A輸出)。圖2-4 電壓/電流轉(zhuǎn)換電路對(duì)于運(yùn)算放大器,有,故有由于,則若令,則有。略去反饋回路的電流,則有,可見當(dāng)運(yùn)算放大器增益足夠大時(shí),輸出電流與輸入電壓成正比,其比值只決定于反饋電阻而與負(fù)載電阻的大小無關(guān),因而具有恒流性能8。當(dāng)在范圍內(nèi)時(shí),輸出電流在直流范圍內(nèi)線性地與直流輸入電壓相對(duì)應(yīng)。2.1.4 數(shù)據(jù)存儲(chǔ)器的擴(kuò)展在本設(shè)計(jì)中由于只需要存儲(chǔ)最后一次電流設(shè)定值,數(shù)據(jù)量少,所以擴(kuò)展一片AT24C01芯片(引腳排列如圖2-5所示)。圖2-5 AT24C01引腳排列各引腳功能說明如下:l A0、A1、A2:片選或頁面選擇地址輸入;l WP:寫保護(hù),用于硬件數(shù)據(jù)保護(hù)功能;l SDA:串行數(shù)據(jù)輸入/輸出端;l SCL:串行時(shí)鐘端,用于對(duì)輸入和輸出數(shù)據(jù)的同步。AT24C01芯片是由ATMEL公司生產(chǎn)的串行電可擦除的可編程CMOS只讀存儲(chǔ)器,其容量為1KB,自定時(shí)周期包括自動(dòng)擦除時(shí)間不超過10,典型時(shí)間為5,讀寫壽命達(dá)100萬次,數(shù)據(jù)保存達(dá)100年,采用單一電壓+5V,低功耗工作電流1,備用狀態(tài)時(shí)只有109。由于只用一片AT24CO1因而將A0A2接地;WP接到GND,可以正常讀寫;串行時(shí)鐘線SCL和串行數(shù)據(jù)線SDA分別與單片機(jī)I/O口的P1.6、P1.7相連。由于SCL和SDA管腳是漏級(jí)開路驅(qū)動(dòng),而單片機(jī)P1口內(nèi)部有上拉電阻,因此可以直接與單片機(jī)連接。AT24C01與單片機(jī)的接口電路如圖2-6所示。圖2-6 AT24C01與單片機(jī)的接口電路2.1.5 系統(tǒng)資源分配在單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)中,常用的地址譯碼方法有兩種,線選法和部分譯碼法。線選法是直接以系統(tǒng)的幾根高位地址線作為芯片的片選信號(hào),把選定的地址線和芯片的片選端直接相連。線選法的特點(diǎn)是連接簡(jiǎn)單,不必專門設(shè)計(jì)譯碼電路,但芯片占的存儲(chǔ)空間不連續(xù),并且地址空間利用率低,一般用于簡(jiǎn)單系統(tǒng)的擴(kuò)展。部分譯碼法是用譯碼器對(duì)系統(tǒng)的部分高位地址線進(jìn)行譯碼,譯碼電路將地址空間劃分若干塊,其輸出做為擴(kuò)展芯片的片選信號(hào)。這樣既充分利用了存儲(chǔ)空間,又避免了地址空間分散的缺點(diǎn),還可以減少I/O口線的占用。在本設(shè)計(jì)中采用部分譯碼法為D/A芯片和三個(gè)數(shù)碼管提供地址譯碼信號(hào),譯碼器采用74LS138(芯片引腳排列如圖2-7所示)。圖2-7 74LS138引腳排列單片機(jī)的、分別接74LS138的E3、A、B、C。當(dāng)、時(shí)單片機(jī)選通74LS138進(jìn)行譯碼。系統(tǒng)中各擴(kuò)展芯片的地址見表2-1。表2-1 系統(tǒng)資源地址分配表系統(tǒng)地址分配部件地址片選讀寫有效電平D/A芯片8000H87FFHY0只寫低數(shù)碼管個(gè)位8800H8FFFHY1只寫低十位9000H97FFHY2百位9800H9FFFHY3系統(tǒng)管腳分配鍵盤設(shè)置鍵P1.074LS138AA11加一鍵P1.1BA12減一鍵P1.2CA13左移位鍵P1.3A14右移位鍵P1.4E3A15確認(rèn)鍵P1.5WRAT24C01SCLP1.6鍵盤中斷INT0SDAP1.7看門狗電路的喂狗信號(hào)輸入P3.52.2 人機(jī)接口的設(shè)計(jì)2.2.1 鍵盤的設(shè)計(jì)在本設(shè)計(jì)中的獨(dú)立式鍵盤采用中斷方式(如圖2-8所示)。當(dāng)P1口外接的6個(gè)按鍵中任何一個(gè)按鍵被按下時(shí),與之相連的輸入線即被置為低電平,則會(huì)引起中斷請(qǐng)求,CPU進(jìn)入中斷處理。鍵盤分布如圖2-9所示。圖2-8 鍵盤與單片機(jī)的接口電路各按鍵功能說明如下:l 設(shè)置鍵:進(jìn)入設(shè)置狀態(tài);l 加1鍵:在設(shè)置狀態(tài)下,按一次數(shù)值加1;l 減1鍵:在設(shè)置狀態(tài)下,按一次數(shù)值減1;l 左移位鍵:在設(shè)置狀態(tài)下,按一次左移1位;l 右移位鍵:在設(shè)置狀態(tài)下,按一次右移1位;l 確認(rèn)鍵:在設(shè)置狀態(tài)下,使設(shè)置電流值生效并退出設(shè)置狀態(tài)。圖2-9 鍵盤分布2.2.2 顯示電路的設(shè)計(jì)本系統(tǒng)采用3個(gè)七段共陰極LED數(shù)碼管作為顯示器,其引腳排列如圖2-10所示,其字符段碼如表2-2所示。LED數(shù)碼管采用靜態(tài)顯示方式,數(shù)碼管的共陰極點(diǎn)連接在一起接地。為了使七段數(shù)碼管的每一段的亮度一致,并避免工作電流過大而縮短數(shù)碼管的壽命,在其公共端與地之間接入了一個(gè)限流二極管。一片74LS273鎖存器驅(qū)動(dòng)一個(gè)LED數(shù)碼管,只要把數(shù)據(jù)送給鎖存器,則該位就能一直保持相應(yīng)的顯示符。74LS273鎖存器的CLK引腳接片選信號(hào),LED數(shù)碼管與單片機(jī)的接口電路如圖2-11所示。表2-2 共陰極字符段碼表字符段碼字符段碼03FH67DH106H707H25BH87FH34FH96FH466H80H56DH熄滅00H圖2-10 LED數(shù)碼管引腳排列圖2-11 LED數(shù)碼管與單片機(jī)的接口電路2.3 系統(tǒng)抗干擾設(shè)計(jì)2.3.1 看門狗電路的設(shè)計(jì)在實(shí)際應(yīng)用中系統(tǒng)可能由于受到干擾而失控,引起程序跑飛,也可能使程序陷入“死循環(huán)”。指令冗余技術(shù)、軟件陷阱技術(shù)不能在任何情況下都使失控的程序擺脫“死循環(huán)”。為保證系統(tǒng)的穩(wěn)定工作,通常采用程序監(jiān)視技術(shù),即“看門狗”技術(shù),使程序脫離“死循環(huán)”?!翱撮T狗”技術(shù)就是不斷監(jiān)視程序循環(huán)運(yùn)行時(shí)間,若發(fā)現(xiàn)時(shí)間超過已知的循環(huán)設(shè)定時(shí)間,則認(rèn)為系統(tǒng)陷入了“死循環(huán)”,然后強(qiáng)迫程序返回到上電復(fù)位的入口,使系統(tǒng)運(yùn)行納入正軌?!翱撮T狗”技術(shù)既可由硬件實(shí)現(xiàn),也可由軟件實(shí)現(xiàn),還可以由兩者結(jié)合來實(shí)現(xiàn)。硬件“看門狗”技術(shù)實(shí)現(xiàn)方案主要有:l 由計(jì)數(shù)器構(gòu)成的“看門狗”;l 由定時(shí)器構(gòu)成的“看門狗”;l 由專門芯片構(gòu)成的“看門狗”。10本設(shè)計(jì)采用第一種方案,由兩片CD4020計(jì)數(shù)器構(gòu)成的“看門狗”電路如圖2-12所示,計(jì)數(shù)器CD4020為14位二進(jìn)制計(jì)數(shù)器。在本系統(tǒng)中,單片機(jī)晶振為6MHz,則ALE信號(hào)周期為1。U107計(jì)數(shù)器的Q14腳定時(shí)時(shí)間為。主程序在循環(huán)過程中,P3.5腳定時(shí)發(fā)出清0負(fù)脈沖使U108計(jì)數(shù)器Q4端輸出為低電平,程序正常運(yùn)行。當(dāng)程序進(jìn)入“死循環(huán)”超過時(shí),Q4為高電平,使系統(tǒng)復(fù)位。圖2-12 由計(jì)數(shù)器構(gòu)成的看門狗電路2.3.2 電源供電系統(tǒng)的設(shè)計(jì)在對(duì)電源進(jìn)行設(shè)計(jì)時(shí)我采用直流穩(wěn)壓電源。從系統(tǒng)對(duì)紋波電流的要求出發(fā),我選擇了用78系列集成三端穩(wěn)壓器構(gòu)成的穩(wěn)壓電源。其優(yōu)點(diǎn)是:(1)可以進(jìn)行預(yù)穩(wěn)壓,以提高輸出電流對(duì)輸入交流電源電壓變化的穩(wěn)定度;(2)為壓控電流源電路提供具有穩(wěn)壓特性且紋波電流很小的高質(zhì)量工作電源,以有效降低輸出電流紋波系數(shù)11。本系統(tǒng)需要四組電源,即+5V、12V、+24V和為D/A轉(zhuǎn)換芯片提供的+5V基準(zhǔn)電壓電源。220V交流電源經(jīng)過電源變壓器、整流濾波器和集成三端穩(wěn)壓器產(chǎn)生出系統(tǒng)所需的各種電源。在本設(shè)計(jì)中采用以78系列三端固定輸出集成穩(wěn)壓器為核心的穩(wěn)壓電源,另外加上保護(hù)電路。為防止220V電源掉電后三端穩(wěn)壓器的輸出電壓高于輸入電壓,造成三端穩(wěn)壓器的損壞,在三端穩(wěn)壓器的輸入端和輸出端之間跨接了一個(gè)保護(hù)二極管。系統(tǒng)電源原理圖如圖2-13所示。圖2-13 系統(tǒng)電源電路2.3.3 基準(zhǔn)電壓的設(shè)計(jì)D/A轉(zhuǎn)換芯片是恒流源系統(tǒng)中的重要部分,D/A輸出電壓值的精度直接影響恒流源系統(tǒng)輸出電流值的精度。D/A輸出電壓值的精度不僅與二進(jìn)制數(shù)碼有關(guān),還與基準(zhǔn)電壓有關(guān)。在本設(shè)計(jì)中采用運(yùn)算放大器OP07來產(chǎn)生所需的+5V基準(zhǔn)電壓,而基準(zhǔn)電壓源則采用MC1403。MC1403是美國(guó)摩托羅拉公司生產(chǎn)的高精確度、低溫漂的基準(zhǔn)電壓源10。基準(zhǔn)電壓電路如圖2-14所示。輸入電壓,(典型值),可達(dá)。輸出電壓,其中是負(fù)反饋電阻,是反相輸入端電阻。當(dāng)時(shí),。圖2-14 基準(zhǔn)電壓電路第3章 控制軟件的設(shè)計(jì)3.1 主程序的設(shè)計(jì)在本系統(tǒng)中,主程序負(fù)責(zé)的工作有初始化系統(tǒng)、讀寫EEPROM、D/A轉(zhuǎn)換及處理鍵盤。主程序的循環(huán)部分是查詢各個(gè)按鍵的標(biāo)志位,并根據(jù)標(biāo)志位的狀態(tài)轉(zhuǎn)到相應(yīng)的按鍵處理程序。由于系統(tǒng)啟動(dòng)后需要輸出的電流為上次系統(tǒng)關(guān)閉時(shí)的電流設(shè)定值,因此當(dāng)系統(tǒng)初始化之后則先執(zhí)行一次讀EEPROM子程序,然后執(zhí)行D/A轉(zhuǎn)換子程序輸出電流。主程序流程如圖3-1所示。3.1.1 讀寫EEPROM子程序的設(shè)計(jì)AT24C01存儲(chǔ)器傳輸時(shí)序符合總線協(xié)議,要特別說明的是SCL要求的頻率范圍100kHz400kHz,SDA的起始和停止時(shí)間為4.7。只要時(shí)鐘線為高電平,數(shù)據(jù)線都必須保持穩(wěn)定,否則數(shù)據(jù)線上的變化會(huì)被當(dāng)作“啟動(dòng)”或“停止”信號(hào)。每個(gè)數(shù)據(jù)的傳輸都是由啟動(dòng)信號(hào)開始,停止信號(hào)結(jié)束。在開始與停止信號(hào)之間傳輸?shù)淖止?jié)數(shù)由計(jì)算機(jī)決定,從理論上說對(duì)字節(jié)數(shù)沒有限制1。串行EEPROM讀操作一般分兩步進(jìn)行:(1)單片機(jī)發(fā)出一個(gè)開始信號(hào),通過寫操作設(shè)置EEPROM的芯片地址和EEPROM存儲(chǔ)單元地址。(2)單片機(jī)重新發(fā)送一個(gè)開始信號(hào),然后發(fā)送含讀操作的控制字節(jié);EEPROM發(fā)回應(yīng)答信號(hào)后,要讀取的數(shù)據(jù)就從SDA上輸出。串行EEPROM寫操作可分為字節(jié)寫和數(shù)據(jù)塊寫兩種形式。由于本系統(tǒng)需要寫的數(shù)據(jù)不多,故采用字節(jié)寫。在這種方式下,單片機(jī)發(fā)出開始信號(hào)后,緊接著發(fā)送控制字節(jié)到SDA總線上,待EEPROM芯片發(fā)回一個(gè)應(yīng)答信號(hào)后,單片機(jī)發(fā)出存儲(chǔ)單元地址碼,并被寫入EEPROM片內(nèi)的地址指針。單片機(jī)接收到EEPROM發(fā)回的一個(gè)應(yīng)答信號(hào)后,才發(fā)送1字節(jié)的數(shù)據(jù),并把數(shù)據(jù)暫存入數(shù)據(jù)緩沖器。EEPROM再一次發(fā)出應(yīng)答信號(hào),單片機(jī)便產(chǎn)生停止信號(hào),然后把接收到的8位數(shù)據(jù)寫入指定的EEPROM存儲(chǔ)單元。為了不影響鍵盤處理子程序和顯示中斷服務(wù)程序的數(shù)據(jù),讀/寫EEPROM子程序使用3區(qū)工作寄存器。讀/寫EEPROM子程序流程如圖3-2所示。3.1.2 鍵盤處理子程序的設(shè)計(jì)鍵盤處理子程序是根據(jù)相應(yīng)的標(biāo)志位來執(zhí)行相關(guān)的程序模塊。因?yàn)楸鞠到y(tǒng)最大輸出電流是100mA,所以該子程序兼有檢查電流值設(shè)置合法性的功能。當(dāng)設(shè)置電流值超過100mA時(shí),程序會(huì)強(qiáng)制把百位清0,并繼續(xù)保持系統(tǒng)處于設(shè)置狀態(tài)。在本設(shè)計(jì)中,系統(tǒng)退出鍵盤處理子程序前分別調(diào)用一次D/A轉(zhuǎn)換子程序和寫EEPROM子程序。這樣做的目的是避免主程序循環(huán)體重復(fù)調(diào)用D/A轉(zhuǎn)換子程序和寫EEPROM子程序造成輸出電流不穩(wěn)定及頻繁寫EEPROM而縮短EEPROM的壽命。本設(shè)計(jì)中編寫的鍵盤處理子程序,主要注重了以下3個(gè)問題:l 如何減少按鍵的使用次數(shù),以提高按鍵的使用壽命;l 如何更快捷,更方便地給出設(shè)定值;l 如何更有利于主程序的整體調(diào)度。鍵盤處理子程序使用0區(qū)工作寄存器,指示閃爍位數(shù)據(jù)在RAM中的地址存在R0中,個(gè)、十、百位的數(shù)據(jù)分別存在32H、31H、30H內(nèi)存單元中。鍵盤處理子程序流程如圖3-3所示。3.1.3 D/A轉(zhuǎn)換子程序的設(shè)計(jì)D/A轉(zhuǎn)換程序的核心部分是如何將電流設(shè)定值轉(zhuǎn)換成D/A輸入值。在編寫這部分程序時(shí)我考慮了兩種方案,一是采用運(yùn)算法,二是采用查表法。經(jīng)過比較論證,在本設(shè)計(jì)中兩種方法的轉(zhuǎn)換精度是一樣的,但查表法的程序更加簡(jiǎn)潔高效,因此本設(shè)計(jì)采用查表法。轉(zhuǎn)換關(guān)系為0mA對(duì)應(yīng)00H,100mA對(duì)應(yīng)FFH,轉(zhuǎn)換倍率為2.55。D/A轉(zhuǎn)換程序的另一重要組成部分是BCD碼轉(zhuǎn)成十六進(jìn)制程序模塊。從鍵盤輸入的數(shù)值是十進(jìn)制數(shù),以BCD碼形式表示。但在單片機(jī)內(nèi)部都是以二進(jìn)制表示,單片機(jī)并不知道編程者的意圖,因此必須先把BCD碼轉(zhuǎn)換成十六進(jìn)制數(shù),再給單片機(jī)進(jìn)行處理。由于D/A轉(zhuǎn)換子程序和讀/寫EEPROM子程序不會(huì)同時(shí)運(yùn)行,所以D/A轉(zhuǎn)換子程序也使用3區(qū)工作寄存器。D/A轉(zhuǎn)換子程序流程如圖3-4所示。3.2 鍵盤中斷服務(wù)程序的設(shè)計(jì)由于本系統(tǒng)的鍵盤采用外部中斷0方式與單片機(jī)連接,因此鍵盤程序采用了中斷方式。當(dāng)沒有鍵按下時(shí),CPU執(zhí)行其它任務(wù),而不用重復(fù)調(diào)用鍵盤掃描程序。當(dāng)鍵盤上有任一個(gè)鍵按下時(shí),均向CPU申請(qǐng)中斷,CPU響應(yīng)中斷請(qǐng)求后,判斷是哪個(gè)鍵按下,并置該按鍵的標(biāo)志位,然后退出中斷服務(wù)程序。如果是按鍵抖動(dòng),則直接退出中斷服務(wù)程序。在本設(shè)計(jì)中,考慮到使用方便及防止誤操作因素,只有在系統(tǒng)進(jìn)入設(shè)置狀態(tài),程序才會(huì)轉(zhuǎn)到相應(yīng)的按鍵處理程序模塊。鍵盤中斷服務(wù)程序流程如圖3-5所示。3.3 顯示中斷服務(wù)程序的設(shè)計(jì)3.1.1 正常顯示程序模塊本設(shè)計(jì)的顯示程序采用T0定時(shí)中斷來實(shí)現(xiàn)靜態(tài)顯示,定時(shí)時(shí)間為50ms,使LED數(shù)碼管顯示內(nèi)容定時(shí)刷新。系統(tǒng)啟動(dòng)后默認(rèn)進(jìn)入正常顯示方式。正常顯示時(shí)程序?qū)⑾鐭o效零。3.1.2 閃爍顯示程序模塊當(dāng)系統(tǒng)進(jìn)入設(shè)置狀態(tài)時(shí)進(jìn)入閃爍顯示,閃爍周期為1秒。閃爍通過累計(jì)10次T0定時(shí)中斷來實(shí)現(xiàn)。首次進(jìn)入默認(rèn)個(gè)位閃爍,閃爍位表示當(dāng)前設(shè)置位,可通過移位鍵來改變閃爍位。為了使閃爍顯示位與鍵盤操作同步,閃爍顯示程序也使用默認(rèn)0區(qū)工作寄存器。顯示中斷服務(wù)程序流程如圖3-6所示。圖3-1 主程序流程圖3-2 讀/寫EEPROM子程序流程圖3-3 鍵盤處理子程序流程圖3-4 D/A轉(zhuǎn)換子程序流程圖3-5 鍵盤中斷服務(wù)程序流程圖3-6 顯示中斷服務(wù)程序流程第4章 系統(tǒng)調(diào)試4.1 硬件仿真調(diào)試由于時(shí)間和條件的限制,本設(shè)計(jì)沒有進(jìn)行實(shí)際樣品試制,我僅用Proteus軟件進(jìn)行了系統(tǒng)仿真。Proteus嵌入式系統(tǒng)仿真與開發(fā)平臺(tái)由英國(guó)Labcenter公司開發(fā),是目前世界上最先進(jìn)最完整的嵌入式系統(tǒng)設(shè)計(jì)與仿真平臺(tái)。Proteus軟件可以實(shí)現(xiàn)數(shù)字電路、模擬電路及微控制器系統(tǒng)與外設(shè)的混合電路系統(tǒng)的電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計(jì)等全部功能11。利用Proteus進(jìn)行電路原理圖設(shè)計(jì)的流程如圖4-1所示。由于Proteus軟件沒有提供DAC0832芯片仿真庫,所以仿真時(shí)用理想DA芯片代替。電路原理圖布線完畢后先建立網(wǎng)絡(luò)表,然后進(jìn)行電氣規(guī)則檢測(cè),電器規(guī)則檢測(cè)報(bào)告如圖4-2所示。在繪制的過程中要特別注意設(shè)置好元器件的參數(shù),否則即便布線正確并通過電氣檢查,在仿真時(shí)也看不到預(yù)期結(jié)果。仿真電路可以不要晶振電路和看門狗電路,在電氣規(guī)則檢測(cè)時(shí)會(huì)發(fā)出警告,但不影響仿真,故在仿真電路中沒有繪出。在實(shí)際電路原理圖中則必須加上它們。繪制完畢的仿真電路原理圖如圖4-3所示。圖4-1 仿真電路原理圖設(shè)計(jì)流程圖4-2 電氣規(guī)則檢測(cè)報(bào)告圖4-3 仿真電路4.2 軟件的調(diào)試軟件調(diào)試的步驟如下:l 根據(jù)系統(tǒng)各功能模塊流程圖編寫匯編源程序;l 對(duì)各功能模塊進(jìn)行逐一編譯調(diào)試;l 各功能模塊調(diào)試正常后,進(jìn)行聯(lián)合編譯調(diào)試。此時(shí)要注意的問題是地址的分配、程序的連貫性及各功能的相互搭配。l 對(duì)全部程序進(jìn)行調(diào)試編譯,調(diào)試成功后,要對(duì)程序進(jìn)行精簡(jiǎn)優(yōu)化,在完成各功能的前提下,剔除多余程序代碼。在本設(shè)計(jì)中,我用keil51軟件來編寫匯編程序和初步編譯調(diào)試程序。在這個(gè)過程中主要解決的問題是代碼的合法性及調(diào)試部分未涉及硬件的程序。在Keil51下調(diào)試沒有錯(cuò)誤后用Proteus軟件進(jìn)行軟硬件結(jié)合調(diào)試。程序通過Keil51編譯如圖4-4所示。圖4-4 程序在Keil51環(huán)境下通過編譯截圖使用Proteus調(diào)試時(shí)首先選擇“Source”菜單下的“Define Code Generation Tools”選項(xiàng)來添加代碼產(chǎn)生工具(如圖4-5所示),然后“Source”菜單下的“Add/Remove Source files”選項(xiàng)來添加匯編程序源文件,并選擇“Code Generation Tools”為“ASEM”(如圖4-6所示);再選擇“Source”菜單下的“Build ALL”選項(xiàng)進(jìn)行編譯(如圖4-7),通過編譯之后將十六進(jìn)制文件(后綴名為.HEX)灌入單片機(jī)(如圖4-8所示)。通過這些步驟后就可以單步或者連續(xù)仿真運(yùn)行了。圖4-5 添加代碼產(chǎn)生工具圖4-6 選擇源程序和代碼產(chǎn)生工具圖4-7 程序通過編譯圖4-8 把目標(biāo)文件灌入單片機(jī)在最初設(shè)計(jì)程序時(shí),我把鍵盤處理部分放在鍵盤中斷服務(wù)程序里面。經(jīng)過調(diào)試發(fā)現(xiàn)如下幾個(gè)問題:l 程序進(jìn)入鍵盤中斷程序后LED數(shù)碼管就沒有顯示;l 進(jìn)入閃爍顯示時(shí),閃爍頻率沒有按預(yù)定的時(shí)間進(jìn)行閃爍,而是忽快忽慢;l 系統(tǒng)不能準(zhǔn)確識(shí)別每一次按鍵動(dòng)作。通過分析發(fā)現(xiàn),由于鍵盤采用外部中斷0,顯示采用T0定時(shí)中斷,而系統(tǒng)默認(rèn)外部中斷0的中斷級(jí)別比T0定時(shí)中斷的高,故進(jìn)入鍵盤中斷程序后顯示中斷程序沒有得到系統(tǒng)響應(yīng),應(yīng)把T0定時(shí)中斷設(shè)置為高級(jí)中斷。閃爍頻率不正常是由于鍵盤中斷服務(wù)程序內(nèi)的消抖延時(shí)造成的。由于最初的程序設(shè)計(jì)只在讀設(shè)置鍵時(shí)調(diào)用消抖延時(shí)程序,所以在按其它鍵時(shí),系統(tǒng)就沒能準(zhǔn)確識(shí)別。經(jīng)過逐步調(diào)試發(fā)現(xiàn)把鍵盤處理程序放到主程序中,而鍵盤中斷服務(wù)程序只對(duì)按鍵標(biāo)志進(jìn)行置位,這樣可解決上述問題。主程序就根據(jù)按鍵標(biāo)志位來調(diào)用相應(yīng)的按鍵處理程序模塊,既優(yōu)化了程序結(jié)構(gòu),又提高了程序執(zhí)行效率。D/A轉(zhuǎn)換程序在開始設(shè)計(jì)時(shí)是放在主程序的循環(huán)體內(nèi),這樣系統(tǒng)總是不停地在進(jìn)行D/A轉(zhuǎn)換,然后輸出給D/A,從而造成輸出電流不夠穩(wěn)定。后來改在鍵盤中斷服務(wù)程序里調(diào)用D/A轉(zhuǎn)換程序,這樣做的好處是只有在退出設(shè)置狀態(tài)時(shí)才進(jìn)行一次D/A轉(zhuǎn)換。在調(diào)試讀寫EEPROM程序時(shí)發(fā)現(xiàn)只能對(duì)EEPROM寫入數(shù)據(jù),而不能讀出數(shù)據(jù)。通過檢查發(fā)現(xiàn)是自己沒有正確理解總線協(xié)議造成的。在編寫隨機(jī)讀操作程序需要注意隨機(jī)讀有兩個(gè)步驟:一是執(zhí)行偽寫入把字節(jié)地址送入EEPROM,以確定需要讀的字節(jié)地址;二是執(zhí)行讀出根據(jù)字地址讀出對(duì)應(yīng)內(nèi)容。當(dāng)EEPROM芯片接收了芯片地址及字地址時(shí),在芯片產(chǎn)生應(yīng)答信號(hào)ACK之后,單片機(jī)必須產(chǎn)生一個(gè)起始信號(hào),執(zhí)行當(dāng)前地址讀,這時(shí)單片機(jī)再發(fā)出芯片地址并令,則EEPROM應(yīng)答芯片地址并串行輸出被讀數(shù)據(jù)。單片機(jī)接收數(shù)據(jù)完畢后,必須產(chǎn)生停止信號(hào)以結(jié)束隨機(jī)讀過程。對(duì)各個(gè)功能模塊程序進(jìn)行單獨(dú)調(diào)試成功后,把各個(gè)程序模塊組合起來進(jìn)行調(diào)試。在這個(gè)過程中發(fā)現(xiàn)在當(dāng)系統(tǒng)第二次進(jìn)入設(shè)置狀態(tài)后,程序就陷入死循環(huán)。經(jīng)過分析發(fā)現(xiàn),只是由于EEPROM讀寫程序與鍵盤處理程序模塊使用的工作寄存器沖突引起。把EEPROM讀寫程序使用的工作寄存器改為3區(qū),鍵盤處理程序使用0區(qū)工作寄存器即可解決問題。全部程序調(diào)試成功后打開PROGRAM.LST文件可知程序的長(zhǎng)度為0423H(如圖4-9所示),也就是1059字節(jié)(約為1KB),而AT89C51單片機(jī)內(nèi)含4KB的Flash程序存儲(chǔ)器足夠存儲(chǔ)本程序。圖4-9 程序編譯后的長(zhǎng)度4.3 數(shù)據(jù)測(cè)試及誤差分析數(shù)據(jù)測(cè)試是反映系統(tǒng)性能的重要指標(biāo),因此我對(duì)本系統(tǒng)進(jìn)行了全面的輸出電流測(cè)試。負(fù)載電阻為50時(shí)測(cè)試數(shù)據(jù)如表4-1所示。本次測(cè)試采用的儀表為Proteus軟件提供的虛擬電表。電流設(shè)定值為10mA、50mA和100mA時(shí)的仿真分別如圖4-10、圖4-11和圖4-12所示。另外我還進(jìn)行了負(fù)載調(diào)整率測(cè)試。當(dāng)負(fù)載電阻為0時(shí),電流設(shè)定值為10mA、50mA和100mA的負(fù)載調(diào)整率測(cè)試情況分別如圖4-13、圖4-14和圖4-15所示。當(dāng)負(fù)載電阻為100時(shí),電流設(shè)定值為10mA、50mA和100mA的負(fù)載調(diào)整率測(cè)試情況分別如圖4-16、圖4-17和圖4-18所示。表4-1 測(cè)試數(shù)據(jù)統(tǒng)計(jì)電流設(shè)定值(mA)實(shí)際電流輸出值(mA)誤差電流(mA)電流設(shè)定值(mA)電流測(cè)試值(mA)誤差電流(mA)0002525.00.011.170.172625.80.221.950.052726.90.133.120.122827.70.343.900.12928.90.155.070.073030.10.165.860.143130.90.177.030.033232.00.087.810.093332.80.298.980.023434.00.01010.20.23534.80.21110.90.13635.90.11212.10.13736.70.31312.90.13837.90.11414.10.13938.70.31514.80.24039.80.21616.00.04141.00.01716.80.24241.80.21818.00.04343.00.01918.70.34443.70.32019.90.14544.90.12121.10.14645.70.32221.90.14746.90.12323.00.04847.60.42423.80.24948.80.2電流設(shè)定值(mA)實(shí)際電流輸出值(mA)誤差電流(mA)電流設(shè)定值(mA)電流測(cè)試值(mA)誤差電流(mA)5050.00.07675.80.25150.80.27776.50.55251.90.17877.70.35352.70.37978.50.55453.90.18079.70.35554.70.38180.80.25655.80.28281.60.45756.60.48382.80.25857.80.28483.60.45958.60.48584.70.36059.80.28685.50.56160.90.18786.70.36261.70.38887.50.56362.90.18988.70.36463.70.39089.80.26564.80.29190.60.46665.60.49291.80.26766.80.29392.60.46867.60.49493.70.36968.70.39594.50.57069.90.19695.70.37170.70.39796.50.57271.90.19897.60.47372.60.49998.40.67473.80.210099.60.47574.60.4圖4-10 電流設(shè)定值為10mA時(shí)的仿真截圖圖4-11 電流設(shè)定值為50mA時(shí)的仿真截圖圖4-12 電流設(shè)定值為100mA時(shí)的仿真截圖圖4-13 電流設(shè)定值為10mA時(shí)的負(fù)載調(diào)整率(負(fù)載電阻為0)圖4-14 電流設(shè)定值為50mA時(shí)的負(fù)載調(diào)整率(負(fù)載電阻為0)圖4-15 電流設(shè)定值為100mA時(shí)的負(fù)載調(diào)整率(負(fù)載電阻為0)圖4-16 電流設(shè)定值為10mA時(shí)的負(fù)載調(diào)整率(負(fù)載電阻為100)圖4-17 電流設(shè)定值為50mA時(shí)的負(fù)載調(diào)整率(負(fù)載電阻為100)圖4-18 電流設(shè)定值為100mA時(shí)的負(fù)載調(diào)整率(負(fù)載電阻為100)本設(shè)計(jì)中所采用的D/A芯片DAC0832的分辨率為8位,當(dāng)其基準(zhǔn)電壓為5V
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高墩施工防墜器速差技術(shù)專題
- 生態(tài)混凝土橋坡綠化工藝
- 2024年“巴渝工匠”杯競(jìng)賽負(fù)荷控制理論考試題庫大全-上(單選題)
- 高三年級(jí)下冊(cè)二??荚囌Z文試題(含答案)
- 防汛安全培訓(xùn)
- 中班走廊與樓梯健康安全
- 學(xué)校中層領(lǐng)導(dǎo)工作總結(jié)
- 實(shí)驗(yàn)小學(xué)教學(xué)常規(guī)培訓(xùn)
- 招聘面試培訓(xùn)
- 正畸口腔潰瘍護(hù)理常規(guī)
- 2025年山東省煙臺(tái)市中考真題數(shù)學(xué)試題【含答案解析】
- 種豬養(yǎng)殖場(chǎng)建設(shè)項(xiàng)目初步設(shè)計(jì)方案
- 中位數(shù)與箱線圖-第2課時(shí)箱線圖復(fù)習(xí)鞏固課件北師大版(2025)數(shù)學(xué)八年級(jí)上冊(cè)
- 2025河南省豫地科技集團(tuán)社會(huì)招聘169人筆試參考題庫附帶答案詳解
- 2025年山東將軍煙草新材料科技有限公司招聘筆試沖刺題(帶答案解析)
- 2025年外研版(2024)初中英語七年級(jí)下冊(cè)期末考試測(cè)試卷及答案
- 兵團(tuán)開放大學(xué)2025年春季《公共關(guān)系學(xué)》終結(jié)考試答案
- 2024年貴州貴州貴安發(fā)展集團(tuán)有限公司招聘筆試真題
- 《老年人運(yùn)動(dòng)認(rèn)知風(fēng)險(xiǎn)綜合征健康管理中國(guó)專家共識(shí)2025》解讀
- 敦煌學(xué)智慧樹知到期末考試答案章節(jié)答案2024年西北師范大學(xué)
- JJF 1847-2020 電子天平校準(zhǔn)規(guī)范(高清版)
評(píng)論
0/150
提交評(píng)論