mcs51單片機原理復(fù)習(xí)市公開課金獎市賽課一等獎?wù)n件_第1頁
mcs51單片機原理復(fù)習(xí)市公開課金獎市賽課一等獎?wù)n件_第2頁
mcs51單片機原理復(fù)習(xí)市公開課金獎市賽課一等獎?wù)n件_第3頁
mcs51單片機原理復(fù)習(xí)市公開課金獎市賽課一等獎?wù)n件_第4頁
mcs51單片機原理復(fù)習(xí)市公開課金獎市賽課一等獎?wù)n件_第5頁
已閱讀5頁,還剩99頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章MCS-51單片機硬件結(jié)構(gòu)第1頁⑴8位CPU⑵片內(nèi)128BRAM⑶片內(nèi)4KBROM/EPROM(8031無)⑷特殊功效存放器區(qū)

SFR⑸2個優(yōu)先級5個中止源結(jié)構(gòu)⑹

4個8位并行口:P0、P1、P2、P3§2.1MCS-51單片機主要功效特點一、MCS-51單片機主要8051/8751功效特點指令系統(tǒng)第2頁⑺2個16位定時器/計數(shù)器T/C⑻1個全雙工串行口UART

⑼布爾處理機——位處理機(10)64KB外部RAM地址空間(11)64KB外部ROM地址空間(12)片內(nèi)時鐘電路及振蕩器(13)指令系統(tǒng)(111條)上頁下頁回目錄16條地址線指令系統(tǒng)第3頁§2.2MCS-51單片機內(nèi)部結(jié)構(gòu)分析上頁下頁回目錄RAMP0口串行口定時器計數(shù)器特殊功效存放器(SFR)中止系統(tǒng)微處理器ALU控制邏輯P2口P1口P3口ROM/EPROMCPU內(nèi)部總線VccVssXTAL1XTAL2PSEN

EAALERESETP2.0~P2.7P0.0~P0.788P1.0~P1.78P3.0~P3.788051/8751面向用戶結(jié)構(gòu)8031共40條引線用戶內(nèi)特征用戶外特征圖2-2MCS-51功效

框圖P32邏輯結(jié)構(gòu)框圖第4頁1、中央處理器2、存放器3、I/O口MCS-51單片機有4個8位并行口,1個全雙工串行口UART,2個16位T/C。由運算器和控制邏輯組成。主要功效是產(chǎn)生各種控制信號,控制存放器、I/O端口數(shù)據(jù)傳送、數(shù)據(jù)運算、及位處理等操作等。采取SFR集中控制程序存放器ROM/EPROM(8031中沒有,需外接),存放程序和編好表格及常數(shù)等。數(shù)據(jù)存放器RAM:存放中間結(jié)果、數(shù)據(jù)暫存、緩沖、及存放標(biāo)志位等。8051/8751內(nèi)部組成第5頁40引腳,雙列直插式結(jié)構(gòu)上頁下頁回目錄RST/VPDP3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0RXDTXDINT0

INT1

T0

WRRDT1

XTAL1XTAL2VssVccEA/VPPALE/PROGPSEN80318051875140393837363534333231302928272625242322211234567891011121314151617181920§2.3MCS-51單片機引腳功效用戶外特征第6頁管腳功效(1)電源與時鐘Vcc:接+5V電源端

Vss:接地端XTAL1:片內(nèi)振蕩電路輸入端XTAL2:片內(nèi)振蕩電路輸出端內(nèi)時鐘方式:在XTAL1、XTAL2上外接定時元件,使其形成自激振蕩器。時鐘電路:內(nèi)時鐘方式外時鐘方式上頁下頁回目錄第7頁復(fù)位信號:高電平復(fù)位CPU,低電平CPU工作EA/VPPALEPSEN名稱功能片外取指信號(片外程序存放器讀)輸出端低電平有效。經(jīng)過P0口讀回指令或常數(shù)。控制是片外程序存放器RESET⑵控制信號地址鎖存信號。ALE低電平時,P0口出現(xiàn)數(shù)據(jù)信息;ALE高電平時,P0口出現(xiàn)地址信息。程序存放器選擇信號

上頁下頁回目錄EA=0時,選外部ROM;1,地址小于4k時,選內(nèi)部ROM地址大于4k時,選外部ROMP0口是數(shù)據(jù)/地址復(fù)用口用下降沿

鎖存P0口低8位地址到外部鎖存器第8頁存放器內(nèi)容存放器內(nèi)容PC0000HACC00HB00HPSW00HSP07HDPTR0000HP0~P30FFHIP×××00000BIE0××00000BTMOD00HTCON00HTH000HTL0

00HTH100HTL1

00HSCON00HSBUF不定PCON0××000B上頁下頁回目錄第9頁單片機各端口小結(jié)P0、P1、P2、P3四個端口都能夠作為I/O口用,且均是準(zhǔn)雙向口:作為I/O口用時,且當(dāng)由輸出方式變?yōu)檩斎敕绞綍r,應(yīng)先向口寫入“1”,使兩個FET均截止,然后再讀入。如:將P0口引腳上信息讀入A中,應(yīng)用指令:MOVP0,#00H

MOVP0,#0FFH;端口鎖存器置“1”MOVA,P0但僅P0口須外接上拉電阻,對P1、P2、P3口,因為它們內(nèi)部己經(jīng)接有上拉電阻,故不需外接上拉電阻;(提醒:這里加上拉電阻是指為預(yù)防引腳電平不確定而加,實際在應(yīng)用中,為了提升引腳驅(qū)動能力普通在引腳上都有加上拉電阻)。P0口、P2口、P3口在特定情況下還詳細(xì)其它功效。P0口:地址低8位與數(shù)據(jù)分時復(fù)用;P2口:外部程序存放器或數(shù)據(jù)存放器高8位地址線;P3口:含有第二功效。P0口、P2口、P3口在不作為其它功效用時才作為I/O口用。詳細(xì)應(yīng)用:有用P0口作I/O口時,P0口一定要加上拉電阻;只有當(dāng)某腳(P0,P1,P2,P3)由輸出方式變?yōu)檩斎敕绞綍r,才應(yīng)先向口寫入“1”,然后再讀。第10頁EA=1內(nèi)部外部EA=00000H0FFFH0FFFH0000H1000H外部FFFFH8051/87518031一.51系列程序存放器配置圖4KB接地2.4存放器組織第11頁二.51系列數(shù)據(jù)存放器配置圖第12頁下頁內(nèi)部RAMSFR特殊功效存放器7FH00HFFH80HMCS-51內(nèi)部RAM配置1.內(nèi)部數(shù)據(jù)存放器配置圖256B第13頁0FH08H17H10H2FH20H7FH30H0區(qū)(8字節(jié))1區(qū)(8字節(jié))2區(qū)(8字節(jié))3區(qū)(8字節(jié))位尋址區(qū)數(shù)據(jù)緩沖區(qū)80個字節(jié)RAM只能按字節(jié)尋址16個字節(jié)分為128個RAM位可按位亦可按字節(jié)尋址四個工作存放器區(qū)1)、內(nèi)部RAM區(qū)功效配置圖R7R0~R7R0~R7R0~R7R0~00H1FH07H00H1FH18H布爾處理器上頁下頁回目錄每個區(qū),8個工作存放器R0~R7亦可作普通RAM使用第14頁⑴通用存放器組32個RAM單元共4個區(qū),每個區(qū)8個通用工作存放器R0~R7“區(qū)”選擇由程序狀態(tài)字PSW中RS1和RS0確定工作存放器區(qū)地址RS1RS0

2區(qū)10H~17H10

3區(qū)18H~1FH11上頁下頁回目錄

0區(qū)00H~0007H

1區(qū)08H~010FH第15頁⑵位尋址區(qū)(16個RAM單元VS12個SFR)·字節(jié)地址:20H~2FH·16個RAM字節(jié)共128個RAM位·位地址:00H~7FH·12個SFR中93位含有位尋址功效位尋址區(qū)128個RAM位93個SFR位·布爾處理機數(shù)據(jù)存放器主要組成部分上頁下頁回目錄布爾處理機共221位直接地址能被8所整除組成其中3位無定義第16頁(3)用戶RAM區(qū)(數(shù)據(jù)緩沖區(qū))共80個單元字節(jié)地址:30H~7FH8051單片機復(fù)位時,堆棧指針SP指向07H單元片內(nèi)RAM部分單元可用作堆棧51棧區(qū)不是固定,為避開工作存放器區(qū)、位尋址區(qū),用戶堆棧普通設(shè)置在30H~7FH之間上頁下頁回目錄真正RAM單元SP指針是可編程存放器第17頁⑴程序計數(shù)器PC16位專用存放器,尋址范圍64KB用戶不能直接使用存放器。不屬于SFR。2).專用存放器區(qū)通電時自動復(fù)位,運行時可手動復(fù)位,復(fù)位后,PC內(nèi)容自動清零用來存放下一條指令地址。CPU取指令時,將PC內(nèi)容經(jīng)地址總線送到程序存放器,從該地址單元取回指令,譯碼并執(zhí)行;同時,PC自動加1假如程序需要轉(zhuǎn)移,可在程序中安排轉(zhuǎn)移或條件轉(zhuǎn)移指令(JMP或JNC)、調(diào)用子程序指令CALL等上頁下頁回目錄PC0000H系統(tǒng)開啟地址第18頁⑵累加器A地址:0E0H⑶存放器B地址:0F0H⑷程序狀態(tài)字PSW地址:0D0HCY

D7D6D5D4D3D2D1D0ACF0RS1RS0OVP格式以下:第19頁⑸堆棧指針SP保護(hù)CPU現(xiàn)場和斷點地址作用:工作方式:“先進(jìn)后出”或“后進(jìn)先出”數(shù)據(jù)壓入堆棧時,SP自動加1數(shù)據(jù)彈出堆棧時,SP自動減1中止時轉(zhuǎn)子時棧區(qū)“向上生成”按“先進(jìn)后出”工作標(biāo)準(zhǔn),由SP組織內(nèi)部RAM區(qū)域,被稱為堆棧。主程序分析SP:MOVSP,#60HPUSHAPUHSBPOP30H第20頁⑹數(shù)據(jù)指針DPTR·16位存放器,高字節(jié)用DPH表示,低字節(jié)用DPL表示·對外部RAM或I/O口尋址,范圍64KB例:MOVXA,@DPTRMOVX@DPTR,A;將外部RAM中地址為@DPTR單元內(nèi)容讀到A中;將A中內(nèi)容寫到外部RAM中地址為@DPTR單元MOVCA,@

A+DPTR;采取基址+變址方法讀程序存放器內(nèi)表格常數(shù);DPTR為基址存放器,A為變址存放器上頁下頁回目錄(DPTR)AP3.7RDP3.6WR(A)DPTR((A)+(DPTR))APSEN第21頁⑺I/O端口P0~P3地址:80H90H0A0H0B0H專用存放器P0~P3分別是端口P0~P3鎖存器⑻串行數(shù)據(jù)緩沖器SBUF地址:99H存放欲發(fā)送數(shù)據(jù)存放已接收數(shù)據(jù)一個地址:99H⑼定時/計數(shù)器T0T1MCS-51系列有2個16位定時/計數(shù)器T0、T1MCS-52系列增加了1個16位定時/計數(shù)器T2SBUF兩個緩沖器共用“寫”發(fā)送緩沖器“讀”接收緩沖器MOVSBUF,AMOVA,SBUF第22頁⑽其它控制存放器IP0B8H中止優(yōu)先控制存放器IE0A8H中止允許控制存放器TMOD89H定時/計數(shù)器方式控制存放器TCON88H定時/計數(shù)器控制存放器SCON99H串行口控制存放器PCON97H電源及波特率選擇控制地址名稱作用第23頁尋址空間64KB采取存放器間接尋址方式間址存放器有R0、R1(256B)數(shù)據(jù)指針DPTR(64KB)采取MOVX指令單片機產(chǎn)生讀/寫信號,對外部RAM產(chǎn)生讀寫操作2、外部數(shù)據(jù)存放器FFFFH0000H外部RAM(I/O)64KBMOVXA,@RiMOVXA,@DPTRMOVX@Ri,AMOVX@DPTR,A“讀”指令“寫”指令經(jīng)過三條總線擴展第24頁§2.5MCS-51CPU時序1個機器周期=6個S狀態(tài)=12(拍)個振蕩周期1個指令周期由1個或多個機器周期組成。上頁下頁回目錄第25頁復(fù)習(xí)題復(fù)位高電平保持時間有何要求?復(fù)位后各存放器內(nèi)容分別為多少?程序存放器與數(shù)據(jù)存放器作用各是什么?4個I/O端口功效上有何特點,使用上應(yīng)注意什么?。。。第26頁1.若MCS-51單片機采取6MHz晶振,其復(fù)位高電平脈沖時間應(yīng)該超出()。A.2μsB.4μsC.2mSD.4Ms2.單片機8051用端口()傳送地址。A.P0口和P1口B.P0口和P2口C.P0口和P3口D.P1口和P2口3.MCS-51單片機有片內(nèi)ROM容量()。A.4KBB.8KBC.128BD.256B 4.程序計數(shù)器PC用來()。A、存放指令B、存放正在執(zhí)行指令地址C、存放下一條指令地址D、存放上一條指令地址5.單片機應(yīng)用程序普通存放在()。A、RAMB、ROMC、存放器D、CPU第27頁6.設(shè)單片機晶振頻率是fosc,則單片機執(zhí)行非MOVX指令時,ALE信號頻率是()。A.focsB.focs/2C.focs/6D.focs/127.8051內(nèi)部RAM中,能夠進(jìn)行位尋址地址空間為()。A.00H∽2FHB.20H∽2FHC.00H∽FFHD.20H∽FFH8.對于INTEL8031來說,EA腳總是()。A.接地B.接電源C.懸空D.不用9.若標(biāo)志單元PSW=77H

,當(dāng)前工作存放器是()。

A.

第0區(qū)

B.第1區(qū)C.第2區(qū)

D.第3區(qū)10.輔助進(jìn)位標(biāo)志AC在()中A.累加器B.算邏運算部件ALUC.程序狀態(tài)字存放器PSWD.DPTR11.執(zhí)行三次POP指令后,堆棧指針SP值將()。A.減3B.加3C.減6D.加612.在單片機中,通常將一些中間計算結(jié)果放在()中。A、累加器B、控制器C、程序存放器D、數(shù)據(jù)存放器第28頁第三章指令系統(tǒng)熟悉偽指令掌握MCS-51指令系統(tǒng)會正確書寫指令,分析指令片段.第29頁偽指令1、起點指令ORG2、結(jié)束命令END3、定義字節(jié)命令DB4、定義字命令DW5、定義空間命令DS6、等值命令EQU7、數(shù)據(jù)地址賦值等值命令DATA8、位地址符號命令BIT第30頁指令系統(tǒng)數(shù)據(jù)傳送指令(29條)普通不影響狀態(tài)標(biāo)志位(PSW:CY,AC,F(xiàn)0,RS1,RS0,OV,P),但堆棧操作能夠修改PSW位,累加器A中’1’個數(shù)影響P位。3.3.2算術(shù)運算類指令(24條)(除個別INC、DEC指令影響P位外,其它指令普通都影響標(biāo)志位。)邏輯運算(24條)除帶進(jìn)位循環(huán)指令RRC、RLC對標(biāo)志位有影響外,其它指令不影響標(biāo)志位。(4)位操作;(17條)(5)控制轉(zhuǎn)移;(17條)第31頁AJMP和LJMP轉(zhuǎn)移范圍CJNE指令JBC指令JBJNB…第32頁1.(絕對)短跳轉(zhuǎn)指令(2字節(jié)指令)AJMPaddr11;PC←addr11,跳轉(zhuǎn)范圍2k

(211=2K)這是2KB范圍內(nèi)無條件跳轉(zhuǎn)指令,執(zhí)行該指令時,先將PC+2(因該指令是2個字節(jié)指令),然后將addr11送入PC10~PC0,而PC15~PC11保持不變。這么得到跳轉(zhuǎn)目標(biāo)地址。需要注意是,目標(biāo)地址與AJMP后面一條指令第一個字節(jié)必須在同一個2KB區(qū)域存放器區(qū)內(nèi)。例:判斷以下指令是否正確?(1)、地址指令0345HAJMP0123H(2)、2567HAJMP29ABH(1).(PC+2)=0347H二進(jìn)制碼為:0000001101000111B0123H二進(jìn)制碼為:0000000100100011B(2).(PC+2)=2569H二進(jìn)制碼為:0010010101101001B29ABH二進(jìn)制碼為:0010100110101011B解:第33頁2.長跳轉(zhuǎn)指令(3字節(jié)指令)

LJMPaddr16;PC←addr16,跳轉(zhuǎn)范圍64k執(zhí)行該指令時,將16位目標(biāo)地址addr16裝入PC,程序無條件轉(zhuǎn)向指定目標(biāo)地址。轉(zhuǎn)移目標(biāo)地址能夠在64KB程序存放器地址空間任何地方,不影響任何標(biāo)志。3.散轉(zhuǎn)指令(間接跳轉(zhuǎn)指令)(1字節(jié)指令)JMP@A+DPTR;PC←((A)+(DPTR))執(zhí)行該指令時,把累加器A中8位無符號數(shù)與數(shù)據(jù)指針中16位數(shù)相加,結(jié)果作為下條指令地址送入PC,不改變累加器A和數(shù)據(jù)指針DPTR內(nèi)容,也不影響標(biāo)志。利用這條指令能實現(xiàn)程序散轉(zhuǎn)。第34頁三、比較轉(zhuǎn)移指令在MCS-51中沒有專門比較指令,但提供了下面4條比較不相等轉(zhuǎn)移指令:CJNEA,direct,relCJNEA,#data,rel;(A)=#data,繼續(xù),C←0(A)>#data,轉(zhuǎn),C←0(A)<#data,轉(zhuǎn),C←1特點:(A)只有<#data時,C←1CJNERn,#data,relCJNE@Ri,#data,rel這組指令功效是:比較前面兩個操作數(shù)大小,假如它們值不相等則轉(zhuǎn)移。轉(zhuǎn)移地址計算方法與上述兩條指令相同。假如第一個操作數(shù)(無符號整數(shù))小于第二個操作數(shù),則進(jìn)位標(biāo)志Cy置“1”,不然清“0”,但不影響任何操作數(shù)內(nèi)容。如:CJNEA,#78H,LOOP

做減法運算注意:該指令本質(zhì)上是做減法運算,但不影響原來操作數(shù)值。第35頁從地址4678H開始有一指令A(yù)JMPaddr11,該指令可能實現(xiàn)轉(zhuǎn)移范圍是()A.4000H~4800HB.4000H~47FFHC.3800H~4100HD.6000H~6FFFH第36頁例題例:指令:CLR30H中“30H”指是:()A、內(nèi)部RAM單元(字節(jié))地址B、位地址C、字節(jié)地址或位地址D、既不是字節(jié)地址也不是位地址B指令中給出一地址是位地址情況:1.位指令中地址,如MOVC,20H和JB20H,LOOPER中20H顯著只能是位地址.2.CLR或CPL助記符后若是一直接地址時,則該直接地址必是位地址.如CLR20H,CPL20H中20H只能是位地址.第37頁例3-3設(shè)(70H)=60H,(60H)=20H,P1口為輸入口,P1口當(dāng)前狀態(tài)為AAH。分析下面程序結(jié)果。MOVR0,#70HMOVA,@R0MOVR1,AMOVB,@R1MOV@R0,P1第38頁習(xí)題用指令完成以下數(shù)據(jù)傳送.(1).R1內(nèi)容傳送到R0.(2).片外RAM20H單元內(nèi)容送R0.(3).片外RAM20H單元內(nèi)容送片內(nèi)RAM20H單元.(4).片外RAM1000H單元內(nèi)容送片內(nèi)RAM20H單元.(5).ROMH單元內(nèi)容送R0.(6).ROMH單元內(nèi)容送片內(nèi)RAM20H單元.(7).ROMH單元內(nèi)容送片外RAM20H單元.第39頁例3-12雙字節(jié)無符號數(shù)減法,被減數(shù)分別在31H,30H中,減數(shù)分別在41H,40H單元中,差存于31H,30H單元中.CLRCMOVA,30HSUBBA,40HMOV30H,AMOVA,31HSUBBA,41HMOV31H,A第40頁作業(yè)分別編程實現(xiàn)下面要求:將存放在內(nèi)部RAM41H、40H中一個雙字節(jié)數(shù)(高位字節(jié)在41H中,低位字節(jié)在40H中)加1,并將和放回在41H,40H中,不考慮溢出。將存放在內(nèi)部RAM41H,40H中一個雙字節(jié)數(shù)(高位字節(jié)在41H中,低位字節(jié)在40H中)減1,并將差放回在41H,40H中。設(shè)內(nèi)部RAM41H、40H中有一雙字節(jié)數(shù)(高位字節(jié)在41H中,低位字節(jié)在40H中),判斷:當(dāng)該數(shù)>9999時,將RAM41H、40H兩單元清0,不然轉(zhuǎn)向START2。第41頁第四章匯編語言程序設(shè)計掌握次序結(jié)構(gòu)\分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)程序設(shè)計.掌握查表程序設(shè)計熟悉子程序設(shè)計及調(diào)用會編寫\分析程序簡單程序\實時控制程序編寫與分析延時程序時間計算”加一減一綜合實踐”第42頁準(zhǔn)確延時20ms程序(主頻為12MHZ)DELY:MOVR7,#100;1T

DLY0:MOVR6,#98;1TNOP;1TDLY1:DJNZR6,DLY1;2T98×2T=196usDJNZR7,DLY0;2T

RET;2T第43頁例10秒延時程序。延時程序與MCS-51執(zhí)行指令時間相關(guān),假如使用6MHz(12MHZ))晶振,一個機器周期為2μs(1μs),計算出一條指令以至一個循環(huán)所需要執(zhí)行時間,給出對應(yīng)循環(huán)次數(shù),便能到達(dá)延時目標(biāo)。10秒(5秒)延時程序以下:DELAY:MOVR5,#100;1TDEL0:MOVR6,#100;1TDEL1:MOVR7,#248;1TDEL2:DJNZR7,DEL2;2TDJNZR6,DEL1;2TDJNZR5,DEL0;2TRETT=[(248T×2+1T+2T)×100+1T+2T]×100+1T=4990301T第44頁例4-20:一個十六進(jìn)制數(shù)放在HEX單元低四位,將其轉(zhuǎn)換成ASCII碼查表程序:解:十六進(jìn)制0~9ASCII碼為30H~39H,A~FASCII碼為41H~46H,

利用查表指令MOVCA,@A+DPTRMOVCA,@A+PC先用偽指令DB或DW把表格數(shù)據(jù)存入ROM上頁下頁回目錄來取得數(shù)據(jù)ASCII碼表格首址為ASCIITAB第45頁ASCTAB:DB30H,31H,32H,33HDB34H,35H,36H,37HDB38H,39H,41H,42HDB43H,44H,45H,46HEND上頁下頁回目錄編程1:

0123

456789

ABCDEFORG0200HHEXEQU30HHEXASC:MOVA,HEXMOVDPTR,#ASCTABMOVCA,@A+DPTRMOVHEX,ARETANLA,#0FHDPTR(A)=333H(A)=1546H第46頁編程2:ORG0200HHEXEQU30HHEXASC:MOVA,HEXANLA,#00001111BADDA,#3MOVCA,@A+PCMOVHEX,ARETASCTAB:DB30H,31H,32H,33HDB34H,35H,36H,37HDB38H,39H,41H,42HDB43H,44H,45H,46HEND;變址調(diào)整;2字節(jié);1字節(jié)PCPC#3上頁下頁回目錄;變址調(diào)整第47頁第五章該章為本課程一個重點該章內(nèi)容主要包含中止系統(tǒng)定時/計數(shù)器串行口要求:了解原理,分析程序,編程應(yīng)用.第48頁一.中止系統(tǒng)中止概念中止優(yōu)點(分時操作、實時處理、故障處理,是一個并行處理技術(shù))中止響應(yīng)時間中止請求,響應(yīng)和返回應(yīng)用熟悉相關(guān)特殊功效存放器第49頁上頁下頁回目錄源允許圖5-19中止系統(tǒng)總體邏輯結(jié)構(gòu)總允許優(yōu)先級自然優(yōu)先級中止源自然優(yōu)先級中止源查詢硬件查詢硬件低級中止請求送CPU矢量地址送PCIPIETCONSCONEX0ET0EX1ET1ESEAINT0INT1T0T1RXTXRITIIE0IE1TF0TF1IT1011010101010矢量地址送PC高級中止請求送CPUIT001中止標(biāo)志中止標(biāo)志INT01IE0自然優(yōu)先級矢量地址送PC“+1”TF10自然優(yōu)先級矢量地址送PCEA“+1”“+1”EX0ET11PX0PT0PX1PT1PS“+1”“+1”第50頁例題如圖,要求每當(dāng)開關(guān)K按下時,L1亮滅情況變換一次。VCCVCCL1K1P1.0P3.2INT0org0000hajmpmainorg0003hajmpkkorg0030hmain:setbit0setbex0setbeasjmp$kk:cplp1.0reti將setbit0改為clrit0情況怎樣?第51頁51單片機中止源有哪些?每個中止源中止向量是什么?系統(tǒng)默認(rèn)優(yōu)先級是什么?中止服務(wù)程序可否放在程序存放器任何區(qū)域?以下說法正確是()。A.各中止發(fā)出中止請求信號,都會標(biāo)識在MCS-51系統(tǒng)IE存放器中。B.各中止發(fā)出中止請求信號,都會標(biāo)識在MCS-51系統(tǒng)TMOD存放器中。C.各中止發(fā)出中止請求信號,都會標(biāo)識在MCS-51系統(tǒng)IP存放器中。D.各中止發(fā)出中止請求信號,都會標(biāo)識在MCS-51系統(tǒng)TCON或SCON存放器中。第52頁二、定時/計數(shù)器結(jié)構(gòu)與原理相關(guān)特殊功效存放器方式0,1,2應(yīng)用第53頁一、定時計數(shù)器結(jié)構(gòu)與工作原理1、結(jié)構(gòu)CPUTH1(8位)TL1(8位)T1

T1(P3.5)(8DH)(8BH)7070TH0(8位)TL0(8位)T0

T0(P3.4)(8CH)(8AH)7070TCON(88H)TMOD(89H)開啟開啟溢出溢出工作方式工作方式圖5-1定時/計數(shù)器邏輯結(jié)構(gòu)上頁下頁回目錄“+1`”“+1`”第54頁結(jié)構(gòu)2個16位T/C分別由8位計數(shù)器TH0、TL0、

TH1、TL1組成“+1”計數(shù)器控制存放器TCON:控制T/C啟停、中止等方式存放器TMOD:控制T/C工作方式2、工作原理⑴定時器定時輸入信號:機器內(nèi)部震蕩信號1/12分頻即每一個機器周期做一次“+1”運算上頁下頁回目錄T0T1第55頁若單片機晶振主頻為12MHz則計數(shù)周期為1μs⑵計數(shù)器由外部引腳(T0為P3.4,T1為P3.5)輸入計數(shù)脈沖。結(jié)論:T外>2T機→f外<fosc/24>TCY>TCY高電平低電平TCY:為機器周期一個機器周期采樣一次,外部輸入脈沖發(fā)生負(fù)跳變時,進(jìn)行“+1”計數(shù)。第56頁二、定時計數(shù)器方式存放器和控制存放器1、方式存放器TMODGATEC/TM1M0GATEC/TM1M0LSBMSB(89H)TMOD控制T1控制T0門控位功效選擇位工作方式選擇上頁下頁回目錄TMOD和PCON兩個特殊功效存放器只能字節(jié)尋址不能位尋址。第57頁上頁下頁回目錄2、控制存放器TCONLSBMSB(88H)TCONTF1TR1TF0TR0IE1IT1IE0IT0T1、T0啟/停控制位T1、T0溢出標(biāo)志位與外部中止INT1、INT0相關(guān)己在中止系統(tǒng)介紹“0”停頓“1”開啟“1”有溢出“0”無溢出可編程可控制“+1”亦可由指令清“0”工作“1”“0”統(tǒng)計有沒有溢出第58頁例5-1若單片機晶振為12MHz,要求產(chǎn)生500μs定時,試計算X初值。解:因為T=1μs,產(chǎn)生500μs定時,需要“+1”500次,定時器方能產(chǎn)生溢出。采取方式0:(

13位計數(shù)器)X=213-(500×10-6/10-6)=8192-500=7692=1E0CH采取方式1:(

16位計數(shù)器)X=216-(500×10-6/10-6)=65036=FE0CHTHiTLi=0001111000001100B→0001111000001100B→

11110000

00001100B=F00CH關(guān)鍵點:只取低13位,高8位賦給TH0,低5位前加3個0湊成8位賦給TL0第59頁上頁下頁回目錄應(yīng)用舉例1、作定時器用例5-2設(shè)主頻為12MHz,利用定時器T1定時。使P1.0輸出周期(或頻率)為2ms方波。解:用P1.0作方波輸出信號,周期為2ms方波即可用每1ms改變一次電平方法完成,故定時值可設(shè)置為1ms。可做“+1”運算1000次,使T1工作在方式0,即13位計數(shù)器定時初值:X=M-計數(shù)次數(shù)=8192-1000=7192=1C18H第60頁上頁下頁回目錄因為TL1高3位不用,1C18H可寫成:1110000000011000TL1高3位不用=E018HTH1初值為E0H,TL1初值為18HGATEC/TM1M0控制T1控制T00000選擇方式0,13位計數(shù)器選擇定時器方式INT1不參加控制TMOD=E018H第61頁程序:上頁下頁回目錄ORG0000HAJMPSTARTORG001BHAJMPBR1ORG0030HSTART:MOVTMOD,#0MOVTH1,#0E0HMOVTL1,#18HSETBEASETBET1SETBTR1SJMP$BR1:MOVTH1,#0E0HMOVTL1,#18HCPLP1.0RETI第62頁計數(shù)初值轉(zhuǎn)換一個簡便方法(補充)(1).方式0:TL0=X.MOD.32(即等于X除以32后所得到余數(shù)部分)TH0=INT(X/32)(即等于X除以32后所得到整數(shù)部分)(2).方式1:TL0=X.MOD.256(即等于X除以256后所得到余數(shù)部分)TH0=INT(X/256)(即等于X除以256后所得到整數(shù)部分)注:上面式子中X為計數(shù)值,TL0、TH0存放計數(shù)初值。第63頁練習(xí)用中止方式從P3.0輸出一個頻率為500HZ方波.第64頁三、串行口串行口結(jié)構(gòu)串口控制存放器SCON串行口4種工作方式特點及應(yīng)用奇偶校驗實現(xiàn)第65頁(一)串行口結(jié)構(gòu)A移位存放器第66頁1.數(shù)據(jù)緩沖器SBUF發(fā)送SBUF和接收SBUF共用一個地址99H。 (1)發(fā)送SBUF存放待發(fā)送8位數(shù)據(jù),寫入SBUF將同時開啟發(fā)送。 發(fā)送指令:MOVSBUF,A(2)接收SBUF存放已接收成功8位數(shù)據(jù),供CPU讀取。讀取串行口接收數(shù)據(jù)指令:MOVA,SBUF第67頁2.串行口控制/狀態(tài)存放器SCON(98H)SM0,SM1:選擇串行口4種工作方式。SM0SM1模式功能波特率000110110123同時移位存放器8位UART9位UART9位UARTfOSC/12可變(T1溢出率)fOSC/64或fOSC/32可變(T1溢出率)第68頁依據(jù)SM0,SM1選擇四種工作方式。一、方式0:同時移位存放器方式。用于擴展并行I/O接口。1、特點(1).一幀8位,無起始位和停頓位。(2).RXD:數(shù)據(jù)輸入/輸出端。TXD:同時脈沖輸出端,每個脈沖對應(yīng)一個數(shù)據(jù)位。(3).波特率B=fosc/12如:fosc=12MHz,B=1MHz,每位數(shù)據(jù)占1s,即每個機器周期移動一位數(shù)據(jù)。(4).發(fā)送過程:寫入SBUF,開啟發(fā)送,一幀發(fā)送結(jié)束,TI=1。接收過程:REN=1且RI=0,開啟接收,一幀接收完成,RI=1。(二)串行接口工作方式第69頁二、方式1:8位數(shù)據(jù)異步通訊方式。

1、特點(1).一幀10位:8位數(shù)據(jù)位,1個起始位(0),1個停頓位(1)。(2).RXD:接收數(shù)據(jù)端。TXD:發(fā)送數(shù)據(jù)端。(3).波特率:用T1作為波特率發(fā)生器,Rb=(2SMOD/32)×T1溢出率。(4).發(fā)送:寫入SBUF,同時開啟發(fā)送,一幀發(fā)送結(jié)束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且停頓位為1(或SM2=0),將接收數(shù)據(jù)裝入SBUF,停頓位裝入RB8,并使RI=1;不然丟棄接收數(shù)據(jù),不置位RI。第70頁1.特點(1).一幀為11位:9位數(shù)據(jù)位,1個起始位(0),1個停頓位(1)。第9位數(shù)據(jù)位在TB8/RB8中,慣用作校驗位和多機通訊標(biāo)識位。(2).RXD:接收數(shù)據(jù)端,TXD:發(fā)送數(shù)據(jù)端。(3).波特率:方式2:B=(2SMOD/64)×fosc。 方式3:B=(2SMOD/32)×T1溢出率。(4).發(fā)送:先裝入TB8,寫入SBUF并開啟發(fā)送,發(fā)送結(jié)束,TI=1。接收:REN=1,允許接收。接收完一幀,若RI=0且第9位為1(或SM2=0),將接收數(shù)據(jù)裝入接收SBUF,第9位裝入RB8,使RI=1;不然丟棄接收數(shù)據(jù),不置位RI。三、方式2和方式3:9位數(shù)據(jù)異步通訊方式。第71頁串行口編程串行口需初始化后,才能完成數(shù)據(jù)輸入、輸出。其初始化過程以下:(1)按選定串行口操作模式設(shè)定SCONSM0、SM1兩位二進(jìn)制編碼。(2)對于操作模式2或3,應(yīng)依據(jù)需要在TB8中寫入待發(fā)送第9位數(shù)據(jù)。(3)若選定操作模式不是模式0,還需設(shè)定接收/發(fā)送波特率。設(shè)定SMOD狀態(tài),以控制波特率是否加倍。若選定操作模式1或3,則應(yīng)對定時器T1進(jìn)行初始化以設(shè)定其溢出率。(三)串行口應(yīng)用第72頁例1:用8051串行口外接74LS165移位存放器擴展8位輸入口,輸入數(shù)據(jù)由8個開關(guān)提供,另有一個開關(guān)K提供聯(lián)絡(luò)信號。電路示意如圖6.11所表示。當(dāng)開關(guān)K合上時,表示要求輸入數(shù)據(jù)。輸入8位開關(guān)量,處理不一樣程序。第73頁程序以下:START:JBP1.0,$;開關(guān)K未合上,等候

CLRP1.1;165并行輸入數(shù)據(jù)

SETBP1.1;開始串行移位MOVSCON,#10H;串行口模式0并開啟接收J(rèn)NBRI,$;查詢RICLRRI;查詢結(jié)束,清RIMOVA,SBUF;輸入數(shù)據(jù);依據(jù)A處理不一樣任務(wù)SJMPSTART;準(zhǔn)備下一次接收?!?4頁

例3:用查詢法編寫串行口方式1下發(fā)送程序。設(shè)單片機主頻為11.059MHZ,采取定時/計數(shù)器1方式2工作,作為波特率發(fā)生器。波特率為1200b/s,發(fā)送ASCII碼數(shù)據(jù)在片內(nèi)RAM20H~3FH單元,要求在最高位上加奇校驗位后串行發(fā)送。T1計數(shù)初值:波特率1200b/s,取SMOD=0,則初值:X=256-11.059×106/[1200×12×(32/20)]=232=0E8HORG0000HAJMPSTARTPRG1000HSTART:MOVSP,#70HMOVTMOD,#20H;定時器T1為方式2MOVTH1,#0E8H;波特率為1200b/sMOVTL1,#0E8H;給TH1送重裝初值SETBTR1;開啟T1第75頁MOVPCON,#00H;令SMOD=0MOVSCON,#40H;串行口為方式1MOVR0,#20H;字符塊開始地址送R0MOVR2,#32;發(fā)送字節(jié)數(shù)D01:MOVA,@R0;發(fā)送ASCII數(shù)據(jù)送AMOVC,PSW.0;奇偶校驗位送CCPLC;形成奇校驗位送CMOVACC.7,C;使A中”1”個數(shù)為奇數(shù)MOVSBUF,A;開啟發(fā)送JNBTI,$CLRTIINCR0;下一個地址DJNZR2,D01;若字符塊未發(fā)送完則轉(zhuǎn)到D01ED:SJMPED第76頁以下說法錯誤是()。A.串行口通信第9數(shù)據(jù)位功效可由用戶定義。B.發(fā)送數(shù)據(jù)第9數(shù)據(jù)位內(nèi)容是在SCON存放器TB8位預(yù)先準(zhǔn)備好。C.串行通訊發(fā)送時,指令把TB8位狀態(tài)送入SBUF進(jìn)行發(fā)送。D.串行通訊接收到第9位數(shù)據(jù)送SCON存放器RB8中保留。MCS-51單片機串行口有幾個工作方式,怎樣依據(jù)需要進(jìn)行選擇?第77頁第六章單片機系統(tǒng)擴展設(shè)計系統(tǒng)擴展原理程序存放器擴展數(shù)據(jù)存放器擴展I/O端口擴展8255A8155(重點掌握)了解I/O端口、程序存放器地址、數(shù)據(jù)存放器地址關(guān)系。第78頁6.1MCS-51系統(tǒng)擴展原理ALEP3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0EAPSENRST803180518751VccVssP1口P2口P0口373GE+5VA0~A7A8~A15D0~D7I/OXTAL1XTAL2RXDTXDINT0INT1T0T1WRRD控制總線CB1、片外三總線結(jié)構(gòu)數(shù)據(jù)總線DB晶振1.2~12MHZ8031地址總線AB進(jìn)行系統(tǒng)擴展時,單片機引腳可組成三總線結(jié)構(gòu)擴展用控制線有:WR,RD,PSEN,ALE,EA.第79頁A6A7A5A0A1A2A3A4A13A8A9A10A11A12Q1Q0Q2Q7Q6Q5Q4Q3VccGNDVPPOECE271281D2D3D4D6D5D8D7D1Q2Q3Q4Q6Q5Q8Q7QGEVccGND+5V74LS373P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P2.0P3.1。。。P3.7P3.0P1.1。。。P1.7P1.0XTAL1XTAL2VccEAALEPSEN8031VSS+5V1、線地址譯碼法擴展16KBEPROM上頁下頁回目錄=0線地址0000H3FFFH~4000H7FFFH~=0=1P202第80頁1D2D3D4D6D5D8D7D1Q2Q3Q4Q6Q5Q8Q7QGEVccGND+5V74LS373P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P2.0P3.1。。P3.6P3.7P3.0P1.1。。。P1.7P1.0XTAL1XTAL2VccEAALEPSEN8031VSS+5VA6A7A5A0A1A2A3A4A8A9A10I/O1I/O0I/O2I/O7I/O6I/O5I/O4I/O3VccVssOECE6116WE+5V三、數(shù)據(jù)存放器擴展設(shè)計1、8051擴展2KBRAM上頁下頁回目錄0000H07FFH~P209第81頁6.7可編程RAM/IO擴展器8155/8156一、8155結(jié)構(gòu)256×8靜態(tài)RAMPA口PB口PC口14位定時/計數(shù)器PA7~PA0PB7~PB

0PC5~PC0TIMEOUTTIMEINAD7~AD0ALE/RD/WR/CEIO/MRESETVccGND圖6-248155/8156內(nèi)部結(jié)構(gòu)上頁下頁回目錄CPUI/O設(shè)備第82頁二、8155RAM和I/O端口尋址方式及應(yīng)用IO/M是RAM或I/O選擇線0選中8155片內(nèi)RAM,AD0~AD7為RAM地址1選中8155I/O口和定時器,AD0~AD7為I/O地址P0口和AD0~AD7相連為高,從AD0~AD7輸入地址信息為低,從AD0~AD7輸入/輸出數(shù)據(jù)信息00H~FFHALE尋址IO/M=CE

=

0尋址不然AD0~

AD7呈三態(tài)A2A1A0選中I/O及存放器000命令及狀態(tài)口001PA口010PB口011PC口100TL定時器低8位101TH定時器高6位上頁下頁回目錄第83頁三、命令存放器及狀態(tài)存放器1、命令字格式

(8位)

D7

D6

D5

D4D3D2

D1D0TM2

TM1IEBIEAPC2

PC1PB

PA0輸入1輸出1開中止上頁下頁回目錄D0PAD1PBD3D20輸入1輸出PC2PC1A、B、C口為基本I/O口A、B入/出由D1D0確定,C口入00A、B、C口為基本I/O口A、B入/出由D1D0確定,C口出1101

A口為選通方式,B口為基本I/OPC0~PC2口為PA口聯(lián)絡(luò)線PC3~PC5為基本I/O口輸出方式10

A口、B口為選通I/OPC0~PC2口為PA口聯(lián)絡(luò)線PC3~PC5為PB口聯(lián)絡(luò)線0關(guān)中止00空操作01停頓計數(shù)10時間到,停頓計數(shù)11置入方式控制字和計數(shù)初值后,馬上開啟計數(shù)。若正在計數(shù),溢出后則按新方式和初值計數(shù)??删幊炭煽亍爸粚懖蛔x”由CPU寫入第84頁例題若8155CE端接P2.0,IO/M接P2.1,當(dāng)無關(guān)位為全0和全1時分別寫出其RAM與I/O口地址。第85頁圖6-288155與8031接口電路上頁下頁回目錄P2.7P2.0CEP00P01P02P03P04P05P06P07AD0AD1AD2AD3AD4AD5AD6AD7IO/M80318155ALEP225P00P01P02P03P04P05P06P07AD0AD1AD2AD3AD4AD5AD6AD7ALEALEP2.7CEP2.0IO/MALERDWRRDWR第86頁外部程序存放器地址和外部數(shù)據(jù)存放器地址是否能重合?擴展I/O端口占用誰地址?執(zhí)行指令MOVXA,@DPTR時,和腳電平為()A.高電平,低電平B、低電平,高電平C、高電平,高電平D、低電平,低電平第87頁第七章D/A與A/DD/ADAC0832結(jié)構(gòu)原理DAC與單片機連接方法(三種)兩種輸出方式(單極性和雙極性,對應(yīng)轉(zhuǎn)換公式)應(yīng)用A/DADC0809組成與工作原理(轉(zhuǎn)換公式)應(yīng)用第88頁D0D1D2D3D4D5D6D7ILECSWR1XFERWR2VREFIOUT2IOUT1RfbAGNDDGNDVCC圖7-2DAC0832結(jié)構(gòu)圖LE1LE2上頁下頁回目錄8位輸入鎖存器8位寄存器DAC8位轉(zhuǎn)換器D/A鎖存允許片選寫1寫2傳送15K第89頁D/A轉(zhuǎn)換器輸出方式1、單極性輸出上頁下頁回目錄P27MOVDTPR,#7FFFHMOVX@DPTR,AWRD0D1D2D3D4D5D6D7V05V0V~P267

圖7-7DAC0832單極性輸出電路經(jīng)典應(yīng)用電路第90頁上頁下頁回目錄2、雙極性輸出P268

圖7-8DAC0832雙極性輸出電路經(jīng)典應(yīng)用電路第91頁幾點說明圖7-8中,R1=R2=2R3,Rfb和輸出端之間可串接一可調(diào)電阻,調(diào)整輸出滿程量;R4是運放調(diào)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論