版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)原理及應(yīng)用1單片機(jī)原理及應(yīng)用1目錄
單片機(jī)概述
單片機(jī)芯片的硬件結(jié)構(gòu)
MCS-51單片機(jī)指令系統(tǒng)
MCS-51匯編語(yǔ)言程序設(shè)計(jì)
單片機(jī)存儲(chǔ)器擴(kuò)展
單片機(jī)的中斷與定時(shí)系統(tǒng)
單片機(jī)I/O擴(kuò)展與應(yīng)用
單片機(jī)串行數(shù)據(jù)通信
MCS-51單片機(jī)應(yīng)用與開(kāi)發(fā)技術(shù)2目錄單片機(jī)概述2第一章單片機(jī)概述單片機(jī)的概念單片機(jī)的發(fā)展單片機(jī)的應(yīng)用3第一章單片機(jī)概述單片機(jī)的概念3什么是單片機(jī)?
單片機(jī)--將計(jì)算機(jī)的五大部件集中在同一塊集成電路硅片上的計(jì)算機(jī)。第一節(jié)單片機(jī)的概念單片機(jī)的名稱:
單片微型計(jì)算機(jī)(SCMC)微控制器(MCU)嵌入式控制器(EMCU)單片機(jī)與一般微機(jī)最根本的不同之處:?jiǎn)纹瑱C(jī)的五大部件集成在一塊集成電路硅片上。4什么是單片機(jī)?第一節(jié)單片機(jī)的概念單片機(jī)的名稱:?jiǎn)纹瑱C(jī)與一般什么是通用單片機(jī)和專用單片機(jī)?
通用單片機(jī)是一種基本芯片。
專用單片機(jī)是針對(duì)一種產(chǎn)品或一種控制應(yīng)用專門設(shè)計(jì)的單片機(jī)與單片機(jī)系統(tǒng):
單片機(jī)系統(tǒng)是在單片機(jī)芯片的基礎(chǔ)上擴(kuò)展其它電路或芯片構(gòu)成的具有一定應(yīng)用功能的計(jì)算機(jī)系統(tǒng)。5什么是通用單片機(jī)和專用單片機(jī)?單片機(jī)與單片機(jī)系統(tǒng):5單片機(jī)應(yīng)用系統(tǒng)與單片機(jī)開(kāi)發(fā)系統(tǒng):
單片機(jī)開(kāi)發(fā)系統(tǒng)即是單片機(jī)系統(tǒng)開(kāi)發(fā)調(diào)試的工具。仿真器、編程器等機(jī)器語(yǔ)言:基本的的語(yǔ)言形式,多出現(xiàn)在應(yīng)用系統(tǒng)中匯編語(yǔ)言:?jiǎn)纹瑱C(jī)開(kāi)發(fā)中最常用的程序設(shè)計(jì)語(yǔ)言高級(jí)語(yǔ)言:很具發(fā)展?jié)摿?。單片機(jī)的程序設(shè)計(jì)語(yǔ)言和軟件
常用單片機(jī)語(yǔ)言:匯編語(yǔ)言、高級(jí)語(yǔ)言c51。6單片機(jī)應(yīng)用系統(tǒng)與單片機(jī)開(kāi)發(fā)系統(tǒng):機(jī)器語(yǔ)言:基本的的語(yǔ)言形式單片機(jī)的分類:
4位單片機(jī)特點(diǎn):一次處理4位二進(jìn)制數(shù)代表產(chǎn)品:COP4XX系列(NS公司)TMP47XXX系列(Toshiba公司)用途:計(jì)算器、家用電器等
8位單片機(jī)特點(diǎn):一次處理8位二進(jìn)制數(shù)代表產(chǎn)品:MCS-51系列(Intel公司)M6805系列(Motorola公司)用途:工業(yè)控制、智能儀表、家用電器和辦公自動(dòng)化系統(tǒng)7單片機(jī)的分類:7
16位單片機(jī)特點(diǎn):一次處理16位二進(jìn)制數(shù)代表產(chǎn)品:MCS-96系列(Intel公司)M68HC16系列(Motorola公司)用途:過(guò)程控制、智能儀表、家用電器和計(jì)算機(jī)外設(shè)等
32位單片機(jī)特點(diǎn):一次處理32位二進(jìn)制數(shù)代表產(chǎn)品:M68300系列(Motorola公司)SH系列(日立公司)用途:多媒體、蜂窩電話、光驅(qū)等計(jì)算機(jī)外設(shè)816位單片機(jī)8第二節(jié)單片機(jī)的發(fā)展單片機(jī)的發(fā)展歷史
第一階段:4位單片機(jī)階段。主要特點(diǎn)是:價(jià)格便宜,具有一定的控制功能。主要代表系列有:日本NEC公司的uMOS40系列、松下公司的MN1400系列,夏普公司的SM系列,富士通的MB88系列等等。第二階段:(1976-1978年)低、中檔8位單片機(jī)階段。以Intel公司的MCS-48為代表。這個(gè)系列的單片機(jī)片內(nèi)集成有8位CPU。并行I/O口,8位定時(shí)器/計(jì)數(shù)器,尋址范圍不大于4K,無(wú)串行口。9第二節(jié)單片機(jī)的發(fā)展單片機(jī)的發(fā)展歷史第二階段:(1976-1
第三階段:(1978至1982)高檔8位單片機(jī)階段。這階段推出的普遍帶有串行I/O口,有多種中斷處理系統(tǒng),多個(gè)16位定時(shí)器/計(jì)數(shù)器。片內(nèi)RAM、ROM容量較大,尋址范圍可達(dá)64K,有的片內(nèi)還帶有A/D轉(zhuǎn)換接口。主要代表系列有Intel公司的MCS-51,Motorola公司的6801,Zilog公司的Z8等。第四階段:(1982至今)8位單片機(jī)完善發(fā)展和16位、32位單片機(jī)推出階段。這階段的主要特征是一方面發(fā)展16位單片機(jī)及專用單片機(jī),另一方面同時(shí)不斷完善高欄8位單片機(jī),改善其結(jié)構(gòu),以滿足不同的用戶需要。10第三階段:(1978至1982)高檔8位單片機(jī)階段。108位單片機(jī)的市場(chǎng)前景8位單片機(jī)用途廣泛(美國(guó))每家226個(gè)辦公室42個(gè)每汽車35個(gè)注意:基于Internet、無(wú)線數(shù)字傳輸?shù)那度胧綉?yīng)用將會(huì)是32位機(jī)最廣泛的市場(chǎng)。118位單片機(jī)的市場(chǎng)前景8位單片機(jī)用途廣泛(美國(guó))注意:基于In8位單片機(jī)的新發(fā)展為了減小體積,增強(qiáng)功能,提高靈活性和可靠性,8位單片機(jī)的新發(fā)展體現(xiàn)在下面4個(gè)方面:
CPU功能增強(qiáng)
內(nèi)部資源增多
引腳的多功能化
低電壓和低功耗128位單片機(jī)的新發(fā)展為了減小體積,增強(qiáng)功能,提高靈活性和可8位單片機(jī)的新發(fā)展為了減小體積,增強(qiáng)功能,提高靈活性和可靠性,8位單片機(jī)的新發(fā)展體現(xiàn)在下面4個(gè)方面:
CPU功能增強(qiáng)采用亞微米的CMOS工藝提高運(yùn)算速度,計(jì)劃把80C51設(shè)計(jì)成1/3時(shí)鐘周期執(zhí)行一條指令,并可在33MHZ時(shí)鐘下運(yùn)行。
內(nèi)部資源增多
引腳的多功能化
低電壓和低功耗138位單片機(jī)的新發(fā)展為了減小體積,增強(qiáng)功能,提高靈活性和可8位單片機(jī)的新發(fā)展為了減小體積,增強(qiáng)功能,提高靈活性和可靠性,8位單片機(jī)的新發(fā)展體現(xiàn)在下面4個(gè)方面:
CPU功能增強(qiáng)
內(nèi)部資源增多增加了A/D和D/A轉(zhuǎn)換器、DMA通道、總線接口、晶振和LCD驅(qū)動(dòng)電路。
引腳的多功能化
低電壓和低功耗148位單片機(jī)的新發(fā)展為了減小體積,增強(qiáng)功能,提高靈活性和可8位單片機(jī)的新發(fā)展為了減小體積,增強(qiáng)功能,提高靈活性和可靠性,8位單片機(jī)的新發(fā)展體現(xiàn)在下面4個(gè)方面:
CPU功能增強(qiáng)
內(nèi)部資源增多
引腳的多功能化采用一腳多用設(shè)計(jì)方案,減少引腳數(shù)量,提高應(yīng)用靈活性。
低電壓和低功耗158位單片機(jī)的新發(fā)展為了減小體積,增強(qiáng)功能,提高靈活性和可
8位單片機(jī)的新發(fā)展為了減小體積,增強(qiáng)功能,提高靈活性和可靠性,8位單片機(jī)的新發(fā)展體現(xiàn)在下面4個(gè)方面:
CPU功能增強(qiáng)
內(nèi)部資源增多
引腳的多功能化
低電壓和低功耗制造成+3V電源的單片機(jī);采用CMOS工藝,設(shè)立掉電和空閑兩種工作方式。168位單片機(jī)的新發(fā)展為了減小體積,增強(qiáng)功能,提高靈活幾種8位單片機(jī)的性能概況
(1)Intel公司的MCS-51系列(2)Philips公司的80C51系列(3)Microchip公司的PIC系列(4)Atmel公司的AT89、AT90、AT91和智能IC卡四個(gè)系列(5)Motorola公司的M68HC05、M68HC11系列17幾種8位單片機(jī)的性能概況17MCS-51系列單片機(jī)特性18MCS-51系列單片機(jī)特性18除了Intel公司外,Siemens、Philips和Fujitsu等公司都在80C51基礎(chǔ)上推出與Intel公司的80C51兼容的新型單片機(jī),統(tǒng)稱為80C51系列。Philips公司的80C51系列單片機(jī)性能卓著,產(chǎn)品最齊全,最具有代表性。它以80C51為內(nèi)核,新增功能電路有:A/D轉(zhuǎn)換器捕捉輸入/定時(shí)輸出PWM(PulseWidthModulator)脈沖寬度調(diào)制器I2C總線接口視頻顯示控制器監(jiān)視定時(shí)器E2PROM19除了Intel公司外,Siemens、Philips和Fuj80C51系列單片機(jī)主要性能特點(diǎn)2080C51系列單片機(jī)主要性能特點(diǎn)20PIC系列單片機(jī)分低檔、中檔和高檔三個(gè)層次。1、產(chǎn)品特點(diǎn):價(jià)格低:率先采用RISC(精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī))技術(shù)速度高:兩級(jí)指令流水線結(jié)構(gòu)采用哈佛雙總線結(jié)構(gòu)可靠性好:采用OTP(一次性程序)技術(shù),比熔絲式EPROM更為可靠2、主要應(yīng)用:嵌入式單片機(jī)的主流產(chǎn)品之一。21PIC系列單片機(jī)分低檔、中檔和高檔三個(gè)層次。21PIC系列中檔單片機(jī)性能表22PIC系列中檔單片機(jī)性能表22Atmel公司是世界上著名的高性能、低功耗、非易失性存儲(chǔ)器和數(shù)字集成電路的一流半導(dǎo)體制造公司。單片機(jī)產(chǎn)品分為AT89、AT90、AT91和智能IC卡等四個(gè)系列。1、產(chǎn)品特點(diǎn):E2PROM存儲(chǔ)器技術(shù)FLASH閃速存儲(chǔ)器技術(shù)2、主要應(yīng)用:計(jì)算機(jī)外部設(shè)備、通信設(shè)備、自動(dòng)化工業(yè)控制航空航天儀表、雷達(dá)系統(tǒng)、導(dǎo)彈機(jī)器人、各類武器系統(tǒng)23Atmel公司是世界上著名的高性能、低功耗、非易失性存儲(chǔ)器和AT90系列單片機(jī)選型表24AT90系列單片機(jī)選型表24Motorola公司是世界最具影響力的單片機(jī)廠商,其8位機(jī)約占8位機(jī)市場(chǎng)的30%份額。該公司共分為M6805、M68HC05、M68HC08、M68HC11等幾個(gè)系列。25Motorola公司是世界最具影響力的單片機(jī)廠商,其8位機(jī)M6805系列單片機(jī)主要性能表26M6805系列單片機(jī)主要性能表26M68HC05系列單片機(jī)主要性能表27M68HC05系列單片機(jī)主要性能表27M68HC11系列單片機(jī)主要性能表28M68HC11系列單片機(jī)主要性能表28第三節(jié)單片機(jī)的應(yīng)用單片機(jī)應(yīng)用的特點(diǎn)
1、控制系統(tǒng)的在線應(yīng)用2、軟硬件結(jié)合(1)計(jì)算機(jī)在控制系統(tǒng)中的離線應(yīng)用。由微型機(jī)或小型機(jī)實(shí)現(xiàn)(2)計(jì)算機(jī)在控制系統(tǒng)中的在線應(yīng)用。由單片機(jī)實(shí)現(xiàn)
要求:設(shè)計(jì)人員既要掌握匯編語(yǔ)句編程技術(shù),又要具備較扎實(shí)的硬件理論和實(shí)踐知識(shí)。29第三節(jié)單片機(jī)的應(yīng)用單片機(jī)應(yīng)用的特點(diǎn)2、軟硬件結(jié)合(1)廣泛性:微電子時(shí)代的必然發(fā)展趨勢(shì)意義:有利于產(chǎn)品的小型化、多功能化和智能化;改變了的傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想傳統(tǒng):控制設(shè)計(jì)思想硬件電路實(shí)現(xiàn)控制現(xiàn)代:控制設(shè)計(jì)思想軟件程序輸入單片機(jī)實(shí)現(xiàn)控制4、應(yīng)用的廣泛性及其重要意義3、應(yīng)用現(xiàn)場(chǎng)環(huán)境惡劣
注意:使用時(shí),應(yīng)根據(jù)環(huán)境的溫度情況選擇合適的芯片。30(1)廣泛性:微電子時(shí)代的必然發(fā)展趨勢(shì)意義:有利于產(chǎn)品的小型單片機(jī)的應(yīng)用領(lǐng)域1、工業(yè)自動(dòng)化方面2、儀器儀表方面3、家用電器方面4、信息和通信產(chǎn)品方面5、軍事裝備方面31單片機(jī)的應(yīng)用領(lǐng)域31參考書《單片機(jī)原理及實(shí)用技術(shù)》張振榮北京人民郵電出版社《MCS-51系列單片機(jī)系統(tǒng)原理與設(shè)計(jì)》蘇凱冶金工業(yè)出版社《單片機(jī)原理及其接口技術(shù)》胡漢才清華大學(xué)出版社32參考書《單片機(jī)原理及實(shí)用技術(shù)》張振榮32第二章單片機(jī)芯片的硬件結(jié)構(gòu)MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信號(hào)引腳MCS-51單片機(jī)的內(nèi)部存儲(chǔ)器MCS-51單片機(jī)并行輸入/輸出口電路MCS-51單片機(jī)時(shí)鐘電路與時(shí)序MCS-51單片機(jī)工作方式33第二章單片機(jī)芯片的硬件結(jié)構(gòu)MCS-51單片機(jī)的邏輯結(jié)構(gòu)及信第一節(jié)邏輯結(jié)構(gòu)及信號(hào)引腳MCS-51單片機(jī)結(jié)構(gòu)框圖34第一節(jié)邏輯結(jié)構(gòu)及信號(hào)引腳MCS-51單片機(jī)結(jié)構(gòu)框圖34MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)中央處理器內(nèi)部數(shù)據(jù)存儲(chǔ)器內(nèi)部程序存儲(chǔ)器定時(shí)器/計(jì)數(shù)器并行I/O口串行口中斷控制系統(tǒng)時(shí)鐘電路位處理器總線35MCS-51單片機(jī)芯片內(nèi)部邏輯結(jié)構(gòu)中央處理器351.中央處理器注意:控制器的時(shí)鐘脈沖由振蕩器OSC電路提供。PC:存放將要執(zhí)行的指令地址。IR:存放正在執(zhí)行的指令地址。ID:存放指令碼。定時(shí)與控制電路:產(chǎn)生時(shí)序輸出信號(hào)和微操作控制信號(hào)
控制器:PC、PC加1寄存器、指令寄存器(IR)、指令譯碼器(ID)、定時(shí)與控制電路。ALU:用于進(jìn)行算術(shù)、邏輯運(yùn)算。ACC:用于存放操作數(shù)或操作結(jié)果。B:用于存放操作數(shù)。PSW:用于存放指令執(zhí)行后的狀態(tài)信息。TMP:用于存放中間操作數(shù)(對(duì)用戶不開(kāi)放)。
運(yùn)算器:ALU、ACC、B、PSW、TMP1、TMP2。361.中央處理器注意:控制器的時(shí)鐘脈沖由振蕩器OSC電路提供2.內(nèi)部數(shù)據(jù)存儲(chǔ)器由RAM和RAM地址寄存器組成。用于存放可讀寫的數(shù)據(jù)。根據(jù)片內(nèi)ROM的結(jié)構(gòu),單片機(jī)可分為:無(wú)ROM型ROM型EPROM型E2PROM型FLASH型3.內(nèi)部程序存儲(chǔ)器由ROM和ROM地址寄存器組成。用于存放程序和原始數(shù)據(jù)。372.內(nèi)部數(shù)據(jù)存儲(chǔ)器根據(jù)片內(nèi)ROM的結(jié)構(gòu),單片機(jī)可分為:374.定時(shí)器/計(jì)數(shù)器2個(gè)16位(80C51、8051)用于將其定時(shí)或計(jì)數(shù)的結(jié)果對(duì)單片機(jī)進(jìn)行控制。5.并行I/O口4個(gè)8位(P0、P1、P2、P3)用于使單片機(jī)和存儲(chǔ)器或外設(shè)之間并行傳送8位數(shù)據(jù)。6.串行口1個(gè)全雙工串行口用于單片機(jī)和其它數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳送。384.定時(shí)器/計(jì)數(shù)器5.并行I/O口6.串行口387.中斷控制系統(tǒng)5個(gè)中斷源、2級(jí)中斷
10.總線9.位處理器即布爾處理器。特別適用于控制目的和解決邏輯問(wèn)題8.時(shí)鐘電路典型的晶振頻率為12MHZ397.中斷控制系統(tǒng)10.總線9.位處理器8.時(shí)鐘電路3MCS-51單片機(jī)的信號(hào)引腳1.信號(hào)引腳介紹40MCS-51單片機(jī)的信號(hào)引腳1.信號(hào)引腳介紹40(1)主電源及時(shí)鐘引腳(2)控制引腳(3)輸入/輸出引腳VCC(40腳)、VSS(20腳)XTAL1(19腳)、XTAL2(18腳)RST/VPD(9腳):復(fù)位信號(hào)/備用電源ALE/PROG(30腳):地址鎖存控制信號(hào)/編程脈沖PSEN(29腳):外部程序存儲(chǔ)器讀選通信號(hào)EA/VPP(31腳):訪問(wèn)程序存儲(chǔ)器控制信號(hào)/編程電源P0:8位三態(tài)雙向I/O口,可驅(qū)動(dòng)8個(gè)LSTTL負(fù)載P1:8位準(zhǔn)雙向I/O口,可驅(qū)動(dòng)4個(gè)LSTTL負(fù)載P2:8位準(zhǔn)雙向I/O口,可驅(qū)動(dòng)4個(gè)LSTTL負(fù)載P3:8位準(zhǔn)雙向I/O口,可驅(qū)動(dòng)4個(gè)LSTTL負(fù)載41(1)主電源及時(shí)鐘引腳VCC(40腳)、VSS(22.信號(hào)引腳的第二功能-----引腳“復(fù)用”可概況為:“一組與三個(gè)”一組:P3口三個(gè):9腳—RST/VPD30腳---ALE/PROG31腳----EA/VPP422.信號(hào)引腳的第二功能-----引腳“復(fù)用”可概況為:第二節(jié)內(nèi)部存儲(chǔ)器MCS-51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)(1)數(shù)據(jù)存儲(chǔ)區(qū)與程序存儲(chǔ)區(qū)完全分開(kāi),且各有自己的一套系統(tǒng)(2)分為內(nèi)外存儲(chǔ)器43第二節(jié)內(nèi)部存儲(chǔ)器MCS-51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)特點(diǎn)(1)數(shù)存儲(chǔ)器的配置情況:物理上:片內(nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器邏輯上:片內(nèi)外統(tǒng)一的64KB的程序存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器64KB片外數(shù)據(jù)存儲(chǔ)器44存儲(chǔ)器的配置情況:邏輯上:片內(nèi)外統(tǒng)一的64KB的程序存儲(chǔ)內(nèi)部數(shù)據(jù)存儲(chǔ)器物理上分為3塊:00H-7FH(0-127)低128字節(jié)RAM;80H-FFH(128-255)高128字節(jié)RAM同上128字節(jié)專用寄存器(SFR)塊SFRRAMRAM0FFH80H7FH00H0FFH80H45內(nèi)部數(shù)據(jù)存儲(chǔ)器SFRRAMRAM0FFH80H7FH00H(1)寄存器區(qū)內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元按用途可分為3個(gè)區(qū)域:(2)位尋址區(qū)(3)用戶RAM區(qū)46(1)寄存器區(qū)內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元(2)位尋(1)寄存器區(qū)內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元按用途可分為3個(gè)區(qū)域:4組寄存器組(R0-R7)由PSW中的RS1和RS0位確定當(dāng)前工作寄存器組兩種訪問(wèn)通用寄存器的形式:MOVR0,#09HMOV08H,#09H47(1)寄存器區(qū)內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元4組寄存器組(3)用戶RAM區(qū)(2)位尋址區(qū)16個(gè)RAM單元、128位既可進(jìn)行字節(jié)操作,也可進(jìn)行位操作兩種訪問(wèn)位的形式:SETB0FHSETB21H.7用于存放用戶數(shù)據(jù)或作為堆棧區(qū)使用。48(3)用戶RAM區(qū)(2)位尋址區(qū)1內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元(SFR)1.專用寄存器簡(jiǎn)介(1)程序計(jì)數(shù)器PC16位程序地址寄存器存放下一條要執(zhí)行的指令地址具有自動(dòng)加1功能沒(méi)有地址,不可尋址(2)累加器A8位寄存器存放操作數(shù)或結(jié)果數(shù)據(jù)傳送中轉(zhuǎn)站作為變址寄存器49內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元(SFR)1.專用寄存器簡(jiǎn)介(3)B寄存器(4)程序狀態(tài)字PSW8位寄存器主要用于乘除運(yùn)算A*B=BAA/B=A…B例如:MOVA,#05HMOVB,#03HMULABDIVABAC、OV、P的狀態(tài)在指令執(zhí)行過(guò)程中自動(dòng)形成;CY的狀態(tài)在執(zhí)行算術(shù)和邏輯指令時(shí),可以被硬件或軟件置位或清除;F0、RS1、RS0由軟件設(shè)置。位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位標(biāo)志CYACF0RS1RS0OV/P50(3)B寄存器(4)程序狀態(tài)字PSW8位寄存器例如:MOCY---進(jìn)位標(biāo)志位AC---輔助進(jìn)位標(biāo)志位F0---用戶標(biāo)志位由用戶根據(jù)程序執(zhí)行的需要通過(guò)傳送指令確定。在位操作中,充當(dāng)累加器。
如:RLCA在某些邏輯運(yùn)算中也會(huì)影響到進(jìn)位標(biāo)志位。
如:ANLC,bit51CY---進(jìn)位標(biāo)志位AC---輔助進(jìn)位標(biāo)志位F0OV---溢出標(biāo)志位帶符號(hào)數(shù)加減運(yùn)算:超出(-128--+127)范圍,置位乘法運(yùn)算:乘積超過(guò)255,置位除法運(yùn)算:除數(shù)為0,置位
RS1、RS0---寄存器組選擇位用于選擇當(dāng)前工作通用寄存器組有利于程序中保護(hù)現(xiàn)場(chǎng)。
例如:MOVPSW,#08HMOVR0,#43H52OV---溢出標(biāo)志位RS1、RS0---寄存器組選擇例:設(shè)程序執(zhí)行前F0=0,RS1RS0=00B,請(qǐng)問(wèn)機(jī)器執(zhí)行如下程序后MOVA,#0FHADDA,#F8HPSW中各位的狀態(tài)是什么?答:PSW=C1H
P---奇偶標(biāo)志位表明累加器中1的個(gè)數(shù)的奇偶性。=01的個(gè)數(shù)為偶數(shù);=11的個(gè)數(shù)為奇數(shù);53例:設(shè)程序執(zhí)行前F0=0,RS1RS0=00B,請(qǐng)問(wèn)機(jī)器執(zhí)行(5)數(shù)據(jù)指針DPTR唯一供用戶使用的16位寄存器由DPH、DPL拼成可用來(lái)存放片內(nèi)ROM、片外ROM和片外RAM的地址訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)作地址指針使用
MOVXA,@DPTR訪問(wèn)程序存儲(chǔ)器時(shí)作為基址寄存器使用
MOVCA,@A+DPTR例如:將片外RAM2000H單元中的數(shù)據(jù)X,取入累加器。MOVDPTR,#2000HMOVXA,@DPTR54(5)數(shù)據(jù)指針DPTR唯一供用戶使用的16位寄存器例如:2、專用寄存器的字節(jié)尋址根據(jù)不同的型號(hào),可字節(jié)尋址的專用寄存器個(gè)數(shù)不同。8051、80C51、8031等有21個(gè);8052等有26個(gè)。分布不連續(xù)。PC不可尋址。只能使用直接尋址方式。552、專用寄存器的字節(jié)尋址根據(jù)不同的型號(hào),可字節(jié)尋址的專用3、專用寄存器的位尋址80C51的位尋址空間:位尋址區(qū)(128位)+專用寄存器可位尋址區(qū)(83位)=211位563、專用寄存器的位尋址80C51的位尋址空間:56MCS-51的堆棧操作堆棧本身是數(shù)據(jù)結(jié)構(gòu)范疇內(nèi)的一種線性表結(jié)構(gòu)在物理上表現(xiàn)為一個(gè)特定的存儲(chǔ)區(qū)域采用LIFO(FILO)的存取規(guī)則(1)堆棧的功用現(xiàn)場(chǎng)保護(hù)和斷點(diǎn)保護(hù)數(shù)據(jù)的臨時(shí)存放,常用在編程過(guò)程中(2)堆棧的開(kāi)辟堆棧只能開(kāi)辟在內(nèi)部數(shù)據(jù)存儲(chǔ)器中的低128字節(jié)中。最好設(shè)置在用戶RAM區(qū)(30H-7FH)注意:在編程中盡量少的運(yùn)用多級(jí)子程序嵌套和多重中斷57MCS-51的堆棧操作堆棧本身是數(shù)據(jù)結(jié)構(gòu)范疇內(nèi)的一種線性表(3)堆棧指示器(SP)功能:用于存放堆棧的棧頂?shù)刂贰?4)堆棧類型(5)堆棧使用方式自動(dòng)方式指令方式58(3)堆棧指示器(SP)功能:用于存放堆棧的棧頂?shù)刂贰?4內(nèi)部程序存儲(chǔ)器80C51中含有4KB的ROM單元作為程序存儲(chǔ)器。地址為0000H-0FFFH其中位于存儲(chǔ)區(qū)前部的43個(gè)單元為系統(tǒng)保留區(qū),分為6個(gè)特殊功能區(qū)。地址為0000H-002AH0000H-0002H為系統(tǒng)啟動(dòng)單元0003H-000AH為外部中斷0中斷地址區(qū)000BH-0012H為定時(shí)器/計(jì)數(shù)器0中斷地址區(qū)0013H-001AH為外部中斷1中斷地址區(qū)001BH-0022H為定時(shí)器/計(jì)數(shù)器1中斷地址區(qū)0023H-002AH為串行中斷地址區(qū)59內(nèi)部程序存儲(chǔ)器80C51中含有4KB的ROM單元作為程序第三節(jié)并行輸入/輸出口電路MCS-51系列共有4個(gè)8位并行雙向口。分別表示為P0、P1、P2、P3。每個(gè)I/O端口內(nèi)部都有一個(gè)8位數(shù)據(jù)輸出鎖存器和一個(gè)8位數(shù)據(jù)輸入緩沖器。其中四個(gè)數(shù)據(jù)輸出鎖存器和端口號(hào)同名,且為SFR中的一個(gè)。60第三節(jié)并行輸入/輸出口電路MCS-51系列共有4個(gè)8位1、P0口字節(jié)地址80H,位地址80H-87H,可作為地址/數(shù)據(jù)線,也可作為通用I/O口。A1A2611、P0口字節(jié)地址80H,位地址80H-87H,可作為地2、P1口字節(jié)地址90H,位地址90H-97H,只可作為通用I/O口。622、P1口字節(jié)地址90H,位地址90H-97H,只可作為通用3、P2口字節(jié)地址0A0H,位地址0A0H-0A7H,既可作為高8位地址線使用,又可作為通用I/O口使用。一般不作數(shù)據(jù)傳送工作。633、P2口字節(jié)地址0A0H,位地址0A0H-0A7H,既4、P3口字節(jié)地址0B0H,位地址0B0H-0B7H,只可作為通用I/O口。主要用于第二功能控制邏輯。644、P3口字節(jié)地址0B0H,位地址0B0H-0B7H第四節(jié)時(shí)鐘電路與時(shí)序(1)振蕩脈沖信號(hào)的產(chǎn)生什么是時(shí)鐘電路?
時(shí)鐘電路就是用來(lái)產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào)的電路。1、時(shí)鐘信號(hào)的產(chǎn)生65第四節(jié)時(shí)鐘電路與時(shí)序(1)振蕩脈沖信號(hào)的產(chǎn)生什么是時(shí)鐘電路(2)MCS-51各時(shí)鐘信號(hào)的產(chǎn)生2、外部脈沖信號(hào)的引入注意:振蕩電路產(chǎn)生的振蕩脈沖并不是直接拿來(lái)使用的,而是經(jīng)分頻后再為系統(tǒng)所用的!原因:在多片單片機(jī)系統(tǒng)中,為了使單片機(jī)之間時(shí)鐘信號(hào)同步。注意:外時(shí)鐘信號(hào)電平持續(xù)時(shí)間應(yīng)大于20ns,且脈沖頻率應(yīng)低于12MHZ!66(2)MCS-51各時(shí)鐘信號(hào)的產(chǎn)生2、外部脈沖信號(hào)的引入注4個(gè):節(jié)拍(P)、狀態(tài)(S)、機(jī)器周期、指令周期MCS-51共有111條指令。按長(zhǎng)度分為單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令。不同的指令可以在不同的機(jī)器周期內(nèi)完成。時(shí)序定時(shí)單位
典型指令時(shí)序
節(jié)拍(P)--振蕩脈沖的周期。狀態(tài)(S)--振蕩周期的2倍。機(jī)器周期--振蕩周期的12倍。指令周期--執(zhí)行一條指令需要的時(shí)間。時(shí)序關(guān)系:1個(gè)機(jī)器周期=6個(gè)狀態(tài)=12個(gè)振蕩周期(節(jié)拍)674個(gè):節(jié)拍(P)、狀態(tài)(S)、機(jī)器周期、指令周期MCS-516868第五節(jié)工作方式1、復(fù)位方式和復(fù)位電路(1)復(fù)位操作功能:
初始化單片機(jī),使其進(jìn)行工作狀態(tài)系統(tǒng)重新啟動(dòng)
程序計(jì)數(shù)器和特殊功能寄存器復(fù)位狀態(tài)注意:復(fù)位后,ALE變?yōu)榈碗娖?,PSEN變?yōu)楦唠娖剑?9第五節(jié)工作方式1、復(fù)位方式和復(fù)位電路(1)復(fù)位操作功能:(2)復(fù)位信號(hào)及其產(chǎn)生片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的S5P2時(shí)刻對(duì)施密特觸發(fā)器進(jìn)行采樣,以確定是否有復(fù)位操作發(fā)生。(3)復(fù)位方式上電自動(dòng)復(fù)位手動(dòng)復(fù)位70(2)復(fù)位信號(hào)及其產(chǎn)生片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的S52、程序執(zhí)行方式2個(gè)方式:?jiǎn)尾綀?zhí)行工作方式
連續(xù)執(zhí)行工作方式(1)單步執(zhí)行工作方式單片機(jī)在控制面板上的單步執(zhí)行鍵控制下一條一條地執(zhí)行用戶程序中的指令。利用單片機(jī)外部中斷功能實(shí)現(xiàn)主要用于用戶程序調(diào)試(2)連續(xù)執(zhí)行工作方式所有單片機(jī)都需要的一種工作方式。712、程序執(zhí)行方式2個(gè)方式:?jiǎn)尾綀?zhí)行工作方式(1)單步執(zhí)行工3、低功耗方式(1)待機(jī)方式PCON.0-----IDL標(biāo)志位“1”有效振蕩器保持工作,保證中斷邏輯、串行口和定時(shí)器/計(jì)數(shù)器電路時(shí)鐘中斷方式退出(2)掉電保護(hù)方式PCON.1-----PD標(biāo)志位“1”有效只保證內(nèi)部RAM數(shù)據(jù)不丟失數(shù)據(jù)轉(zhuǎn)存------“掉電中斷”接通備用電源------支持內(nèi)部RAM數(shù)據(jù)現(xiàn)實(shí)方法:硬件復(fù)位方式退出723、低功耗方式(1)待機(jī)方式PCON.0--4、EPROM的編程和校驗(yàn)方式EPROM編程:利用特殊的手段將用戶程序?qū)懭雴纹瑱C(jī)內(nèi)部的EPROM。校驗(yàn):對(duì)寫入的程序代碼連續(xù)讀出校驗(yàn)的過(guò)程。8751H片內(nèi)含有4KB的EPROM,具有編程、校驗(yàn)和保密編程等工作方式。方式RSTPSENEA/VPPALE/PROGP2.7P2.6P2.5P2.4編程10VPP01000禁止10X110XX校驗(yàn)10110000保密位編程10VPP01100734、EPROM的編程和校驗(yàn)方式EPROM編程:利用特殊的手段(1)編程方式(2)程序校驗(yàn)方式(3)加密方式8751一旦完成保密編程以后,用戶可以讓它自由執(zhí)行EPROM中的程序,但不能以任何形式讀出和對(duì)它進(jìn)行局部修改。74(1)編程方式(2)程序校驗(yàn)方式(3)加密方式87第三章MCS-51單片機(jī)指令系統(tǒng)MCS-51單片機(jī)指令格式和尋址方式MCS-51單片機(jī)指令分類介紹75第三章MCS-51單片機(jī)指令系統(tǒng)MCS-51單片機(jī)指令格式第一節(jié)指令格式和尋址方式1、指令系統(tǒng)概述指令--計(jì)算機(jī)適用于控制各功能部件完成某一指定動(dòng)作的指示和命令。指令系統(tǒng)--指令的集合,因機(jī)器而異。如:Z80有150條基本指令I(lǐng)ntel8080有70條基本指令MCS-51有111條基本指令指令的三種表示形式:二進(jìn)制形式--直接為CPU執(zhí)行16進(jìn)制形式--閱讀和書寫匯編形式--編寫程序76第一節(jié)指令格式和尋址方式1、指令系統(tǒng)概述指令--計(jì)算機(jī)適2、MCS-51單片機(jī)指令格式操作碼操作數(shù)或操作數(shù)地址(1)一字節(jié)指令(49)
(2)二字節(jié)指令(45)(3)三字節(jié)指令(17)如:INCDPTR和MOVA,Rn如:MOVA,#data如:MOVDPTR,#data16和MOVdirect,#data[標(biāo)號(hào):]操作碼[操作數(shù)1],[操作數(shù)2],[操作數(shù)3];[注釋]772、MCS-51單片機(jī)指令格式操作碼操作數(shù)或操作數(shù)地址(1(1)寄存器尋址特點(diǎn):指令碼中含有操作數(shù)所在的寄存器號(hào)。MCS-51根據(jù)該寄存器可找到操作數(shù)。范圍:通用寄存器R0-R7部分專用寄存器(A、B、DPTR等)(2)直接尋址范圍:只限于內(nèi)部RAM和專用寄存器3、MCS-51單片機(jī)尋址方式尋址方式:如何指定操作數(shù)的所在單元特點(diǎn):指令碼中含有操作數(shù)地址。機(jī)器通過(guò)該地址尋找操作數(shù)。78(1)寄存器尋址特點(diǎn):指令碼中含有操作數(shù)所在的寄存器號(hào)。M(4)立即尋址特點(diǎn):指令碼中含有操作數(shù)。(3)寄存器間接尋址特點(diǎn):指令碼中含有操作數(shù)地址所在的寄存器號(hào)。機(jī)器通過(guò)寄存器可找到操作數(shù)地址,再根據(jù)該地址可找到操作數(shù)。范圍:內(nèi)部RAM低128單元(只能使用R0和R1)外部RAM(使用DPTR、R0或R1)例:MOVA,@R079(4)立即尋址特點(diǎn):指令碼中含有操作數(shù)。(3)寄存器間接(5)變址尋址特點(diǎn):操作數(shù)地址=基地址+地址偏移量;指令碼中隱含存放基地址的寄存器號(hào)(PC/DPTR);DPTR/PC中的基地址常常是表格始地址,A中存放偏移量rel。功能:主要用于訪問(wèn)程序存儲(chǔ)器中的數(shù)據(jù)表格。例:MOVA,@A+DPTR80(5)變址尋址特點(diǎn):操作數(shù)地址=基地址+地址偏移量;功能:(6)位尋址特點(diǎn):操作數(shù)是可尋址位,指令碼中含有位地址。范圍:內(nèi)部RAM中的20H-2FH位尋址區(qū)高128單元中的可位尋址專用寄存器表示方法:直接使用位地址位名稱表示方法單元地址加位數(shù)表示方法專用寄存器符號(hào)加位數(shù)的表示方法(7)相對(duì)尋址功能:主要用于解決程序中的轉(zhuǎn)移問(wèn)題特點(diǎn):目的地址=轉(zhuǎn)移指令地址+轉(zhuǎn)移指令字節(jié)數(shù)+REL注意:在程序中,相對(duì)地址偏移量常用符號(hào)表示。81(6)位尋址特點(diǎn):操作數(shù)是可尋址位,指令碼中含有位地址。范4、MCS-51單片機(jī)尋址方式小結(jié)對(duì)片內(nèi)外程序存儲(chǔ)器只能使用變址尋址方式內(nèi)部數(shù)據(jù)存儲(chǔ)器尋址方式靈活外部數(shù)據(jù)存儲(chǔ)器只能使用寄存器間接尋址方式824、MCS-51單片機(jī)尋址方式小結(jié)對(duì)片內(nèi)外程序存儲(chǔ)器只能第二節(jié)指令分類介紹指令格式中符號(hào)意義說(shuō)明通用格式:MOV<目的操作數(shù)>,<源操作數(shù)>;<注釋>特點(diǎn):源操作數(shù)和目的操作數(shù)都在內(nèi)部RAM中。1、內(nèi)部RAM數(shù)據(jù)傳送指令組(16條)(1)立即數(shù)傳送指令(2)直接型數(shù)據(jù)傳送指令(3)寄存器尋址型數(shù)據(jù)傳送指令(4)寄存器間址型數(shù)據(jù)傳送指令數(shù)據(jù)傳送類指令83第二節(jié)指令分類介紹指令格式中符號(hào)意義說(shuō)明通用格式:MOV指令通式:MOVA,#dataMOVRn,#dataMOV@Ri,#dataMOVdirect,#dataMOVDPTR,#data16例如:請(qǐng)編程完成將數(shù)據(jù)X送到20H單元的操作1.MOVR0,#20HMOV@R0,#X2.MOV20H,#X84指令通式:例如:請(qǐng)編程完成將數(shù)據(jù)X送到20H單元的操作1.指令通式:MOVA,directMOVdirect,AMOV@Ri,directMOVRn,directMOVdirect2,direct1例如:已知(40H)=X,編程完成將X送到50H單元。1.MOVR0,#50HMOV@R0,40H2.MOV50H,40H85指令通式:例如:已知(40H)=X,編程完成將X送到50H單指令通式:MOVA,RnMOVRn,AMOVdirect,Rn特點(diǎn):指令碼中含有Rn的寄存器號(hào)例如:已知R7=X,編程完成將X送到20H單元。1.MOVA,R7MOV20H,A2.MOV20H,R786指令通式:例如:已知R7=X,編程完成將X送到20H單元。1指令通式:MOVA,@RiMOV@Ri,AMOVdirect,@Ri特點(diǎn):指令碼中含有Ri的寄存器號(hào);Ri中應(yīng)預(yù)先放有8位二進(jìn)制地址。例如:編程完成將20H單元中的數(shù)據(jù)與30H單元中的數(shù)據(jù)之間的交換。MOVA,20HMOV20H,30HMOV30H,A87指令通式:例如:編程完成將20H單元中的數(shù)據(jù)與30H單元中的2、外部RAM數(shù)據(jù)傳送指令組(4條)特點(diǎn):只能使用間接尋址。助記符為MOVX,且須以累加器A為中介。說(shuō)明:第1、2條指令可在外部RAM的64K范圍內(nèi)尋址;第3、4條指令能對(duì)外部RAM0000H—00FFH范圍尋址。指令通式:
MOVXA,@DPTR
MOVX@DPTR,A
MOVXA,@Ri
MOVX@Ri,A882、外部RAM數(shù)據(jù)傳送指令組(4條)特點(diǎn):只能使用間接尋址。例如:已知外部RAM的88H單元中有一數(shù)據(jù)X,試編寫程序?qū)傳送到外部RAM的1818H單元。MOVR0,#88HMOVDPTR,#1818HMOVXA,@R0MOVX@DPTR,A89例如:已知外部RAM的88H單元中有一數(shù)據(jù)X,試編寫程序?qū)3、程序存儲(chǔ)器數(shù)據(jù)傳送指令組(2條)特點(diǎn):使用變址尋址。助記符MOVC,也須以累加器A為中介。單向傳送。指令通式:
MOVCA,@A+DPTR
MOVCA,@A+PC說(shuō)明:兩條指令均為單字節(jié)查表指令;DPTR/PC中存放被查表的初始地址,A中存放被查表的項(xiàng)數(shù)。903、程序存儲(chǔ)器數(shù)據(jù)傳送指令組(2條)特點(diǎn):使用變址尋址。助記[例3.1]以查表方法把累加器中的十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼,并送回累加器中。其查表程序如下:
2000H
HBA:INCA
2001HMOVCA,@A+PC2002HRET2003HDB30H2004HDB31H2005HDB32H……200CHDB39H200DHDB41H200EHDB42H……2012HDB46H91[例3.1]以查表方法把累加器中的十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII例:已知累加器A中有一個(gè)0-9范圍內(nèi)的數(shù),試用查表指令編出能查找出該數(shù)平方值表的程序。[方法一]以DPTR為基址寄存器查表。MOVDPTR,#2000H
MOVCA,@A+DPTRORG2000HDB0DB1DB4DB9……DB81END92例:已知累加器A中有一個(gè)0-9范圍內(nèi)的數(shù),試用查表指令編出能[方法二]以PC為基址寄存器查表。單元地址指令碼ORG1FFBH1FFBH2402HADDA,#data
1FFDH83HMOVCA,@A+PC1FFEH80FEHSJMP$2000H00HDB001HDB1DB4DB9……DB81END起始地址=PC當(dāng)前值+data93[方法二]以PC為基址寄存器查表。起始地址=PC當(dāng)前值+d4、數(shù)據(jù)交換指令組(4條)指令通式:XCHA,RnXCHA,directXCHA,@RiXCHDA,@Ri說(shuō)明:只有累加器A可作目的操作數(shù)。這幾條指令執(zhí)行后會(huì)影響PSW中的P標(biāo)志位。最后一條指令用作代碼轉(zhuǎn)換。944、數(shù)據(jù)交換指令組(4條)指令通式:說(shuō)明:94例二:已知50H中有一個(gè)0-9的數(shù),請(qǐng)編程把它變?yōu)橄鄳?yīng)的ASCII碼程序。MOVR0,#50HMOVA,#30HXCHDA,@R0MOV@R0,A例一:已知外部RAM的20H單元中有一個(gè)數(shù)X,內(nèi)部RAM20H單元中有一個(gè)數(shù)Y,試編寫可以使它們互相交換的程序。MOVR1,#20HMOVXA,@R1XCHA,@R1MOVX@R0,A95例二:已知50H中有一個(gè)0-9的數(shù),請(qǐng)編程把它變?yōu)橄鄳?yīng)的AS5、堆棧操作指令組指令通式:說(shuō)明:均為雙字節(jié)指令;A和Rn不可直接出現(xiàn)在指令中,
A必須用ACC或它的物理地址(E0H),
Rn必須用它的物理地址(00H-1FH)。PUSHdirectPOPdirect例:利用堆棧作為轉(zhuǎn)存介質(zhì)編寫30H和40H單元中內(nèi)容的互換。MOVSP,#50HPUSH30HPUSH40HPOP30HPOP40H965、堆棧操作指令組指令通式:說(shuō)明:PUSH算術(shù)運(yùn)算類指令1、加法指令組(不帶CY位加法指令)ADDA,RnADDA,directADDA,@RiADDA,#data注意:(1)目的操作數(shù)只能是累加器A。(2)參加運(yùn)算的兩個(gè)操作數(shù)必須是8位二進(jìn)制數(shù);操作結(jié)果也是一個(gè)8位二進(jìn)制數(shù),且會(huì)對(duì)PSW中標(biāo)志位產(chǎn)生影響。(3)若將兩個(gè)操作數(shù)看作帶符號(hào)數(shù),則根據(jù)OV位判斷結(jié)果是否溢出。97算術(shù)運(yùn)算類指令1、加法指令組(不帶CY位加法指令)ADD例一:(A)=0C2H,(R0)=0A9H,執(zhí)行ADDA,R0指令后,A和PSW中的值是多少?例二:執(zhí)行下列指令后,A和PSW中的值是多少?MOVA,#5AHADDA,#6BH(A)=6BH,(PSW)=85H(A)=C5H,(PSW)=44H98例一:(A)=0C2H,(R0)=0A9H,執(zhí)行ADDA,2、帶進(jìn)位加法指令組ADDCA,RnADDCA,directADDCA,@RiADDCA,#data注意:(1)目的操作數(shù)只能是累加器A。(2)主要用于多字節(jié)加法運(yùn)算。(3)其中所加的CY中的值是指令執(zhí)行前的CY值,不是執(zhí)行中形成的CY值。例一:(A)=85H,(R0)=30H,(31H)=FFH,CY=1,試問(wèn)CPU執(zhí)行如下指令后累加器A和CY中的值是多少?(1)ADDCA,R0(2)ADDCA,31H992、帶進(jìn)位加法指令組ADDCA,Rn注意:例一:(A)=例二:兩個(gè)三字節(jié)無(wú)符號(hào)數(shù)相加,被加數(shù)放在內(nèi)部RAM20H-22H單元(低位在前),加數(shù)放在內(nèi)部RAM2AH-2CH單元(低位在前)。編程序?qū)崿F(xiàn),將它們計(jì)算的結(jié)果放在被加數(shù)單元中。MOVR0,#20HMOVR1,#2AHMOVR7,#03HCLRCLOOP:MOVA,@R0ADDCA,@R1MOV@R0,AINCR0INCR1DJNZR7,LOOPCLRAADDCA,#00HMOV@R0,A100例二:兩個(gè)三字節(jié)無(wú)符號(hào)數(shù)相加,被加數(shù)放在內(nèi)部RAM20H-23、帶借位減法指令組SUBBA,RnSUBBA,directSUBBA,@RiSUBBA,#data注意:(1)在單片機(jī)內(nèi)部,減法操作是在控制器控制下采用補(bǔ)碼加法來(lái)實(shí)現(xiàn)的。在實(shí)際應(yīng)用中,可按二進(jìn)制減法法則進(jìn)行。(2)MCS-51中沒(méi)有不帶借位的減法指令。(3)進(jìn)行不帶借位減法運(yùn)算時(shí),可結(jié)合“CLRC”指令應(yīng)用。(4)若將兩個(gè)操作數(shù)看作帶符號(hào)數(shù),則根據(jù)OV位判斷結(jié)果是否溢出。1013、帶借位減法指令組SUBBA,Rn注意:101例二:判斷執(zhí)行如下程序后累加器A和PSW中的值是多少?CLRCMOVA,#52HSUBBA,#0B4H例一:(A)=0C9H,(R2)=54H,(CY)=1。試問(wèn)CPU執(zhí)行指令SUBBA,R2后累加器A和PSW中的值是多少?(A)=74H,(PSW)=04H(A)=9EH,(PSW)=C5H102例二:判斷執(zhí)行如下程序后累加器A和PSW中的值是多少?例一:4、加1指令組INCAINCRnINCdirectINC@RiINCDPTR例一:(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。執(zhí)行下列指令后,各寄存器及單元中的結(jié)果是多少?是否改變了PSW的狀態(tài)?INCAINCR3INC30HINC@R0注意:只有INCA指令可以影響PSW中的奇偶標(biāo)志位P,其它指令不會(huì)影響標(biāo)志位。1034、加1指令組INCA例一:(A)=0FFH,(R3)5、減1指令組DECADECRnDECdirectDEC@Ri注意:只有DECA指令可以影響PSW中的奇偶標(biāo)志位P,其它指令不會(huì)影響標(biāo)志位。1045、減1指令組DECA注意:1046、乘除指令組MULABDIVAB注意:執(zhí)行這兩條指令,進(jìn)位標(biāo)志CY總是被清“0”例一:已知兩個(gè)8位無(wú)符號(hào)乘數(shù)分別放在30H和31H單元中,試編出令它們相乘并把積的低8位放入32H單元,高8位放入33H單元的程序。MOVR0,#30HMOVA,@R0INCR0MOVB,@R0MULABINCR0MOV@R0,AINCR0MOV@R0,B1056、乘除指令組MULAB注意:例一:已知兩個(gè)8位無(wú)符號(hào)7、十進(jìn)制調(diào)整指令DAA功能:用于對(duì)BCD碼十進(jìn)制數(shù)加法運(yùn)算的結(jié)果進(jìn)行修正。注意:(1)DA指令不影響溢出標(biāo)志。(2)使用中通常緊跟在加法指令之后,不能跟在減法指令之后。(3)借助進(jìn)位標(biāo)志可實(shí)現(xiàn)多位BCD數(shù)加法結(jié)果的調(diào)整。例一:試寫出能完成85+59的BCD加法程序,并對(duì)其工作過(guò)程進(jìn)行分析。MOVA,#85HADDA,#59HDAAEND1067、十進(jìn)制調(diào)整指令DAA功能:用于對(duì)BCD碼十進(jìn)制數(shù)加例二:已知R0和R1中分別存有BCD被減數(shù)91和BCD減數(shù)36,試編程求它們的BCD差,并存入R3中。CLRCMOVA,#9AHSUBBA,R1ADDA,R0DAAMOVR3,ACLRCEND步驟:(1)求BCD減數(shù)的補(bǔ)數(shù);(2)BCD被減數(shù)加減數(shù)的補(bǔ)數(shù);(3)對(duì)和進(jìn)行十進(jìn)制加法調(diào)整。107例二:已知R0和R1中分別存有BCD被減數(shù)91和BCD減數(shù)3例三:4位壓縮BCD數(shù)的相加程序。設(shè)一個(gè)加數(shù)存放在30H、31H單元,另一個(gè)加數(shù)存放在32H、33H單元,試編程序?qū)⒑痛娣诺?0H、31H單元。MOVR0,#30HMOVR1,#32HMOVA,@R0ADDA,@R1DAAMOV@R0,AINCR0INCR1MOVA,@R0ADDCA,@R1DAAMOV@R0,A108例三:4位壓縮BCD數(shù)的相加程序。設(shè)一個(gè)加數(shù)存放在30H、3邏輯運(yùn)算及移位類指令1、邏輯與運(yùn)算指令組ANLA,RnANLA,directANLA,@RiANLA,#dataANLdirect,AANLdirect,#data功能:主要用于將某存儲(chǔ)單元或累加器A中某幾位清“0”。例:已知R0中有一個(gè)ASCII碼,試通過(guò)編程把它變?yōu)锽CD碼。MOVA,R0ANLA,#0FHMOVR0,A109邏輯運(yùn)算及移位類指令1、邏輯與運(yùn)算指令組ANLA,Rn功2、邏輯或運(yùn)算指令組ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#data功能:主要用于將某存儲(chǔ)單元或累加器A中某幾位置“1”。例:設(shè)(A)=0AAH,P1=0FFH,試通過(guò)編程把累加器A中的低4位送入P1口低4位,而P1口高4位不變。MOVR0,AANLA,#0FHANLP1,#0F0HORLP1,AMOVA,R01102、邏輯或運(yùn)算指令組ORLA,Rn功能:例:設(shè)(A)=03、邏輯異或運(yùn)算指令組XRLA,RnXRLA,directXRLA,@RiXRLA,#dataXRLdirect,AXRLdirect,#data功能:主要用于將某存儲(chǔ)單元或累加器A中某幾位置取反。例:已知外部RAM30H中有一數(shù)6EH,試編寫程序令其高4位不變,低4位取反。MOVR0,#30HMOVXA,@R0XRLA,#0FHMOVX@P0,A1113、邏輯異或運(yùn)算指令組XRLA,Rn功能:例:已知外部R4、累加器清零和取反指令組CLRACPLA注意:其中CPLA取反指令常用于對(duì)某個(gè)存儲(chǔ)單元或某個(gè)存儲(chǔ)區(qū)域中帶符號(hào)數(shù)的求補(bǔ)。例:已知30H單元中有一負(fù)數(shù)X,試寫出求X的補(bǔ)碼的程序。MOVA,#30HCPLAINCAMOV30H,A1124、累加器清零和取反指令組CLRA注意:例:已知30H單5、移位指令組RLARRARLCARRCASWAPAA7A0A7A0A7A0CYA7A0CYA7-A4A3-A01135、移位指令組RLAA7A例一:已知30H、31單元中有一個(gè)16位的二進(jìn)制數(shù)(30H單元為低8位),請(qǐng)通過(guò)編程令其擴(kuò)大二倍。CPLCMOVR1,#30HMOVA,@R1RLCAMOV@R1,AINCR1MOVA,@R1RLCAMOV@R1,A114例一:已知30H、31單元中有一個(gè)16位的二進(jìn)制數(shù)(30H單例二:在43H、44H單元中有兩個(gè)BCD數(shù),請(qǐng)通過(guò)編程將它們緊縮成一個(gè)字節(jié)并放入43H單元中(其中43H單元中的BCD數(shù)做為緊縮BCD數(shù)的高位)。MOVR1,#43HMOVA,@R1SWAPAINCR1ORLA,@R1MOV43H,A115例二:在43H、44H單元中有兩個(gè)BCD數(shù),請(qǐng)通過(guò)編程將它們控制轉(zhuǎn)移類指令1、無(wú)條件轉(zhuǎn)移指令組2、條件轉(zhuǎn)移指令組3、子程序調(diào)用與返回指令組4、空操作指令116控制轉(zhuǎn)移類指令1、無(wú)條件轉(zhuǎn)移指令組2、條件轉(zhuǎn)移指令組3、子程控制轉(zhuǎn)移類指令LJMPaddr16AJMPaddr11SJMPrelJMP@A+DPTR1、無(wú)條件轉(zhuǎn)移指令組特點(diǎn):(1)不會(huì)影響PSW中的標(biāo)志位。(2)指令的操作對(duì)象是PC的地址。(3)第2、3條指令是相對(duì)轉(zhuǎn)移指令,在子程序中很有用。117控制轉(zhuǎn)移類指令LJMPaddr161、無(wú)條件轉(zhuǎn)移指令長(zhǎng)轉(zhuǎn)移指令
LJMPaddr16;(PC)addr16例:已知某單片機(jī)監(jiān)控程序起始地址為A080H,試問(wèn)用什么辦法可使單片機(jī)開(kāi)機(jī)后自動(dòng)執(zhí)行監(jiān)控程序。答:為使開(kāi)機(jī)后能自動(dòng)轉(zhuǎn)入A080H處執(zhí)行,應(yīng)在0000H處存放一條如下指令:LJMP0A080H說(shuō)明:(1)把指令碼中的addr16送入PC,使機(jī)器執(zhí)行下條指令時(shí)無(wú)條件轉(zhuǎn)移到addr16處執(zhí)行程序。(2)可以在64KB范圍內(nèi)轉(zhuǎn)移。(3)一般情況,addr16可用符號(hào)地址表示。118長(zhǎng)轉(zhuǎn)移指令LJMPaddr16;(PC)a絕對(duì)轉(zhuǎn)移指令
AJMPaddr11;(PC)(PC)+2,(PC10-0)addr11例:已知指令KWR:AJMPaddr11中,KWR=3100H,addr11=10110100101B,則轉(zhuǎn)移的目標(biāo)地址是多少?答:程序轉(zhuǎn)移到35A5H處執(zhí)行。注意:AJMP指令的目標(biāo)轉(zhuǎn)移地址不是與AJMP指令地址在同一個(gè)2KB區(qū)域,而是應(yīng)與AJMP指令取出后的PC地址在同一個(gè)2KB區(qū)域。說(shuō)明:(1)(PC)(PC)+2,確定程序轉(zhuǎn)移的頁(yè)面地址。(2)(PC10-0)addr11,確定程序轉(zhuǎn)移的頁(yè)內(nèi)地址。119絕對(duì)轉(zhuǎn)移指令A(yù)JMPaddr11;(PC)短轉(zhuǎn)移指令
SJMPrel;(PC)(PC)+2,(PC)(PC)+rel1、根據(jù)偏移量計(jì)算轉(zhuǎn)移的目標(biāo)地址:
例一:835AHSJMP35H
例二:835AHSJMP0E7H答:目標(biāo)地址=835AH+02H+35H=8391H答:目標(biāo)地址=835AH+02H-19H=8343H說(shuō)明:(1)rel是一個(gè)8位的帶符號(hào)偏移字節(jié)。(2)rel的取值范圍是-128到+127。(3)目的地址=(PC)+2+rel。120短轉(zhuǎn)移指令SJMPrel;(PC)(PC)2、根據(jù)目標(biāo)地址計(jì)算偏移量:(向高地址轉(zhuǎn)移)rel=目標(biāo)地址-源地址-2(向低地址轉(zhuǎn)移)rel=(目標(biāo)地址-源地址-2)補(bǔ)=FEH-(源地址-目標(biāo)地址)1000H7401HSTAR:MOVA,#01H1002HF8HMOVR0,A1003H90CF01HLOOP:MOVDPTR,#0CF01H…1017H80relSJMPSTART…END答:rel=E7H。目標(biāo)地址的轉(zhuǎn)移范圍是F99H-1098H例:有下列程序,請(qǐng)計(jì)算SJMPSTAR指令碼中的rel,并分析目標(biāo)地址的轉(zhuǎn)移范圍。1212、根據(jù)目標(biāo)地址計(jì)算偏移量:1000H7401H變址轉(zhuǎn)移指令
JMP@A+DPTR;(PC)((A)+(DPTR))說(shuō)明:(1)DPTR中存放目標(biāo)轉(zhuǎn)移地址的基地址,常常是一張轉(zhuǎn)移指令表的起始地址。(2)A中存放表的偏移量。(3)主要用于程序的多分支轉(zhuǎn)移。122變址轉(zhuǎn)移指令JMP@A+DPTR;(PC)例:已知累加器A中放有待處理命令,編號(hào)0-4,程序存儲(chǔ)器中放有起始地址為PMTB的三字節(jié)長(zhǎng)轉(zhuǎn)移指令表。試編一程序能使機(jī)器按照累加器A中的命令編號(hào)轉(zhuǎn)去執(zhí)行相應(yīng)的命令程序。CM:MOVR1,ARLAADDA,R1MOVDPTR,#PMTBJMP@A+DPTRPMTB:LJMPPM0LJMPPM1LJMPPM2LJMPPM3LJMPPM4…PM0:…PM4:…123例:已知累加器A中放有待處理命令,編號(hào)0-4,程序存儲(chǔ)器中放控制轉(zhuǎn)移類指令2、條件轉(zhuǎn)移指令組累加器判零轉(zhuǎn)移指令數(shù)值比較轉(zhuǎn)移指令減1條件轉(zhuǎn)移指令124控制轉(zhuǎn)移類指令2、條件轉(zhuǎn)移指令組累加器判零轉(zhuǎn)移指令124應(yīng)用:(1)對(duì)于無(wú)符號(hào)數(shù)的比較,可直接根據(jù)執(zhí)行后CY位來(lái)判斷。(2)對(duì)于帶符號(hào)數(shù)的比較,先要確定符號(hào),再判斷。指令操作情況:(1)若左操作數(shù)=右操作數(shù),則程序順序執(zhí)行(即:(PC)(PC)+3);進(jìn)位標(biāo)志清“0”。(2)若左操作數(shù)>右操作數(shù),則程序轉(zhuǎn)移(即:(PC)(PC)+3+rel);進(jìn)位標(biāo)志清“0”。(3)若左操作數(shù)<右操作數(shù),則程序轉(zhuǎn)移(即:(PC)(PC)+3+rel);進(jìn)位標(biāo)志置“1”。125應(yīng)用:指令操作情況:125控制轉(zhuǎn)移類指令3、子程序調(diào)用與返回指令組絕對(duì)調(diào)用指令長(zhǎng)調(diào)用指令返回指令126控制轉(zhuǎn)移類指令3、子程序調(diào)用與返回指令組絕對(duì)調(diào)用指令126絕對(duì)調(diào)用指令
ACALLaddr11;(PC)(PC)+2(SP)(SP)+1,((SP))(PC7-0)(SP)(SP)+1,((SP))(PC15-8)(PC10-0)addr11說(shuō)明:(1)與絕對(duì)轉(zhuǎn)移指令類似,要求該指令的下一條指令的第一個(gè)字節(jié)與子程序的入口地址必須在同一個(gè)2KB存儲(chǔ)區(qū)內(nèi)。(2)指令操作過(guò)程可分為兩部分:斷點(diǎn)保護(hù)、構(gòu)造目的地址。(3)addr11可用符號(hào)地址(標(biāo)號(hào))表示。127絕對(duì)調(diào)用指令A(yù)CALLaddr11;(PC)例一:8100HACALL48FH
先將PC加2:(PC)=8100H+2=1000000100000010B再替換低11位地址:(PC)=1000010010001111B=848FH48FH先將PC加2:(PC)=8F00H+2=1000111100000010B再替換低11位地址:(PC)=1000110010001111B=8C8FH48FH例二:8F00HACALL48FH128例一:8100HACALL48FH先將P長(zhǎng)調(diào)用指令
LCALLaddr16;(PC)(PC)+3(SP)(SP)+1,((SP))(PC7-0)(SP)(SP)+1,((SP))(PC15-8)(PC)addr16說(shuō)明:(1)主程序和被調(diào)用的子程序可以任意地放在64KB范圍內(nèi)。(2)指令操作過(guò)程可分為兩部分:斷點(diǎn)保護(hù)、構(gòu)造目的地址。(3)addr16可用符號(hào)地址(標(biāo)號(hào))表示。129長(zhǎng)調(diào)用指令LCALLaddr16;(PC)(例:已知:MA=0500H。試問(wèn)執(zhí)行如下指令MOVSP,#70HMA:LCALL8192HSP中數(shù)據(jù)為多少?堆棧中數(shù)據(jù)如何變化?PC中的內(nèi)容是什么?答:(SP)=72H,(71H)=03H,(72H)=05H,(PC)=8192H130例:已知:MA=0500H。試問(wèn)執(zhí)行如下指令答:(SP)=7返回指令
RET;(PC15-8)((SP)),(SP)(SP)-1(PC7-0)((SP)),(SP)(SP)-1RETI;(PC15-8)((SP)),(SP)(SP)-1(PC7-0)((SP)),(SP)(SP)-1說(shuō)明:(1)第1條指令用于子程序返回,只能用于子程序末尾。(2)第2條指令用于中斷服務(wù)程序返回,只能用于中斷服務(wù)程序的末尾。(3)機(jī)器執(zhí)行RETI指令后,還將清除相應(yīng)中斷優(yōu)先級(jí)狀態(tài)位,以允許單片機(jī)響應(yīng)低優(yōu)先級(jí)的中斷。131返回指令RET;(PC15-8)((SP))例:試?yán)米映绦蚣夹g(shù)編出令20H-2AH、30H-3EH和40H-4FH三個(gè)子域清零的程序。MOVSP,#30HMOVR0,#20HMOVR2,#0BHACALLZEROMOVR0,#30HMOVR2,#0FHACALLZEROMOVR0,#40HMOVR2,#10HACALLZEROSJMP$ZERO:MOV@R0,#00HINCR0DJNZR2,ZERORETEND132例:試?yán)米映绦蚣夹g(shù)編出令20H-2AH、30H-3EH和4控制轉(zhuǎn)移類指令4、空操作指令NOP;(PC)(PC)+1說(shuō)明:用于程序的等待或時(shí)間的延遲。133控制轉(zhuǎn)移類指令4、空操作指令NOP;(PC)(P位操作類指令1、位傳送指令組MOVC,bitMOVbit,C說(shuō)明:不能進(jìn)行位地址與位地址值之間的傳送。例:將20H位的內(nèi)容與5AH位相交換,并不改變CY的值。MOV10H,CMOVC,20HMOV21H,CMOVC,5AHMOV20H,CMOVC,21HMOV5AH,C134位操作類指令1、位傳送指令組MOVC,bit說(shuō)明:不能2、位置位復(fù)位指令組SETBCSETBbitCLRCCLRbit說(shuō)明:置位指令是位操作獨(dú)有的。3、位運(yùn)算指令組ANLC,bitANLC,/bitORLC,bitORLC,/bitCPLCCPLbit1352、位置位復(fù)位指令組SETBC說(shuō)明:置位指令是位操作獨(dú)例:試編程完成位地址為10H、11H中的位異或操作,結(jié)果存入12H位。MOVC,11HANLC,/10HMOV12H,CMOVC,10HANLC,/11HORLC,12HMOV12H,C136例:試編程完成位地址為10H、11H中的位異或操作,結(jié)果存入JCrel;CY位為1轉(zhuǎn)移JNCrel;CY位為0轉(zhuǎn)移JBbit,rel;bit位為1轉(zhuǎn)移JNBbit,rel;bit位為0轉(zhuǎn)移JBCbit,rel;bit位為1轉(zhuǎn)移,并將bit清零4、位控制轉(zhuǎn)移轉(zhuǎn)移指令組例一:已知內(nèi)部RAM的50H和51H單元中各有一個(gè)無(wú)符號(hào)8位二進(jìn)制,且兩數(shù)不同。試編程比較它們的大小,并把大數(shù)送到52H單元。MOVA,50HCJNEA,51H,LOOPLOOP:JNCLOOP1MOVA,51HLOOP1:MOV52H,A137JCrel;CY位為1轉(zhuǎn)移4、位控制轉(zhuǎn)例二:已知外部RAM的2000H開(kāi)始有一個(gè)輸入數(shù)據(jù)緩沖區(qū),該緩沖區(qū)的數(shù)據(jù)以回車符CR(ASCII碼為0DH)為結(jié)束標(biāo)志,試編寫一個(gè)程序能把正數(shù)送入從30H(片內(nèi)RAM)開(kāi)始的正數(shù)區(qū),并把負(fù)數(shù)送入40H開(kāi)始的負(fù)數(shù)區(qū)。(數(shù)據(jù)指針及跳轉(zhuǎn)指令應(yīng)用)MOVDPTR,#2000HMOVR0,#30HMOVR1,#40HNEXT:MOVXA,@DPTRCJNEA,#0DH,COMPSJMPDONECOMP:JBACC.7,LOOPMOV@R0,AINCR0INCDPTRSJMPNEXTLOOP:MOV@R1,AINCR1INCDPTRSJMPNEXTDONE:RETEND138例二:已知外部RAM的2000H開(kāi)始有一個(gè)輸入數(shù)據(jù)緩沖區(qū),該I/O訪問(wèn)指令使用說(shuō)明對(duì)P0-P3口的訪問(wèn)特點(diǎn):用“MOV”指令既可以進(jìn)行字節(jié)訪問(wèn),又可以進(jìn)行位訪問(wèn)。1、讀引腳數(shù)據(jù)口或口線輸入指令均屬于讀引腳的操作。…ORLP1,#03HMOVC,P1.0…MOVC,P1.2例:利用P1口的P1.0和P1.1進(jìn)行外界信號(hào)的輸入。注意:在使用輸入指令前應(yīng)先用指令把口線引腳設(shè)置為高電平。139I/O訪問(wèn)指令使用說(shuō)明對(duì)P0-P3口的訪問(wèn)特點(diǎn):用“MOV”2、讀鎖存器數(shù)據(jù)對(duì)口或口線執(zhí)行“讀-修改-
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨欄課程設(shè)計(jì)方案
- 鐵路橋拱橋課程設(shè)計(jì)
- 運(yùn)動(dòng)損傷的處理課程設(shè)計(jì)
- 除濕機(jī)課程設(shè)計(jì)
- 龍頭建模課程設(shè)計(jì)
- 課程設(shè)計(jì)數(shù)電proteus
- 植物扦插課程設(shè)計(jì)思路
- 研學(xué)課程設(shè)計(jì)大賽現(xiàn)場(chǎng)
- 疫情心理咨詢課程設(shè)計(jì)
- 算法課程設(shè)計(jì)電路布線
- 第2課《濟(jì)南的冬天》課件-2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)上冊(cè)
- 2024年水利工程高級(jí)工程師理論考試題庫(kù)(濃縮400題)
- 增強(qiáng)現(xiàn)實(shí)技術(shù)在藝術(shù)教育中的應(yīng)用
- TD/T 1060-2021 自然資源分等定級(jí)通則(正式版)
- 《創(chuàng)傷失血性休克中國(guó)急診專家共識(shí)(2023)》解讀
- 倉(cāng)庫(kù)智能化建設(shè)方案
- 海外市場(chǎng)開(kāi)拓計(jì)劃
- 供應(yīng)鏈組織架構(gòu)與職能設(shè)置
- 幼兒數(shù)學(xué)益智圖形連線題100題(含完整答案)
- 七上-動(dòng)點(diǎn)、動(dòng)角問(wèn)題12道好題-解析
- 2024年九省聯(lián)考新高考 數(shù)學(xué)試卷(含答案解析)
評(píng)論
0/150
提交評(píng)論