




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)及接口控制試驗(yàn)平臺(tái)構(gòu)造設(shè)計(jì)第1章課題剖析與方案論證1.1課題任務(wù)剖析本課題主要實(shí)現(xiàn)用單片機(jī)控制溝通、直流、步進(jìn)三種電機(jī)轉(zhuǎn)速的目的,并收集變頻器轉(zhuǎn)速輸出口的電流信號(hào)將溝通電機(jī)的實(shí)質(zhì)轉(zhuǎn)速顯示出來(lái)。實(shí)驗(yàn)室現(xiàn)有的西門(mén)子變頻器有一模擬量輸進(jìn)口,在該口輸入0-10V的電壓,變頻器就能夠輸出不同頻次的溝通電,達(dá)到控制溝通電機(jī)轉(zhuǎn)速的目的,為此關(guān)于溝通電機(jī)的轉(zhuǎn)速控制只需將單片機(jī)產(chǎn)生的數(shù)字信號(hào)轉(zhuǎn)變?yōu)槟M電壓信號(hào)與實(shí)驗(yàn)室現(xiàn)有的西門(mén)子變頻器的模擬量輸進(jìn)口接駁即可;溝通電機(jī)的轉(zhuǎn)速顯示則需將變頻器輸出的電流模擬信號(hào)變換為數(shù)字信號(hào)送單片機(jī)。步進(jìn)電機(jī)經(jīng)過(guò)環(huán)行分派器控制各繞組的通電次序運(yùn)行,分派器有軟件和硬件之分。實(shí)驗(yàn)室的步進(jìn)電機(jī)是經(jīng)過(guò)硬件環(huán)行分派器驅(qū)動(dòng)的,因此只需使單片機(jī)輸出不同頻次的脈沖至硬件環(huán)行分派器就能夠控制步進(jìn)電機(jī)的轉(zhuǎn)速。還能夠從單片機(jī)上引出一個(gè)口,經(jīng)過(guò)控制這個(gè)口的高低電平退步進(jìn)電機(jī)正轉(zhuǎn)或反轉(zhuǎn)。直流電機(jī)的轉(zhuǎn)速控制只需改變直流電機(jī)的輸入電壓就能實(shí)現(xiàn),為此利用單片機(jī)產(chǎn)生PWM脈沖送直流電機(jī)的驅(qū)動(dòng)電路,由驅(qū)動(dòng)電路產(chǎn)生不同的電壓至直流電機(jī),進(jìn)而達(dá)到直流電機(jī)的轉(zhuǎn)速控制。本實(shí)驗(yàn)平臺(tái)要求三種電機(jī)的調(diào)速電路以及模/數(shù)變換電路互相獨(dú)立,以便在此后做不同的實(shí)驗(yàn)時(shí)只需將相應(yīng)的電路與單片機(jī)控制電路接駁。為此需要將各電路的硬件和系統(tǒng)的軟件模塊化,此中硬件部分第一將各電路設(shè)計(jì)成一個(gè)個(gè)獨(dú)立的單元,而后用插口將各單元電路與單片機(jī)控制單元相連;軟件的模塊化則經(jīng)過(guò)在主程序中調(diào)用各子程序?qū)崿F(xiàn)。1.2方案論證只管所要控制的溝通電機(jī)的額定轉(zhuǎn)速為1400r/min,所要的A/D、D/A芯片的分辨率最小為1/1400,但考慮到本次設(shè)計(jì)任務(wù)不過(guò)鍛煉我們的實(shí)踐能力和方便此后教課,沒(méi)有必需去片面的追求高精度而增添硬件成本,為此直接采納了市道上較為常有的八位D/A(DAC0809)、A/D(ADC0832)變換芯片,而沒(méi)有將D/A、A/D芯片的選擇在方案中作為考慮對(duì)象。本次方案論證主要對(duì)鍵盤(pán)/顯示接口電路進(jìn)行選擇。方案一:鍵盤(pán)/顯示器單元電路方案采納通用并行接口芯片8155作LED顯示和鍵盤(pán)的輸入。此中,8155的PA口為輸出口,控制鍵盤(pán)列線的掃描,PA口同時(shí)又是4位LED顯示器的位掃描口,PB作為顯示器的段碼口,PC口作為鍵盤(pán)行線狀態(tài)的輸進(jìn)口。溝通電機(jī)單元的轉(zhuǎn)速控制方案由AT89C51單片機(jī)將鍵盤(pán)輸入信號(hào)進(jìn)行判斷辦理后經(jīng)P0輸出8位數(shù)字量信號(hào)經(jīng)D/A變換芯片DAC0832進(jìn)行變換,產(chǎn)生相應(yīng)的模擬電壓信號(hào),再將模擬電壓信號(hào)經(jīng)過(guò)二級(jí)運(yùn)算器放大后,輸入西門(mén)子變頻器MM420的模擬量輸進(jìn)口,去控制溝通電動(dòng)機(jī)的轉(zhuǎn)動(dòng)。步進(jìn)電機(jī)單元的轉(zhuǎn)速控制方案由AT89C51單片機(jī)將鍵盤(pán)輸入信號(hào)進(jìn)行判斷辦理后經(jīng)P1.0、P1.1口輸出步進(jìn)電機(jī)的控制信號(hào),經(jīng)74LS07正向放大后送步進(jìn)電機(jī)驅(qū)動(dòng)電路。直流電機(jī)單元的轉(zhuǎn)速控制方案由AT89C51單片機(jī)將鍵盤(pán)輸入信號(hào)進(jìn)行判斷辦理后經(jīng)P1.0口輸出PWM信號(hào),將此脈沖信號(hào)送直流電機(jī)驅(qū)動(dòng)電路控制直流電機(jī)的轉(zhuǎn)動(dòng)。方案二:鍵盤(pán)/顯示器單元的電路方案采納五片“串入并出”移位存放器74LS164擴(kuò)展五個(gè)8位并行輸出口:一個(gè)8位并行輸出口用于鍵盤(pán)的列線使用,其余的四個(gè)8位并行輸出口用于控制4個(gè)LED段選口作靜態(tài)顯示。溝通電機(jī)單元的轉(zhuǎn)速控制方案由AT89C51單片機(jī)將鍵盤(pán)輸入信號(hào)進(jìn)行判斷辦理后經(jīng)P0輸出8位數(shù)字量信號(hào)經(jīng)D/A變換芯片DAC0832進(jìn)行變換,產(chǎn)生相應(yīng)的模擬電壓信號(hào),再將模擬電壓信號(hào)經(jīng)過(guò)二級(jí)運(yùn)算器放大后,輸入西門(mén)子變頻器MM420的模擬量輸進(jìn)口,去控制溝通電動(dòng)機(jī)的轉(zhuǎn)動(dòng)。步進(jìn)電機(jī)單元的轉(zhuǎn)速控制方案由AT89C51單片機(jī)將鍵盤(pán)輸入信號(hào)進(jìn)行判斷辦理后經(jīng)P1.0、P1.1口輸出步進(jìn)電機(jī)的控制信號(hào),經(jīng)74LS07正向放大后送步進(jìn)電機(jī)驅(qū)動(dòng)電路。直流電機(jī)單元的轉(zhuǎn)速控制方案由AT89C51單片機(jī)將鍵盤(pán)輸入信號(hào)進(jìn)行判斷辦理后經(jīng)P1.0口輸出PWM信號(hào),將此脈沖信號(hào)送直流電機(jī)驅(qū)動(dòng)電路控制直流電機(jī)的轉(zhuǎn)動(dòng)。綜合上述兩種方案,差別在于所采納的鍵盤(pán)、顯示接口電路不同。方案一:采納通用并行接口芯片8155作LED顯示和鍵盤(pán)的輸入,這樣就會(huì)和D/A變換芯片DAC0832共用P0口資源,需要進(jìn)行片選,軟件工作量大,硬件接線復(fù)雜。方案二:直接使用89C51的串換行口外擴(kuò)鍵盤(pán)/顯示器。應(yīng)用串行口方式0的輸入方式,在串行口外接移位存放器74LS164,構(gòu)成鍵盤(pán)/顯示器接口。這類(lèi)靜態(tài)顯示方式的長(zhǎng)處是亮度大,顯示閃耀感小,且CPU不用屢次地為顯示服務(wù),因此主程序可不用掃描顯示器,軟件設(shè)計(jì)比較簡(jiǎn)單,整個(gè)接口電路硬件也不復(fù)雜。經(jīng)過(guò)比較我發(fā)現(xiàn):第二種方案軟、硬較第一種方案簡(jiǎn)單,且充分利用了89C51單片機(jī)的串行口資源,節(jié)儉了成本。為此,我采納第二種方案。最后確立的整體方案框圖以下:鍵盤(pán)單單片機(jī)顯示單元元直流電機(jī)單元步進(jìn)電機(jī)單元溝通電機(jī)單元A/D變換單元圖1-1整體方案框圖1.3設(shè)計(jì)步驟圖1-2設(shè)計(jì)步驟第2章硬件電路依據(jù)第一章中的各單元電路方案,細(xì)化整體框圖以下:鍵盤(pán)接口單元電路單片機(jī)顯示接口單元電路D/A變換接口單元電路直流驅(qū)動(dòng)接口單元電路硬件環(huán)行分派器變頻器A/D變換電路接口單元電路直流電機(jī)步進(jìn)電機(jī)溝通電機(jī)圖2-1系統(tǒng)構(gòu)造圖下邊先介紹波及的硬件知識(shí)點(diǎn),再說(shuō)明各單元電路的設(shè)計(jì)方法,最后給出總體設(shè)計(jì)圖。2.1主要芯片簡(jiǎn)介AT89C51是ATMEL企業(yè)生產(chǎn)的MCS-51系列芯片,是一種低功耗、高性能的片含有4KB快閃可編程/擦除只讀存(FPEROM-FLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的8位CMOS微控制器。芯片上的FPEROM同意在線編程或采納通用的非易失儲(chǔ)存編程器對(duì)程序儲(chǔ)存器重復(fù)編程。AT89C51的引腳圖如圖2-1所示:圖2-2AT89C51引腳圖AT89C51各個(gè)引腳功能說(shuō)明以下:(1)輸入/輸出引腳:P0口:在不接外面儲(chǔ)存器與不擴(kuò)展I/O時(shí),可做為準(zhǔn)雙向的輸入/輸出口。在接有外面儲(chǔ)存器或有擴(kuò)展I/O口時(shí),該口分時(shí)復(fù)用為低8位的數(shù)據(jù)總線和地點(diǎn)總線。P1口的字節(jié)地點(diǎn)位90H,位地點(diǎn)為90H—97H。P1口只好作為通用I/O口使用,是準(zhǔn)雙向口。當(dāng)P1口作為輸出口使用時(shí),已能對(duì)外供給推拉電流負(fù)載,外電路無(wú)需再接上拉電阻。當(dāng)P1口作為輸進(jìn)口使用時(shí),應(yīng)先向鎖存器寫(xiě)入“1”,使輸出驅(qū)動(dòng)電路的FET截止。P2口:P2口的字節(jié)地點(diǎn)位0A0H,位地點(diǎn)為0A0H—0A7H。在實(shí)質(zhì)應(yīng)用中P2口用于為系統(tǒng)供給高位地點(diǎn),。其余,P2口也能夠作為通用I/O口使用,這時(shí)多路轉(zhuǎn)接開(kāi)關(guān)倒向鎖存器Q端。P3口:除了作為準(zhǔn)雙向口使用外,還能夠?qū)⒚恳晃挥糜诘囟δ埽⑶襊3口的每一條引腳都能夠獨(dú)立的定義為第一功能的輸入輸出或第二功能。(2)控制線:ALE/PROG:地點(diǎn)鎖存有效信號(hào)輸出端。ALE在每個(gè)機(jī)器周期輸出兩個(gè)脈沖。PSEN:片外程序儲(chǔ)存器讀選通訊號(hào)輸出端,低電平有效。RST/Vpd:該引腳為單片機(jī)的上電復(fù)位和掉電保護(hù)端。RST引腳是復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平有效。復(fù)位操作有上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式。(3)、主電源引腳:Vcc:接+5V電源正極(4)、外接晶體引腳:XTAL1:接外面石英晶體的一端。它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片震蕩器。當(dāng)采納外面時(shí)鐘時(shí),關(guān)于HMOS單片機(jī),該引腳接地;關(guān)于CHMOS單片機(jī),該引腳作為外面震蕩信號(hào)是輸入端。XTAL2:接外面石英晶體的另一端。在單片機(jī)部,它是片震蕩器的反相放大器的輸出端。當(dāng)采納外面時(shí)鐘時(shí)。變換芯DAC0832D/A變換接口設(shè)計(jì),主假如選擇D/A變換集成芯片,配置外頭電路及器件,實(shí)現(xiàn)數(shù)字量至模擬量的線性變換,其實(shí)不波及D/A變換器的構(gòu)造設(shè)計(jì),也不用對(duì)其部電路作詳盡剖析。1.DAC0832的部構(gòu)造及其引腳DAC0832的部構(gòu)造主要由兩面三個(gè)8位存放器與一個(gè)D/A變換器構(gòu)成。這類(lèi)構(gòu)造使輸入的數(shù)據(jù)能有兩次緩沖,所以在操作上十分方便與靈巧。DAC0832是電流型輸出,應(yīng)用時(shí)需要外接運(yùn)算放大器使之成為電壓型輸出。DAC0832為20腳雙列直插芯片,芯片的引腳與邏輯構(gòu)造以下圖。圖2-3DAC0832芯片的引腳與邏輯構(gòu)造DAC0832的各管腳的功能以下:——8位數(shù)據(jù)輸入端,常和CPU的數(shù)據(jù)總線相連,用于輸入CPU送來(lái)的待換的數(shù)字量,DI7為最高位。ILE——數(shù)據(jù)同意鎖存信號(hào)引腳,高電平有效。CS——輸入存放器選擇信號(hào)腳,低電平有效。WR1——輸入存放器寫(xiě)選信號(hào),輸入存放器的鎖存信號(hào)/LE1由ILE、CS、WR1的邏輯組合產(chǎn)生,LE1為高電平常,輸入存放器狀態(tài)隨輸入數(shù)據(jù)線變化,LE1的負(fù)跳變將輸入數(shù)據(jù)鎖存。XFER——傳遞控制輸入線,低電平有效。WR2——DAC存放器的寫(xiě)選通訊號(hào)。DAC存放器的鎖存器鎖存信號(hào)LE2由WR2和XFER/XFER的邏輯組合而成,LE2為高電平常,DAC存放器的輸出隨寄存器的輸入變化,LE2負(fù)跳變時(shí),輸入存放器的容打入DAC存放并開(kāi)始D/A變換。VREF——參照電壓輸入端,一般在,由穩(wěn)壓電源供給。Rfb——運(yùn)算放大器反應(yīng)信號(hào)輸入端,往常接到運(yùn)算放大器輸出端。Iout1、Iout2——電流輸出端,其值隨DAC容線性變化、Iout1+Iout2=常數(shù)。為保證額定負(fù)載下輸出電流的線形度,Iout1、Iout2引腳上的電位盡量接近地電平。所以,Iout1、Iout2往常接運(yùn)算放大器輸入端。當(dāng)輸入數(shù)字為全”1”時(shí),Iout1輸出電流最大,約為:255VREF,全”0”時(shí),輸出電流為0。256REBVcc——電源輸入端,可在圍。AGND——模擬地。DGND——數(shù)字地。往常上兩種地線接在一同。變換芯片ADC08091.主要參數(shù)(1)8路8位A/D變換器。(2)擁有變換起??刂贫恕#?)變換時(shí)間為100μs(4)單個(gè)+5V電源供電(5)模擬輸入電壓圍0~+5V,不需零點(diǎn)和滿刻度校準(zhǔn)。2.部構(gòu)造ADC0809是CMOS單片型逐次迫近式A/D變換器,部構(gòu)造如圖13.22所示,它由8路模擬開(kāi)關(guān)、地點(diǎn)鎖存與譯碼器、比較器、8位開(kāi)關(guān)樹(shù)型D/A變換器、逐次迫近存放器、三態(tài)輸出鎖存器等其余一些電路構(gòu)成。所以,ADC0809可辦理8路模擬量輸入,且有三態(tài)輸出能力,既可與各樣微辦理器相連,也可獨(dú)自工作。ADC0809引腳ADC0809邏輯構(gòu)造圖2-4ADC0809引腳與邏輯構(gòu)造圖3.外面特征(引腳功能)ADC0809芯片有28條引腳,采納雙列直插式封裝。下邊說(shuō)明各引腳功能。IN0~I(xiàn)N7:8路模擬量輸入端。2-1~2-8:8位數(shù)字量輸出端。ADDA、ADDB、ADDC:3位地點(diǎn)輸入線,用于選通8路模擬輸入中的一路。如表2-1所示。本次課程設(shè)計(jì)中,我們將A、B、C接地,選擇IN0輸入通道。表2-1ADDA、ADDB、ADDC真值表ALE:地點(diǎn)鎖存同意信號(hào),輸入,高電平有效。START:A/D變換啟動(dòng)信號(hào),輸入,高電平有效。EOC:A/D變換結(jié)束信號(hào),輸出,當(dāng)A/D變換結(jié)束時(shí),此端輸出一個(gè)高電平(變換時(shí)期向來(lái)為低電平)。OE:數(shù)據(jù)輸出同意信號(hào),輸入,高電平有效。當(dāng)A/D變換結(jié)束時(shí),此端輸入一個(gè)高電平,才能翻開(kāi)輸出三態(tài)門(mén),輸出數(shù)字量。CLK:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻次不高于640KHZ。REF(+)、REF(-):基準(zhǔn)電壓。Vcc:+5V電源。GND:接地。4.工作過(guò)程ADC0809的工作過(guò)程是:第一輸入3位地點(diǎn),并使ALE=1,將地點(diǎn)存入地點(diǎn)鎖存器中。此地點(diǎn)經(jīng)譯碼選通8路模擬輸入之一到比較器。START上漲沿將逐次迫近存放器復(fù)位。降落沿啟動(dòng)A/D變換,以后EOC輸出信號(hào)變低,指示變換正在進(jìn)行。直到A/D變換達(dá)成,EOC變?yōu)楦唠娖剑甘続/D變換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中止申請(qǐng)。當(dāng)OE輸入高電平常,輸出三態(tài)門(mén)翻開(kāi),變換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。移位存放器74LS16474LS164是8位串入并出移位存放器。圖2-574LS164移位存放器(1)A、B為串行輸入端(2)QA~QH為串行輸出端(3)CLK為串行時(shí)鐘輸入端(4)CLR為串行輸出清零端(5)VCC為+5V電源輸入端(6)GND為接地端2.2硬件接線剖析與設(shè)計(jì)鍵盤(pán)接口單元電路設(shè)計(jì)鍵盤(pán)接口單元電路主要為電機(jī)的轉(zhuǎn)速輸入供給解決方案,并能對(duì)所要控制的電機(jī)進(jìn)行選擇,以及啟動(dòng)A/D變換。本設(shè)計(jì)中鍵盤(pán)接口電路采納一片74LS164串入并出八位輸出,接收端使用P3.4、P3.5的第一功能,經(jīng)過(guò)判斷這兩個(gè)口的高低電平,再聯(lián)合74LS164便可以判斷是哪個(gè)鍵按下,圖2-6為鍵盤(pán)接口電路。圖2-6鍵盤(pán)接口單元電路1.CLK引腳接線說(shuō)明圖2-7CLK引腳接線上圖中164的CLK為串行時(shí)鐘輸入端,與單片機(jī)的移位時(shí)鐘脈沖輸出口TXD相連。2.串行數(shù)據(jù)接線說(shuō)明圖2-8A、B引腳接線上圖中164的A、B為串行數(shù)據(jù)輸進(jìn)口,A、B并聯(lián)后與單片機(jī)的串行數(shù)據(jù)輸出口相連。3.MR接線說(shuō)明圖2-9A、B引腳接線因?yàn)?64做鍵盤(pán)擴(kuò)展用不需要對(duì)輸出清零,故上圖中MR接+5V高電平。顯示接口單元電路設(shè)計(jì)顯示接口單元電路主要為鍵盤(pán)輸入的數(shù)值供給顯示方案。本設(shè)計(jì)采納靜態(tài)顯示的方式,考慮到直流、溝通電機(jī)的最高轉(zhuǎn)速達(dá)到千轉(zhuǎn),為此用四片74LS164(串入并出移位存放器)驅(qū)動(dòng)四只LED發(fā)光二極管。圖2-10顯示接口單元電路1.CLK引腳接線說(shuō)明圖2-11P3.3控制的TXD顯示接口單元電路與鍵盤(pán)接口單元電路的最大不同在于單片機(jī)的移位時(shí)鐘脈沖輸出口TXD與P3.3口經(jīng)或門(mén)(74LS08)后與74LS164的CLK相連(圖2-9),這樣TXD就遇到P3.3的控制,只有當(dāng)P3.3輸出為高電平常74LS164的CLK端才能接遇到TXD發(fā)出的移位脈沖,進(jìn)而更新顯示。這樣接線的目的在于防止顯示與鍵盤(pán)掃描的擾亂,只有當(dāng)要更新顯示時(shí)才置P3.3為高電平。2.CLK引腳接線說(shuō)明同鍵盤(pán)掃描電路相同用164實(shí)現(xiàn)八位段碼顯示時(shí)也不要對(duì)輸出清零,故CLR接+5V高電平。3.多位數(shù)值顯示的接線說(shuō)明圖2-12多位數(shù)值顯示的接線因?yàn)?64按照“先入先出”的原則,故用164實(shí)現(xiàn)4位數(shù)值顯示時(shí)只需將上司164的Q7引腳與下級(jí)的A、B引腳相連就能實(shí)現(xiàn)。3.LED限流電阻的選擇一般LED段碼的驅(qū)動(dòng)電流在5-10mA左右,為此采納了750的電阻,則本設(shè)計(jì)中LED段碼的驅(qū)動(dòng)電流為6.7mA(5/750=6.7mA)。溝通電機(jī)接口單元電路設(shè)計(jì)溝通電機(jī)接口單元電路為將單片機(jī)的數(shù)字信號(hào)變換為變頻器的模擬量輸進(jìn)口能識(shí)其余模擬電壓信號(hào)(0-5V)供給解決方案。本設(shè)計(jì)采納8位D/A變換芯片DAC0832先將單片機(jī)產(chǎn)生的數(shù)字信號(hào)變換為電流信號(hào),再經(jīng)過(guò)第一級(jí)運(yùn)放(OP07)將DAC0832輸出的電流信號(hào)變換為電壓信號(hào);接著用第二級(jí)運(yùn)放(OP07)把電壓信號(hào)進(jìn)行放大,在設(shè)計(jì)時(shí)將放大電路的放大倍數(shù)設(shè)為可調(diào),實(shí)質(zhì)調(diào)試時(shí)能夠經(jīng)過(guò)調(diào)理10K的可變電阻將溝通電機(jī)的輸入轉(zhuǎn)速與實(shí)質(zhì)轉(zhuǎn)速鄰近。圖2-13D/A接口電路DAC0832是八位D/A變換芯片,它的分辨率為1/255,本設(shè)計(jì)的溝通電機(jī)的最高轉(zhuǎn)速為1275r/min,這樣本設(shè)計(jì)的分辨率為5r/min(1275/255=5)。1.CS接線說(shuō)明圖2-14CS接線要DAC0832工作,第一應(yīng)付0832進(jìn)行片選,我將單片機(jī)的P2.7口與0832的CS相連,啟動(dòng)D/A變換時(shí)將P2.7口置低電平。2.ILE(輸入數(shù)據(jù)鎖存同意信號(hào))接線說(shuō)明圖2-15ILE接線ILE是高電平有效,我將ILE接在了+5V,使0832一直同意輸入數(shù)據(jù)鎖存。3.單緩沖方式的接線說(shuō)明圖2-16單緩沖方式的接線因?yàn)?832只有一路模擬量輸出,為此選擇將0832的DAC存放器處于直通方式,而讓0832的輸入存放器處于受控的鎖存方式。于是把WR2、XREF接地。接口單元電路設(shè)計(jì)A/D接口單元電路為收集到的變頻器的模擬量能被單片機(jī)辨別供給解決方案。本設(shè)計(jì)采納8位A/D變換芯片ADC0809,ADC0809的分辨率為1/255,而設(shè)計(jì)的溝通電機(jī)的最高轉(zhuǎn)速為1275r/min,這樣本設(shè)計(jì)中的A/D收集的最小分辨率為5r/min。為了在此后的實(shí)驗(yàn)中能用A/D變換芯片獨(dú)自收集電壓信號(hào),在設(shè)計(jì)中將ADC0809的INT0口和地線預(yù)留了接口。圖2-17A/D接口電路1.輸入模擬量的接線說(shuō)明圖2-18輸入模擬量的接線因?yàn)樽冾l器輸出的是0-20mA,而ADC0809只好收集電壓信號(hào),故用兩個(gè)510的電阻并聯(lián)后接地,使電流信號(hào)變換為0-5V電壓信號(hào)。上圖中的運(yùn)放是射隨器的接法,為了加強(qiáng)變頻器輸出的帶載能力。2.路模擬通道的選擇圖2-19模擬通道的選擇因?yàn)橹挥靡宦吠ǖ雷鳛樽冾l器模擬量的輸入,為簡(jiǎn)化電路將模擬通道選擇信號(hào)A、B、C接地,選擇IN0口作為模擬量的輸進(jìn)口。3.ALE、START接線說(shuō)明圖2-20ALE、START接線圖圖2-19中由89C51的P2.6和RD經(jīng)74LS02(或非門(mén))后與START(變換啟動(dòng)信號(hào))、ALE(地點(diǎn)鎖存同意信號(hào))連結(jié)。在置ADC0809地點(diǎn)時(shí)將P2.6置為低電平,這樣在ADC0809起動(dòng)后就由89C51的WR作為ADC0809的寫(xiě)選通訊號(hào)。本次設(shè)計(jì)中將START、ALE連結(jié)在一同,這樣使得在WR信號(hào)的前沿寫(xiě)入通道地點(diǎn),緊接著在此后沿就起動(dòng)變換。4.OE(輸出同意信號(hào))接線說(shuō)明圖2-21OE接線圖圖2-20中由89C51的P2.7和RD經(jīng)74LS02(或非門(mén))后與START(變換啟動(dòng)信號(hào))、ALE(地點(diǎn)鎖存同意信號(hào))連結(jié)。在置ADC0809地點(diǎn)時(shí)將P2.7置為低電平,這樣在ADC0809起動(dòng)后就由89C51的RD作為ADC0809的讀選通訊號(hào)。5.EOC(變換結(jié)束信號(hào))接線說(shuō)明圖2-22EOC接線圖本設(shè)計(jì)中A/D變換達(dá)成后以中止方式進(jìn)行傳遞,當(dāng)EOC=1時(shí)(高電平)時(shí),A/D變換結(jié)束;而89C51的外中止INT0是低電平有效,因此將EOC經(jīng)非門(mén)后與INT0連結(jié),實(shí)現(xiàn)了數(shù)據(jù)的中止方式傳遞,因?yàn)殡娐分杏幸黄?4LS02(或非門(mén)),且只用了此中的兩路非門(mén),為此我將74LS02的一路非們的兩個(gè)輸入引腳并聯(lián)接輸入,當(dāng)非門(mén)用。6.CLK(時(shí)鐘信號(hào))接線說(shuō)明圖2-23ALE接線圖ADC0809一般使用頻次為500kHz的時(shí)鐘信號(hào),而單片機(jī)使用的是600MHz的晶振,經(jīng)六分頻后由89C51的ALE引腳輸出的是1000kHz的時(shí)鐘信號(hào),此因?qū)LE引腳上的信號(hào)經(jīng)74LS74二分頻后獲取500kHz的時(shí)鐘信號(hào)連結(jié)到ADC0809的ALE(時(shí)鐘信號(hào))引腳。在這里把74LS74看作一個(gè)二分頻的分頻器使用。直流電機(jī)驅(qū)動(dòng)接口單元電路設(shè)計(jì)本設(shè)計(jì)采納功率MOSFET單電源方式驅(qū)動(dòng)電路。圖2-24直流電機(jī)驅(qū)動(dòng)接口單元電路各元件在驅(qū)動(dòng)電路中的功能以下:光耦的驅(qū)動(dòng)采納PNP形式的三極管9012,這樣當(dāng)控制上為高電平常,就不會(huì)導(dǎo)通,防備89C51在未初始化時(shí)電機(jī)運(yùn)行。4N25起到耦合脈沖和隔絕單片機(jī)系統(tǒng)輸出部分的作用,使兩部分的電流信號(hào)獨(dú)立。本設(shè)計(jì)中在三極管的輸出回路中串了510的電阻,所以在三極管完整導(dǎo)通光陰耦的驅(qū)動(dòng)電流約為10mA(5/51010mA)。74LS07同相驅(qū)動(dòng)器是作為IRF540場(chǎng)效應(yīng)管輸入端的驅(qū)動(dòng),在74LS07的輸出口接了5.1K的上拉電阻。三極管(IRF540)是起到功率放大的作用。它是功率MOSFET,能夠用邏輯電平直接驅(qū)動(dòng)。電源接口單元電路設(shè)計(jì)電源接口單元電路為各接口單元電路供給電源解決方案。本設(shè)計(jì)中單片機(jī)、A/D變換芯片ADC0809以及各門(mén)電路芯片的工作電壓為5V,這樣就讓D/A變換芯片DAC0832也接5V電壓(DAC0832正常工作電壓5-15V)。這就需要5V電源,本設(shè)計(jì)經(jīng)過(guò)5V的穩(wěn)壓管實(shí)現(xiàn)5V電壓輸出。控制溝通電機(jī)的變頻器要求輸入的電壓為0-10V,因?yàn)樵谑械郎蠜](méi)有10V的穩(wěn)壓管,為防備輸入變頻器的電壓過(guò)高,為此采納9V的穩(wěn)壓管輸出9V電壓。圖2-25電源接口單元電路本次設(shè)計(jì)的電源接口單元電路第一用三抽頭的變壓器將220V的溝通電降為兩路12V的溝通電輸出,接著用全橋整流電路將兩路12V溝通電變?yōu)閮陕?6.8V212=16.8)的直流電輸出,最后經(jīng)7809(+9V穩(wěn)壓管)、7909(-9V穩(wěn)壓管)變?yōu)?V電壓輸出。+5V的電壓直接經(jīng)過(guò)穩(wěn)壓管7805經(jīng)7809獲取。整體電路圖圖2-26整體電路圖第3章軟件設(shè)計(jì)開(kāi)始時(shí)先初始化顯示程序,接著分別調(diào)用鍵盤(pán)掃描子程序、顯示子程序,最后返回。此中D\A、A\D的變換程序,直流電機(jī)驅(qū)動(dòng)程序,步進(jìn)電機(jī)驅(qū)動(dòng)程序的履行,分別經(jīng)過(guò)掃描鍵盤(pán)獲取的鍵碼進(jìn)行跳轉(zhuǎn)。因?yàn)轵?qū)動(dòng)步進(jìn)電機(jī)和直流電機(jī)的脈沖信號(hào)發(fā)生程序需要單片機(jī)不斷將P1口置高、低電平,為防止死循環(huán),讓這類(lèi)電機(jī)停止,并使程序順利返回到主程序,還設(shè)有返回按鈕,經(jīng)過(guò)在上述兩種電機(jī)的驅(qū)動(dòng)程序中判斷該鍵的值來(lái)決定能否返回。為節(jié)儉鍵盤(pán)資源,我將返回鍵編碼在顯示總清鍵上,經(jīng)過(guò)復(fù)用顯示總清鍵實(shí)現(xiàn);DAC0832擁有輸入鎖存的功能,這樣在啟動(dòng)了DAC0832以后CPU就能夠不再為D/A變換服務(wù),而是直接轉(zhuǎn)到主程序,這樣一來(lái)就沒(méi)有必需獨(dú)自再設(shè)讓D/A變換輸出為零的按鍵,要使D/A變換輸出為零,只須用鍵盤(pán)輸入四個(gè)“0”再啟動(dòng)D/A即可。3.1MAIN程序開(kāi)始時(shí)先初始化顯示程序,接著分別調(diào)用鍵盤(pán)掃描子程序以及顯示子程序或某單元驅(qū)動(dòng)子程序,最后返回。MAIN程序?qū)︼@示子程序或某單元驅(qū)動(dòng)子程序的調(diào)用是經(jīng)過(guò)判斷鍵碼能否大于9來(lái)實(shí)現(xiàn)的。當(dāng)鍵碼小于等于9時(shí),在主程序中調(diào)用顯示,將獲得的鍵碼顯示出來(lái);當(dāng)鍵碼大于9時(shí),則查轉(zhuǎn)移指令表履行相應(yīng)的子程序。1.MAIN程序流程圖:開(kāi)始初始化顯示調(diào)用鍵盤(pán)掃描子程序(獲得鍵碼送A)NA>9?調(diào)用顯示子程序Y調(diào)用分支程序轉(zhuǎn)移子程序返回圖3-1MAIN程序流程圖2.匯編程序及說(shuō)明主程序開(kāi)始時(shí)先置貨倉(cāng)指針,接著設(shè)置串行口工作方式,初始化顯緩區(qū)容地址。其程序以下:MAIN:MOVSP,#60H;MOVSCON,#00H;MOVR0,#7FH;
置貨倉(cāng)指針設(shè)置串行口工作方式0初始化顯緩區(qū)單元地點(diǎn)MOVR1,#7FHSTART:MOVBUF0,#0bh;
初始化顯示緩沖區(qū)MOVBUF1,#0bhMOVBUF2,#0bhMOVBUF3,#0bhLCALLDISP;
調(diào)用顯示在主程序中對(duì)鍵盤(pán)掃描子程序、顯示子程序或某單元驅(qū)動(dòng)子程序進(jìn)行調(diào)用。其程序以下:LOOP:ACALLKEYI;調(diào)用顯示MOVR1,A;鍵碼暫存顯緩區(qū)CLRC;清進(jìn)位標(biāo)記位CJNEA,#9,NORMAL;A9轉(zhuǎn)NORMALAJMPNORMAL1;A=9轉(zhuǎn)NORMAL1NORMAL:JNCABOVE9;A>9轉(zhuǎn)ABOVE9NORMAL1:DECR1;指向下一顯緩單元CJNER1,#7AH,DISP1;輸入數(shù)值未滿4位,調(diào)用顯示以下程序?yàn)檩斎霐?shù)值滿
4位,初始化顯示。MOVR1,#7FH;MOVBUF3,#0AHMOVBUF2,#0BHMOVBUF1,#0BHMOVBUF0,#0BHDISP1:LCALLDISP;SJMPLOOP;
調(diào)用顯示返回3.2子程序多分支程序轉(zhuǎn)移子程序分支程序轉(zhuǎn)移子程序?yàn)殒I碼大于9時(shí),調(diào)用單元驅(qū)動(dòng)子程序供給解決方案。它的工作方式是:當(dāng)鍵碼大于9時(shí),對(duì)鍵碼進(jìn)行除以10的運(yùn)算并取余數(shù)送A,將余數(shù)作為跳轉(zhuǎn)的分支程序號(hào)。1.多分支程序轉(zhuǎn)移子程序流程圖:開(kāi)始A除以10并取余送AA=0A=1A=2A=3A=4A=5溝通步進(jìn)步進(jìn)直流A/D電機(jī)電機(jī)電機(jī)電機(jī)變換單元單元單元單元單元清鍵驅(qū)動(dòng)驅(qū)動(dòng)驅(qū)動(dòng)驅(qū)動(dòng)驅(qū)動(dòng)盤(pán)輸子程子程子程子程子程入序序序序序返回圖
3-2
多分支程序轉(zhuǎn)移子程序流程圖2.匯編程序及說(shuō)明ABOVE9:MOVA,R1;
鍵碼送
AMOVB,#0AH;
除數(shù)送
BDIVAB;
鍵碼除以
10MOVA,B;
余數(shù)存
ARLA;
分支程序號(hào)乘
2MOVDPTR,#TAB;
轉(zhuǎn)移指令表首址JMPA+DPTR各分支程序的轉(zhuǎn)移指令表:TAB:AJMPACMAJMPSETMJMPERTM1AJMPDCMAJMPADCAJMPMAINTAB:AJMPACMAJMPSETMAJMPSETM1AJMPDCMAJMPADCAJMPSTART鍵盤(pán)單元掃描子程序在鍵盤(pán)掃描子程序的作用是獲得鍵碼送累加器A。1.鍵盤(pán)掃描子程序流程圖開(kāi)始掃描鍵盤(pán)有鍵按下?延時(shí)Y是顫動(dòng)惹起的?N獲得鍵碼送A返回圖3-3鍵盤(pán)掃描子程序流程圖匯編程序及說(shuō)明掃描程序子程序履行時(shí)先使7474LS164輸出全為低電平(列線),這樣就通過(guò)查問(wèn)P3.4(第1行)、P3.5(第2行)的電平來(lái)判斷能否有鍵按下。其程序以下:KEYI:MOVA,#00H;MOVSBUF,A;KL0:JNBTI,KL0;CLRTI;KL1:JNBP3.4,PK1;JBP3.5,KL1;PK1:ACALLDL10;
使所有列線為0的編碼送A掃描鍵盤(pán),使所有列線為0串行輸出完否?串行輸出完,清TI第1行有鍵閉合嗎?若有,跳PK1進(jìn)行辦理第2行有鍵閉合嗎?沒(méi)有,跳KL1調(diào)用10ms延時(shí)子程序DL0,進(jìn)行軟件消抖ACALLDL10JNBP3.4,PK2;JBP3.5,KL1;PK2:MOVR7,#08H;
判斷是不是顫動(dòng)惹起的?是顫動(dòng)惹起的,轉(zhuǎn)KL1不是顫動(dòng)惹起的在進(jìn)行軟件消抖確立有鍵按下后,就逐列輸出低電平,并記列號(hào)于R3,再查問(wèn)行線狀態(tài),當(dāng)1行有鍵按下時(shí)記行首鍵號(hào)0于R4,當(dāng)1行有鍵按下時(shí)記行首鍵號(hào)8于R4,最后將按下的鍵所在地點(diǎn)的列號(hào)和行首鍵號(hào)相加獲取鍵碼。其程序以下:MOVR6,#7FH;MOVR3,#00H;R3MOVA,R6;KL5:MOVSBUF,A;KL2:JNBTI,KL2;CLRTI;JNBP3.4,PKONE;JBP3.5,NEXT;MOVR4,#08H;AJMPPK3;PKONE:MOVR4,#00H;
判斷是哪一個(gè)鍵按下,7FH為使第一列為低為列號(hào)存放器列掃描碼從串行口輸出等候串行口發(fā)送完清TI讀第1行線狀態(tài),第1行有鍵閉合,跳PKONE辦理讀第2行線狀態(tài),第2行有鍵被按否?第2行有鍵被按下,行首鍵號(hào)08H送R4第1行有鍵被按下,行首鍵號(hào)00H送R4PK3:MOVSBUF,#00H;
等候鍵開(kāi)釋?zhuān)l(fā)送
00H使所有列線為低電平KL3:JNBTI,KL3;CLRTI;KL4:JNBP3.4,KL4;
發(fā)送完成,清判斷行狀態(tài)
TIJNBP3.5,KL4;MOVA,R4;ADDA,R3;
兩行線均為高,說(shuō)明鍵已開(kāi)釋計(jì)算得鍵碼,送ARETNEXT:MOVA,R6;
列掃描碼左移一位,判下一列鍵能否按下RRA;MOVR6,A;INCR3;DJNZR7,KL5;
記著列掃描碼于R6中列號(hào)增1列計(jì)數(shù)器R7減1,8列鍵都檢察完否?BACK:RETDL10:MOVR7,#0AH;
延時(shí)
10ms子程序DL:MOVR6,#0FFH;DL1:DJNZR6,DL1;DJNZR7,DL;RET;顯示單元子程序顯示單元子程序的功能是將輸入的0-9的鍵碼用阿拉伯?dāng)?shù)字顯示出來(lái),因?yàn)轱@示的數(shù)字與鍵碼一致,就能夠直接用鍵碼作為查段碼表的依照。顯示子程序履行時(shí)先把P3.3置為高電平,使RXT輸出的串行口移位脈沖有效,在輸出四位顯示以后置P3.3為低電平,使RXT輸出的串行口移位脈沖對(duì)顯示不起作用,防止顯示受鍵盤(pán)掃描的影響。1.顯示子程序流程圖開(kāi)始開(kāi)移位脈沖輸出初始化顯示位數(shù)、顯緩區(qū)單元地點(diǎn)查表并顯示NR7=0?Y關(guān)移位脈沖輸出返回圖3-4
顯示單元子程序流程圖2.匯編程序及說(shuō)明DISP:SETBP3.3;
同意
TXD引腳同步移位脈沖輸出MOVR7,#04H;
送出段碼個(gè)數(shù),
R7為段碼個(gè)數(shù)計(jì)數(shù)器MOVR0,#7FH;
7FH~78H
為顯示數(shù)據(jù)緩沖區(qū)四位數(shù)顯示程序以下:DL0:MOVA,R0;
拿出要顯示的數(shù)送
AADDA,#0dH;
加上偏移量MOVCA,A+PC;
查段碼表
SEGTAB,拿出段碼MOVSBUF,A;
送出顯示HERE1:JNBTI,HERE1;
查問(wèn)
TI
狀態(tài),1字節(jié)的段碼輸出完否?CLRTI;1
字節(jié)的段碼輸出完,清
TIDECR0;
指向下一個(gè)顯示單元DJNZ
R7,DL0;
段碼個(gè)數(shù)計(jì)數(shù)器
R7能否為
0,如不為
0,持續(xù)送段碼CLRP3.3;
4
個(gè)段碼輸出完成,封閉顯示器輸出RET;
返回TAB1:DB0C0H,0F9H,0A4H,0B0H,99H;共陽(yáng)極段碼表,0,1,2,3,4DB92H,82H,0F8H,80H,090H,0FFH,0BFH;5,6,7,8,9,暗,-溝通電機(jī)單元控制子程序履行溝通電機(jī)控制子程序時(shí),第一對(duì)輸入的數(shù)值進(jìn)行判斷,因?yàn)镺P07的正極接的是+9V的電壓,輸出的最高電壓為。實(shí)驗(yàn)中電機(jī)運(yùn)行時(shí)的額定轉(zhuǎn)速為1400轉(zhuǎn)/分,而變頻器同意的最高模擬電壓為+10V。由上邊的剖析不難得出OP07能控制的電機(jī)最高轉(zhuǎn)速為1260轉(zhuǎn)/分(1400/109=1260),那么輸入的最高轉(zhuǎn)速就應(yīng)為1260。但考慮到輸入的數(shù)值最后要送到累加器A中,再由A將數(shù)值送DAC0832進(jìn)行D/A變換。而累加器A能存入的最大數(shù)為FFH(255),輸入的最高轉(zhuǎn)速1260與255的倍數(shù)關(guān)系為:1200/255=4.95,為計(jì)算方便我取鍵盤(pán)輸入的最高轉(zhuǎn)速為1275(2555=1275),這樣在將鍵盤(pán)輸入的數(shù)值送入A中時(shí)只需將輸入的數(shù)值除以5就能夠了。在匯編語(yǔ)言的實(shí)質(zhì)數(shù)值變換過(guò)程中,我是這樣辦理的:比方我輸入的數(shù)值是1233,那么履行溝通電機(jī)控制子程序時(shí):(7FH)=1,(7EH)=2,(7DH)=3,(7CH)=3。(A)=(7FH)1000/5+(7EH)100/5+(7DH)10/5+(7CH)/5=(7FH)200+(7EH)20+(7DH)2+(7CH)/5(A)=1200+2
20+3
2+3/5=246
(7C單元數(shù)值四舍五入)溝通電機(jī)單元控制子程序流程圖開(kāi)始轉(zhuǎn)速>1275?NY調(diào)用數(shù)據(jù)辦理子程序,將辦理結(jié)果送A啟動(dòng)DAC0832D/A變換輸出控制電機(jī)的轉(zhuǎn)速返回圖3-5溝通電機(jī)單元控制子程序流程圖匯編程序及說(shuō)明程序履行時(shí)先調(diào)用鍵盤(pán)輸入辦理,判斷輸入值能否大于1275,其程序以下:ACM:AJMPKDA
;
調(diào)用鍵盤(pán)輸入辦理ACM1:MOVDPTR,#7FFFH
;
置DAC0832地點(diǎn)MOVXDPTR,A
;D/A
變換AJMPSTART鍵盤(pán)輸入辦理程序先判斷輸入的數(shù)值能否大于電機(jī)的轉(zhuǎn)速將輸入的數(shù)值縮小5倍,其程序以下:KDA:MOVA,BUF3
;
鍵盤(pán)輸入辦理CJNEA,#1,CASE0;
分別對(duì)各位進(jìn)行數(shù)值的判斷MOVA,BUF2CJNEA,#2,CASE1MOVA,BUF1CJNEA,#7,CASE1MOVA,BUF0CJNEA,#5,CASE1THU:MOVA,BUF3;
千位數(shù)減小
5倍后暫存
83H單元MOVB,#200MULABMOV83H,AHUN:MOVA,BUF2;
百位數(shù)減小
5倍后暫存
82H單元MOVB,#20MULABMOV82H,AMOVA,BUF;
十位數(shù)減小
5倍后暫存
81H單元RLAMOV81H,AMOVA,BUF0MOVB,#5;
個(gè)位數(shù)減小
5倍后直接存
ADIVABADDA,81H;
將各位上的數(shù)值相加ADDA,82HADDA,83HAJMPACM1以下是鍵盤(pán)辦理的跳轉(zhuǎn)子程序,因?yàn)榍懊娴逆I盤(pán)輸入辦理程序只好判斷個(gè)位上的數(shù)值能否和最大相等,故用以下程序判斷比最大數(shù)大仍是小,大于最大數(shù)則跳轉(zhuǎn)至主程序,小于最大數(shù)則跳轉(zhuǎn)至DA變換。CASE0:JNCMAIN1;
大于最大數(shù)跳轉(zhuǎn)至主程序AJMPHUN;
小于最大數(shù)跳轉(zhuǎn)至
DA變換CASE1:JNCMAIN1;
大于最大數(shù)跳轉(zhuǎn)至主程序AJMPTHU;
小于最大數(shù)跳轉(zhuǎn)至
DA變換步進(jìn)電機(jī)單元控制子程序步進(jìn)電機(jī)的速度控制是經(jīng)過(guò)控制脈沖的延時(shí)程序?qū)崿F(xiàn)的,延時(shí)的參數(shù)也是經(jīng)過(guò)累加器A送延時(shí)子程序的。相同存在顯示數(shù)值和累加器A之間數(shù)值變換的問(wèn)題,因?yàn)闀r(shí)間有限和條件限制,我對(duì)步進(jìn)電機(jī)的轉(zhuǎn)速?zèng)]能進(jìn)行丈量,不過(guò)為計(jì)算的方便將步進(jìn)電機(jī)的最高轉(zhuǎn)速定為了255轉(zhuǎn)/分。當(dāng)輸入的數(shù)值為0時(shí),進(jìn)入步進(jìn)電機(jī)的點(diǎn)動(dòng)控制。履行步進(jìn)電機(jī)控制子程序時(shí):(A)=(7EH)100+(7DH)10+(7CH)步進(jìn)電機(jī)單元控制子程序流程圖開(kāi)始轉(zhuǎn)速>255?NY調(diào)用數(shù)據(jù)辦理子程序,將辦理結(jié)果送AA=0?調(diào)用含有A延時(shí)參數(shù)的高低電平子程序點(diǎn)動(dòng)控制步進(jìn)電機(jī)控制步進(jìn)電機(jī)轉(zhuǎn)速NNP3.5=0P3.5=0YY返回圖3-6步進(jìn)電機(jī)單元控制子程序流程圖2.匯編程序及說(shuō)明SETM:SETBP1.1;
步進(jìn)電機(jī)正轉(zhuǎn)AJMPKWS;
調(diào)用鍵盤(pán)辦理,判斷能否
>255SETM1:CLRP1.1;
步進(jìn)電機(jī)反轉(zhuǎn)AJMPKWS;
調(diào)用鍵盤(pán)辦理,判斷能否
>255LOOP0:CLRP1.0;
脈沖低電平ACALLDELAY1;;
脈沖低電平延時(shí)MOVR3,A;
暫存
A值于
R3以下是判P3.5能否為低的程序,用來(lái)在履行脈沖過(guò)程中按下“返回”鍵時(shí)返回主程序。MOVA,#0FEHMOVSBUF,Aherea:JNBTI,herea;
等候串行口發(fā)送完CLRTI;JNBP3.5,MAIN2SETBP3.5;ACALLDELAY1;AJMPLOOP0;DELAY1:MOVR7,#10;
脈沖高電平脈沖高電平延時(shí)脈沖循環(huán)含有A參數(shù)的延時(shí)子程序DL2:MOVR6,A;DL3:DJNZR6,DL3;DJNZR7,DL2;RETDL100:MOVR7,#1H;
延時(shí)
1ms子程序DLa:MOVR6,#0FFH;DL1a:DJNZR6,DL1a;DJNZR7,DLa;RET;KWS:MOVA,BUF3;
鍵盤(pán)輸入辦理(在溝通電機(jī)驅(qū)動(dòng)程序中已作說(shuō)明)CJNEA,#0,CASE2MOVA,BUF2CJNEA,#2,CASE3MOVA,BUF1CJNEA,#5,CASE3MOVA,BUF0CJNEA,#5,CASE3以下程序?qū)⑤斎氲臄?shù)值辦理為HUNS:MOVA,BUF2;MOVB,#100MULABMOV82H,AMOVA,BUF1;MOVB,#10MULABMOV81H,AMOVA,BUF0ADDA,81H;ADDA,82HAJMPLOOP0;
0-FFH的數(shù)送A。百位數(shù)暫存82H單元個(gè)位數(shù)暫存81H單元個(gè)位數(shù)直接存A各位數(shù)相加脈沖循環(huán)以下程序?qū)︽I盤(pán)數(shù)值作進(jìn)一步判斷(在溝通電機(jī)驅(qū)動(dòng)程序中已作說(shuō)明)。CASE2:JNCMAIN2AJMPHUNSCASE3:JNCMAIN2AJMPTHUSMAIN3:AJMPMAIN2以下是點(diǎn)動(dòng)控制子程序。POIT:MOVA,#0F7HMOVSBUF,AHEREP:JNBTI,HEREP;等候串行口發(fā)送完CLRTI;JNBP3.4,POIT1MOVA,#7FHMOVSBUF,AHEREP1:JNBTI,HEREP1;等候串行口發(fā)送完CLRTI;JNBP3.5,POIT2MOVA,#0FEHMOVSBUF,AHEREB:JNBTI,HEREB;等候串行口發(fā)送完CLRTI;JNBP3.5,mAIn3AJMPHEREPPOIT1:SETBP1.1JNBP3.4,POIT1POIT2:JNBP3.5,POIT2CLRP1.1POIT0:CLRP1.0MOVA,#50H;設(shè)定點(diǎn)動(dòng)速度ACALLDELAY1SETBP1.0ACALLDELAY1AJMPPOITMAIN3:AJMPMAIN2直流電機(jī)控制子程序直流電機(jī)的轉(zhuǎn)速是經(jīng)過(guò)控制PWM脈沖的占空比實(shí)現(xiàn)的,說(shuō)究竟就是用軟件編一個(gè)高低電平的總周期固定的脈沖信號(hào)。與步進(jìn)電機(jī)相同要設(shè)置一個(gè)延時(shí)參數(shù)(由累加器A給出),為了達(dá)到周期固定的目的,我在程序頂用“CPLA”語(yǔ)句使總延時(shí)參數(shù)不變(總延時(shí)參數(shù)為255)。關(guān)于A的數(shù)值的獲取,我將直流電機(jī)的最高轉(zhuǎn)速設(shè)為2550轉(zhuǎn)/分。恰巧是交流電機(jī)轉(zhuǎn)速的兩倍,這樣就能夠借用溝通電機(jī)的數(shù)值辦理程序,不過(guò)將輸入的數(shù)值的減小的倍數(shù)變?yōu)榱?0,則A中的數(shù)值為:(A)=(7FH)
1000/10+(7EH)
100/10+(7DH)
10/10+(7CH)/10=(7FH)
100+(7EH)
10+(7DH)(因?yàn)椋?C)H<10,故忽視)直流電機(jī)單元控制子程序流程圖開(kāi)始轉(zhuǎn)速>2550?YN調(diào)用數(shù)據(jù)辦理子程序,將辦理結(jié)果送A調(diào)用含有A延時(shí)參數(shù)的高低電平子程序控制直流電機(jī)的轉(zhuǎn)速NP3.5=0?返回圖3-7直流電機(jī)單元控制子程序流程圖匯編程序及說(shuō)明DCM:AJMPKWD;調(diào)用輸入數(shù)值辦理子程序LOOP1:SETBP1.4;ACALLDELAY2CPLACLRP1.4ACALLDELAY3CPLAmova,#0fehmovsbuf,ahereD:JNBTI,hereD;
等候串行口發(fā)送完CLRTI;jnbp3.5,main3AJMPLOOP1DELAY2:MOVR7,A;
延時(shí)
10ms子程序DL7:MOVR6,#0FFH;DL4:DJNZR6,DL4;DJNZR7,DL7RETDELAY3:MOVR7,A;
延時(shí)
10ms子程序DL5:MOVR6,#0FFH;DL8:DJNZR6,DL8;DJNZR7,DL5;KWD:MOVA,BUF3;
鍵盤(pán)輸入辦理CJNEA,#2,CASE4MOVA,BUF2CJNEA,#5,CASE5MOVA,BUF1CJNEA,#5,CASE5MOVA,BUF0CJNEA,#0,CASE5THUD:MOVA,BUF3;
千位MOVB,#100MULABMOV83H,AHUND:MOVA,BUF2;
百位MOVB,#10MULABMOV82H,AMOVA,BUF1;
十位MOV81H,AMOVA,BUF0MOVB,#10;
個(gè)位DIVABMOV80H,AADDA,81HADDA,82HADDA,83Hajmploop1CASE4:JNCMAIN3AJMPHUNDCASE5:JNCMAIN3AJMPTHUD變換單元子程序ADC0809工作時(shí)將0-5V的模擬電壓變?yōu)?-FFH(255)的數(shù)值經(jīng)并行口送A,因?yàn)闇贤姍C(jī)的最高轉(zhuǎn)速被我設(shè)在了1275轉(zhuǎn)/分,于是要將A中的數(shù)值擴(kuò)大5倍(1275/255=5)送顯緩區(qū)。比方(A)=F1H(241),則應(yīng)顯示1205(2415=1205),即顯緩區(qū)各單元的容為:(7FH)=1,(7EH)=2,(7DH)=0,(7CH)=5用匯編語(yǔ)言變換數(shù)值的過(guò)程用語(yǔ)言較難表達(dá),我在流程圖中詳盡的表達(dá)出來(lái)了。A/D變換單元子程序流程圖開(kāi)始置ADC0809地點(diǎn)啟動(dòng)A/DA/D變換成數(shù)值送A商除以2007FH(千位)余數(shù)商除以207EH(百位)余數(shù)商除以27DH(十位)余數(shù)送A并乘57CH(個(gè)位)返回圖
3-8A/D
變換單元子程序流程圖2.匯編程序及說(shuō)明ADC:MOVDPTR,#0BFFFH;
置0809地點(diǎn)MOVXDPTR,A;
啟動(dòng)
A/D變換HERE:JB3.2,HERE;
等候
A/D變換結(jié)束MOVXA
,DPTR;
讀A/D變換值以下程序的作用是把收集到的存在
A中0-FFH的數(shù)值擴(kuò)大
5倍后送各位數(shù)值的顯緩區(qū)。MOVB,#200;DIVAB;MOVBUF3,A;MOVA,B;
A
除數(shù)送B除以200商存千位顯緩區(qū)余數(shù)送AMOVB,#20DIVAB;MOVBUF2,A;
A
A
除以除以
20存B百位顯緩區(qū)2存商于十位顯緩區(qū)MOVA,BMOVB,#2DIVABMOVBUF1,AMOVBUF0,B;
存余數(shù)于個(gè)位顯緩區(qū)ADDCA,#0ACALLDISP;
調(diào)用顯示AJMPMAIN第4章軟硬件調(diào)試4.1硬件調(diào)試硬件是軟件的基礎(chǔ),只有保證硬件上的正確才能使設(shè)計(jì)出來(lái)系統(tǒng)順利履行軟件傳達(dá)的指令。正是因?yàn)檫@樣,達(dá)成電路板的制作以后,并無(wú)立刻編制程序,而是先對(duì)硬件進(jìn)行檢查、調(diào)試。鍵盤(pán)/顯示單元的調(diào)試1.鍵盤(pán)單元的調(diào)試圖4-1鍵盤(pán)單元的硬件圖鍵盤(pán)是最簡(jiǎn)單也是最簡(jiǎn)單調(diào)試出來(lái)的,選擇了丈量電阻的方法對(duì)它進(jìn)行調(diào)試。第一將萬(wàn)用表打到歐姆擋,挨次按下各個(gè)按鈕,同時(shí)丈量按下的按鈕的相應(yīng)的引腳與單片機(jī)上的P3.4或P3.5(鍵盤(pán)單元是經(jīng)過(guò)P3.4、P3.5接受高低電平的)引腳之間的電阻能否靠近“0”(鍵盤(pán)與單片機(jī)之間的連線也有電阻)。十六個(gè)按鈕丈量下來(lái)所有合格,算是牛刀小試吧。顯示單元的調(diào)試顯示單元的接線密度較大,在仿真調(diào)試前,先目測(cè)了一下電路板的焊接面,沒(méi)有發(fā)現(xiàn)所擔(dān)憂的碰線的狀況。接著用萬(wàn)用表丈量了顯示單元電源接口的電阻,圖4-2顯示接口單元的硬件圖阻值180,屬于正常值。這樣一來(lái)就義正詞嚴(yán)的把顯示單元與單片機(jī)接口連結(jié)后,用仿真機(jī)調(diào)試了。在仿真軟件輸入以下調(diào)試程序:ORG0000HAJMPDISPORG0030HDISP:MOVSP,#60H;
置貨倉(cāng)指針SETBP3.3;
同意
TXD引腳同步移位脈沖輸出LOOP:MOVA,#0;
顯示的值送
AADDA,#09;
加上偏移量MOVCA,A+PC;
查段碼表
SEGTAB,拿出段碼MOVSBUF,A;
送出顯示HERE1:JNBTI,HERE1;
查問(wèn)
TI
狀態(tài),1字節(jié)的段碼輸出完否?CLRTI;
1
字節(jié)的段碼輸出完,清
TIAJMPLOOP;
返回TAB:DB0C0H,0F9H,0A4H,0B0H,99H;
共陽(yáng)極段碼表,
0,1,2,3,4DB92H,82H,0F8H,80H,090H,0FFH,0BFH;5
,6,7,8,9,
暗,-END編譯通事后,翻開(kāi)仿真機(jī)的電源,顯示單元顯示四個(gè)“8”,但是小數(shù)點(diǎn)都不亮(此后發(fā)現(xiàn)其余組也有存在這類(lèi)問(wèn)題的,是數(shù)碼管出缺點(diǎn))。全速履行程序后,顯示沒(méi)有任何變化。接下來(lái)的兩天里,向來(lái)在檢查顯示電路,一直沒(méi)有找到問(wèn)題。沒(méi)有方法,只好問(wèn)老師,經(jīng)過(guò)老師我認(rèn)識(shí)到從前也有同學(xué)也實(shí)用串行口顯示的,但并無(wú)發(fā)現(xiàn)這類(lèi)問(wèn)題。實(shí)踐是查驗(yàn)真諦的獨(dú)一真諦,我拿來(lái)了從前的電路板,再用自己的程序進(jìn)行仿真,仍是不可以顯示。后經(jīng)確立程序的確沒(méi)有問(wèn)題后,又找來(lái)了從前發(fā)現(xiàn)仍是不可以對(duì)顯示單元進(jìn)行仿真。用萬(wàn)用表丈量TXD引腳(移位時(shí)鐘脈沖輸出口)電壓不到1V,這時(shí)其余組的同學(xué)也反應(yīng)串行口無(wú)法發(fā)送數(shù)據(jù)。最后經(jīng)老師與另一臺(tái)仿真機(jī)比較,發(fā)現(xiàn)仿真機(jī)的一塊非門(mén)(74LS04)壞了(圖4-1),換了好的非門(mén),顯示單元調(diào)試成功。圖4-374LS04的PROTEL電路圖一開(kāi)始我們沒(méi)有確立是仿真機(jī)的問(wèn)題,就是因?yàn)榉抡鏅C(jī)對(duì)單片機(jī)的其余功能都能仿真,大家就認(rèn)為仿真機(jī)是好的。溝通電機(jī)控制單元的調(diào)試DAC0809的接線不算復(fù)雜,在仿真軟件輸入下邊的調(diào)試程序:ORG0000HAJMPACMORG0030HACM:MOVSP,#60H;
置貨倉(cāng)指針MOVA,#0MOVDPTR,#7FFFH
;
置DAC0832地點(diǎn)LOOP:MOVXDPTR,A
;D/A
變換INCANOPAJMPLOOPEND調(diào)試過(guò)程中當(dāng)A的值在0-0FFH之間變化使,輸出端的電壓只變化了4次,圖4-4溝通電機(jī)控制接口單元的硬件圖并無(wú)像預(yù)期的那樣連續(xù)變化。在確立接線無(wú)誤后,我的第一反響是運(yùn)放器存在問(wèn)題,因?yàn)檫@時(shí)接在電路中的運(yùn)放器是一般的741運(yùn)放(圖4-1),預(yù)計(jì)是運(yùn)放的精度不夠,于是我將運(yùn)放換成了高精度的OP07(圖4-2),仍是存在這類(lèi)問(wèn)題。我找來(lái)了他人相關(guān)DAC0832的課程設(shè)計(jì)用的電路板,經(jīng)過(guò)對(duì)照沒(méi)有發(fā)現(xiàn)接線問(wèn)圖4-5原來(lái)的741運(yùn)放接線圖題。后經(jīng)萬(wàn)用表丈量,發(fā)現(xiàn)模擬地虛焊。從頭焊接模擬地,DAC0832調(diào)試成功。圖4-6改后的OP07運(yùn)放接線圖在調(diào)試過(guò)程中,當(dāng)運(yùn)放器只接-9V電壓時(shí),輸出電壓為負(fù),有時(shí)DAC0832不工作的時(shí)候,OP07也會(huì)輸出細(xì)微的負(fù)電壓,為保護(hù)變頻器,在調(diào)試過(guò)程中我在OP07的輸出口上串了一個(gè)二極管(圖4-3中可見(jiàn)),并將放大電路的放大倍數(shù)變?yōu)榭烧{(diào)(串了個(gè)10K可變電阻)。接口單元的調(diào)試ADC0809的接線比DAC0832復(fù)雜,但由在課程設(shè)計(jì)中已經(jīng)使用過(guò)該芯片,因此對(duì)它其實(shí)不陌生。在仿真軟件輸入以下調(diào)試程序:ORG0000HAJMPADORG0030HAD:MOVSP,#60H;置貨倉(cāng)指針MOVDPTR,#0BFFFHMOVXDPTR,AHERE:JBP3.2,HEREMOVXA,DPTREND經(jīng)過(guò)單步履行發(fā)現(xiàn),程序在履行“here:jbp3.2,here”語(yǔ)句時(shí)常常無(wú)法持續(xù)往下履行,即便能往下履行,A中數(shù)值一直為“00H”,其實(shí)不隨輸入的電壓值變化。我第一檢查0809的模擬通道選擇口,A、B、C三個(gè)引腳接地,輸入電壓接在INT0口,都正確。圖4-7A/D接口單元的硬件圖那就只好是0809與單片機(jī)之間的接線有誤了,想到剛才履行“here:jbp3.2,here”語(yǔ)句時(shí)有無(wú)法持續(xù)的現(xiàn)象,于是我對(duì)0809的EOC引腳進(jìn)行檢查,沒(méi)有發(fā)現(xiàn)硬件問(wèn)題。接著又對(duì)0809的OE(輸出同意信號(hào))接線進(jìn)行檢查,發(fā)現(xiàn)本應(yīng)接在單片機(jī)上RD的線誤接在了RD旁邊的XTAL2上(圖4-4),更正后0809調(diào)試成功。圖4-8RD與XTAL2的空間關(guān)系圖4-9整體硬件圖4.2軟件調(diào)試硬件調(diào)試成功后,我就開(kāi)始針對(duì)硬件編寫(xiě)軟件,在軟件的調(diào)試過(guò)程中也碰到了一些問(wèn)題,有的甚至是我在書(shū)籍上沒(méi)有看到的,因?yàn)镈/A、A/D變換程序調(diào)試中不過(guò)在數(shù)值的變換過(guò)程出現(xiàn)了一些問(wèn)題,為此下邊的表達(dá)中我側(cè)重對(duì)鍵盤(pán)/顯示和綜合調(diào)試中出現(xiàn)的幾個(gè)軟件問(wèn)題作出說(shuō)明。鍵盤(pán)/顯示單元的軟件調(diào)試1.預(yù)期的成效我在鍵盤(pán)/顯示單元軟件的設(shè)計(jì)思想是每按一下鍵盤(pán)的數(shù)字鍵就讓LED更新顯示。于是在鍵盤(pán)掃描子程序中,我能夠?qū)存I的鍵碼拿出送A后就直接調(diào)用顯示子程序
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《阿西莫夫短文兩篇》同步學(xué)與練(解析版)
- 2025至2030年中國(guó)地面防滑涂料數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)單針筒女襪數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)交流著色電源數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)PVC膠化紙數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)CATV接入路由器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國(guó)鋁壓板市場(chǎng)調(diào)查研究報(bào)告
- 傳染病房裝修改造協(xié)議
- kV電纜耐壓試驗(yàn)安全協(xié)議書(shū)范本
- 紡織原料采購(gòu)居間服務(wù)協(xié)議
- 文化產(chǎn)業(yè)管理專(zhuān)業(yè)大學(xué)生職業(yè)生涯規(guī)劃書(shū)
- DSM-V美國(guó)精神疾病診斷標(biāo)準(zhǔn)
- 文獻(xiàn)的載體課件
- 2023年高考語(yǔ)文全國(guó)乙卷《長(zhǎng)出一地的好蕎麥》解析
- 混凝土強(qiáng)度回彈檢測(cè)方案
- 歷年中考地理生物變態(tài)難題
- 研學(xué)旅行課程標(biāo)準(zhǔn)(一)-前言、課程性質(zhì)與定位、課程基本理念、課程目標(biāo)
- 部編版二年級(jí)下冊(cè)語(yǔ)文教案全冊(cè)
- 解放牌汽車(chē)CA10B后鋼板彈簧吊耳加工工藝及夾具設(shè)計(jì)哈
- 大學(xué)專(zhuān)科《機(jī)電傳動(dòng)控制》課件
- 高中地理高清區(qū)域地理填圖冊(cè)
評(píng)論
0/150
提交評(píng)論