單片機實驗指導(dǎo)書計算機_第1頁
單片機實驗指導(dǎo)書計算機_第2頁
單片機實驗指導(dǎo)書計算機_第3頁
單片機實驗指導(dǎo)書計算機_第4頁
單片機實驗指導(dǎo)書計算機_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機原理及座用

實髓指導(dǎo)書

淮陰工學(xué)院計算機工程學(xué)院編

2009年9月

目錄

目錄2

實驗一仿真環(huán)境使用3

實驗二數(shù)據(jù)區(qū)傳送、數(shù)據(jù)排序程序?qū)嶒?

實驗三鍵盤掃描顯示實驗13

實驗四脈沖計數(shù)(定時/計數(shù)器的記數(shù)功能實驗)20

實驗五A/D轉(zhuǎn)換實驗25

實驗六D/A0832轉(zhuǎn)換實驗29

實驗七步進電機控制實驗34

實驗八RAM擴展實驗41

實驗九力測量實驗45

實驗十溫度測量實驗50

實驗十一點陣LCD液晶顯示屏實驗54

實驗一仿真環(huán)境使用

一、實驗?zāi)康?/p>

1、熟悉仿真環(huán)境。

2、學(xué)習(xí)簡單程序調(diào)試的方法。

二、實驗內(nèi)容:

1、KEIL軟件的安裝

⑴將帶有KEIL安裝軟件的光盤放入光驅(qū)里,打開光驅(qū)中帶有KEIL安裝軟件的文件夾,

雙擊Setup文件夾中“Setup”即開始安裝。如果您的微機上己經(jīng)安裝了KEIL的軟件,會提

示您是否要先把您以前的軟件先卸載,此時您最好是先卸載掉,然后再安裝本軟件(如圖所

S0

⑵如果您需要把軟件安裝在C盤以外的其它盤,需要運行一個補丁文件,直接打開KEIL

軟件已安裝目錄中的\KEIL\UV2,雙擊“Crackdir”圖標(biāo),點擊確定即完成補丁的安裝(如

圖所示)。

⑶實驗中所用實驗例程在盤符\keil\uv2中,文件名為“3000TB51配套實驗程序”都是

工程文件,直接打開就可以進入調(diào)試界面;本書中所講軟件實驗在“51asm”文件夾中,都

以ASM的格式存放文件夾中。

2、硬件安裝

⑴連接51CPU板,在實驗箱右下角有三個插座:Jl、J2、J3,用來連接51CPU板,在

51CPU板上有一個小撥碼開關(guān):J18,是單片機的EA腳,是用來選擇讀片內(nèi)還是片外ROM

的,撥向左邊為讀片內(nèi)ROM;撥向右邊為讀片外ROM。

⑵KEIL仿真器與實驗箱的連接:將KEIL仿真器40芯的排線連到51CPU板的40芯插

座上,仿真器的USB連接線連到微機的USB口。

⑶八段數(shù)碼管右上角的兩個撥碼小開關(guān)是用來設(shè)置工作模式的,將兩個撥碼小開關(guān)同時

撥向右邊是選擇51單片機工作模式,此時應(yīng)撥向右邊。

3、KeilC軟件的操作說明

⑴新建一個項目文件。

首先點擊KeiluVision2,進入uVision2界面。點擊工具把Project選項中的NewProject,

準(zhǔn)備開始建立自己的項目。

輸入工程文件名稱,并選擇保存工程文件的目錄。

為項目文件選擇一個目標(biāo)器件(如ATMEL89c51),如圖所示。

flTftK

AHS*RSrBlViftXS)

?目特1crvI

r>Aua

設(shè)有ATWCSIr使用??■rnJHIOJS”代?MJ5I

芯策KS-51r

S5MSH>a>)誓*C)

B0S]-bu?4P?UlyS(*Uc2?*MOKSc?ntr?】kr32Vi_J

2T?wer*/Coxm.ter?.6Xat?rrx*(ts/2PnwityL?veli,VABT.

rhr??-L*v*lFra(rL*ek.4K>yt?iFl?d

128ByteiOirchtpM>

用鼠標(biāo)對項目工作區(qū)的目標(biāo)1,點擊右鍵在彈出的菜單中選擇“為目標(biāo)'目標(biāo)1'設(shè)置

選項”如下圖所示。

在“為目標(biāo)'目標(biāo)1'設(shè)置選項”中,點擊“調(diào)試”菜單,在此菜單中可選擇是使用硬

件仿真,還是軟件仿真,連接實驗箱做實驗時選擇硬件仿真,點擊硬件仿真選項后面的[設(shè)

置]選項,在此對對話框中選擇串口和波特率,串口根據(jù)所連電腦來決定。波特率為38400。

|M50KMMM9000?31&rj.ro?

gIfrolMtQtbugHaitiPatDher.lookMSMMowA.16lM

二000?,k=上|~~3MQl|a30國必:的

忡⑶叫向

Outp?t|Listtnc|CSt|AS!|BL51L?e*t?|US1liteXby||

PL??43St*pGotill??in'

UJ_J

Svtti?C(C*cMO*ti<

‘牛仿真£??(?*?*?1<?<S?a?t?a

P

11行c

|7Yotgoiii”AF?8w*?<?f-C?eh?

PlaawyDinlty

(P*fL:haPAIA

FC?ch?QDDE

?

Progre

"Proj<

i

j

Innni■1HlMAZ?I^jT7~

點擊“文件/新建”創(chuàng)建源程序文件并輸入程序代碼。

在文本框中輸入原程序,如下圖所示

IJ39CICAPMJM吁

點擊“文件/保存“對程序進行保存

7reI

SotraGroupt

但存在(1)|

1^PtoiBCtNMCl.p^

■PntKttMMEl八K

口加5I存

?3

保系物①)3hl”(…

DDDCIi?IMAc-MAraw/

用鼠標(biāo)對項目工作區(qū)的目標(biāo)1,點擊右鍵在彈出的菜單中選擇添加文件到原代碼組,如

下圖所示

aau。fRI2MF@9OR*,;a

,coa<nXS13

?15Urget

Q)auMt?rortrr

OxelOO

Addt。'女xr<edx?「OxalOl

0xel02'

leroets,Groups,Fites...0xel02

RMTOV*Group'301*8GroupI'andM'*Plh<ON?IO3

JIucharcodetab(17J-(

IkiI

在彈出的添加文件框中,選擇需要添加到項目中的文件

&■3“值臺④tnJH

文忡8on[ixr

|CSo?rc?fil?(?c)

點擊編譯連接的圖標(biāo),對項目文件進行編譯

AnomntHMKt“ME程代'UfiE犬實餐實?十人zuMmo-j.nl

在調(diào)試界面中可以對程序進行單步或者全速運行的調(diào)試

若要查看內(nèi)存中的數(shù)據(jù),點擊“視圖/存儲器窗口”

-4Vision:31

I文件編輯(J)視圖(V)項目(P)調(diào)試6)閃存(a)外圍設(shè)備(r)工具(T)版本控制⑸)窗口鄰)幫助(X)

?O?)V狀態(tài)欄6)'好口M■z

3文件工具欄根)

SQ0創(chuàng)建工具欄(B)務(wù)/無曬11]的中++

頊目工作區(qū)?調(diào)試工具欄痣)

寄存器Q項目窗口(P)

|S-Rtgs國輸出窗口9)\3000TB51配套實差例程\1實驗一八段數(shù)碼管顯示實若\」

rO僉一八段數(shù)稿管士昆

值源文件瀏覽器G)g口

rl;

equ0e101h

F演

r2,sX

:一儆皮匯編窗口iequ0e1O2h,H?)

00位

r3口

iequ0e102h口

舞監(jiān)視和調(diào)用堆棧窗口記)人

1a口

,

equ0e103h,

r5示

顯,

^黑

r6

equ60h示

要代碼作用范圍窗口&)顯

…”r7equ70h

在此地址框中,輸入不同的指令查看內(nèi)部數(shù)據(jù)

如果需要查看一些內(nèi)部數(shù)據(jù),在菜單欄點擊[視圖/存儲窗口]。

C:0X地址顯示程序存儲區(qū)數(shù)據(jù)

X:0X地址顯示數(shù)據(jù)存儲區(qū)中數(shù)據(jù)

D:0X地址顯示CPU內(nèi)部存儲區(qū)中數(shù)據(jù)

地址:|d:0x80

oooooooo

D:0x80:FFooooooFF00

D:0x89:00oooooooo00

D:0x92:00ooFFoooo00

D:0x9B:00nnnnnnnn00

入內(nèi)存#3人內(nèi)存#4

~|L:1C:1HUMRf'K

如5-畫圖I||度M陶*國11:30

注意:仿真器使用者使用時應(yīng)注意:

KeilC仿真器用戶程序在全速運行時,如果需暫停運行,請按實驗儀鍵盤“RST”,此

時仿真器存儲器數(shù)據(jù)清零。如果您要再次運行您所編寫的程序,就必須重新裝載運行。

4、拆字程序:把8000H地址上的內(nèi)容拆開,高位送8001H地址的低位,低位送8002H

地址的低位,8001H、8002H地址的高位清零

;參考程序

ORG0000H

MOVDPTR,#8000H;指定的字節(jié)

MOVXA,@DPTR

MOVB,A;暫存

SWAPA;交換

ANLA,#0FH;屏敝高位

INCDPTR

MOVX@DPTR,A

INCDPTR

MOVA,B

ANLA,#0FH;指定字節(jié)的內(nèi)容屏敝高位

MOVX@DPTR,A

LOOP:SJMPLOOP

實驗二數(shù)據(jù)區(qū)傳送、數(shù)據(jù)排序程序?qū)嶒?/p>

一、實驗?zāi)康?/p>

1、學(xué)習(xí)Windows平臺下的編輯、編譯、排錯調(diào)試方法。

2、學(xué)習(xí)修改和觀察變量的方法;綜合使用單步、斷點調(diào)試的方法。

二、實驗內(nèi)容:

1、數(shù)據(jù)傳送

把內(nèi)部RAM中起始地址為DATA的數(shù)據(jù)傳送到內(nèi)部RAM以BUFFER為首地址的區(qū)域,直到

發(fā)現(xiàn)“$”字符的ASCII碼為止,數(shù)據(jù)串的最大長度為32個字節(jié)。

2、多字節(jié)BCD碼加法

3、編寫并調(diào)試一個排序子程序,其功能為用冒泡法將內(nèi)部RAM中幾個單字節(jié)無符號

正整數(shù),按從小到大的次序重新排列。

三、實驗器材:

計算機1臺

四、實驗步驟

1、參閱《硬件安裝》把綜合實驗儀、仿真器與PC機串行口連起來,打開電源。

2、在PC機上用鼠標(biāo)點擊“KEILuvision2”圖標(biāo),進入KEIL調(diào)試環(huán)境,選擇串行口,

點擊“確認(rèn)”。

3、打開“項目/新建項目”,輸入項目名,選擇目標(biāo)MCU,如:inte189c52。

4、編輯文件:用鼠標(biāo)點擊[文件I新文件],在文本編輯器中編輯程序:

5、文件保存:用鼠標(biāo)點擊[文件I保存],在對話框中輸入文件名。

6^為項目添加文件:單擊左邊的[項目工作區(qū)/源代碼組1]右鍵在出現(xiàn)菜單中選擇[添加

文件到組''源代碼組1”],在彈出的對話框中選中您剛保存的文件,點擊確認(rèn)完成項目文

件的添加。

7、為項目設(shè)置通訊口:單擊左邊的[項目工作區(qū)/目標(biāo)1]右鍵在出現(xiàn)的菜單中選擇[為目

標(biāo)“目標(biāo)1”設(shè)置選項],在彈出的菜單中選擇[調(diào)試]。在新窗口中選擇使用Keilmonitor-51

Driver。單擊設(shè)置在出現(xiàn)的窗口中設(shè)置串口和波特率(注:波特率必須為38400)。

8、文件編譯、連接、裝載:用鼠標(biāo)點擊[項目/重建所有目標(biāo)文件],系統(tǒng)自動進行編譯,

并出現(xiàn)信息窗口。若有語法錯誤,則需重新修正,需再次執(zhí)行重建所有目標(biāo)文件;若無語法

錯誤,點擊[調(diào)試/啟動/停止調(diào)試]后,進入調(diào)試狀態(tài)。

9、設(shè)置觀察窗口:用鼠標(biāo)點擊[視圖/存儲口窗口],在地址口輸入CPU內(nèi)部存貯區(qū)地址,

回車之后出現(xiàn)地址為50H的數(shù)據(jù)顯示于窗口中。

10、單步執(zhí)行程序:按F11鍵一條一條地執(zhí)行下去,注意觀察左邊寄存器區(qū)中相應(yīng)的寄

存器或者CPU內(nèi)部存貯區(qū)中相應(yīng)的數(shù)據(jù)寄存器單元的數(shù)據(jù)變化。

11、連續(xù)運行:用鼠標(biāo)點擊[外圍設(shè)備/復(fù)位CPU],使PC指向0000H,點擊[調(diào)試/運行]

后,程序開始連續(xù)運行。如需暫停,用鼠標(biāo)點擊[調(diào)試/停止運行]。

12、斷點運行:要使程序執(zhí)行到某條指令處暫停,如希望程序執(zhí)行到LOOP1處暫停,

可按如下操作:將光標(biāo)移到LOOP1處雙擊鼠標(biāo)左鍵,即可設(shè)置斷點,用鼠標(biāo)點擊[調(diào)試/運

行],程序?qū)⒃贚OOP行停止運行。

13、復(fù)位:用鼠標(biāo)點擊[外圍設(shè)備/復(fù)位CPU],強迫PC指向0000H。

圖1數(shù)據(jù)傳送子程序流程圖圖2數(shù)據(jù)排序程序流程圖

①數(shù)據(jù)傳送子程序

1、數(shù)據(jù)傳送

把內(nèi)部RAM中起始地址為DATA的數(shù)據(jù)傳送到內(nèi)部RAM以BUFFER為首地址的區(qū)域,直到

發(fā)現(xiàn)“$”字符的ASCII碼為止,數(shù)據(jù)串的最大長度為32個字節(jié)。

OrgIDOOOh

MOVRO,#DATA

MOVRI,#BUFFER

MOVR2,#20H

LOOP:MOVA,@R0

SUBBA,#24H

JZEXIT

INCRI

INCRO

MOV@R1,A

DJNZR2,LOOP

LOOP:AJMP$

ret

2、多字節(jié)BCD碼加法

入口條件:字節(jié)數(shù)在R7中,被加數(shù)在[R0]中,加數(shù)在[R1]中。

出口條件:和在[R0]中,最高位進位在CY中。

影響資源:PSW、A、P2堆棧需求:2字節(jié)

OrgOOOOh

BCDA:MOVA,R7

MOVR2,A

ADDA,RO

MOVRO,A

MOVA,R2

ADDA,RI

MOVRI,A

CLRC

BCD1:DECRO

DECRI

MOVA,?RO

ADDCA,@R1

DAA

MOV@R0,A

DJNZR2,BCD1

ret

3;用冒泡法進行數(shù)據(jù)排序

ORGOOOOH

MOVR3,#50H

LOOPO:MOVA,R3

MOVRO,A;指針?biāo)蚏O

MOVR7,#()AH;長度送R7

CLROOH;標(biāo)志位為0

MOVA,@R0

LOOP1:INCRO

MOVR2,A

CLRC

MOV22H,@R0

CJNEA,22H,LOOP2;相等嗎?

SETBC

LOOP2:MOVA,R2

JCLOOP3;小于或等于不交換

SETBOOH

XCHA,@R0

DECRO

XCHA,@R0

INCRO;大于交換位置

LOOP3:MOVA,@R0

DJNZR7,LOOP1

JBOOH,LOOPO;一次循環(huán)中有交換繼續(xù)

LOOP:SJMPLOOP;無交換退出

END

實驗三鍵盤掃描顯示實驗

一、實驗?zāi)康?

1、掌握鍵盤和顯示器的接口方法和編程方法。

2、掌握鍵盤掃描和LED八段數(shù)碼管顯示器的工作原理。

二、實驗要求:

在上一個實驗的基礎(chǔ)上,利用實驗儀提供的鍵盤掃描電路和顯示電路,做一個掃描鍵盤和

數(shù)碼顯示實驗,把按鍵輸入的鍵碼在六位數(shù)碼管上顯示出來。

實驗程序可分成三個模塊。

1、鍵輸入模塊:掃描鍵盤、讀取一次鍵盤并將鍵值存入鍵值緩沖單元。

2、顯示模塊:將顯示單元的內(nèi)容在顯示器上動態(tài)顯示。

3、主程序:調(diào)用鍵輸入模塊和顯示模塊。

三、實驗器材:

1、單片機綜合實驗儀1臺

2、KEIL仿真器1臺

3、計算機1臺

四、實驗電路:

這里只是鍵盤示意圖,詳細(xì)原理參見“8155鍵顯模塊”。

列碼

行碼(OelOlH)

(OelO3H)

圖3鍵盤示意圖

五、實驗說明:

本實驗儀提供了一個6X4的小鍵盤,向列掃描碼地址(OelOlH)逐列輸出低電平,然后從

行碼地址(OelO3H)讀回,如果有鍵按下,則相應(yīng)行的值應(yīng)為低,如果無鍵按下,由于上拉的作用,

行碼為高.這樣就可以通過輸出的列碼和讀取的行碼來判斷按下的是什么鍵。在判斷有鍵按

下后,要有一定的延時,防止鍵盤抖動。列掃描碼還可以分時用作LED的位選通信號。

六、實驗流程圖:

圖4實驗主程序框圖

圖5讀鍵輸入子程序框圖

顯示程序框圖見上個實驗

七、實驗程序:

;鍵盤掃描實驗

OUTBITequOelOlh;位控制口

CLK164equ0el02h;段控制口(接164時鐘位)

DAT164equOelO2h;段控制口(接164數(shù)據(jù)位)

INequOelO3h;鍵盤讀入口

ORGOOOOH

LJMPSTAR

?Has1

KEY1:MOV13H,#06H

MOV12H,#20H

KEY2:MOVA,12H

CPLA

MOVR7,A

MOVDPTR,#0E101H

MOVA,R7

MOVX@DPTR,A

MOVA,12H

CLRC

RRCA

MOV12H,A

MOVDPTR,#0E103H

MOVXA,@DPTR

MOVR7,A

MOVA,R7

CPLA

MOVR7,A

MOVA,R7

ANLA,#0FH

MOV14H,A

DEC13H

MOVR7J3H

MOVA,R7

JZKEYDIS

MOVA,14H

JZKEY2

KEYDIS:MOVA,14H

JZTESTKEY5

MOVA,13H

ADDA,ACC

ADDA,ACC

MOV13H,A

MOVA,14H

JNBACC.1,TESTKEY

INC13H

SJMPTESTKEY2

,,—

;鍵盤掃描

TESTKEY:MOVA,14H

JNBACC.2,TESTKEY1

INC13H

INC13H

SJMPTESTKEY2

TESTKEY1:MOVA,14H

JNBACC.3,TESTKEY2

MOVA,#03H

ADDA,13H

MOV13H,A

TESTKEY2:MOVDPTR,#0E101H

CLRA

MOVX@DPTR,A

TESTKEY3:MOVR7,#0AH

LCALLMLOOP

LCALLMLOOP4

MOVA,R7

JNZTESTKEY3

MOVR7,13H

MOVA,R7

MOVDPTR,#0134H

MOVCA,@A+DPTR

MOVR7,A

RET

TESTKEY4:DB22H;n

TESTKEY5:MOVR7,#0FFH

RET

,-

GETKEY:MOV10H,#20H

MOV0EH,#00H

GETKEY1:MOVA,0EH

CLRC

SUBBA,#06H

JNCGOON2

MOVDPTR,#0E101H

CLRA

MOVX@DPTR,A

MOVR7,0EH

MOVA,#08H

ADDA,R7

MOVRO,A

MOVA,@R0

MOVR7,A

MOVI1H,R7

MOV0FH,#00H

GETKEY2:MOVA,0FH

CLRC

SUBBA,#08H

JNCGOON1

MOVA,I1H

JNBACC7KLOOP

MOVDPTR,#0E102H

MOVA,#01H

MOVX@DPTR,A

SJMPKLOOP1

,,

KLOOP:MOVDPTR,#0E102H

CLRA

MOVX@DPTR,A

KLOOP1:MOVDPTR,#0E102H

MOVXA,@DPTR

MOVR7,A

MOVA,R7

ORLA,#02H

MOVR7,A

MOVA,R7

MOVX@DPTR,A

MOVDPTR,#0E102H

MOVXA,@DPTR

MOVR7,A

MOVA,R7

ANLA,#0FDH

MOVR7,A

MOVA,R7

MOVX@DPTR,A

MOVA,11H

ADDA,ACC

MOV11H,A

INCOFH

SJMPGETKEY2

GOON1:MOVDPTR,#0E101H

MOVA,10H

MOVX@DPTR,A

MOVR7,#01H

LCALLMLOOP

MOVA,10H

CLRC

RRCA

MOV10H,A

INCOEH

SJMPGETKEY1

GOON2:RET

WAIT:MOVDPTR,#0E100H

MOVA,#03H

MOVX@DPTR,A

MOV08H,#0FFH

MOV09H,#0FFH

MOV0AH,#0FFH

MOV0BH,#0FFH

MOV0CH,#00H

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論