電氣單片機(jī)課程設(shè)計(jì)報(bào)告_第1頁(yè)
電氣單片機(jī)課程設(shè)計(jì)報(bào)告_第2頁(yè)
電氣單片機(jī)課程設(shè)計(jì)報(bào)告_第3頁(yè)
電氣單片機(jī)課程設(shè)計(jì)報(bào)告_第4頁(yè)
電氣單片機(jī)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、揚(yáng)州大學(xué)水利與能源動(dòng)力工程學(xué)院課程設(shè)計(jì)報(bào)告題 目: 單片機(jī)控制直流電動(dòng)機(jī) 課 程: 單片機(jī)原理及應(yīng)用課程設(shè)計(jì) 專 業(yè): 電氣工程及其自動(dòng)化 第 一 部 分任務(wù)書單片機(jī)原理及應(yīng)用課程設(shè)計(jì)任務(wù)書一、課題名稱詳見(jiàn)單片機(jī)課程設(shè)計(jì)題目(一):主要是軟件仿真,利用Proteus軟件進(jìn)行仿真設(shè)計(jì)并調(diào)試;單片機(jī)課程設(shè)計(jì)題目(二):主要是硬件設(shè)計(jì),利用單片機(jī)周立功實(shí)驗(yàn)箱進(jìn)行設(shè)計(jì)并調(diào)試。二、課程設(shè)計(jì)目的課程設(shè)計(jì)是課程教學(xué)中的一項(xiàng)重要內(nèi)容,是達(dá)到教學(xué)目標(biāo)的重要環(huán)節(jié),是綜合性較強(qiáng)的實(shí)踐教學(xué)環(huán)節(jié),它對(duì)幫助學(xué)生全面牢固地掌握課堂教學(xué)內(nèi)容、培養(yǎng)學(xué)生的實(shí)踐和實(shí)際動(dòng)手能力、提高學(xué)生全面素質(zhì)具有很重要的意義。單片機(jī)原理及應(yīng)用是一

2、門理論性、實(shí)用性和實(shí)踐性都很強(qiáng)的課程,課程設(shè)計(jì)環(huán)節(jié)應(yīng)占有更加重要的地位。單片機(jī)原理及應(yīng)用課程設(shè)計(jì)的目的是讓學(xué)生在理論學(xué)習(xí)的基礎(chǔ)上,通過(guò)完成一個(gè)涉及MCS-51單片機(jī)多種資源應(yīng)用并具有綜合功能的小系統(tǒng)目標(biāo)板的設(shè)計(jì)與編程應(yīng)用,使學(xué)生不但能將課堂上學(xué)到的理論知識(shí)與實(shí)際應(yīng)用結(jié)合起來(lái),而且能進(jìn)一步加深對(duì)電子電路、電子元器件等知識(shí)的認(rèn)識(shí)與理解,同時(shí)在軟件編程、排錯(cuò)調(diào)試、相關(guān)軟件和儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。為今后能夠獨(dú)立進(jìn)行某些單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)工作打下一定的基礎(chǔ)。通過(guò)單片機(jī)硬件和軟件設(shè)計(jì)、調(diào)試、整理資料等環(huán)節(jié)的培訓(xùn),使學(xué)生初步掌握工程設(shè)計(jì)方法和組織實(shí)踐的基本技能,逐步熟悉開(kāi)展科

3、學(xué)實(shí)踐的程序和方法。三、課程設(shè)計(jì)內(nèi)容設(shè)計(jì)以89C51單片機(jī)和外圍元器件構(gòu)成的單片機(jī)應(yīng)用系統(tǒng),并完成相應(yīng)的軟硬件調(diào)試。1. 系統(tǒng)方案設(shè)計(jì):綜合運(yùn)用單片機(jī)課程中所學(xué)到的理論知識(shí),學(xué)生根據(jù)所選課題的任務(wù)、要求和條件進(jìn)行總體方案的設(shè)計(jì)。2. 硬件電路設(shè)計(jì):對(duì)方案中以單片機(jī)為核心的電路進(jìn)行設(shè)計(jì)計(jì)算,包括元器件的選擇和電路參數(shù)的計(jì)算,并畫出總體電路圖。3. 軟件設(shè)計(jì):根據(jù)已設(shè)計(jì)出的軟件系統(tǒng)框圖,用匯編語(yǔ)言或C51編制出各功能模塊的子程序和整機(jī)軟件系統(tǒng)的主程序。4. 調(diào)試:在單片機(jī)EDA仿真軟件環(huán)境Proteus下進(jìn)行仿真設(shè)計(jì)并調(diào)試;或在單片機(jī)周立功實(shí)驗(yàn)箱上進(jìn)行相關(guān)設(shè)計(jì)并調(diào)試。四、課程設(shè)計(jì)要求詳見(jiàn)單片機(jī)課程

4、設(shè)計(jì)題目(一) 單片機(jī)課程設(shè)計(jì)題目(二)五、進(jìn)度安排序號(hào)內(nèi)容天數(shù)1布置任務(wù),熟悉課題要求0.52總體方案確定,硬件電路設(shè)計(jì)1.53軟件編程1.54Proteus仿真,或在周立功實(shí)驗(yàn)箱上調(diào)試25總結(jié),撰寫課程設(shè)計(jì)報(bào)告1.5七、課程設(shè)計(jì)報(bào)告內(nèi)容:總結(jié)設(shè)計(jì)過(guò)程,寫出設(shè)計(jì)報(bào)告,設(shè)計(jì)報(bào)告具體內(nèi)容要求如下:1課程設(shè)計(jì)的目和設(shè)計(jì)的內(nèi)容。2課程設(shè)計(jì)的要求。3控制系統(tǒng)總框圖及系統(tǒng)工作原理。4控制系統(tǒng)的硬件電路連接圖,電路的原理。 5軟件設(shè)計(jì)流程圖及其說(shuō)明。6電路設(shè)計(jì),軟件編程、調(diào)試中遇到的問(wèn)題及分析解決方法。7實(shí)驗(yàn)結(jié)果及其分析。8體會(huì)。第 二 部 分課程設(shè)計(jì)報(bào)告目 錄 1 課題簡(jiǎn)介71.1 課題目的71.2 課

5、題任務(wù)與要求:72 方案設(shè)計(jì)72.1 控制系統(tǒng)總體介紹72.2 工作原理83 硬件電路設(shè)計(jì)93.1 AT89C51單片機(jī)介紹93.2 DAC0830芯片介紹103.3 ADC0808芯片介紹103.4 MAX7219芯片介紹113.5 LED數(shù)碼管143.6 直流電機(jī)環(huán)節(jié)144 軟件編程設(shè)計(jì)164.1 算法總流程圖164.2 控制電機(jī)轉(zhuǎn)速流程圖174.3 主程序174.4 中斷程序184.5 A/D轉(zhuǎn)換程序194.6 D/A轉(zhuǎn)換程序194.7 電壓數(shù)字信號(hào)值增減子程序205 實(shí)驗(yàn)與結(jié)果分析205.1 Proteus仿真調(diào)試205.2 電機(jī)轉(zhuǎn)速的測(cè)定215.3 電機(jī)電壓數(shù)字信號(hào)值的測(cè)定216 小

6、結(jié)與體會(huì)22參 考 文 獻(xiàn)24附錄(源程序)251 課題簡(jiǎn)介 1.1 課題目的:熟練掌握直流電動(dòng)機(jī)的速度控制,會(huì)利用單片機(jī)控制直流電動(dòng)機(jī)的轉(zhuǎn)速,能夠熟練運(yùn)用A/D、D/A轉(zhuǎn)換器,熟練掌握MAX7219顯示驅(qū)動(dòng)芯片的工作原理,靈活掌握單片機(jī)各種程序的調(diào)試方法。1.2 課題任務(wù)與要求:采用單片機(jī)設(shè)計(jì)一個(gè)控制直流電機(jī)并測(cè)量轉(zhuǎn)速的裝置。單片機(jī)擴(kuò)展有A/D轉(zhuǎn)換芯片ADC0809和D/A轉(zhuǎn)換芯片DAC0832。 (1)通過(guò)改變A/D輸入端可變電阻來(lái)改變A/D的輸入電壓,D/A輸入檢測(cè)量大小,進(jìn)而改變直流電機(jī)的轉(zhuǎn)速。 (2)手動(dòng)控制。在鍵盤上設(shè)置兩個(gè)按鍵直流電動(dòng)機(jī)加速鍵和直流電機(jī)減速鍵。在手動(dòng)狀態(tài)下,每按一

7、次鍵,電機(jī)的轉(zhuǎn)速按照約定的速率改變。 (3)鍵盤列掃描(4×6)。2 方案設(shè)計(jì)2.1 控制系統(tǒng)總體介紹為了能夠演示DAC0832的使用,未使用PWM驅(qū)動(dòng)方式。而是利用直流電機(jī)的速度與施加電壓成正比的原理,通過(guò)滑動(dòng)變阻器向ADC0809輸入控制電壓信號(hào),經(jīng)A/D后,輸入到AT89C51中,AT89C51將此信號(hào)轉(zhuǎn)發(fā)給DAC0832,通過(guò)功放電路放大后,驅(qū)動(dòng)直流電機(jī)。需要注意的是,本題目使用的Proteus版本,未提供ADC0809的仿真模型,這里以引腳、功能與之相同的ADC0808代替。同時(shí),DAC0832也可以用引腳、功能相同的DAC0830代替。ADC0809與DAC0832在教材

8、中已有詳細(xì)介紹,在此不再敘述。按照其時(shí)序圖,如下圖2.1和圖2.2操作即可。圖2.1 ADC0808時(shí)序圖圖2.2 DAC0830時(shí)序圖2.2 工作原理 本題目難點(diǎn)是對(duì)直流電機(jī)的控制。與步進(jìn)電機(jī)類似,直流電機(jī)也可精確地控制旋轉(zhuǎn)速度或轉(zhuǎn)矩。 直流電機(jī)是通過(guò)兩個(gè)磁場(chǎng)的互作用產(chǎn)生旋轉(zhuǎn)。其結(jié)構(gòu)如下圖2.3所示,固定部分(定子)上,裝設(shè)了一對(duì)直流勵(lì)磁的靜止的主磁極N和S,在旋轉(zhuǎn)部分(轉(zhuǎn)子)上裝設(shè)電樞鐵心。定子與轉(zhuǎn)子之間有一氣隙。在電樞鐵心上放置了由A和X 兩根導(dǎo)體連成的電樞線圈,線圈的首端和末端分別連到兩個(gè)圓弧形的銅片上,此銅片稱為換向片。 圖2.3 有刷直流電機(jī)結(jié)構(gòu)示意圖換向片之間互相絕緣,由換向片構(gòu)

9、成的整體稱為換向器。換向器固定在轉(zhuǎn)軸上,換向片與轉(zhuǎn)軸之間亦互相絕緣。在換向片上放置著一對(duì)固定不動(dòng)的電刷B1和B2,當(dāng)電樞旋轉(zhuǎn)時(shí),電樞線圈通過(guò)換向片和電刷與外電路接通。定子通過(guò)永磁體或受激勵(lì)電磁鐵產(chǎn)生一個(gè)固定磁場(chǎng),由于轉(zhuǎn)子由一系列電磁體構(gòu)成,當(dāng)電流通過(guò)其中一個(gè)繞組時(shí)會(huì)產(chǎn)生一個(gè)磁場(chǎng)。對(duì)有刷直流電機(jī)而言,轉(zhuǎn)子上的換向器和定子的電刷在電機(jī)旋轉(zhuǎn)時(shí)為每個(gè)繞組供給電能。通電轉(zhuǎn)子繞組與定子磁體有相反極性,因而相互吸引,使轉(zhuǎn)子轉(zhuǎn)動(dòng)至與定子磁場(chǎng)對(duì)準(zhǔn)的位置。當(dāng)轉(zhuǎn)子到達(dá)對(duì)準(zhǔn)位置時(shí),電刷通過(guò)換向器為下一組繞組供電,從而使轉(zhuǎn)子維持旋轉(zhuǎn)運(yùn)動(dòng),如圖2.4所示。圖2.4 電刷供電原理直流電機(jī)的速度與施加的電壓成正比,輸出轉(zhuǎn)矩則

10、與電流成正比。由于必須在工作期間改變直流電機(jī)的速度,直流電機(jī)的控制是一個(gè)較困難的問(wèn)題。直流電機(jī)高效運(yùn)行的最常見(jiàn)方法是施加一個(gè) PWM(脈寬調(diào)制)方波,其占空比對(duì)應(yīng)于所需速度。電機(jī)起到一個(gè)低通濾波器作用,將PWM信號(hào)轉(zhuǎn)換為有效直流電平。特別是對(duì)于微處理器驅(qū)動(dòng)的直流電機(jī),由于PWM信號(hào)相對(duì)容易產(chǎn)生,這種驅(qū)動(dòng)方式使用的更為廣泛。 3 硬件電路設(shè)計(jì)3.1 AT89C51單片機(jī)介紹圖3.1 AT89C51接線圖AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(PEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,

11、俗稱單片機(jī)。由上圖可知,P0口作為A/D轉(zhuǎn)換器數(shù)字電壓量輸入口,其結(jié)果存放于單片機(jī)內(nèi)部RAM的3AH單元中,P2口與D/A轉(zhuǎn)換器相連。P1口中P1.0、P1.1、P1.2作為與MAX7219的聯(lián)絡(luò)口,其中DIN(串行數(shù)據(jù)輸入端)與P1.0相連,LOAD(裝載數(shù)據(jù)輸入端)與P1.1端口相連,CLK(串行時(shí)鐘輸入)與P1.2相連。P1.3與D/A片選CS(低電平有效)相連,P1.4與D/A寫信號(hào)WR(低電平有效)相連,P1.5與A/D口啟動(dòng)信號(hào)START(高電平有效)相連,P1.6與A/D轉(zhuǎn)換結(jié)束標(biāo)志EOC(低電平有效)相連,P1.7與A/D輸出有效OE端口相連。P3口中,P3.0與P3.1作為外

12、部脈沖開(kāi)關(guān)接口,P3.5作為定時(shí)器T1中斷接口。3.2 DAC0830芯片介紹圖3.2 DAC0832接線圖DAC0830直接與單片機(jī)相連,DI0-DI7端口與單片機(jī)相應(yīng)引腳相連,GND、RFB、WR2、XFER、IOUT2接地。選地址為FFF8H,輸出模擬電壓,具體程序見(jiàn)本文軟件編程設(shè)計(jì)以及附錄部分。3.3 ADC0808芯片介紹 圖3.3 ADC0808接線圖 ADC0808直接與單片機(jī)相連,OUT1-OUT8與單片機(jī)相應(yīng)引腳相連,IN0接滑動(dòng)變阻器接線端,選中0通道作為A/D轉(zhuǎn)換通道,輸入電壓模擬信號(hào)時(shí)鐘頻率為640K,具體程序見(jiàn)本文軟件編程設(shè)計(jì)以及附錄部分。3.4 MAX7219芯片介

13、紹圖3.4 MAX7219接線圖 MAX7219是一種集成化的串行輸入/輸出共陰極顯示驅(qū)動(dòng)器,它連接微處理器與8位數(shù)字的7段數(shù)字LED顯示,也可以連接條線圖顯示器或者64個(gè)獨(dú)立的LED。其上包括一個(gè)片上的B型BCD編碼器、多路掃描回路,段字驅(qū)動(dòng)器,而且還有一個(gè)8×8的靜態(tài)RAM用來(lái)存儲(chǔ)每一個(gè)數(shù)據(jù)。 只有一個(gè)外部寄存器用來(lái)設(shè)置各個(gè)LED的段電流。 MAX7221與SPI、 QSPI以及 MICROWIRE相兼容,同時(shí)它有限制回轉(zhuǎn)電流的段驅(qū)動(dòng)來(lái)減少EMI(電磁干擾)。 一個(gè)方便的四線串行接口可以聯(lián)接所有通用的微處理器。 每個(gè)數(shù)據(jù)可以尋址在更新時(shí)不需要改寫所有的顯示。MAX7219/MAX

14、7221同樣允許用戶對(duì)每一個(gè)數(shù)據(jù)選擇編碼或者不編碼。 整個(gè)設(shè)備包含一個(gè)150A的低功耗關(guān)閉模式,模擬和數(shù)字亮度控制,一個(gè)掃描限制寄存器允許用戶顯示1-8位數(shù)據(jù),還有一個(gè)讓所有LED發(fā)光的檢測(cè)模式。MAX7219的外部引腳分配如圖3.5所示,內(nèi)部引腳分配如圖3.6所示。圖3.5 MAX7219的外部引腳分配圖3.6 MAX7219的內(nèi)部引腳分配各引腳的功能為:DIN:串行數(shù)據(jù)輸入端DOUT:串行數(shù)據(jù)輸出端,用于級(jí)連擴(kuò)展LOAD:裝載數(shù)據(jù)輸入CLK:串行時(shí)鐘輸入DIG0DIG7:8位LED位選線,從共陰極LED中吸入電流SEG ASEG G DP 7段驅(qū)動(dòng)和小數(shù)點(diǎn)驅(qū)動(dòng)ISET: 通過(guò)一個(gè)10k電阻

15、和Vcc相連,設(shè)置段電流1.MAX7219有下列幾組寄存器:MAX7219內(nèi)部的寄存器主要有:譯碼控制寄存器、亮度控制寄存器、掃描界限寄存器、關(guān)斷模式寄存器、測(cè)試控制寄存器。編程時(shí)只有正確操作這些寄存器,MAX7219才可工作。(1)譯碼控制寄存器(X9H) 如圖3.7所示,MAX7219有兩種譯碼方式:B譯碼方式和不譯碼方式。當(dāng)選擇不譯碼時(shí),8個(gè)數(shù)據(jù)為分別一一對(duì)應(yīng)7個(gè)段和小數(shù)點(diǎn)位;B譯碼方式是BCD譯碼,直接送數(shù)據(jù)就可以顯示。實(shí)際應(yīng)用中可以按位設(shè)置選擇B譯碼或是不譯碼方式。圖3.7 MAX7219的譯碼控制寄存器(2)掃描界限寄存器(XBH) 如圖3.8所示,此寄存器用于設(shè)置顯示的LED的個(gè)

16、數(shù)(18),比如當(dāng)設(shè)置為0xX4時(shí),LED 05顯示。 圖3.8 MAX7219的掃描界限控制寄存器 (3)亮度控制寄存器(XAH)共有16級(jí)可選擇,用于設(shè)置LED的顯示亮度,從0xX00xXF(4)關(guān)斷模式寄存器(XCH)共有兩種模式選擇,一是關(guān)斷狀態(tài),(最低位 D0=0)一是正常工作狀態(tài)(D0=1)。(5)顯示測(cè)試寄存器(XFH)用于設(shè)置LED是測(cè)試狀態(tài)還是正常工作狀態(tài),當(dāng)測(cè)試狀態(tài)時(shí)(最低位 D0=1)各位顯示全亮,正常工作狀態(tài)(D0=0)。各寄存器具體操作見(jiàn)驅(qū)動(dòng)程序詳解。2.讀寫時(shí)序說(shuō)明 MAX7219是SPI總線驅(qū)動(dòng)方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄

17、存器的數(shù)據(jù)。要想與MAX7129通信,首先要先了解MAX7129的控制字。MAX7129的控制字格式如圖3.9。圖3.9 控制字(地址及命令字節(jié)) 如圖,工作時(shí),MAX7219規(guī)定一次接收16位數(shù)據(jù),在接收的16位數(shù)據(jù)中:D15D12可以與操作無(wú)關(guān),可以任意寫入,D11D8決定所選通的內(nèi)部寄存器地址,D7D0為待顯示數(shù)據(jù)或是初始化控制字。在CLK脈沖作用下,DIN的數(shù)據(jù)以串行方式依次移入內(nèi)部16位寄存器,然后在一個(gè)LOAD上升沿作用下,鎖存到內(nèi)部的寄存器中。注意在接收時(shí),先接收最高位D16,最后是D0,因此,在程序發(fā)送時(shí)必須先送高位數(shù)據(jù),在循環(huán)移位。工作時(shí)序圖見(jiàn)圖3.10。圖3.10

18、 數(shù)據(jù)讀寫時(shí)序3.5LED數(shù)碼管圖3.11 LED數(shù)碼管顯示結(jié)果 LED數(shù)碼管(LED Segment Displays)是由多個(gè)發(fā)光二極管封裝在一起組成的“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a,b,c,d,e,f,g,dp來(lái)表示。在本次課程設(shè)計(jì)中,設(shè)定前三位顯示當(dāng)前電壓數(shù)字信號(hào)值D(如上圖3.12所示),后兩位顯示電機(jī)轉(zhuǎn)速R/MIN(如上圖3.11所示)。3.6直流電機(jī)環(huán)節(jié)圖3.12 直流電機(jī)環(huán)節(jié) 本次課程設(shè)計(jì)中,使用集成運(yùn)放放大環(huán)節(jié)放大來(lái)自DAC0830輸出電壓控制模擬量。

19、為了便于測(cè)速,直流電機(jī)選擇可編碼直流電機(jī),上面三個(gè)引腳輸出頻率相同但相位不同的脈沖(參數(shù)設(shè)定如下圖3.13所示),直流電機(jī)外接電壓值為12V。如果假設(shè)定時(shí)器計(jì)數(shù)時(shí)間為ts,每轉(zhuǎn)有m個(gè)脈沖,則在定時(shí)時(shí)間ts內(nèi)共接收到N個(gè)脈沖,則電機(jī)轉(zhuǎn)速可用下式表達(dá)。對(duì)于本課題,設(shè)置每轉(zhuǎn)有60脈沖,定時(shí)時(shí)間為1s。故由上述表達(dá)式可知,在計(jì)數(shù)器收到的脈沖數(shù)即為轉(zhuǎn)速。具體程序見(jiàn)本文軟件編程設(shè)計(jì)以及附錄部分。圖3.13 電機(jī)參數(shù)值設(shè)定4軟件編程設(shè)計(jì)4.1 算法總流程圖 用51單片的P3.0與P3.1口接加速鍵與減速鍵,通過(guò)不斷的查鍵來(lái)檢測(cè)按鍵狀態(tài),從而執(zhí)行相應(yīng)的子程序。圖4.1 算法總流程圖 檢驗(yàn)按鍵狀態(tài),如果是加速鍵

20、按下,則啟動(dòng)電壓數(shù)字信號(hào)值增5D的子程序(UP),并通過(guò)MAX7219在LED數(shù)碼管上顯示出來(lái);如果是減速鍵按下,則將電壓數(shù)字信號(hào)值減5D并在LED數(shù)碼管上顯示。否則一直查鍵,直到檢測(cè)到按鍵狀態(tài)為止。4.2控制電機(jī)轉(zhuǎn)速流程圖 通過(guò)A/D、D/A轉(zhuǎn)換來(lái)檢測(cè)輸出脈沖數(shù),從而測(cè)定出直流電機(jī)的轉(zhuǎn)速。圖4.2 控制電機(jī)轉(zhuǎn)速流程圖首先讀取滑動(dòng)變阻器的電壓值送入ADC0808進(jìn)行A/D轉(zhuǎn)換,讀取轉(zhuǎn)換的結(jié)果存放在51單片機(jī)的3AH單元中。將3AH單元內(nèi)容送入DAC0830進(jìn)行D/A轉(zhuǎn)換,經(jīng)運(yùn)放電路,控制電機(jī)兩端電壓。計(jì)數(shù)電機(jī)輸出脈沖,并送入MAX7219中,在LED上顯示出來(lái)。4.3 主程序MAIN:LCAL

21、L INITIAL_7219 ;對(duì)MAX7219的初始化 MOV TMOD,#51H ;T1計(jì)數(shù)器,T0定時(shí)器MOV R7,#14HMOV TL0,#0B0H ;給T0設(shè)初值MOV TH0,#3CHMOV TL1,#0 ;計(jì)數(shù)初值置零MOV TH1,#0CLR P1.3 ;選中D/ACLR P1.4 ;D/A的WR引腳置0,隨時(shí)進(jìn)行DA轉(zhuǎn)換SETB ET0 ;啟動(dòng)T0、T1中斷SETB ET1SETB TR0 SETB TR1SETB EASETB P3.0 ;按鍵初始化SETB P3.1 以上程序段包括對(duì)T0、T1的初始化,給T0定時(shí)器設(shè)置的時(shí)長(zhǎng)為50ms,TH0置為3CH,TL0置為0BH

22、,總共循環(huán)20次,定時(shí)時(shí)間為1S。用T1計(jì)數(shù)器對(duì)來(lái)自控制電機(jī)轉(zhuǎn)速脈沖進(jìn)行計(jì)數(shù)。除此之外,還有對(duì)MAX7219顯示單元的初始化,以及對(duì)按鍵P3.0、P3.1的初始化等。BEFORE_KEY:LCALL ADC0808MOV A,3AH ;從3AH中取A/D轉(zhuǎn)換結(jié)果MOV P2,A ;進(jìn)行D/A轉(zhuǎn)換LCALL BIN_DECIMAL ;2進(jìn)制轉(zhuǎn)換10進(jìn)制LCALL ALL_SHOW ;調(diào)用顯示JNB P3.0,UP ;查鍵JNB P3.1,DOWNLJMP BEFORE_KEYRE_CHECK:JNB P3.0,UPJNB P3.1,DOWNLCALL ALL_SHOWAJMP RE_CHECK以

23、上程序段包括調(diào)用A/D、D/A轉(zhuǎn)換,調(diào)用2進(jìn)制轉(zhuǎn)換10進(jìn)制,調(diào)用顯示以及查鍵的調(diào)用命令語(yǔ)句。4.4 中斷程序JISHU:MOV TL0,#0B0HMOV TH0,#3CHDJNZ R7,LOP ;循環(huán)20次MOV R7,#14HCLR TR1 ;停止計(jì)數(shù)MOV A,TL1 ;取計(jì)數(shù)值MOV B,#0AH ;2進(jìn)制轉(zhuǎn)換10進(jìn)制DIV ABMOV 26H,AMOV A,BMOV 27H,A MOV TL1,#0MOV TH1,#0 SETB TR1 ;啟動(dòng)計(jì)數(shù)LOP:RETI以上中斷程序?qū)χ绷麟姍C(jī)轉(zhuǎn)速脈沖進(jìn)行計(jì)數(shù),中斷時(shí)間為1s。在將計(jì)數(shù)值送入顯示緩沖區(qū)26H、27H之前,需將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制

24、數(shù)。轉(zhuǎn)換之后,需要給TL0以及TL1重新賦處置#0。4.5 A/D轉(zhuǎn)換程序ADC0808:SETB P1.5 ;產(chǎn)生START信號(hào),開(kāi)啟A/D轉(zhuǎn)換NOPNOPNOPCLR P1.5AD:JNB P1.6,ADMOV DPTR,#0FFF8HMOVX A,DPTR ;讀取A/D轉(zhuǎn)換結(jié)果,放于3AH單元MOV 3AH,ARET以上為A/D轉(zhuǎn)換程序,首先“SETB P1.5 ”命令語(yǔ)句開(kāi)啟A/D轉(zhuǎn)換,轉(zhuǎn)換完成之后要將轉(zhuǎn)換后的內(nèi)容存放在51單片機(jī)3AH單元中。4.6 D/A轉(zhuǎn)換程序CARE:MOV P2,A ;啟動(dòng)D/A LCALL BIN_DECIMAL LCALL ALL_SHOW ;調(diào)用顯示SE

25、TB P3.1 ;下降鍵置1為下一次做準(zhǔn)備LJMP RE_CHECKBIN_DECIMAL:MOV B,#0AH ;2進(jìn)制轉(zhuǎn)換為10進(jìn)制DIV ABPUSH ACCMOV A,B MOV 22H,APOP ACCMOV B,#10DIV ABMOV 20H,AMOV A,BMOV 21H,ARET 以上為D/A轉(zhuǎn)換程序,通過(guò)“MOV P2,A”命令語(yǔ)句開(kāi)啟D/A轉(zhuǎn)換。在轉(zhuǎn)換完成之后同樣要將二進(jìn)制轉(zhuǎn)換為十進(jìn)制,并通過(guò)調(diào)用顯示程序顯示出來(lái)。4.7 電壓數(shù)字信號(hào)值增減子程序UP:MOV A,P2PUSH ACCCLR C SUBB A,#200POP ACCJNC CARADD A,#05H ;每次

26、2進(jìn)制電壓數(shù)值加5DOWN:MOV A,P2PUSH ACCCLR CSUBB A,#31 POP ACCJC CAREESUBB A,#05H ;每次減5以上為電壓數(shù)字信號(hào)值增減子程序,設(shè)定最大值為200D,最小值為30D,每次的增量與減量均為5D。5 實(shí)驗(yàn)與結(jié)果分析5.1 Proteus仿真調(diào)試在Keil中編譯好相應(yīng)的程序之后,與Proteus進(jìn)行聯(lián)調(diào)。打開(kāi)Options for Target Target 1進(jìn)行相關(guān)參數(shù)值的設(shè)定:在Target這一欄里設(shè)置頻率為12MHZ;在Output這一欄里勾選Create HEX_file的選項(xiàng);在Debug選項(xiàng)中勾選Proteus VSM Sim

27、ulator,然后進(jìn)行聯(lián)調(diào)。參數(shù)選擇見(jiàn)圖5.1所示。圖5.1 聯(lián)調(diào)參數(shù)值設(shè)定 聯(lián)調(diào)之后,電機(jī)轉(zhuǎn)動(dòng),調(diào)節(jié)加速鍵與減速鍵,顯示出不同的電機(jī)轉(zhuǎn)速值與電壓數(shù)字信號(hào)值。發(fā)現(xiàn)當(dāng)電壓數(shù)字信號(hào)值小于25D時(shí),電機(jī)停止轉(zhuǎn)動(dòng)。重新修改程序,設(shè)定電壓數(shù)字信號(hào)值最小為30D,最大為200D。再次聯(lián)調(diào),運(yùn)行成功。5.2 電機(jī)轉(zhuǎn)速的測(cè)定 在本次課程設(shè)計(jì)中,為了便于測(cè)速,直流電機(jī)選擇可編碼直流電機(jī),上面三個(gè)引腳輸出頻率相同但相位不同的脈沖。假設(shè)定時(shí)器計(jì)數(shù)時(shí)間為ts,每轉(zhuǎn)有m個(gè)脈沖,則在定時(shí)時(shí)間ts內(nèi)共接收到N個(gè)脈沖,則電機(jī)轉(zhuǎn)速可用下式表達(dá)。對(duì)于本課題,設(shè)置每轉(zhuǎn)有60個(gè)脈沖,定時(shí)時(shí)間為1s。故由上述表達(dá)式可知,在計(jì)數(shù)器收到的

28、脈沖數(shù)即為轉(zhuǎn)速。通過(guò)調(diào)節(jié)加速鍵以及減速鍵可以在數(shù)碼管顯示不同的直流電機(jī)轉(zhuǎn)速。 圖5.2 電機(jī)轉(zhuǎn)速 由上圖5.2可以看出,電機(jī)在不同按鍵情況下的轉(zhuǎn)速分別為56R/MIN和63R/MIN,電機(jī)轉(zhuǎn)速測(cè)定成功。5.3 電機(jī)電壓數(shù)字信號(hào)值的測(cè)定通過(guò)修改后的程序,電機(jī)的電壓數(shù)字信號(hào)值最小值為30D(見(jiàn)下圖5.3),最大值為200D(見(jiàn)下圖5.4)。每次按下加速鍵時(shí),電壓數(shù)字信號(hào)值增5D(見(jiàn)下圖5.3);每次按下減速鍵時(shí)。電壓數(shù)字信號(hào)值減5D(見(jiàn)下圖5.4)。 圖5.3 電壓數(shù)字信號(hào)值的下限值及其增5D狀態(tài) 圖5.4 電壓數(shù)字信號(hào)值的上限值及其減5D狀態(tài)電壓數(shù)字信號(hào)值的下限值與上限值如上圖所示,電壓數(shù)字信號(hào)

29、值測(cè)定成功。由上述調(diào)試結(jié)果可知,調(diào)試結(jié)果滿足本課題課程設(shè)計(jì)的要求“通過(guò)改變A/D輸入端可變電阻來(lái)改變A/D的輸入電壓,D/A輸入檢測(cè)量大小,進(jìn)而改變直流電機(jī)的轉(zhuǎn)速”與“手動(dòng)控制。在鍵盤上設(shè)置兩個(gè)按鍵直流電動(dòng)機(jī)加速鍵和直流電機(jī)減速鍵。在手動(dòng)狀態(tài)下,每按一次鍵,電機(jī)的轉(zhuǎn)速按照約定的速率改變”。本次課程設(shè)計(jì)取得圓滿成功。6 小結(jié)與體會(huì)回顧這次單片機(jī)課程設(shè)計(jì),感慨頗多、收獲頗豐。在這次為期一周的時(shí)間里,我確實(shí)學(xué)到了許多課堂上、課本上所學(xué)不到的東西。參 考 文 獻(xiàn)1 張毅剛主編,單片機(jī)原理及應(yīng)用,北京:高等教育出版社,20042 鐘啟仁編著,單片機(jī)原理與實(shí)踐,北京:北京航空航天大學(xué)出版社,20123 段

30、晨東主編,單片機(jī)原理及接口技術(shù),北京:清華大學(xué)出版社,20084 彭喜元編著,單片機(jī)原理與應(yīng)用設(shè)計(jì),北京:電子工業(yè)出版社,20085 李林功主編,單片機(jī)原理與應(yīng)用,北京:機(jī)械工業(yè)出版社, 20086 胡亞琪主編,單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì),西安:西安電子科技大學(xué)出版社, 20107 樓然苗主編,51系列單片機(jī)原理及設(shè)計(jì)實(shí)例,北京:北京航空航天大學(xué)出版社, 20108 鄧紅主編,單片機(jī)實(shí)驗(yàn)與應(yīng)用設(shè)計(jì)教程,北京:冶金工業(yè)出版社, 20109 張永楓主編,單片機(jī)應(yīng)用實(shí)訓(xùn)教程,西安:西安電子科技大學(xué)出版社, 200510 樓然苗編著,單片機(jī)課程設(shè)計(jì)指導(dǎo),北京:北京航空航天大學(xué)出版社, 201211 鄭毛

31、祥編著,單片機(jī)應(yīng)用基礎(chǔ),北京:人民郵電出版社, 200612 馬淑華編著,單片機(jī)原理與接口技術(shù),北京:北京郵電大學(xué)出版社, 200513 求是科技編著,8051系列單片機(jī)C語(yǔ)言程序設(shè)計(jì)完全手冊(cè),北京:人民郵電出版社, 200614 劉文濤主編,單片機(jī)應(yīng)用開(kāi)發(fā)實(shí)例,北京:清華大學(xué)出版社, 200515 賴麒文編著,8051單片機(jī)嵌入式系統(tǒng)應(yīng)用,北京:科學(xué)出版社, 200216 張俊謨主編,單片機(jī)中級(jí)教程,北京:北京航空航天大學(xué)出版社, 1999附錄(源程序)DIN EQU P1.0 ;P1.0,P1.1,P1.2口與MAX7219的DIN,CLK,LOAD端口相連LOAD EQU P1.1 CL

32、K EQU P1.2 ORG 0000HLJMP MAINORG 000BHLJMP JISHUORG 0100HMAIN:LCALL INITIAL_7219 ;初始化 MOV TMOD,#51H ;T1計(jì)數(shù)器,T0定時(shí)器MOV R7,#14HMOV TL0,#0B0H ;給T0設(shè)初值MOV TH0,#3CHMOV TL1,#0 ;計(jì)數(shù)初值置零MOV TH1,#0CLR P1.3 ;選中D/ACLR P1.4 ;D/A WR引腳置0,隨時(shí)進(jìn)行D/A轉(zhuǎn)換SETB ET0 ;初始化SETB ET1SETB TR0SETB TR1SETB EASETB P3.0 ;按鍵初始化SETB P3.1BE

33、FORE_KEY:LCALL ADC0808MOV A,3AH ;從3AH中取A/D轉(zhuǎn)換結(jié)果MOV P2,A ;進(jìn)行D/A轉(zhuǎn)換LCALL BIN_DECIMAL ;2進(jìn)制轉(zhuǎn)換10進(jìn)制LCALL ALL_SHOW ;調(diào)用顯示JNB P3.0,UP ;查鍵JNB P3.1,DOWNLJMP BEFORE_KEYADC0808:SETB P1.5 ;產(chǎn)生START信號(hào),開(kāi)啟A/DNOPNOPNOPCLR P1.5AD:JNB P1.6,ADMOV DPTR,#0FFF8HMOVX A,DPTR ;讀取A/D轉(zhuǎn)換結(jié)果,放于3AHMOV 3AH,ARETRE_CHECK:JNB P3.0,UPJNB P

34、3.1,DOWNLCALL ALL_SHOWAJMP RE_CHECKUP:MOV A,P2PUSH ACCCLR C SUBB A,#200POP ACCJNC CARADD A,#05H ;每次2進(jìn)制電壓數(shù)值加5CARRYON:MOV P2,A ;啟動(dòng)D/ALCALL BIN_DECIMAL ;2進(jìn)制轉(zhuǎn)換為10進(jìn)制 LCALL ALL_SHOW ;調(diào)用顯示SETB P3.0 ;上升鍵置1LJMP RE_CHECK ;繼續(xù)查鍵CAR: MOV A,#200LJMP CARRYONDOWN:MOV A,P2PUSH ACCCLR CSUBB A,#31 POP ACCJC CAREESUBB

35、A,#05H ;每次減5CARE:MOV P2,A ;啟動(dòng)DA LCALL BIN_DECIMAL ;2進(jìn)制轉(zhuǎn)換為10進(jìn)制 LCALL ALL_SHOW ;調(diào)用顯示SETB P3.1 ;下降鍵置1為下一次做準(zhǔn)備LJMP RE_CHECKCAREE: MOV A,#30LJMP CAREJISHU:MOV TL0,#0B0HMOV TH0,#3CHDJNZ R7,LOP ;循環(huán)20次MOV R7,#14HCLR TR1 ;停止計(jì)數(shù)MOV A,TL1 ;取計(jì)數(shù)值MOV B,#0AH ;2進(jìn)制轉(zhuǎn)換10進(jìn)制DIV ABMOV 26H,AMOV A,BMOV 27H,A MOV TL1,#0MOV TH1,#0 SETB TR1 ;啟動(dòng)計(jì)數(shù)LOP: RETIBIN_DECIMAL:MOV B,#0AHDIV ABPUSH ACCMOV A,BMOV 22H,APOP ACCMOV B,#10DIV ABMOV 20H,AMOV A,BMOV 21H,ARETALL_SHOW: LCALL M

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論