單片機控制直流電機論文_第1頁
單片機控制直流電機論文_第2頁
單片機控制直流電機論文_第3頁
單片機控制直流電機論文_第4頁
單片機控制直流電機論文_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 汽車單片機技術(shù) 課程結(jié)課設(shè)計報告 題目:單片機控制直流電動機專 業(yè) 汽車服務(wù)工程 班 級 2013 學(xué) 號 201301503018 姓 名 曾祥金 指導(dǎo)教師 張 琦 1.1設(shè)計要求:(1) 通過改變A/D輸入端可變電阻來改變A/D的輸入電壓,D/A輸入檢測量大小,進(jìn)而改變直流電機的轉(zhuǎn)速。(2)手動控制。在鍵盤上設(shè)置兩個按鍵直流電動機加速鍵和直流電機減速鍵。在手動狀態(tài)下,每按一次鍵,電機的轉(zhuǎn)速按照約定的速率改變。1.2 設(shè)計原理 直流電機是通過兩個磁場的互作用產(chǎn)生旋轉(zhuǎn)。其結(jié)構(gòu)如下頁圖所示,固定部分(定子)上,裝設(shè)了一對直流勵磁的靜止的主磁極N和S,在旋轉(zhuǎn)部分(轉(zhuǎn)子)上裝設(shè)電樞鐵心。定子與轉(zhuǎn)子

2、之間有一氣隙。在電樞鐵心上放置了由A和X 兩根導(dǎo)體連成的電樞線圈,線圈的首端和末端分別連到兩個圓弧形的銅片上,此銅片稱為換向片。換向片之間互相絕緣,由換向片構(gòu)成的整體稱為換向器。換向器固定在轉(zhuǎn)軸上,換向片與轉(zhuǎn)軸之間亦互相絕緣。在換向片上放置著一對固定不動的電刷B1和B2,當(dāng)電樞旋轉(zhuǎn)時,電樞線圈通過換向片和電刷與外電路接通。 定子通過永磁體或受激勵電磁鐵產(chǎn)生一個固定磁場,由于轉(zhuǎn)子由一系列電磁體構(gòu)成,當(dāng)電流通過其中一個繞組時會產(chǎn)生一個磁場。對有刷直流電機而言,轉(zhuǎn)子上的換向器和定子的電刷在電機旋轉(zhuǎn)時為每個繞組供給電能。通電轉(zhuǎn)子繞組與定子磁體有相反極性,因而相互吸引,使轉(zhuǎn)子轉(zhuǎn)動至與定子磁場對準(zhǔn)的位置。

3、當(dāng)轉(zhuǎn)子到達(dá)對準(zhǔn)位置時,電刷通過換向器為下一組繞組供電,從而使轉(zhuǎn)子維持旋轉(zhuǎn)運動。直流電機的速度與施加的電壓成正比,輸出轉(zhuǎn)矩則與電流成正比。由于必須在工作期間改變直流電機的速度,直流電機的控制是一個較困難的問題。直流電機高效運行的最常見方法是施加一個 PWM(脈寬調(diào)制)方波,其占空比對應(yīng)于所需速度。電機起到一個低通濾波器作用,將PWM信號轉(zhuǎn)換為有效直流電平。特別是對于微處理器驅(qū)動的直流電機,由于PWM信號相對容易產(chǎn)生,這種驅(qū)動方式使用的更為廣泛。1.3 整體設(shè)計 為了使用單片機對電動機進(jìn)行控制,對單片機的基本要求應(yīng)有足夠快點速度;有捕捉功能??傮w設(shè)計方案如圖所示數(shù)碼管顯示DAC0832按鍵控制單片

4、機信號放大ADC0808驅(qū)動電機電壓信號圖1.1總體設(shè)計方案鍵盤向單片機輸入相應(yīng)控制指令,由單片機通過P1口輸出與轉(zhuǎn)速相應(yīng)的8位BCD編碼,該編碼通過DAC0832譯成相應(yīng)的模擬電壓,經(jīng)過信號放大實現(xiàn)電動機轉(zhuǎn)向與轉(zhuǎn)速的控制。 可變電阻接ADC0808轉(zhuǎn)變成相應(yīng)電壓的數(shù)字信號,單片機通過P2口讀取,再由P1口輸出與轉(zhuǎn)速相應(yīng)的8位BCD編碼。電動機的運轉(zhuǎn)狀態(tài)則通過四位數(shù)碼管顯示出來。電動機所處速度級以速度檔級數(shù)顯示。正轉(zhuǎn)時最高位顯示“三” ,其它三位為電機轉(zhuǎn)速;反轉(zhuǎn)時最高位顯示“F”,其它三位為電機轉(zhuǎn)速。每次電動機啟動后開始顯示,停止時數(shù)碼管顯示出“0000”。 第2章 系統(tǒng)硬件設(shè)計 根據(jù)總設(shè)計方

5、案可知硬件電路是以單片機為核心輔以適當(dāng)?shù)碾娐芬酝瓿梢蠊δ?。主要包括顯示模塊,A/D轉(zhuǎn)換模塊,D/A轉(zhuǎn)換模塊等模塊。2.1 按鍵電路2.1.1 AT89C51AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8

6、位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。圖2.1 按鍵電路的設(shè)計AT89C51 提供以下標(biāo)準(zhǔn)功能:4k 字節(jié)Flash 閃速存儲器,128字節(jié)內(nèi)部RAM,32 個I/O 口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存

7、RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。2.1.2 按鍵電路 如圖2.1所示,單片機的P2.1和P2.2口分別接一個按鍵用于控制電機。當(dāng)按下S1鍵時,電機轉(zhuǎn)速提高,進(jìn)入加速狀態(tài);當(dāng)按下S2鍵時,電機轉(zhuǎn)速減慢,進(jìn)入減速狀態(tài)。通過S1,S2兩個按鍵可以達(dá)到鍵盤控制電機的作用。2.2 顯示電路2.2.1 MAX7219MAX7219/MAX7221是一種集成化的串行輸入/輸出共陰極顯示驅(qū)動器,它連接微處理器與8位數(shù)字的7段數(shù)字LED顯示,也可以連接條線圖顯示器或者64個獨立的LED。其上包括一個片上的B型BCD編碼器、多路掃描回路,段字驅(qū)動器,而且還有一個8*8的靜

8、態(tài)RAM用來存儲每一個數(shù)據(jù)。 只有一個外部寄存器用來設(shè)置各個LED的段電流。 MAX7221與SPI、 QSPI以及 MICROWIRE相兼容,同時它有限制回轉(zhuǎn)電流的段驅(qū)動來減少EMI(電磁干擾)。 一個方便的四線串行接口可以聯(lián)接所有通用的微處理器。 每個數(shù)據(jù)可以尋址在更新時不需要改寫所有的顯示。MAX7219/MAX7221同樣允許用戶對每一個數(shù)據(jù)選擇編碼或者不編碼。 整個設(shè)備包含一個150A的低功耗關(guān)閉模式,模擬和數(shù)字亮度控制,一個掃描限制寄存器允許用戶顯示1-8位數(shù)據(jù),還有一個讓所有LED發(fā)光的檢測模式。功能特點:1、10MHz連續(xù)串行口 2、獨立的LED段控制 3、數(shù)字的譯碼與非譯碼選

9、擇 4、150A的低功耗關(guān)閉模式 5、亮度的數(shù)字和模擬控制 6、高電壓中斷顯示 7、共陰極LED顯示驅(qū)動 8、限制回轉(zhuǎn)電流的段驅(qū)動來減少EMI(MAX7221) 9、SPI, QSPI, MICROWIRE串行接口(MAX7221) 10、24腳的 DIP和 SO 封裝2.2.2 工作原理 圖2.2 顯示電路的設(shè)計 如圖2.2所示,可變電阻接ADC0808轉(zhuǎn)變成相應(yīng)電壓的數(shù)字信號,單片機通過P0口讀取,再由P1口輸出與轉(zhuǎn)速相應(yīng)的8位BCD編碼到MAX7219。經(jīng)由MAX7219處理后通過四位數(shù)碼管顯示出來。電動機所處速度級以速度檔級數(shù)顯示。正轉(zhuǎn)時最高位顯示“三” ,其它三位為電機轉(zhuǎn)速;反轉(zhuǎn)時最

10、高位顯示“F”,其它三位為電機轉(zhuǎn)速。每次電動機啟動后開始顯示,停止時數(shù)碼管顯示出“0000”。2.3 A/D轉(zhuǎn)換模塊2.3.1 ADC0808 ADC0808是美國國家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進(jìn)行A/D轉(zhuǎn)換。是目前國內(nèi)應(yīng)用最廣泛的8位通用A/D芯片。 主要特性 1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。 2)具有轉(zhuǎn)換起??刂贫恕?3)轉(zhuǎn)換時間為100s(時鐘為640kHz時),130s(時鐘為500kHz時) 4)單個+5V電源供電。 5)模擬輸入電

11、壓范圍0+5V,不需零點和滿刻度校準(zhǔn)。 6)工作溫度范圍為-40+85攝氏度。 7)低功耗,約15mW。 ADC0809的工作過程首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。 轉(zhuǎn)換數(shù)據(jù)的傳送 A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時傳送給單片機進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如

12、何確認(rèn)A/D轉(zhuǎn)換的完成,因為只有確認(rèn)完成后,才能進(jìn)行傳送。為此可采用下述三種方式。 (1)定時傳送方式 對于一種A/D轉(zhuǎn)換器來說,轉(zhuǎn)換時間作為一項技術(shù)指標(biāo)是已知的和固定的。例如ADC0809轉(zhuǎn)換時間為128s,相當(dāng)于6MHz的MCS-51單片機共64個機器周期??蓳?jù)此設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用此子程序,延遲時間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進(jìn)行數(shù)據(jù)傳送。 (2)查詢方式 A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0808的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可確認(rèn)轉(zhuǎn)換是否完成,并接著進(jìn)行數(shù)據(jù)傳送。 (3)中斷方式 把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為

13、中斷請求信號,以中斷方式進(jìn)行數(shù)據(jù)傳送。 不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即可通過指令進(jìn)行數(shù)據(jù)傳送。首先送出口地址并以信號有效時,OE信號即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機接受。圖2.3 AD轉(zhuǎn)換電路的設(shè)計2.3.2 工作原理 如圖2.3所示,外部電源通過滑動變阻器向ADC0808輸入控制電壓信號,經(jīng)A/D處理后,輸入到AT89C51中,交由AT89C51處理,進(jìn)行下一步動作。2.4 D/A轉(zhuǎn)換模塊2.4.1 DAC0832 DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉(zhuǎn)換控制容易等優(yōu)點,在單片機應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用

14、。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。主要特性參數(shù) 1.分辨率為8位; 2.電流穩(wěn)定時間1us; 3.可單緩沖、雙緩沖或直接數(shù)字輸入; 4.只需在滿量程下調(diào)整其線性度; 5.單一電源供電(+5V+15V); 6.低功耗,20mW。DAC0832的工作方式DAC0832進(jìn)行D/A轉(zhuǎn)換,可以采用兩種方法對數(shù)據(jù)進(jìn)行鎖存。 第一種方法是使輸入寄存器工作在鎖存狀態(tài),而DAC寄存器工作在直通狀態(tài)。具體地說,就是使 和 都為低電平,DAC寄存器的鎖存選通端得不到有效電平而直通;此外,使輸入寄存器的控制信號ILE處于高電平、 處于低電平,這樣,當(dāng) 端來一個負(fù)脈

15、沖時,就可以完成1次轉(zhuǎn)換。 第二種方法是使輸入寄存器工作在直通狀態(tài),而DAC寄存器工作在鎖存狀態(tài)。就是使和為低電平,LE為高電平,這樣,輸入寄存器的鎖存選通信號處于無效狀態(tài)而直通;當(dāng)和端輸入1個負(fù)脈沖時,使得DAC寄存器工作在鎖存狀態(tài),提供鎖存數(shù)據(jù)進(jìn)行轉(zhuǎn)換。 圖2.4 DA轉(zhuǎn)換電路的設(shè)計2.4.2 工作原理如上圖2.4所示,電壓信號輸入后經(jīng)過AD轉(zhuǎn)換輸入到AT89C51,由單片機通過P1口輸出與轉(zhuǎn)速相應(yīng)的8位BCD編碼,該編碼通過DAC0832譯成相應(yīng)的模擬電壓,經(jīng)過信號放大實現(xiàn)電動機轉(zhuǎn)向與轉(zhuǎn)速的控制。2.5 總電路圖 由各子模塊設(shè)計給得出總硬件電路設(shè)計如下圖2.5所示 圖2.5 硬件總電路圖

16、第三章 系統(tǒng)軟件設(shè)計本系統(tǒng)編程部分工作采用KELI-C51語言完成,采用模塊化的設(shè)計方法,與各子程序做為實現(xiàn)各部分功能和過程的入口,完成鍵盤輸入、按鍵識別、ADC0809讀取和DAC0832輸出以及數(shù)碼管顯示等部分的設(shè)計。開始3.1 系統(tǒng)主程序設(shè)計 系統(tǒng)初始化按鍵是否按下 N讀取鍵值 Y 減速加速 電機加速電機減速將模擬電壓轉(zhuǎn)變?yōu)閿?shù)字信號調(diào)用顯示子程序 顯示速度返回圖3.1 主程序流程圖 主程序流程圖如上圖3.1所示。系統(tǒng)初始化后,主程序通過調(diào)用各子程序完成預(yù)定動作,達(dá)到控制電機正反轉(zhuǎn)及轉(zhuǎn)速的目的。4.1 按鍵掃描程序 按鍵掃描程序采用中斷方式,按下鍵,完成延時去抖動、鍵碼識別、按鍵功能執(zhí)行。

17、要實現(xiàn)按住加/減速鍵不放時恒加或恒減速直到放開停止,就需在判斷是否松開該按鍵時,每進(jìn)行一次增加/減少一定的占空比。按鍵掃描程序流程圖如下圖3.2所示開始按鍵是否釋放 N延時去抖動、 Y鍵碼識別按鍵功能執(zhí)行加/減占空比返回圖3.2 按鍵掃描程序流程圖由流程圖設(shè)計程序如下:/*按鍵掃描*/key()if(P12=0) /如果按下, while(!P12) /去抖動 display(); k=k; if(P16=0) /啟動while(P16=0);IE=0x8a; if(P13=0) /加速while (P13=0);t+;if(t>=5)t=5;if(P14=0) /減速while(P14

18、=0);t-;if(t<1)t=1;if(P15=0) /停止while(P15=0);EA=0;P10=0;P11=0; 4.2 顯示子程序顯示子程序用于處理DAC0832處理出來的8位BCD,利用數(shù)組方式定義顯示緩存區(qū),緩存區(qū)有8位,分別存放各個數(shù)碼管要顯示的值。流程圖如下圖3.3所示開始 求各位數(shù)值,并送入各位對應(yīng)的緩沖區(qū)顯示各位數(shù)值延時顯示正反轉(zhuǎn)返回圖3.3 顯示程序流程圖由流程圖設(shè)計程序如下:/*數(shù)碼管顯示*/display()uchar i; gw=x%10; /求速度個位值,送到個位顯示緩沖區(qū)sw=(x/10)%10; /求速度十位值,送到十位顯示緩沖區(qū)bw=(x/100)

19、%10; /求速度百位值,送到百位顯示緩沖區(qū)qw=x/1000; /求速度千位值,送到千位顯示緩沖區(qū)for(i=0;i<4;)P2=ledi;if(i=0) /顯示個位P0=smggw;delays();else if(i=1) /顯示十位P0=smgsw;delays();else if(i=2) /顯示百位P0=smgbw;delays(); else if(i=3) /顯示千位 if(k=0)/正轉(zhuǎn)時顯示"三" P0=0x49; delays();else P0=0x71; /反轉(zhuǎn)時顯示"F" i+;4.3 定時中斷處理程序定時中斷處理程序:

20、采用定時方式1,因為單片機使用12M晶振,可產(chǎn)生最高約為65.5ms的延時。對定時器置初值B1E0H可定時20ms,即系統(tǒng)時鐘精度可達(dá)0.02s。當(dāng)20ms定時時間到,定時器溢出則響應(yīng)該定時中斷處理程序,完成對定時器的再次賦值,并對全局變量time加1,這樣,通過變量time可計算出系統(tǒng)的運行時間。4.4 A/D轉(zhuǎn)換程序首先判斷A/D轉(zhuǎn)換是否允許進(jìn)行,當(dāng)WR又低變高時AD開始轉(zhuǎn)換,再讀取轉(zhuǎn)換數(shù)據(jù)結(jié)果,把數(shù)據(jù)存到ad_data中,完成A/D轉(zhuǎn)換。流程圖如下圖4.4所示開始acds=0 N允許A/D轉(zhuǎn)換、 Y讀取轉(zhuǎn)換數(shù)據(jù)結(jié)果數(shù)據(jù)結(jié)果把數(shù)據(jù)存到ad_data中停止A/D轉(zhuǎn)換圖3.4 A/D轉(zhuǎn)換程序流

21、程圖 由流程圖設(shè)計程序如下:ADC0809:/啟動AD轉(zhuǎn)換子程序/void start_adc0809(void) /adcs=0; /允許進(jìn)行A/D轉(zhuǎn)換 adwr=0;delay_50us(2);adwr=1; /WR由低變高時,AD開始轉(zhuǎn)換 /adcs=1; /停止AD轉(zhuǎn)換delay_50us(10);/讀A/D數(shù)據(jù)子程序/read_ad() uint ad_data; ad1_7=0xff; /adcs=0; /允許讀 /adrd=0; /讀取轉(zhuǎn)換數(shù)據(jù)結(jié)果 delay_50us(5); ad_data=ad1_7; /把數(shù)據(jù)存到ad_data中 /adrd=1;adcs=1; /停止A/

22、D讀取 return(ad_data);第4章 系統(tǒng)仿真4.1 仿真步驟 加載目標(biāo)代碼文件 打開元器件單片機屬性窗口,在“Program File”欄中添加上面編譯好的目標(biāo)代碼文件“keil-12.hex”;在“Clock Frequency”欄中輸入晶振頻率為12MHz。ADC0809的時鐘信號設(shè)置為640kHz。啟動仿真如下頁圖所示,各按鍵功能如圖中所注,LED中顯示的為當(dāng)前電壓的數(shù)字信號值,即當(dāng)前轉(zhuǎn)速的檔位(0-256),通過調(diào)整從滑動變阻器輸出的電壓值,可以觀察到直流電機不同的轉(zhuǎn)速。通過按鍵加減速,改變電機轉(zhuǎn)速,數(shù)碼管顯示的數(shù)字也相應(yīng)改變。結(jié)果如圖4.1所示:圖4.1 仿真結(jié)果 按下加

23、速鍵后,電機轉(zhuǎn)速加快,數(shù)碼管顯示的數(shù)值增大。結(jié)果如圖4.2所示:圖4.2 仿真結(jié)果4.2 仿真結(jié)果分析通過鍵盤向單片機輸入相應(yīng)控制指令,數(shù)碼管顯示出不同的數(shù)值。當(dāng)按下加速鍵時,數(shù)碼管顯示數(shù)值增大,說明電機轉(zhuǎn)速增快;當(dāng)按下減速鍵時,數(shù)碼管顯示數(shù)值減小,說明電機轉(zhuǎn)速減慢。鍵盤通過單片機實現(xiàn)了控制電機轉(zhuǎn)速的功能。 當(dāng)改變可變電阻阻值時,電機兩端改變,數(shù)碼管顯示的數(shù)值也改變。說明電阻改變可改變電機兩端的電壓,從而達(dá)到控制直流電機的目的,且當(dāng)電壓越大時,數(shù)碼管顯示數(shù)值越大,電機轉(zhuǎn)速越快;電壓越小時,數(shù)碼管顯示數(shù)值越小,電機轉(zhuǎn)速越慢。附錄附錄一 電路原理圖及PCB板附圖1 電路原理圖附圖2 PCB板附錄二

24、 系統(tǒng)程序#include<reg52.h> #include"lcd1602.h" #include"fonction.h"uchar count=0,count2=1;uchar key_num=0;uint speed5;/bit direct_flag=1,run_flag=0;/方向標(biāo)志 運行標(biāo)志uchar pwmdata=50;sbit right=P27;sbit left=P26;/=void dsp() if(run_flag) gotoxy(1,0);display_string("running");

25、/ 顯示電機的轉(zhuǎn)動去停止情況 else gotoxy(1,0);display_string(" stop "); / if(direct_flag) gotoxy(12,0);display_string("->"); /顯示電機的轉(zhuǎn)動方向 箭頭方向 else gotoxy(12,0);display_string("<-"); / gotoxy(2,1);display_data(0,speed/300);display_data(1,speed/3%100); /顯示當(dāng)前速度 轉(zhuǎn)速 gotoxy(10,1);disp

26、lay_data(0,pwmdata/100);display_data(1,pwmdata%100); / pwmdata占空比/=void key_set() if(key_num!=0) switch(key_num) case 1:run_flag=run_flag;break; case 2:direct_flag=1;break; case 3:direct_flag=0;break;case 4:pwmdata+; if(pwmdata>=100)pwmdata=100; break; case 5:pwmdata-; if(pwmdata>=100)pwmdata=

27、0; break; key_num=0;/清零/= void main() /-硬件初始化- EA=1; ET0=1; TMOD=0X51; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; /- TH1=0; TL1=0; TR1=1; /.- EX0=1; IT0=1; /-控制端口初始化- right=0;left=0; init_lcd(); gotoxy(0,0); display_string(" stop dt:-> ");/stop 2 running 1 gotoxy(0,1); display

28、_string(" 000r/s 050% ");/2 11 /- for(;) count2+; if(count>100)count2=1; if(run_flag=0)right=0;left=0; else if(count2<=pwmdata) if(direct_flag)right=1;left=0; else right=0;left=1; else right=0;left=0; /*void init_lcd(void) /初始化lcd1602 delay(15);write_com(lcd_mode);delay(20);write_com

29、(undisplay_cursor);delay(20);write_com(0x06); /let cursor movedelay(20);write_com(0x01); /clear lcddelay(20);/*void gotoxy(uchar x,uchar y) if(y=0) write_com(0x80+x);else write_com(0xc0+x); /*void display_data(bit kuandu,char number) uchar x,y;if(kuandu=0)write_date(int_to_charnumber);else x=number/10; y=number%10;/y=number-10*x

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論