2022年單片機課件第一章_第1頁
2022年單片機課件第一章_第2頁
2022年單片機課件第一章_第3頁
2022年單片機課件第一章_第4頁
2022年單片機課件第一章_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機的C語言應(yīng)用程序設(shè)計第一章單片機基礎(chǔ)知識1.1

8051單片機的特點

基本組成部件:中央處理器:CPU8位數(shù)據(jù)存儲器:RAM128B程序存儲器:ROM4KB定時器/計數(shù)器:2個16位I/O接口:8位×4(P0~P3)MCS-51INTEL1980年單片機標(biāo)志:

MCS-48,MCS-51,MCS-96(16位)8位機:8051系列

教學(xué)首選8031

無ROM 8051

掩膜 8751

EPROM EPROM,FLASH低功耗基本型:

80C51,80C31,87C5180年代中期,專利互讓的形式,51系列衍生產(chǎn)品Atmel89C51,89C52,89C2051Philips80C51,80C552,87C752MAXIM(Dallas)80C390,80C400InfineonC517,C509,80C537ADIADuC812,ADuC824

TI(BB)MSC1210SILABS(Cygnal)C8051FSTCmicroSTC89C51Cypress,Winbond,SST

AT89C51AT89C52閃存4KB8KB內(nèi)存128B256B工作頻率24MHz24MHz輸入/輸出線3232定時/計數(shù)器23中斷源58串行口11AT89C2051(20引腳)AT89S511.2

8051的內(nèi)部結(jié)構(gòu)

1.2.1中央處理器CPU一、ALU

算術(shù)運算:加,減,乘,除

邏輯運算:與,或,異或

位操作(布爾):與,或,取反ACC=A:累加器,B:寄存器

程序狀態(tài)字:PSW8位寄存器CY:進位標(biāo)志。有進位/借位時置1AC:半進位標(biāo)志。D3->D4進位/借位時置1OV:溢出標(biāo)志。帶符號數(shù)超出-128~127置1,乘法結(jié)果超過255,除數(shù)為0P:奇偶標(biāo)志。A中的1的個數(shù)為奇數(shù)F0:用戶設(shè)置標(biāo)志RS1,RS0:通用寄存器選擇位,在存儲器組織部分介紹二、時鐘電路和基本時序周期

1.

8051時鐘內(nèi)部高增益放大器,引腳XTAL1和XTAL2時鐘產(chǎn)生方式:1)內(nèi)部方式:外接石英晶體(晶振)2)外部方式:外部振蕩信號作8051時鐘

2.基本時序周期

振蕩周期:1/fOSC

時鐘周期:2/fOSC

機器周期:12/fOSC=T

指令周期:1~4T1.2.2存儲器組織存儲器特點

程序存儲器分開,哈佛型

數(shù)據(jù)存儲器合并,普林斯頓型物理上的4個空間:

1)

片內(nèi)程序存儲器

2)

片外程序存儲器 3)

片內(nèi)數(shù)據(jù)存儲器 4)

片外數(shù)據(jù)存儲器

程序存儲器

ROM型(只讀):程序,表格常數(shù)當(dāng)PC超過4KB,

自動轉(zhuǎn)1000H~FFFFH(片外)

數(shù)據(jù)存儲器

RAM型(讀,寫):數(shù)據(jù)暫存,

運算結(jié)果,

標(biāo)志位,堆棧片內(nèi):256B,MOV片外:64KB,MOVX

片內(nèi)部分2塊:

00~7FH,128B,RAM區(qū)80H~FFH,128B,SFR區(qū)(特殊功能寄存器)

低128B

通用寄存器區(qū),4組,R0~R7

可位尋址區(qū),20H~2FH,16個

用戶RAM

4個組:

0區(qū)00H~07H1區(qū)08H~0FH2區(qū)10H~17H3區(qū)18H~1FH

由PSW中的RS1,RS2來決定用哪個工作區(qū)(00,01,10,11)2.可位尋址區(qū)

20~2FH,16字節(jié)

00~7FH,128位

3.用戶RAM

30H~7FH

堆棧,向上增長

復(fù)位后設(shè)置SP<=07H

4.特殊功能寄存器

21個SFR(SpecialFunctionRegister)

80H~FFH,只能直接尋址除PC和4組R0~R7外,其他都是SFR,

可位尋址的SFR,其地址可被8整除與通用微機不同的特點:·程序存儲器和數(shù)據(jù)存儲器嚴(yán)格分開·特殊功能寄存器和內(nèi)部數(shù)據(jù)存儲器統(tǒng)一編址1.2.3片內(nèi)并行接口四個并口P0、P1、P2、P3每個口由4部分組成:端口鎖存器,輸入緩沖器,輸出驅(qū)動器,端口引腳其中:P0可用于普通I/O、低8位地址總線A7~A0、數(shù)據(jù)總線D7~D0。 P1用于普通I/O

P2用于普通I/O和高8位地址總線A15~A8;

P3用于普通I/O,另外每根線還有第二功能注意:1、P0口作普通I/O口使用時,要外接上拉電阻。2、四個口作普通I/O口輸入時應(yīng)先向端口寫1。MOVP0,#0FFH1.2.48051的內(nèi)部資源串行口、定時器/計數(shù)器、中斷系統(tǒng)

8051的芯片引腳引腳功能VCC:電源+5VVSS:接地XTAL1和XTAL2:外接晶振引腳P0口:地址/數(shù)據(jù)總線P1口:準(zhǔn)雙向通用I/O口P3口:多用途端口ALE/PROG:地址鎖存信號輸出端。RST:復(fù)位引腳SP<=07HP0~P3<=0FFHPC<=0PSW<=0

復(fù)位后,從0000H開始執(zhí)行程序EA/VPP:內(nèi)部和外部程序存儲器選擇。

0:外,1:內(nèi)PSEN:片外程序存儲器讀選通,低電平有效VccRSTVssMCS-51VccRSTVssMCS-511k1k200

(a)上電復(fù)位電路(b)按鈕復(fù)位電路1.2.6單片機工作方式一、復(fù)位方式二、程序執(zhí)行方式三、單步執(zhí)行方式用于單片機開發(fā)工具或仿真器四、低功耗操作方式 單片機設(shè)有兩種低功耗方式:掉電方式和節(jié)電方式,由電源控制寄存器PCON中的相應(yīng)位設(shè)置。(二).掉電方式當(dāng)PD位置1進入掉電方式。這時CPU及系統(tǒng)的其它部件都停止工作,包括片內(nèi)振蕩器。只有RAM中數(shù)據(jù)不丟失。退出掉電方式的方法只有通過系統(tǒng)復(fù)位。(一).節(jié)電運行方式當(dāng)IDL位置1進入節(jié)電方式,節(jié)電方式,時鐘不提供給CPU,但仍提供給RAM,定時器,中斷系統(tǒng)等,同時CPU的狀態(tài)被保留。退出節(jié)電方式有兩種:激活中斷和系統(tǒng)復(fù)位。PCOND7D6D5D4D3D2D1D087HSMODGF1GF0PDIDL二、直接尋址

1)MOVA,4FH ;A<=(4FH)二字節(jié)

2)MOVA,P0

尋址空間:內(nèi)部RAM低128字節(jié),

SFR

三、寄存器間接尋址

1)MOVA,@R1 ;A<=((R1))

(R1)=40H,A<=(40H)

PUSH30H ;(SP)<=(30H)2)MOVXA,@R0 ;A<=((R0))External——MOVP2,#10HMOVXA,@DPTR ;A<=((DPTR))尋址空間:內(nèi)部RAM(@R0,@R1,@SP);

外部RAM(@R0,@R1,@DPTR)

四、立即尋址MOVA,#6FH ;A<=6FH二字節(jié)MOVDPTR,#1234H;DPTR<=1234H;三字節(jié)

尋址空間:程序存儲器

五、變址尋址

MOVCA,@A+DPTR;A<=((DPTR)+(A))單字節(jié)

MOVCA,@A+PC ;A<=((PC)+(A))

變址尋址方式只適用于8051的程序存儲器,用于讀取數(shù)據(jù)表。

六、相對尋址

SJMPrel ;PC<=PC+2+rel

尋址空間:程序存儲器

七、位尋址

SETBbit ;(bit)<=1尋址空間:內(nèi)部RAM可位尋址區(qū);SFR可位尋址位1.4.2指令分類說明共111條指令,分5大類:·數(shù)據(jù)傳送指令·算術(shù)運算指令·邏輯運算及移位指令·轉(zhuǎn)移指令·十進制指令一、數(shù)據(jù)傳送指令

傳送指令不破壞源地址中的數(shù)據(jù)而只是把數(shù)據(jù)拷貝到目的地址,沒有寄存器到寄存器的傳送和間接/間接傳送。

(一)

內(nèi)部RAM間的數(shù)據(jù)傳送MOV(move)1.

立即尋址MOVA,#dataMOVRn,#dataMOV@Ri,#dataMOVdirect,#dataMOVDPTR,#data例如:MOVA,#30HMOVR1,#20HMOV@R1,#40HMOV32H,#50HMOVDPTR,#1000H3.

間接尋址:MOVA,@RiMOVdirect,@Ri4.

寄存器尋址:

MOVA,RnMOVRn,AMOV@Ri,AMOVdirect,AMOVdirect,Rn(二)涉外RAM傳送

MOVX——外RAM(External)MOVC——外ROM(Code)

1.

外RAM

MOVXA,@Ri

MOVX@Ri,A

MOVXA,@DPTR

MOVX@DPTR,A2.外ROMMOVCA,@A+DPTR ;遠(yuǎn)程查表MOVCA,@A+PC ;近程查表例: ADDA,#01H MOVCA,@A+PCRET DB30H ;0 DB31H ;1… DB39H ;9(三)堆棧指令PUSPdirectPOPdirect

(四)數(shù)據(jù)交換 XCHA,Rn

XCHA,@Ri

XCHA,direct

SWAPA(五)位傳送MOVC,bitMOVbit,C

二、算術(shù)運算

1.

加法

1)

ADDA,Rn

2)

ADDA,direct

3)

ADDA,@Ri

4)

ADDA,#data

影響標(biāo)志:CY2.帶進位加法(AddwithCarry)ADDCA,Rn3.帶借位減法(SubstrctwithBorrow)SUBBA,Rn

沒有不帶借位標(biāo)志的減法指令4.乘法

MULAB結(jié)果在累加器(低字節(jié))和B寄存器(高字節(jié))中。5.

除法

DIVAB;

結(jié)果在ACC中,余數(shù)(不是小數(shù)部分)在B中。6.

加1和減1

(Increment&Decrement)

INCA DECA

INCR2 DECR5

INC45H DEC3EH

INC@R0 DEC@R1

INCDPTR三、邏輯運算1.

邏輯與(Logical-AND) ANL A,Rn ;A<=A^Rn ANL A,direct ANL A,@Ri ANL A,#data ANL direct,A ANL direct,#data ANL C,bit ANL C,/bit

2.

邏輯或(Logical-OR) ORL A,Rn 3.

邏輯異或(LogicalExclusive-OR) XRL A,Rn4.

取反(Complement) CPL A CPL C CPL bit

5.

清除(Clear) CLR A CLR C CLR bit6.

置位(SetBit) SETB C SETB bit7.

移位(Rotate)RLA ;RotateLeftRRA ;RotateRightRLCA ;RotateLeftthroughtheCarryflagRRCA ;RotateRightthroughtheCarryflag四、十進制指令1.

XCHDA,@R0交換累加器和間接地址的低四位,高四位保留原值。2.

SWAPA交換累加器的高四位和低四位。3.

DA(Decimal-Adjust)

DA A五、轉(zhuǎn)移指令1.無條件轉(zhuǎn)移沒有測試條件的轉(zhuǎn)移AJMPSUBROUTINE ;必須在同一2K塊內(nèi) ;(AbsoluteJump)LJMPPOINTA;64K程序空間的任意位置 ;(LongJump)SJMPWAITING;相對轉(zhuǎn)移+127~-128 ;(ShortJump)JMP@A+DPTR ;間接轉(zhuǎn)移(JumpIndirect)2.條件轉(zhuǎn)移測試并完成短轉(zhuǎn)移或繼續(xù)下一條指令JZPOINTX ;ZeroJNZPOINTY ;NotZeroJCPOINTZ ;JumpifCarryJNCPOINTZ ;JumpifNotCarryJBP3.5,POINTA ;JumpifBitissetJNBP3.1,POINTB ;JumpifNotBitJBC22.3,POINTC ;ifBitissetandClearbit

3.CJNE(CompareandJumpifNotEqual)比較,不相等就轉(zhuǎn)移CJNEA,3EH,POINTZCJNEA,#10,POINTWCJNER5,#34,LOOPCJNE@R1,#5,GOINGON4.DJNZ(DecrementandJumpifNotZero)用于重復(fù)循環(huán)的指令,次數(shù)在循環(huán)外設(shè)置,循環(huán)減到零時退出。DJNZR3,POINTQDJNZ3FH,POINTJ5.CALL(子程序調(diào)用)ACALLROUTINE ;AbsoluteCall

LCALLDISPLAY ;LongCall ;PC<=PC+3 ;SP<=SP+1;(SP)<=PC7~0;SP<=SP+1;(SP)<=PC15~8 ;PC<=ADDR166.RET(Return)子程序返回RET ;把堆棧上的兩個字節(jié)的值放入程序計數(shù)器,在子程序完成后繼續(xù)原程序流RETI ;恢復(fù)中斷邏輯,允許同一優(yōu)先級的中斷。

7.NOP(NoOperation)沒有實質(zhì)性操作,用于延時。1.4.3偽指令1.ORG偽指令(Origin)

指令出現(xiàn)在源程序或數(shù)據(jù)塊的開始,指明語句后面的目標(biāo)程序或數(shù)據(jù)塊存放的起始地址。2.DB偽指令(DefineByte)

將項表中的字節(jié)數(shù)據(jù)存放到從標(biāo)號開始的連續(xù)字節(jié)單元中。3.DW偽指令(DefineWord)

功能與DB類似,用于定義16位的地址表。4.EQU(Equal)

用于給一個表達(dá)式的值或字符串起一個名字,之后的名字可以用做程序的地址、數(shù)據(jù)地址或立即數(shù)使用。5.DATA偽指令(Data)給一個8位內(nèi)部RAM單元起一個名字,同一單元地址可以有多個名字。6.XDATA偽指令(ExternalData)給一個8位外部RAM單元起一個名字7.BIT偽指令

給可位尋址的位單元起名字。8、END偽指令

指出源程序到此結(jié)束,一個源程序只在最后使用一個END

例: ORG 0100H MOV A,#23H ADD A,#34H END1.5實用程序設(shè)計一、256種分支轉(zhuǎn)移程序JMP256功能:根據(jù)入口條件轉(zhuǎn)移到256個目的地址。入口:(R3)=轉(zhuǎn)移目的地址的序號(00~FFH)出口:(PC)=為轉(zhuǎn)移子程序的入口地址。JMP256: MOV A,R3 ;取地址 MOV DPTR,#TBL ;裝轉(zhuǎn)移表基址 CLR C RLC A ;變址×2 JNC LOW128;是前128個子程序,則轉(zhuǎn)移 INC DPH ;否,基址加256LOW128: MOV SAVE,A ;暫存變址 MOVCA,@A+DPTR PUSH ACC ;子程序首址低8位進棧 MOV A,SAVE INC A MOVCA,@A+DPTR PUSH ACC ;子程序首址高8位進棧 RET ;子程序首址彈入PCTBL: DW ROUT0;256個子程序首址 DW ROUT1 . . . DW ROUT255說明:執(zhí)行這段程序后,棧指針SP并不受影響,仍恢復(fù)為原來的值。

二、

m×n矩陣元素查找程序MATRIX設(shè)m×n矩陣如下:X0,0X0,1…X0,j…X0,n-1X1,0X1,1…X1,j…X1,n-1............Xi,0Xi,1…Xi,j…Xi,n-1............Xm-1,0Xm-1,1…Xm-1,j…Xm-1,n-1元素在存儲器中逐行存放,即從低地址到高地址為X0,0X0,1…Xm-1,n-1共占m×n,各占2個單元,這樣元素Xi,j存放地址的算法應(yīng)為:元素地址=表基址+(i×n+j)×2其中i=0~(m-1);j=0~(n-1)功能:根據(jù)元素下標(biāo)查找元素值。入口:(I)=元素下標(biāo)變量i

(J)=元素下標(biāo)變量j出口:(AR3)=雙精度矩陣元素Xi,j的值MARTIX: MOV A,I MOV B,#N MUL AB ;(A)=i×n+j ADD A,JRL A;(A)=(i×n+j)×2 MOV R3,A ;保存變址 ADD A,#05 ;修改變址 MOVCA,@A+PC ;查Xi,j的低位 XCH A,R3 ;低位送R3,恢復(fù)變址 INC A ;修正變址 INC A MOVCA

溫馨提示

  • 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

提交評論