版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 一 、基本內(nèi)容:</b></p><p> 1、從鍵盤(pán)上輸入正、反轉(zhuǎn)命令,轉(zhuǎn)速參數(shù)(16級(jí))和轉(zhuǎn)動(dòng)步數(shù)顯示在LED顯示器上。顯示器上顯示:第一位為0表示正轉(zhuǎn),為1表示反轉(zhuǎn);第二位0~F為轉(zhuǎn)速等級(jí),第三到第六位設(shè)定步數(shù)。</p><p> 2、單片機(jī)依顯示器上顯示的正、反轉(zhuǎn)命令,轉(zhuǎn)速級(jí)數(shù)和轉(zhuǎn)動(dòng)步數(shù)進(jìn)行相應(yīng)動(dòng)作,轉(zhuǎn)動(dòng)步數(shù)減為零時(shí)停止轉(zhuǎn)動(dòng)。
2、</p><p><b> 二、步進(jìn)電機(jī)原理:</b></p><p> 如圖,當(dāng)有一相繞組被通電激勵(lì)時(shí),磁通從正相齒,經(jīng)過(guò)軟鐵芯的轉(zhuǎn)子,并以最短路徑流向負(fù)相齒,為使磁通路徑最短,在磁場(chǎng)力的作用下,轉(zhuǎn)子被迫移動(dòng),使最近的一對(duì)齒與被激勵(lì)的一相對(duì)準(zhǔn)。那么,通過(guò)對(duì)它每相線圈中電流的順序切換可使電機(jī)作步進(jìn)式旋轉(zhuǎn)。</p><p> 相數(shù):產(chǎn)生不同
3、對(duì)極N、S磁場(chǎng)的激磁線圈對(duì)數(shù)。</p><p> 拍數(shù):指電機(jī)轉(zhuǎn)過(guò)一個(gè)齒距角所需脈沖數(shù),以四相電機(jī)為例,有四相四拍運(yùn)行方式即AB-BC-CD-DA-AB或A-B-C-D-A,四相八拍運(yùn)行方式即 A-AB-B-BC-C-CD-D-DA-A.</p><p> 步距角:對(duì)應(yīng)一個(gè)脈沖信號(hào)電機(jī)轉(zhuǎn)子轉(zhuǎn)過(guò)的角位移。步距角=360/(轉(zhuǎn)子齒數(shù)*拍數(shù))</p><p> 系統(tǒng)
4、中使用20BY-0型號(hào)步進(jìn)電機(jī),它使用+5V直流電源,步距角為18度,電機(jī)線圈由A、B、C、D四相組成。</p><p> 步進(jìn)電機(jī)驅(qū)動(dòng)原理是通過(guò)對(duì)它每相線圈中的電流的順序切換來(lái)使電機(jī)作步進(jìn)式旋轉(zhuǎn),驅(qū)動(dòng)電路由脈沖信號(hào)來(lái)控制,所以調(diào)節(jié)脈沖信號(hào)的頻率便可改變步進(jìn)電機(jī)的轉(zhuǎn)速。</p><p> BA、BB、BC、BD即為脈沖信號(hào)輸入插孔,驅(qū)動(dòng)器輸出A、B、C、D接步進(jìn)電機(jī)。</p>
5、;<p> 步進(jìn)電機(jī)原理接線圖:</p><p><b> 數(shù)碼管顯示:</b></p><p> 1、數(shù)碼管顯示字形:LED顯示器是由發(fā)光二極管構(gòu)成的字段組成的顯示器。</p><p> 2、顯示程序任務(wù):設(shè)置顯示緩沖區(qū)(7EH- 79 H) ,存放待顯示數(shù)據(jù)和字符(位置碼)。</p><p>
6、 顯示譯碼:程序存儲(chǔ)器中建立字形碼常數(shù)表,查表得出對(duì)應(yīng)數(shù)據(jù)和字符的字形碼。</p><p> 輸出顯示:輸出字形碼到顯示端口。</p><p><b> 鍵盤(pán)顯示原理圖:</b></p><p><b> 顯示子程序模塊:</b></p><p> 采用動(dòng)態(tài)顯示方式,即一位一位地輪流點(diǎn)亮(掃
7、描)6位顯示器。</p><p> 在8032RAM存儲(chǔ)器中設(shè)置六個(gè)顯示緩沖區(qū)單元7EH-79H,分別存放6位顯示器的顯示數(shù)據(jù)(從高到低)。</p><p><b> 四、鍵盤(pán)輸入</b></p><p> 實(shí)驗(yàn)系統(tǒng)有4×8的鍵盤(pán)結(jié)構(gòu)(見(jiàn)鍵掃顯示原理圖)。鍵盤(pán)的行線通過(guò)電阻接+5V,當(dāng)鍵盤(pán)上沒(méi)有鍵閉合時(shí)所有的行線和列線都斷開(kāi),行
8、線都為高電平。當(dāng)鍵盤(pán)上某一鍵閉合時(shí),則該鍵所對(duì)應(yīng)的行線和列線都短路。CPU逐行逐列地檢查鍵盤(pán)的狀態(tài),可判斷鍵盤(pán)上有無(wú)鍵閉合。CPU對(duì)鍵盤(pán)上閉合鍵的鍵號(hào)確定,可根據(jù)行線和列線的狀態(tài)計(jì)算求得,也可以根據(jù)行線和列線的狀態(tài)查表求得。 </p><p> 五、步進(jìn)電機(jī)控制程序框圖</p><p><b> 六、內(nèi)存使用分配表</b></p><p>
9、 79H:步數(shù)的個(gè)位 7AH:步數(shù)的十位</p><p> 7BH:步數(shù)的百位 7CH:步數(shù)的千位</p><p> 7DH:轉(zhuǎn)速等級(jí)(0~F) 7EH:正反轉(zhuǎn)控制</p><p> 字形口地址:0FFDCH
10、 字位口地址:0FFDDH</p><p> 鍵盤(pán)掃描口地址:0FFDCH 鍵盤(pán)輸入口地址:0FFDEH</p><p><b> 七、程序清單</b></p><p> ORG 0000H</p><p> AJMP MAIN</p><
11、p> ORG 001BH ;設(shè)置中斷服務(wù)程序跳轉(zhuǎn)</p><p> LJMP T1INT</p><p> ORG 0300H </p><p> MAIN:ACALL SHURU ;調(diào)用輸入程序,等待確認(rèn)后返回</p><p> MOV R1,79H </
12、p><p> MOV R2,7AH</p><p> MOV R3,7BH</p><p> MOV R4,7CH</p><p> MOV R5,#00H</p><p> MOV A ,7DH ;讀取設(shè)定的速度等級(jí)0-F</p><p
13、> MOV R6,#4 ;循環(huán)左移4位</p><p> N1: RL A</p><p> DJNZ R6,N1</p><p> MOV TMOD,#10H ;T1模式1,16位記數(shù)模式</p><p> MOV TH1,A ;左移后的速度等級(jí)存放到
14、TH1</p><p> MOV TL1,#00H ;按此裝載則0等級(jí)的定時(shí)最長(zhǎng),轉(zhuǎn)速最慢,F(xiàn)等級(jí)的轉(zhuǎn)速最快。</p><p> SETB EA ;開(kāi)中斷 </p><p> SETB ET1</p><p> SETB TR1</p>
15、<p> WAIT:ACALL XS ;調(diào)用顯示子程序并等待T1中斷</p><p> JNB ET1,N5 ;若中斷關(guān)閉則步數(shù)已減為零,重新執(zhí)行主程序</p><p> SJMP WAIT </p><p> N5: AJMP MAIN</p><p>
16、RM: DB 03H,06H,0CH,09H,00H ;正轉(zhuǎn)控制字</p><p> LM: DB 03H,09H,0CH,06H,00H ;反轉(zhuǎn)控制字</p><p> T1INT:PUSH ACC ;T1中斷服務(wù)程序</p><p> PUSH P
17、SW ;保護(hù)現(xiàn)場(chǎng)</p><p> PUSH DPH</p><p> PUSH DPL</p><p> MOV A,7EH ;讀取轉(zhuǎn)向</p><p> JNZ LEFT ;
18、 A中內(nèi)容不為0,則轉(zhuǎn)反轉(zhuǎn)</p><p> MOV DPTR,#RM</p><p> AJMP N2</p><p> LEFT:MOV DPTR,#LM</p><p> N2: MOV A,R5 ;設(shè)置R5作為RM或LM的偏移量</p>&
19、lt;p> MOVC A,@A+DPTR</p><p> MOV P1,A</p><p> INC DPTR</p><p> MOV A,R5</p><p> MOVC A,@A+DPTR ;取下一步控制字</p><p> JN
20、Z NEXT1 ;如不等于0則R5自增1,否則R5清零</p><p> MOV R5,#00H</p><p> AJMP N3</p><p> NEXT1:INC R5</p><p> N3: CJNE R1,#00H,M1 ;執(zhí)行步數(shù)減1并判斷是
21、否為0</p><p> CJNE R2,#00H,M2</p><p> CJNE R3,#00H,M3</p><p> CJNE R4,#00H,M4</p><p> CLR ET1 ;步數(shù)減為0,關(guān)閉中斷</p><p> CLR
22、EA</p><p> M4: DEC R4</p><p> MOV R3,#0FH</p><p> MOV 7CH,R4</p><p> AJMP M43</p><p> M3: DEC R3</p><p> M43:
23、MOV R2,#0FH</p><p> MOV 7BH,R3</p><p> AJMP M32</p><p> M2: DEC R2</p><p> M32: MOV R1,#0FH</p><p> MOV 7AH,R2</p&g
24、t;<p> AJMP M21</p><p> M1: DEC R1</p><p> M21: MOV 79H,R1</p><p> MOV A,7DH</p><p> MOV R6,#4</p><p> N4: RL
25、 A</p><p> DJNZ R6,N4</p><p> MOV TH1,A</p><p> MOV TL1,#00H</p><p> POP DPL ;恢復(fù)現(xiàn)場(chǎng)</p><p> POP DPH</p&g
26、t;<p> POP PSW</p><p> POP ACC</p><p> RETI ;中斷返回</p><p> SHURU:MOV R0,#7EH ;置顯緩指針初值</p><p> MOV R1,#7EH
27、 ;置鍵入緩沖指針初值</p><p> MOV 79H,#00H ;初始化設(shè)定值</p><p> MOV 7AH,#00H</p><p> MOV 7BH,#00H</p><p> MOV 7CH,#00H</p><p> MOV
28、 7DH,#00H</p><p> MOV 7EH,#00H</p><p> MOV R3,#06H ;存放未設(shè)置數(shù)碼管個(gè)數(shù)</p><p> SHURU1:ACALL KS1 ; 判斷是否有鍵閉合</p><p> JZ XY
29、 ;(A)=0,無(wú)鍵閉合,調(diào)顯示延時(shí)</p><p> ACALL XD ;(A)/=0,有鍵閉合,進(jìn)行消抖延時(shí)</p><p> CJNE A,#16H,XY </p><p> ?。慌袛嗍欠袷谴_認(rèn)鍵按下,如不是,繼續(xù)輸入;如是,返回主程序</p><p><b> RET
30、</b></p><p> XY: ACALL XS</p><p> AJMP SHURU1</p><p> XD: ACALL T12ms ;消抖,延時(shí)12ms</p><p> ACALL KS1 ;延時(shí)后看是否仍有鍵閉合</p
31、><p> JNZ N0 ;仍有鍵閉合,轉(zhuǎn)掃描程序</p><p><b> RET</b></p><p> N0: ACALL SAOM1</p><p><b> RET</b></p><p> SAOM1: MO
32、V R2,#0FEH ;R2記列的掃描字</p><p> MOV R4,#0H ;R4記列號(hào)</p><p> SAOM2: MOV DPTR,#0FFDDH ;將掃描字送列</p><p> MOV A,R2</p><p> MOVX @DPTR,
33、A</p><p> INC DPTR ;指向行地址</p><p> MOVX A,@DPTR ;讀取行值</p><p> JB ACC.0,LONE ;第0行無(wú)鍵按下,轉(zhuǎn)查第</p><p> MOV A,#00H ;第0行有鍵
34、按下,置0行首鍵號(hào)#00H</p><p> AJMP QJH ;轉(zhuǎn)求鍵號(hào)</p><p> LONE: JB ACC.1,LTWO</p><p> MOV A,#08H</p><p> AJMP QJH</p><p> LTWO: JB
35、 ACC.2,LTHR</p><p> MOV A,#10H</p><p> AJMP QJH</p><p> LTHR: JB ACC.3,NEXT</p><p> MOV A,#18H</p><p> AJMP QJH</p><p
36、> QJH: ADD A,R4 ;鍵號(hào)=行首鍵號(hào)+列號(hào)</p><p> PUSH ACC ;鍵號(hào)進(jìn)棧保護(hù)</p><p> SAOM3: ACALL KS1 ;等待鍵釋放 </p><p> JNZ SAOM3</p>
37、;<p> POP ACC ;鍵釋放,返回,A中存鍵號(hào)</p><p> CJNE A,#16H,AAA ;根據(jù)鍵號(hào)判斷是否是確認(rèn)鍵</p><p> AJMP CHS</p><p> AAA: ACALL QJZ ;以鍵號(hào)求鍵值,返回值A(chǔ)中為待顯示數(shù)值</p
38、><p> MOV @R1,A </p><p> DEC R1</p><p> DJNZ R3,CHS </p><p> ??;若按鍵數(shù)超過(guò)6個(gè),則R3重新賦值,重新設(shè)置設(shè)定值</p><p> MOV R3,#06H</p><p> MOV
39、 R1,#7EH</p><p> CHS: RET</p><p> NEXT: INC R4 ;增加列號(hào)值</p><p> MOV A,R2</p><p> JNB ACC.7,CHS ;第8列是否已經(jīng)掃描</p>&
40、lt;p> RL A ;第8列未掃描,轉(zhuǎn)下一列掃描</p><p> MOV R2,A</p><p> AJMP SAOM2</p><p> QJZ: MOV DPTR,#TAB1 ;求鍵值子程序</p><p> MOVC
41、 A,@A+DPTR </p><p><b> RET</b></p><p> TAB1: DB 7,4,8,5,9,6,0AH,0BH </p><p> ;按順序?yàn)殒I號(hào)從0-31,表中為對(duì)應(yīng)鍵值</p><p> DB 1,0,2,0FH,3,0EH,0CH,0DH</p>
42、;<p> DB 0,1,0,1,0,1,0,1</p><p> DB 2,3,2,3,2,3,2,3</p><p> XS: MOV 30H,#20H ;30H單元存放字位碼</p><p> XS1: MOV DPTR,#TAB</p><p> MOV
43、 A,@R0 ;R0指向7E-79H單元</p><p> MOVC A,@A+DPTR ;查表得R0所指單元的值的字形碼</p><p> MOV DPTR,#0FFDCH ;字形口地址</p><p> MOVX @DPTR,A ;送字形口
44、地址</p><p> MOV DPTR,#0FFDDH ;字位碼地址</p><p> MOV A,30H</p><p> MOVX @DPTR,A ;送字位碼</p><p> ACALL T1ms ;延時(shí)1ms</p>&
45、lt;p><b> DEC R0</b></p><p> JB ACC.0,XS2 </p><p> ??;判斷是否已顯示最右邊數(shù)碼管,是則重置指針R0</p><p><b> RR A</b></p><p> MOV 30H,A</p>
46、;<p> AJMP XS1</p><p> XS2: MOV R0,#7EH</p><p><b> RET</b></p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H </p><p>
47、 DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH </p><p> T1ms: MOV R7,#02H ; 延時(shí)1ms</p><p> L4: MOV R6,#0F8H</p><p> L3: DJNZ R6,L3</p><p&g
48、t; DJNZ R7,L4</p><p><b> RET</b></p><p> T12ms:MOV R7,#18H ;延時(shí)12ms程序</p><p> L6: MOV R6,#0F8H</p><p> L5: DJNZ R6,L5</p>
49、<p> DJNZ R7,L6</p><p><b> RET</b></p><p> KS1: MOV DPTR,#0FFDDH </p><p> ;判鍵閉合子程序,有鍵閉合則A 不為0</p><p> MOV A,#00H</p><p&
50、gt; MOVX @DPTR,A</p><p> INC DPTR</p><p> MOVX A,@DPTR</p><p><b> CPL A</b></p><p> ANL A,#0FH</p><p><b> RET</b>
51、;</p><p><b> END</b></p><p> 說(shuō)明:實(shí)際的鍵盤(pán)分布如圖所示,每個(gè)方框代表一個(gè)鍵,中間的數(shù)字代表鍵值,及鍵盤(pán)上印著的數(shù)字,每個(gè)鍵上方的小數(shù)字代表鍵在掃描時(shí)的鍵號(hào):</p><p><b> 設(shè)計(jì)心得體會(huì)</b></p><p> 一周的課程設(shè)計(jì)結(jié)束了,在這次課
52、程設(shè)計(jì)中我感覺(jué)收獲頗多。首先,在單片機(jī)的編程控制中加深了對(duì)單片機(jī)指令及中斷、子程序應(yīng)用的熟練程度,掌握了單片機(jī)應(yīng)用的各個(gè)注意事項(xiàng)。其次也學(xué)會(huì)了單片機(jī)開(kāi)發(fā)的步驟,并不是理論上可行就可以了,在實(shí)際運(yùn)行過(guò)程中會(huì)出現(xiàn)各種問(wèn)題,這時(shí)候就需要細(xì)心的調(diào)試。</p><p> 一周的課程設(shè)計(jì),不僅在學(xué)習(xí)上對(duì)我有所幫助,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,有如何完成一件事情。在設(shè)計(jì)過(guò)程中,我們相互探討,相互學(xué)習(xí),相互
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)-控制步進(jìn)電機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)報(bào)告——單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)步進(jìn)電機(jī)控制設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)的控制
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)角度控制
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)控制 (2)
- 單片機(jī)課程設(shè)計(jì)——單片機(jī)控制步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)的控制
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--步進(jìn)電機(jī)控制設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)
- 基于單片機(jī)的步進(jìn)電機(jī)控制單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制器
評(píng)論
0/150
提交評(píng)論