




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書目錄摘要 .11設(shè)計(jì)任務(wù)與要求 .21.1設(shè)計(jì)目的 .21.2設(shè)計(jì)要求和設(shè)計(jì)指標(biāo) .22方案分析 .33系統(tǒng)硬件部分 .43.1主控模塊 .43.2鍵盤輸入模塊 .73.3電機(jī)模塊 .83.4顯示模塊 .114系統(tǒng)軟件部分 .134.1整體流程圖及主程序 .134.2按鍵流程圖及程序 .144.3顯示模塊程序 .194.4電動機(jī)模塊流程圖及程序 .204.5中斷程序 .225仿真運(yùn)行 .246心得體會 .25參考文獻(xiàn) .26附錄一: Protues 硬件仿真圖 .27附錄二:系統(tǒng)程序 .27武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書摘要步進(jìn)電機(jī)在控制系統(tǒng)中
2、具有很廣泛的應(yīng)用。 它可以把脈沖信號轉(zhuǎn)換成角位移,并且可用作電磁制動輪、電磁差分器或角位移發(fā)生器等。步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元步進(jìn)電機(jī)件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響, 當(dāng)步進(jìn)驅(qū)動器接收到一個脈沖信號, 它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個固定的角度,稱為“步距角” ,它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的。 可以通過控制脈沖個數(shù)來控制角位移量, 從而達(dá)到準(zhǔn)確定位的目的;同時可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的速度和加速度, 從而達(dá)到調(diào)速的目的。此次設(shè)計(jì)使用 C 語言作為編程語言。 C 語言是一種計(jì)算機(jī)程
3、序設(shè)計(jì)語言,它既具有高級語言的特點(diǎn), 又具有匯編語言的特點(diǎn)。 它的應(yīng)用范圍廣泛, 具備很強(qiáng)的數(shù)據(jù)處理能力, 不僅僅是在軟件開發(fā)上, 而且各類科研都需要用到 C 語言,適于編寫系統(tǒng)軟件、 三維、二維圖形和動畫, 具體應(yīng)用例如單片機(jī)以及嵌入式系統(tǒng)開發(fā) 。硬件部分使用 89C51 作為主控芯片,并使用 ULN2003A將單片機(jī)的信號放大以控制步進(jìn)電機(jī),同時使用 4 位數(shù)碼管顯示轉(zhuǎn)動角度及次數(shù)。關(guān)鍵詞 :步進(jìn)電機(jī)C 語言AT89C51 ULN2003A轉(zhuǎn)動角度1武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書1 設(shè)計(jì)任務(wù)與要求1.1 設(shè)計(jì)目的設(shè)計(jì)制作和調(diào)試一個由8086 組成步進(jìn)電機(jī)角度測控系統(tǒng)。通過這個過程
4、學(xué)習(xí)熟悉鍵盤控制和七段數(shù)碼管的使用,掌握步進(jìn)電機(jī)的角度控制和角度顯示方法。1.2 設(shè)計(jì)要求和設(shè)計(jì)指標(biāo)1在顯示器上顯示任意四位十進(jìn)制數(shù)2將 8 個鍵定義鍵值為 07,按任意鍵在顯示器上顯示對應(yīng)鍵值3實(shí)現(xiàn):( 1)定義鍵盤按鍵: 5 個為數(shù)字鍵 15;3 個功能鍵:設(shè)置 SET、清零 CLR、開始 START;( 2)顯示器上第一位顯示次數(shù),后三位顯示每次行走的角度;( 3)通過鍵盤的按鍵,設(shè)置步進(jìn)電機(jī)各次的角度值;第一位設(shè)置次數(shù),后三位設(shè)置角度值。( 4)按 START鍵啟動步進(jìn)電機(jī)開始轉(zhuǎn)動,按 SET鍵停止;按 CLR鍵清零。2武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書2 方案分析課程設(shè)計(jì)要求設(shè)
5、計(jì)一個直流電機(jī)微型計(jì)算機(jī)角度控制系統(tǒng), 定義 8 個鍵盤按鍵: 5 個為數(shù)字鍵 15;3 個功能鍵:設(shè)置 SET、清零 CLR、開始 START;顯示器上的四位可顯示轉(zhuǎn)動次數(shù)和每次轉(zhuǎn)動角度; 通過鍵盤的按鍵, 設(shè)置步進(jìn)電機(jī)轉(zhuǎn)動次數(shù)和每次轉(zhuǎn)動角度;按 START鍵啟動電機(jī)開始轉(zhuǎn)動,按 SET鍵停止;按 CLR 鍵清零。綜合分析之后,我們應(yīng)該將電路實(shí)現(xiàn)利用鍵盤按鍵通過89C51的 P3 口實(shí)現(xiàn)輸入功能,并通過 89C51的 P0 口和 P1 口實(shí)現(xiàn)對數(shù)碼管顯示的控制。 同時我們可以通過 P2 口控制 ULN2003A驅(qū)動電動機(jī)運(yùn)行。我們可以將整體電路設(shè)計(jì)成幾個相對獨(dú)立而又有機(jī)結(jié)合的模塊,來逐一進(jìn)行
6、分析。通過分析我們可以畫出系統(tǒng)圖,如圖2-1 所示。顯示模塊鍵主盤控模模塊塊電機(jī)模塊圖 2-1 系統(tǒng)圖3武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書3 系統(tǒng)硬件部分3.1 主控模塊3.1.1 AT89C51 芯片本次設(shè)計(jì)是使用AT89C51作為主控芯片, AT89C51是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲器的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100 次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能 8 位 CPU和閃爍存儲器組合在單個芯片中,ATMEL的 AT89C51是一
7、種高效微控制器, 89C2051是它的一種精簡版本。89C 單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。AT89C51的 40 個引腳主要有一下幾種(1)VCC:供電電壓。(2)GND:接地。(3)P0 口: P0 口為一個 8 位漏級開路雙向I/O 口,每腳可吸收8TTL門電流。當(dāng) P1 口的管腳第一次寫 1 時,被定義為高阻輸入。 P0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù) / 地址的低八位。在 FIASH編程時, P0 口作為原碼輸入口,當(dāng) FIASH進(jìn)行校驗(yàn)時, P0 輸出原碼,此時 P0 外部必須被拉高。(4)P1 口: P1 口是一個內(nèi)部提供上拉電阻的8 位
8、雙向 I/O 口, P1 口緩沖器能接收輸出 4TTL門電流。P1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入,P1 口被外部下拉為低電平時, 將輸出電流,這是由于內(nèi)部上拉的緣故。 在 FLASH編程和校驗(yàn)時, P1 口作為低八位地址接收。(5)P2 口: P2 口為一個內(nèi)部上拉電阻的8 位雙向 I/O 口, P2 口緩沖器可接收,輸出 4 個 TTL門電流,當(dāng) P2 口被寫“ 1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時, P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。 P2 口當(dāng)用于外部程序存儲器或16 位地址外部數(shù)據(jù)存儲器進(jìn)行存取時, P2 口輸出地
9、址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。 P2 口在 FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。(6)P3 口: P3 口管腳是 8 個帶內(nèi)部上拉電阻的雙向I/O 口,可接收輸出44武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書個 TTL門電流。當(dāng) P3 口寫入“ 1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平, P3 口將輸出電流( ILL)這是由于上拉的緣故。P3 口還有其他一些特殊功能,本事設(shè)計(jì)沒有使用,故在此不做敘述。(7)RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持 R
10、ST腳兩個機(jī)器周期的高電平時間。(8)ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在 FLASH編程期間,此引腳用于輸入編程脈沖。在平時, ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6 。因此它可用作對外部輸出的脈沖或用于定時目的。 然而要注意的是: 每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個 ALE脈沖。如想禁止 ALE的輸出可在 SFR8EH地址上置 0。此時, ALE只有在執(zhí)行 MOVX,MOVC 指令是 ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ALE禁止,置位無效。(9)/PSEN:外部程序存儲器的選
11、通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次 /PSEN有效。但在訪問外部數(shù)據(jù)存儲器時, 這兩次有效的 /PSEN 信號將不出現(xiàn)。( 10 ) /EA/VPP:當(dāng) /EA 保持低電平時,則在此期間為外部程序存儲器( 0000H-FFFFH),不管是否有內(nèi)部程序存儲器讀取外部ROM 數(shù)據(jù)。注意加密方式 1 時,/EA 將內(nèi)部鎖定為 RESET;當(dāng)/EA 端保持高電平時, 單片機(jī)讀取內(nèi)部程序存儲器。(擴(kuò)展有外部 ROM 時讀取完內(nèi)部 ROM 后自動讀取外部 ROM)。在 FLASH編程期間,此引腳也用于施加12V 編程電源( VPP)。(11)XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作
12、電路的輸入。(12)XTAL2:來自反向振蕩器的輸出5武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書圖 3-1 AT89C51 芯片3.1.2 時鐘電路及復(fù)位電路在本次課程設(shè)計(jì)中, 我們用到 AT89C51單片機(jī)。而他需要一些特定的控制電路的控制才能更好地工作。具體到本次課設(shè)中,我們需要時鐘電路、防抖電路、復(fù)位電路等。如圖 3-2 所示是我們的時鐘電路,由電容C1、C2 以及晶振組成。圖 3-2 時鐘電路如圖 3-3 所示是我們的復(fù)位電路。圖 3-3 復(fù)位電路6+5V電武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書3.2 鍵盤輸入模塊在微機(jī)化儀器儀表中,鍵盤是最常用的一種輸入設(shè)備, 用于輸入數(shù)據(jù)和命令。鍵
13、盤的每一個按鍵都被賦予一個代碼, 稱為鍵碼。鍵盤系統(tǒng)的主要工作包括及時發(fā)現(xiàn)有鍵閉合,求閉合鍵的鍵碼。根據(jù)這一過程的不同,鍵盤可以分為兩種,即全編碼鍵盤和非編碼鍵盤。 全編碼鍵盤多是商品化的計(jì)算機(jī)輸入設(shè)備,自動提供對應(yīng)于被安檢的ASCII碼,且能同時產(chǎn)生一個控制信號通知微處理器。此外,這種鍵盤具有處理抖動和多鍵串鍵的保護(hù)電路,具有使用方便、 價格較貴、 體積較大、按鍵較多等特點(diǎn)。非編碼鍵盤恰如一組開關(guān),一般組成行和列矩陣。其全部工作過程,如按鍵的識別、鍵的代碼獲取、防止串鍵及消抖等問題,都靠程序完成。因此,它所需要的硬件少,價格便宜,一般作為單板機(jī)、智能儀表等簡單的輸入設(shè)備。鍵盤電路常用的有兩種
14、, 一種是獨(dú)立式鍵盤電路, 另一種是矩陣式鍵盤。 獨(dú)立式鍵盤每個按鍵獨(dú)占一根 I/O 線。因此鍵識別軟件非常簡單。對于只有幾個按鍵的系統(tǒng),常采用這種電路。 對于多按鍵系統(tǒng)來講, 這種電路憂郁將占用更多的 I/O 線而變得無法實(shí)用。矩陣式鍵盤電路將 I/O 口線的一部分作為行線,另一部分作為列線,按鍵設(shè)置在行線和列線的交叉點(diǎn)上, 這就構(gòu)成了行列式鍵盤。 行列式鍵盤中按鍵的數(shù)量可達(dá)行線數(shù) n 乘以列線數(shù) m。由此可以看到行列式鍵盤在按鍵較多時,可以節(jié)省 I/O 線。按鍵開關(guān)的兩端分別接在行線和列線上。行線通過一個電阻接到源上,在沒有鍵按下時,行線處于高電平狀態(tài)。判斷是否有鍵按下的方法是: 向所有的
15、列線 I/O 口輸出低電平, 然后將行線的電平狀態(tài)讀入累加器中,若無鍵按下,行線仍保持高電平狀態(tài),若有鍵按下,行線至少應(yīng)有一條為低電平。 當(dāng)確定有鍵按下后, 即可進(jìn)行求鍵碼的過程。 其方法是:依次從一條列線上輸出低電平,然后檢查各行線的狀態(tài),若全為高電平,說明閉合鍵不在該列;若不全為 1,則說明閉合鍵在該列,且在變?yōu)榈碗娖降男械慕稽c(diǎn)上。在鍵盤處理程序中, 每個鍵都被賦予了一個鍵號, 由從列線 I/O 口輸出的數(shù)據(jù)和從行線 I/O 口讀入的數(shù)據(jù)可以求出閉合鍵的鍵號。7武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書圖 3-4 鍵盤模塊原理圖3.3 電機(jī)模塊3.3.1 步進(jìn)電機(jī)結(jié)構(gòu)及工作原理步進(jìn)電機(jī)又叫脈
16、沖電機(jī), 它是一種將電脈沖信號轉(zhuǎn)換為角位移的機(jī)電式數(shù)模轉(zhuǎn)換器。在開環(huán)數(shù)字程序控制系統(tǒng)中, 輸出控制部分常采用步進(jìn)電機(jī)作為驅(qū)動元件。步進(jìn)電機(jī)控制線路接受計(jì)算機(jī)發(fā)來的指令脈沖, 控制步進(jìn)電機(jī)作為驅(qū)動元件。步進(jìn)電機(jī)控制線路接收計(jì)算機(jī)發(fā)來的指令脈沖, 控制步進(jìn)電機(jī)做相應(yīng)的轉(zhuǎn)動。 在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響, 即給電機(jī)加一個脈沖信號, 電機(jī)則轉(zhuǎn)過一個步距角。 這一線性關(guān)系的存在, 加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點(diǎn)。 使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變的非常的簡單。步進(jìn)電機(jī)的驅(qū)動電路根據(jù)控制信號工作,控制信號由 80
17、86 通過 8255A 產(chǎn)生。此次設(shè)計(jì)采用四相式步進(jìn)電機(jī)。8武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書圖 3-5 步進(jìn)電機(jī)勵磁線圈(1) 步進(jìn)電機(jī)工作原理說明步進(jìn)電機(jī)由轉(zhuǎn)子和定子組成。 轉(zhuǎn)子由一個永久磁鐵構(gòu)成, 定子分別由四組繞組組成。步進(jìn)電機(jī)組成和電氣連接分別如圖3-6 和 3-7 所示。圖 3-6 轉(zhuǎn)子和定子示意圖圖 3-7 電氣連接示意圖當(dāng) S1 連通電源后,定子磁場將產(chǎn)生一個靠近轉(zhuǎn)子為 N 極,遠(yuǎn)離轉(zhuǎn)子為 S 極才磁場,這樣的定子磁場和轉(zhuǎn)子的固有磁場發(fā)生作用,轉(zhuǎn)子就會轉(zhuǎn)動,正確地S1、S4 的送電次序,就能控制轉(zhuǎn)子旋轉(zhuǎn)的方向。例如:若送電的順序?yàn)镾1 閉合斷開S2 閉合斷開S3 閉合斷開
18、S4 閉合斷開,周而復(fù)始的循環(huán),在定子和轉(zhuǎn)子共同作用下,電機(jī)就瞬時針旋轉(zhuǎn):若送電的順序?yàn)?S4 閉合斷開S3閉合斷開S2 閉合斷開S1 閉合斷開,周而復(fù)始的循環(huán),則電機(jī)就逆時針旋轉(zhuǎn),原理同理。9武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書3.3.2 電機(jī)驅(qū)動 ULN2003A 簡介ULN2003 是高耐壓、大電流達(dá)林頓陳列,由七個硅NPN 達(dá)林頓管組成。ULN2003 是高壓大電流達(dá)林頓晶體管陣列系列產(chǎn)品 ,具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn) ,適應(yīng)于各類要求高速大功率驅(qū)動的系統(tǒng)。ULN2003A管腳如圖 3-8 所示。圖 3-8 ULN2003A管腳圖ULN2003 的每
19、一對達(dá)林頓都串聯(lián)一個2.7K 的基極電阻 ,在 5V 的工作電壓下它能與 TTL 和 CMOS 電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來處理的數(shù)據(jù)。 ULN2003 工作電壓高,工作電流大,灌電流可達(dá)500mA,并且能夠在關(guān)態(tài)時承受50V 的電壓,輸出還可以在高負(fù)載電流并行運(yùn)行。ULN2003內(nèi)部還集成了一個消線圈反電動勢的二極管,可用來驅(qū)動繼電器。它是雙列16 腳封裝 ,NPN 晶體管矩陣 ,最大驅(qū)動電壓 =50V,電流 =500mA,輸入電壓 =5V,適用于 TTL COMS,由達(dá)林頓管組成驅(qū)動電路。 ULN 是集成達(dá)林頓管 IC,內(nèi)部還集成了一個消線圈反電動勢的二極管 ,它的輸
20、出端允許通過電流為 200mA,飽和壓降 VCE約 1V 左右,耐壓 BVCEO約為 36V。用戶輸出口的外接負(fù)載可根據(jù)以上參數(shù)估算。 采用集電極開路輸出, 輸出電流大, 故可直接驅(qū)動繼電器或固體繼電器,也可直接驅(qū)動低壓燈泡。通常單片機(jī)驅(qū)動ULN2003 時,上拉2K 的電阻較為合適,同時,COM 引腳應(yīng)該懸空或接電源。ULN2003 是一個非門電路,包含7 個單元,單獨(dú)每個單元驅(qū)動電流最大可達(dá)350mA,9 腳可以懸空。由于 ULN2003 有這些特點(diǎn),所以經(jīng)常作為顯示驅(qū)動、繼電器驅(qū)動、照明燈10武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書驅(qū)動、電磁閥驅(qū)動、伺服電機(jī)、步進(jìn)電機(jī)驅(qū)動等電路中。ULN
21、2003A內(nèi)部結(jié)構(gòu)如圖 3-9 所示。圖 3-9 ULN2003A內(nèi)部結(jié)構(gòu)圖圖 3-10 電機(jī)模塊原理圖3.4 顯示模塊數(shù)碼管是數(shù)碼顯示器的俗稱。 常用的數(shù)碼顯示器有半導(dǎo)體數(shù)碼管, 熒光數(shù)碼管,輝光數(shù)碼管和液晶顯示器等。 譯碼和數(shù)碼顯示電路是將數(shù)字鐘和計(jì)時狀態(tài)直觀清晰的反映出來, 被人們的視覺器官所接受。 顯示器件采用七段數(shù)碼管。 在譯碼顯示電路輸出的驅(qū)動下, 顯示出直觀、 清晰的數(shù)字符號。 本設(shè)計(jì)所采用的是半導(dǎo)體數(shù)碼管,是用發(fā)光二極管(簡稱 LED)組成的字形來顯示數(shù)字,七個條形發(fā)光二極管排列成七段組合字形, 便構(gòu)成了半導(dǎo)體數(shù)碼管。 半導(dǎo)體數(shù)碼管有共陽極和共陰極兩種類型, 共陽極數(shù)碼管的七個
22、發(fā)光二極管的陽極連在一起, 而七個陰極則是獨(dú)立的。 共陰極數(shù)碼管與共陽極數(shù)碼管相反, 七個發(fā)光二極管的陰極連在一起,而陽極是獨(dú)立的。當(dāng)共陽極數(shù)碼管的某一陰極接低電平時,相應(yīng)的二極管發(fā)光, 可根據(jù)字形使11武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書某幾段二極管發(fā)光, 所以共陽極數(shù)碼管需要輸出低電平有效的譯碼器去驅(qū)動。 共陰極數(shù)碼管則需要輸出高電平有效的譯碼器去驅(qū)動。 七段顯示數(shù)碼管的外部引線排列如圖 3-11,共陽極數(shù)碼管結(jié)構(gòu)示意圖如圖 3-12 所示。圖 3-11 數(shù)碼管外引線排列圖 3-12 共陽極數(shù)碼管結(jié)構(gòu)示意圖在多位 LED顯示時,為了節(jié)省 I/O 口線,簡化電路,降低成本,一般采用動態(tài)顯
23、示方式。動態(tài)顯示方式是一位一位地分時輪流各位顯示器, 對每一位顯示器來說,每隔一段時間輪流點(diǎn)亮一次,形成動態(tài)顯示。圖 3.13 顯示模塊原理圖12武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書4 系統(tǒng)軟件部分4.1 整體流程圖及主程序系統(tǒng)的整體軟件流程圖如圖4-1 所示開始按下某一數(shù)字鍵數(shù)碼管顯示轉(zhuǎn)動次數(shù)和轉(zhuǎn)動角度按下開始鍵電機(jī)按數(shù)碼管顯示的數(shù)字開始運(yùn)行停止鍵是否被按下是否電機(jī)停止運(yùn)行電機(jī)完成指定運(yùn)行次數(shù)后停止否清零鍵是否被按下是數(shù)碼管清零圖 4-1 系統(tǒng)流程圖13武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書主程序如下:void main()/ 主函數(shù)TMOD=0x01;/T0 工作方式 1TH0=0x
24、d8;/ 設(shè)初值, 0.01 秒觸發(fā)一次TL0=0xf0;TR0=0;/ 關(guān)閉 T0 定時器ET0=1;/ 允許 T0 定時器中斷EA=1;/ 開啟總中斷允許P2=0x03;while(1)scan();show();if(num1=0)/ 若電機(jī)運(yùn)行次數(shù)已達(dá)到設(shè)定值, 則關(guān)時器/ 并將狀態(tài)位置 0TR0=0;status=0;4.2 按鍵流程圖及程序按鍵流程圖如圖 4-2 所示14武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書開始某一數(shù)字鍵被按下,則寄存器被賦予相應(yīng)值開始鍵被按下,寄存器將值傳給電機(jī)模塊,電機(jī)開始轉(zhuǎn)動停止鍵被按下,則寄存器被清零,電機(jī)停止轉(zhuǎn)動結(jié)束圖 4-2 按鍵模塊流程圖按鍵模塊程
25、序如下:void scan()/ 按鍵掃描if(START=0&&status=0)/ 開始鍵:只有當(dāng)電機(jī)不運(yùn)行時才有效,且將狀態(tài)位置 1;/ 并開啟定時器(電機(jī)重新開始轉(zhuǎn)動) 。delay(10);if(START=0&&status=0)status=1;TR0=1;/ 開定時器 015武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書num1=num;if(SET=0&&status=1)/ 停止鍵:只有當(dāng)電機(jī)運(yùn)行是有效,將狀態(tài)位置 0;/ 并關(guān)閉定時器(電機(jī)停止轉(zhuǎn)動) 。delay(10);if(SET=0&&status=1)st
26、atus=0;TR0=0;/ 關(guān)定時器 0if(CLR=0&&status=0)/ 清零鍵:只有當(dāng)電機(jī)不運(yùn)行時, 清零鍵才有效delay(10);if(CLR=0&&status=0)P1=0;P0=0xff;sh=0;if(k1=0&&status=0)/ 數(shù)字鍵 1:設(shè)置為 3 045。只有當(dāng)電機(jī)不運(yùn)行時,數(shù)字鍵才有效16武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書delay(10);if(k1=0&&status=0)num=3;num1=3;bai=0;shi=4;ge=5;sh=1;key=1;if(k2=0&&am
27、p;status=0)/ 數(shù)字鍵 2:設(shè)置為 4 090delay(10);if(k2=0&&status=0)num=4;num1=4;bai=0;shi=9;ge=0;sh=1;key=2;17武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書if(k3=0&&status=0)/ 數(shù)字鍵 3:設(shè)置為 5 090delay(10);if(k3=0&&status=0)num=5;num1=5;bai=0;shi=9;ge=0;sh=1;key=2;if(k4=0&&status=0)/ 數(shù)字鍵 4:設(shè)置為 6 045delay(10);
28、if(k4=0&&status=0)num=6;num1=6;bai=0;shi=4;ge=5;sh=1;key=1;18武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書if(k5=0&&status=0)/ 數(shù)字鍵 5:設(shè)置為 7 090delay(10);if(k5=0&&status=0)num=7;num1=7;bai=0;shi=9;ge=0;sh=1;key=2;4.3 顯示模塊程序由于使用的是 4 為數(shù)碼管,每一位需要顯示不同的數(shù)字,故讓各位數(shù)碼管按照一定的順序輪流顯示,只要掃描頻率足夠高,由于人眼的“視覺暫留”現(xiàn)象,就能連續(xù)穩(wěn)定的顯示。程
29、序如下:void show()/ 數(shù)碼管顯示if(sh=1)P1=0x01;/ 顯示第一位P0=smgnum;P0=0xff;19武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書P1=0x02;/ 顯示第二位P0=smgbai;P0=0xff;P1=0x04;/ 顯示第三位P0=smgshi;P0=0xff;P1=0x08;/ 顯示第四位P0=smgge;P0=0xff;4.4 電動機(jī)模塊流程圖及程序要是步進(jìn)電機(jī)模塊按一定方向轉(zhuǎn)動,需要輪流給P2.0P2.3口脈沖,故采用移位的方法實(shí)現(xiàn),流程圖如圖4-3 所示。(X 初始值為 0x01, Y 初始值為 0x02)20武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說
30、明書開始45度判斷所需90度角度為 45度還是 90度奇判斷偶X、Y均左移一位此次轉(zhuǎn)動是為奇或偶X左移一位Y左移一位X、Y進(jìn)行或運(yùn)算并將值送到 P2口運(yùn)行次數(shù)寄存器減一運(yùn)行否次數(shù)寄存器是否為 0是停止電機(jī)結(jié)束圖 4-3 電機(jī)模塊流程圖電機(jī)模塊程序如下:21武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書void motor()/ 電機(jī)運(yùn)行if(key=1)/ 每次轉(zhuǎn)動角度為45 度時if(c%2=0)x=_crol_(x,1);x=x|_crol_(x,4);elsey=_crol_(y,1);y=y|_crol_(y,4);c=c+1;P2=x|y;if(key=2)/ 每次轉(zhuǎn)動角度為90 度時x=
31、_crol_(x,1);x=x|_crol_(x,4);y=_crol_(y,1);y=y|_crol_(y,4);P2=x|y;4.5 中斷程序每次設(shè)計(jì)采用定時器來完成步進(jìn)電機(jī)的轉(zhuǎn)動速度,每次中斷便是計(jì)數(shù)存儲器加一,當(dāng)計(jì)數(shù)存儲器達(dá)到設(shè)定值時便使電機(jī)轉(zhuǎn)動一次。22武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書中斷程序如下:void time0(void) interrupt 1/ 中斷處理程序TR0=0;TH0=0xd8;TL0=0xf0;clk+;if(clk=100)/ 每一秒電機(jī)運(yùn)轉(zhuǎn)一次clk=0;num1-;motor();/ 調(diào)用電機(jī)運(yùn)行程序TR0=1;23武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)
32、計(jì)說明書5 仿真運(yùn)行(1)按下數(shù)字鍵后數(shù)碼管顯示數(shù)字圖 5-1 數(shù)碼管顯示(2)按下開始鍵后,電機(jī)開始運(yùn)行圖 5-2 電機(jī)運(yùn)行圖(3)按下停止鍵后,電機(jī)停止運(yùn)行(4)按下清零鍵后,數(shù)碼管被清零。圖 5-3 電機(jī)停止運(yùn)轉(zhuǎn)24武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書6 心得體會在我們的大三即將結(jié)束的時候, 我進(jìn)行了步進(jìn)電機(jī)微型計(jì)算機(jī)角度控制系統(tǒng)的設(shè)計(jì)??傮w來說,本次訓(xùn)練主要是針對計(jì)算機(jī)控制技術(shù)所學(xué)理論知識的檢測以及對 protues 軟件的學(xué)習(xí)和使用。隨著不斷深入的學(xué)習(xí), 我感受到了這個軟件的強(qiáng)大。以前我們學(xué)習(xí) 計(jì)算機(jī)控制技術(shù),需要絞盡腦汁的計(jì)算分析各電路。而使用這種方法,不但計(jì)算量大、分析不太準(zhǔn)
33、確、結(jié)果準(zhǔn)確性差、費(fèi)時費(fèi)力,通過學(xué)習(xí) protues ,并通過使用 protues ,非常方便準(zhǔn)確的得到了仿真電路的正確連線方法以及最優(yōu)化電路。分析起來又快又準(zhǔn)確。大大促進(jìn)了我們的學(xué)習(xí)效率。這次課程設(shè)計(jì)不僅鍛煉了我們的自學(xué)能力以及我自己的耐力。 而且我也深切的感受到了計(jì)算機(jī)控制技術(shù)在日常生活中的廣泛應(yīng)用, 作為工科生我們更要加強(qiáng)理論聯(lián)系實(shí)際,為以后成為一名技術(shù)人才奠定堅(jiān)實(shí)的理論實(shí)踐基礎(chǔ)。25武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書參考文獻(xiàn)1 郭天祥 . 新概念 51 單片機(jī) C 語言教程 . 北京:電子工業(yè)出版社, 20092 周潤景 . 基于 PROTEUS的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真 .
34、北京:北京航空航天出版社, 20063 陳伯石 . 電力拖動自動控制系統(tǒng) . 北京:機(jī)械工業(yè)出版社, 2003.4 李光飛 . 單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo) . 北京 : 北京航空航天出版社, 20045 陳光東 . 單片微型計(jì)算機(jī)原理與接口技術(shù) (第二版) . 武漢:華中科技大學(xué)出版社, 199926武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書附錄一: Protues 硬件仿真圖附錄二:系統(tǒng)程序#include"reg51.h"#include"intrins.h"sbit k1=P30;sbit k2=P31;sbit k3=P32;sbit k4=P33;2
35、7武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書sbit k5=P34;sbit START=P35;sbit SET=P36;sbit CLR=P37;int smg10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; int status=0,sh=0;int num,bai,shi,ge,num1,key=0;int clk=0;int c=0,x=0x1,y=0x2;void delay(int a);void scan();void show();void motor();void delay(int a)/ 延時程序int i,j;for(i=a;i>0;i-)for(j=1000;j>0;j-);void scan()/ 按鍵掃描if(START=0&&status=0)/ 開始鍵:只有當(dāng)電機(jī)不運(yùn)行時才有效,且將狀態(tài)位置 1;/ 并開啟定時器(電機(jī)重新開始轉(zhuǎn)動) 。delay(10);28武漢理工大學(xué)計(jì)算機(jī)控制技術(shù)課程設(shè)計(jì)說明書if(START=0&&status=0)status=1;TR0=1;/ 開定時器 0num1=num;if(SET=0&&
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品合同范例帶表格
- 書區(qū)修書合同范例
- q房網(wǎng)員工合同范例
- 公路監(jiān)控設(shè)備采購合同范例
- 融創(chuàng)合同管理制度模板
- 2025年度橋梁結(jié)構(gòu)安全檢測與維修服務(wù)合同
- 二零二五年度店面裝修工程結(jié)算與付款合同
- 二零二五年度肥料產(chǎn)品出口退稅與稅務(wù)籌劃合同
- 二零二五年度婚內(nèi)債務(wù)處理與婚姻財(cái)產(chǎn)分割合同
- 二零二五年度玩具銷售公司創(chuàng)意及設(shè)計(jì)保密合同
- 《性病防治知識講座》課件
- 定額〔2025〕2號文-關(guān)于發(fā)布2020版電網(wǎng)技術(shù)改造及檢修工程概預(yù)算定額2024年下半年價格
- 2024年河南省中職對口升學(xué)高考語文試題真題(原卷版)
- 卵巢囊腫護(hù)理病例討論
- 《無線局域網(wǎng)組建》課件-0無線課程概述
- 拉薩市2025屆高三第一次聯(lián)考(一模)語文試卷(含答案解析)
- 危險品運(yùn)輸行業(yè)可行性分析報告
- 2024解析:第八章牛頓第一定律、二力平衡-講核心(解析版)
- 《勞動法與勞動關(guān)系》課件
- 2025陜西延長石油(集團(tuán))有限責(zé)任公司招聘(1881人)筆試備考題庫及答案解析
- 無人機(jī)航拍技術(shù)教案(完整版)
評論
0/150
提交評論