版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新教材高考地理二輪復(fù)習(xí)一8類識圖技法專項訓(xùn)練技法3原理示意圖判讀含答案
- 《必修二 技術(shù)與設(shè)計二》 復(fù)習(xí)提綱
- 云南省保山市智源高級中學(xué)2024-2025學(xué)年高一上學(xué)期11月期中化學(xué)試卷
- 遼寧省沈陽市南昌中學(xué)2024-2025學(xué)年八年級上學(xué)期期中地理試題(含答案)
- 廣東省韶關(guān)市2025屆高三綜合測試一地理試卷( 含答案)
- 2025年高中思想政治教師資格考試學(xué)科知識與教學(xué)能力試題及解答參考
- 重慶市高考語文五年試題匯編-古詩詞賞析
- 履約保證函格式及范本
- 建設(shè)工程施工合同補充保證書格式
- 體育社會學(xué) 教案 項目三 體育文化
- 北師大版(2024新版)七年級上冊數(shù)學(xué)第三章《整式及其加減》測試卷(含答案解析)
- 2024年新人教版地理七年級上冊全冊課件
- 護理文獻(xiàn)檢索步驟
- 2024年有子女無財產(chǎn)離婚協(xié)議參考范文(四篇)
- 2024欠款還款協(xié)議書
- 阿米巴巴長知識競賽考試題庫(含答案)
- 2024-2025學(xué)年部編版(2024)七年級歷史上冊知識點提綱
- 2024至2030年中國雞蛋行業(yè)市場發(fā)展現(xiàn)狀及投資規(guī)劃建議報告
- 小學(xué)三年級下一字多義(答案)
- 六年級上冊道德與法治全冊教學(xué)課件
- XX集團內(nèi)部審計人才庫管理辦法(專業(yè)完整格式模板)
評論
0/150
提交評論