版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
電機(jī)微機(jī)測(cè)控及功率接口(一)
主講教師胡慧慧
2015年3月
課程介紹我校電氣專業(yè)目前主要有兩個(gè)研究方向:
◆電力電子與電氣傳動(dòng);
◆電力系統(tǒng)自動(dòng)化;前者主要研究對(duì)象為大功率執(zhí)行部件,如電機(jī)等。而針對(duì)電機(jī)的自動(dòng)控制主要采用單片機(jī)應(yīng)用系統(tǒng)。為了將單片機(jī)和大功率被控對(duì)象的接口技術(shù)結(jié)合起來(lái)。從08年開(kāi)設(shè)此系列課程,本學(xué)期講述第(一)部分,以研究單片機(jī)的基本原理和構(gòu)造為主。下學(xué)期第(二)部分以介紹實(shí)際應(yīng)用的接口技術(shù)為主。主要內(nèi)容第一章單片機(jī)基礎(chǔ)第二章MCS-51單片機(jī)的硬件結(jié)構(gòu)與原理第三章MCS-51指令系統(tǒng)第四章匯編語(yǔ)言程序設(shè)計(jì)第五章定時(shí)器/計(jì)數(shù)器與中斷系統(tǒng)第六章單片機(jī)系統(tǒng)擴(kuò)展第七章MCS-51單片機(jī)系統(tǒng)配置及接口技術(shù)第八章串行通信技術(shù)
參考書(shū)目1、單片機(jī)原理與應(yīng)用技術(shù)清華大學(xué)出版社2、單片機(jī)原理及應(yīng)用哈爾濱工業(yè)大學(xué)出版社3、單片機(jī)原理及接口技術(shù)北京航空航天大學(xué)出版社4、MCS-51單片機(jī)及應(yīng)用系統(tǒng)設(shè)計(jì)北京航空航天大學(xué)出版社
課程導(dǎo)學(xué)1、重視實(shí)踐環(huán)節(jié),本課程有12學(xué)時(shí)實(shí)驗(yàn)環(huán)節(jié),結(jié)合實(shí)驗(yàn)儀器,做到活學(xué)活用。2、強(qiáng)調(diào)平時(shí)作業(yè)和考勤。
3、注重答疑。聯(lián)系方式:47467586018254265787基礎(chǔ)B211第一章單片機(jī)基礎(chǔ)★
單片機(jī)的內(nèi)部結(jié)構(gòu)★
單片機(jī)的結(jié)構(gòu)特點(diǎn)★
單片機(jī)的發(fā)展概況★
單片機(jī)的主要技術(shù)發(fā)展方向★
單片機(jī)的應(yīng)用領(lǐng)域什么是單片機(jī)?單片機(jī)(Single-chip-Microcomputer)又稱單片微控制器,其基本結(jié)構(gòu)是將微型計(jì)算機(jī)的基本功能部件:中央處理器(CPU)、存儲(chǔ)器、輸入/輸出接口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)等全部集成在一個(gè)半導(dǎo)體芯片上,也稱嵌入式微控制器。嵌入式微控制器大多工作在為特定用戶群專用設(shè)計(jì)的系統(tǒng)中,可將許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)在設(shè)計(jì)時(shí)趨于小型化,還具有高效率和高可靠性的優(yōu)點(diǎn)。一、單片機(jī)的內(nèi)部結(jié)構(gòu)1、CPU單片機(jī)的核心部件,由運(yùn)算部件和控制部件兩部分組成。(1)運(yùn)算部件由算術(shù)邏輯運(yùn)算單元、暫存寄存器、累加器、寄存器和程序狀態(tài)寄存器等組成,用于完成算術(shù)運(yùn)算和邏輯運(yùn)算功能。(2)控制部件由程序計(jì)數(shù)器PC、指令寄存器、指令譯碼器、振蕩器以及定時(shí)電路等組成,用于完成控制功能。2、存儲(chǔ)器(1)程序存儲(chǔ)器ROM用于存放編制好的程序和表格常數(shù)。(2)數(shù)據(jù)存儲(chǔ)器RAM用于存放程序運(yùn)行中采集的數(shù)據(jù)和所需要的變量。擴(kuò)充:★只讀存儲(chǔ)器ROM(readonlymemory)①掩膜只讀存儲(chǔ)器ROM:這種ROM中的信息是在芯片制造時(shí)由廠家用“掩膜”工藝寫(xiě)入(固化)的,用戶在使用過(guò)程中無(wú)法改變其中的內(nèi)容。②可編程只讀存儲(chǔ)器PROM:用戶可用專門(mén)設(shè)備將存儲(chǔ)信息寫(xiě)入芯片中。一旦寫(xiě)入即不能更改,且只能寫(xiě)一次。③紫外線擦除可編程只讀存儲(chǔ)器EPROM:用戶可多次用紫外線照射的方式擦除已寫(xiě)入的信息,并允許再重新寫(xiě)入。④電擦除可編程只讀存儲(chǔ)器EEPROM:允許用戶寫(xiě)入信息,并可用外加電壓擦除已寫(xiě)入的信息,并允許再重新寫(xiě)入。⑤閃存可編程/擦除只讀存儲(chǔ)器FPEROM:簡(jiǎn)稱閃存(FlashMemory),信息在閃電式的一瞬間被存儲(chǔ),之后即使除去電源,存儲(chǔ)器中信息仍可保留。閃存也是電擦除可重復(fù)編程存儲(chǔ)器,體積小、功耗低、不易受物理破壞,存儲(chǔ)密度高?!镫S機(jī)存取存儲(chǔ)器RAM(randomaccessmemory)正常工作時(shí)可隨時(shí)讀寫(xiě),但在系統(tǒng)斷電后,其內(nèi)容會(huì)消失。3、I/O接口
I/O接口用以實(shí)現(xiàn)對(duì)外控制或信息的傳遞。(1)并行接口:在單片機(jī)和存儲(chǔ)器或外圍設(shè)備之間并行傳送8位數(shù)據(jù)信息。(2)串行接口:在單片機(jī)之間或單片機(jī)與外圍設(shè)備之間實(shí)現(xiàn)串行通信。單片機(jī)內(nèi)部具有特殊功能的兩個(gè)部件,利用它們可實(shí)現(xiàn)對(duì)外事件的定時(shí)和計(jì)數(shù)控制功能。4、定時(shí)/計(jì)數(shù)器通過(guò)外接石英晶體產(chǎn)生頻率固定的時(shí)鐘脈沖,為單片機(jī)提供時(shí)鐘脈沖序列,用以協(xié)調(diào)指揮整個(gè)單片機(jī)的有序工作。5、時(shí)鐘電路(1)集成度高、體積小、重量輕;(2)抗擾能力強(qiáng),可靠性高;(3)運(yùn)行速度快、控制功能強(qiáng);(4)開(kāi)發(fā)使用方便,易于產(chǎn)品化;(5)具有優(yōu)異的性能價(jià)格比。二、單片機(jī)的結(jié)構(gòu)特點(diǎn)三、單片機(jī)的發(fā)展概況□第二階段(1978-1982年):高性能單片機(jī)階段。這類單片機(jī)帶有串行I/O口,8位數(shù)據(jù)線、16位地址線(可以尋址的范圍達(dá)到64K字節(jié))、控制總線以及較豐富的指令系統(tǒng)等。其應(yīng)用范圍較廣,并在不斷的改進(jìn)和發(fā)展。單片機(jī)的發(fā)展歷史可劃分為四階段:□第一階段(1974-1978年):低性能單片機(jī)的探索階段。以公司的MCS-48為代表,采用單片結(jié)構(gòu),即在一塊芯片內(nèi)含有8位CPU、定時(shí)/計(jì)數(shù)器、并行I/O口、RAM和ROM等。主要用于工業(yè)領(lǐng)域?!醯谌A段(1982-1990年):16位單片機(jī)階段。16位單片機(jī)除CPU為16位外,片內(nèi)RAM和ROM容量進(jìn)一步增大,實(shí)時(shí)處理能力更強(qiáng),體現(xiàn)了微控制器的特征。例如Intel公司的MCS-96主振頻率為12M,片內(nèi)RAM為232字節(jié),ROM為8K字節(jié),中斷處理能力為8級(jí),片內(nèi)帶有10位A/D轉(zhuǎn)換器和高速輸入/輸出部件等?!醯谒碾A段(1990年至今):微控制器的全面發(fā)展階段,各公司的產(chǎn)品在盡量兼容的同時(shí),向高速、強(qiáng)運(yùn)算能力、尋址范圍大以及小型廉價(jià)方面發(fā)展。四、單片機(jī)的主要技術(shù)發(fā)展方向(1)多功能:盡可能將存儲(chǔ)器、各種功能的I/O口都集成在一塊芯片中,即外圍器件內(nèi)裝化。(2)高性能:使用RISC體系結(jié)構(gòu)、并行流水線操作和DSP等的設(shè)計(jì)技術(shù)使單片機(jī)的指令運(yùn)行速度大大提高,電磁兼容性能也更優(yōu)越。(3)全盤(pán)CMOS化:從第三代開(kāi)始,淘汰非CMOS工藝。此舉會(huì)帶來(lái)本質(zhì)低功耗和低功耗管理技術(shù)的快速發(fā)展。(4)推行串行擴(kuò)展總線:可以顯著減少芯片的引腳數(shù)量,簡(jiǎn)化系統(tǒng)結(jié)構(gòu)。(5)閃存FlashROM的推廣。五、單片機(jī)的應(yīng)用領(lǐng)域
1、在智能儀表上的應(yīng)用
單片機(jī)廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、等各種物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。
目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:
2、在工業(yè)控制中的應(yīng)用
用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)等。
3、在家用電器中的應(yīng)用
可以這樣說(shuō),現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯褒、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子稱量設(shè)備,五花八門(mén),無(wú)所不在。
4、在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用
現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車(chē)無(wú)線通信、再到日常工作中隨處可見(jiàn)的移動(dòng)電話,集群移動(dòng)通信,無(wú)線電對(duì)講機(jī)等。
5、單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用
單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。
6、在各種大型電器中的模塊化應(yīng)用
某些專用單片機(jī)設(shè)計(jì)用于實(shí)現(xiàn)特定功能,從而在各種電路中進(jìn)行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。在大型電路中,這種模塊化應(yīng)用極大地縮小了體積,簡(jiǎn)化了電路,降低了損壞、錯(cuò)誤率,也方便于更換。
7、單片機(jī)在汽車(chē)設(shè)備領(lǐng)域中的應(yīng)用
單片機(jī)在汽車(chē)電子中的應(yīng)用非常廣泛,例如汽車(chē)中的發(fā)動(dòng)機(jī)控制器,基于CAN總線的汽車(chē)發(fā)動(dòng)機(jī)智能電子控制器,GPS導(dǎo)航系統(tǒng),abs防抱死系統(tǒng),制動(dòng)系統(tǒng)等等。此外,單片機(jī)在工商,金融,科研、教育,國(guó)防航空航天等領(lǐng)域都有著十分廣泛的用途。單片機(jī)的應(yīng)用正從根本上改變著傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分控制功能,現(xiàn)在已能使用單片機(jī)通過(guò)軟件方法實(shí)現(xiàn)了。這種以軟件取代硬件,并能提高系統(tǒng)性能的控制技術(shù),稱之為微控制技術(shù),這標(biāo)志著一種全新概念的建立。結(jié)論MCS-51單片機(jī)(MicroControllorSystem)MCS-51是指由美國(guó)INTEL公司生產(chǎn)的一系列單片機(jī)的總稱。51系列單片機(jī)源于Intel公司的MCS—51系列,在Intel公司將MCS—51系列單片機(jī)實(shí)行技術(shù)開(kāi)放政策之后,許多公司,如Philips、Siemens、Atmel、Dallas、華邦、LG等都以MCS—51中的基礎(chǔ)結(jié)構(gòu)8051為基核推出了許多各具特色、具有優(yōu)異性能的單片機(jī)。這樣,把這些廠家以8051為基核推出的各種型號(hào)的兼容型單片機(jī)統(tǒng)稱為51系列單片機(jī)。這一系列單片機(jī)包括了好些品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產(chǎn)品,該系列其它單片機(jī)都是在8051的基礎(chǔ)上進(jìn)行功能的增、減、改變而來(lái)的,所以人們習(xí)慣于用8051來(lái)稱呼MCS-51系列單片機(jī)。
8051:內(nèi)部包含4KB的ROM(片內(nèi)掩膜)、128B的RAM、21個(gè)特殊功能寄存器、4個(gè)8位并行口、一個(gè)全雙工串行口、兩個(gè)16位定時(shí)器/計(jì)數(shù)器以及一個(gè)處理功能很強(qiáng)的中央處理器。8751:是以4KB的EPROM代替4KBROM的8051。8951:是以4KB的E2PROM或FlashROM代替4KBROM的8051。8031:是內(nèi)部無(wú)ROM的8051。8031單片機(jī)必須外接ROM作為程序存儲(chǔ)器。MCS-51子系列
52子系列也包含4個(gè)產(chǎn)品,分別是51子系列的增強(qiáng)型。由于資源數(shù)量的增加,芯片的功能有所增強(qiáng)。片內(nèi)ROM容量和RAM容量增加了一倍;定時(shí)器數(shù)目從2個(gè)增加到3個(gè);中斷源從5個(gè)增加到6個(gè)等。
80C31/87C51/80C51:采用CMOS工藝適于電池供電或其它要求低功耗的場(chǎng)合?!?/p>
MCS-51單片機(jī)的結(jié)構(gòu)與工作原理★
中央處理單元與時(shí)序
★
存儲(chǔ)器配置★
并行I/O端口★
復(fù)位及復(fù)位電路第二章MCS-51單片機(jī)的硬件結(jié)構(gòu)與原理一、內(nèi)部結(jié)構(gòu)第一節(jié)
MCS-51單片機(jī)的結(jié)構(gòu)與工作原理P0驅(qū)動(dòng)器P2驅(qū)動(dòng)器P0鎖存器P2鎖存器RAM地址寄存器256BRAM4KBROMB寄存器暫存器1暫存器2ACCSP程序地址寄存器緩沖器PC增1PCDPTR中斷、串行口和定時(shí)器PSWP1鎖存器P1驅(qū)動(dòng)器P3鎖存器P3驅(qū)動(dòng)器定時(shí)控制指令寄存器指令譯碼器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1
XTAL2PSENALEEARET由上圖可見(jiàn),8051內(nèi)部集成有如下功能部件:1)8位中央處理器CPU2)4KB程序存儲(chǔ)器ROM(8031內(nèi)部無(wú)ROM)3)256B數(shù)據(jù)存儲(chǔ)器RAM4)21個(gè)特殊功能寄存器5)4個(gè)8位并行I/O端口(P0~P3)6)1個(gè)可編程串行I/O端口7)2個(gè)16位定時(shí)/計(jì)數(shù)器(T0,T1)8)時(shí)鐘振蕩器和時(shí)鐘電路二、工作原理以ADDA,R0指令為例說(shuō)明其工作原理執(zhí)行指令的過(guò)程是:取指令——譯碼——執(zhí)行取指令:CPU把PC的值送入程序地址寄存器,并向ROM發(fā)出讀指令,PC值加1。譯碼:把讀出的指令代碼送入指令寄存器IR,再送入指令譯碼器ID,譯碼結(jié)果送到定時(shí)與控制電路。執(zhí)行:根據(jù)譯碼的結(jié)果對(duì)數(shù)據(jù)進(jìn)行運(yùn)算。程序的執(zhí)行是指令一條接一條執(zhí)行的過(guò)程,每執(zhí)行一條指令,PC值自動(dòng)加1,指向下一條指令。三、引腳及功能MCS-51單片機(jī)是40個(gè)引腳的雙列直插式封裝形式。控制引腳I/O口引腳邏輯圖時(shí)鐘引腳電源引腳第二功能1、電源引腳Vcc和Vss
★Vcc(40腳):電源端,接+5V電源
★Vss
(20腳):接地端2、外接晶體引腳XTAL1,XTAL2
★XTAL1(19腳):片內(nèi)反向放大器輸入端
★
XTAL2(18腳)
:片內(nèi)反向放大器輸出端采用內(nèi)部時(shí)鐘時(shí),2個(gè)引腳各接外部晶體和微調(diào)電容的一端;采用外部時(shí)鐘時(shí),XTAL2腳輸入外部時(shí)鐘脈沖,XTAL1腳接地。各個(gè)引腳的功能說(shuō)明如下:3、控制信號(hào)引腳★
RST/VPD(9腳):RST復(fù)位信號(hào);VPD備用電源輸入端?!?/p>
ALE/PROG(addresslatchenable/programming,30腳):
ALE是地址鎖存允許信號(hào);PROG是編程脈沖輸入端。ALE信號(hào)說(shuō)明:1.當(dāng)CPU訪問(wèn)外部存儲(chǔ)器時(shí),ALE端作為鎖存低8位地址的控制信號(hào),下降沿有效。2.當(dāng)CPU不訪問(wèn)外部存儲(chǔ)器時(shí),ALE端以1/6的振蕩頻率固定輸出正脈沖?!?/p>
EA/VPP(enableaddress/voltagepulseofprogramming,31腳):EA外部程序存儲(chǔ)器選擇端;
VPP編程電源輸入端。EA信號(hào)說(shuō)明:1.EA為低電平時(shí),CPU只訪問(wèn)外部ROM;2.EA為高電平時(shí),CPU首先訪問(wèn)內(nèi)部ROM并自動(dòng)延至外部ROM。★
PSEN(programstoreenable,29腳):
外部程序存儲(chǔ)器選通信號(hào)說(shuō)明:在訪問(wèn)片外程序存儲(chǔ)器時(shí),此引腳定時(shí)輸出負(fù)脈沖作為讀片外存儲(chǔ)器的選通信號(hào),低電平有效。★
P0.0~P0.7:P0口,8位雙向I/O端口。當(dāng)CPU訪問(wèn)片外存儲(chǔ)器時(shí),P0口分時(shí)提供復(fù)用的低8位地址線和8位雙向數(shù)據(jù)線?!?/p>
P1.0~P1.7:P1口,內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O端口?!?/p>
P2.0~P2.7:P2口,內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O端口。當(dāng)CPU訪問(wèn)片外存儲(chǔ)器時(shí),輸出高8位地址。
★
P3.0~P3.7:P3口,內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O端口。P3口作一般I/O端口使用外,每個(gè)引腳都有專門(mén)的第二功能。4、I/O端口引腳引腳轉(zhuǎn)義引腳功能說(shuō)明P3.0RXD串行數(shù)據(jù)接收端P3.1TXD串行數(shù)據(jù)發(fā)送端P3.2INT0外部中斷0請(qǐng)求P3.3INT1外部中斷1請(qǐng)求P3.4T0計(jì)數(shù)器0外部輸入P3.5T1計(jì)數(shù)器1外部輸入P3.6WR外部數(shù)據(jù)存儲(chǔ)器寫(xiě)P3.7RD外部數(shù)據(jù)存儲(chǔ)器讀P3口的第二功能引腳連接圖1RST引腳連接圖2EA
一、運(yùn)算器和控制器1、運(yùn)算器(1)算數(shù)邏輯單元ALU:完成基本的算術(shù)運(yùn)算、邏輯運(yùn)算;(2)累加器A(ACC):專門(mén)用來(lái)存放操作數(shù)和運(yùn)算結(jié)果;(3)暫存寄存器:暫存數(shù)據(jù)和狀態(tài),便于傳送和運(yùn)算;(4)B寄存器:用于乘法和除法的8位寄存器;第二節(jié)中央處理單元與時(shí)序位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0標(biāo)志CYACF0RS1RS0OV-P①CY(C):進(jìn)位標(biāo)志位
★存放算術(shù)運(yùn)算的進(jìn)位或借位標(biāo)志;
★在位操作中,作位累加器使用。②AC:輔助進(jìn)位位加減運(yùn)算中,低4位向高4位有進(jìn)位或借位時(shí),AC=1。③F0:用戶標(biāo)志位
(5)程序狀態(tài)字(ProgramStatusWord
PSW
):存放指令執(zhí)行后的狀態(tài)信息:RS1RS0選中的工作寄存器組R0~R7地址000組00-07H011組08-0FH102組10-17H113組18-1FH⑤OV:溢出標(biāo)志位
運(yùn)算結(jié)果超出了累加器A所能表示的帶符號(hào)數(shù)的范圍(-128~+127),OV=1。④RS1、RS0:工作寄存器選擇位
CPU選擇哪一組工作寄存器為當(dāng)前工作寄存器,確定R0~R7的物理地址。(6)布爾處理器:也稱為位處理器,以PSW中的CY為累加器,可執(zhí)行各種位操作,也可以將CY與其他可尋址位之間進(jìn)行邏輯與、邏輯或操作,結(jié)果存放于CY。⑥P:奇偶標(biāo)志位累加器A中1的個(gè)數(shù)的奇偶性,奇:P=1;偶:P=0。位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0標(biāo)志CYACF0RS1RS0OV-P(1)程序計(jì)數(shù)器PC:是一個(gè)16位專用寄存器,用來(lái)存放將要執(zhí)行的下一條指令的地址;(2)指令寄存器IR和指令譯碼器ID:存放代碼及譯碼;(3)定時(shí)控制電路:產(chǎn)生CPU的操作時(shí)序。2、控制器
單片機(jī)的時(shí)鐘信號(hào)是提供片內(nèi)各種操作的時(shí)間基準(zhǔn)。二、時(shí)鐘電路?內(nèi)部時(shí)鐘電路:石英晶體或陶瓷振蕩器(晶振):1.2~12MHz。微調(diào)電容C01、C02起穩(wěn)定振蕩頻率、快速起振的作用。電容值一般為
5~30PF。因片內(nèi)有高增益運(yùn)算放大器,外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。?外部時(shí)鐘電路把外部振蕩信號(hào)引入XTAL2端,XTAL1端接地。這種方式適宜用于使單片機(jī)的時(shí)鐘與外部信號(hào)保持一致。由于XTAL2端的邏輯電平與TTL電平不兼容,故在此引腳外接一個(gè)上拉電阻。1、時(shí)鐘周期又稱振蕩周期,是一個(gè)振蕩脈沖的周期,也是時(shí)序中最小的時(shí)間單位。2、機(jī)器周期完成一個(gè)最基本操作的時(shí)間,通常由若干個(gè)時(shí)鐘周期構(gòu)成,在MCS-51單片機(jī)中,每個(gè)機(jī)器周期都包含12個(gè)時(shí)鐘周期,分為6個(gè)狀態(tài)S1~S6,每個(gè)狀態(tài)又分為2個(gè)節(jié)拍P1和P2。3、指令周期執(zhí)行一條指令所用的時(shí)間稱為指令周期,用機(jī)器周期的個(gè)數(shù)來(lái)表示。MCS-51系統(tǒng)中有單周期指令、雙周期指令、四周期指令。三、機(jī)器周期與指令周期時(shí)鐘周期和機(jī)器周期是單片機(jī)內(nèi)計(jì)算其他時(shí)間值(例如:波特率、定時(shí)器的定時(shí)時(shí)間等)的基本時(shí)序單位。例:?jiǎn)纹瑱C(jī)外接晶振頻率12MHz時(shí)的各種時(shí)序單位:
1/frequencyoscillate
=1/12MHz=0.0833us12/fosc=12/12MHz=1us
(1~4)機(jī)器周期=1~4us說(shuō)明:時(shí)鐘周期=機(jī)器周期=指令周期=四、指令取指/執(zhí)行時(shí)序單片機(jī)的工作工程是:取指令、譯碼、執(zhí)行指令……,一步步地完成各種指令規(guī)定的功能。各指令的操作順序在時(shí)間上有嚴(yán)格的次序,這種操作的時(shí)間順序稱為時(shí)序。單片機(jī)的時(shí)鐘信號(hào)用來(lái)為單片機(jī)芯片內(nèi)部各種操作提供時(shí)間基準(zhǔn)。單字節(jié)指令、雙字節(jié)指令是單周期或雙周期的;
三字節(jié)指令是雙周期的;乘除指令是四周期的。MCS-51單片機(jī)指令的取指/執(zhí)行的時(shí)序存儲(chǔ)器結(jié)構(gòu)第三節(jié)存儲(chǔ)器配置普林斯頓結(jié)構(gòu)/馮·諾伊曼:ROM、RAM統(tǒng)一編址。哈佛結(jié)構(gòu):ROM、RAM分開(kāi)編址。在結(jié)構(gòu)上分為6個(gè)存儲(chǔ)器編址空間;在物理上分:片內(nèi)、片外程序存儲(chǔ)器;片內(nèi)、片外數(shù)據(jù)存儲(chǔ)器。在邏輯上分:程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器。程序存儲(chǔ)器內(nèi)部數(shù)據(jù)存儲(chǔ)器外部數(shù)據(jù)存儲(chǔ)器程序存儲(chǔ)器ROM存放編制好的固定程序和表格,以16位的程序計(jì)數(shù)器做地址指針,可尋址64KB空間。
一、程序存儲(chǔ)器特殊功能地址單元(1)0000H-0002H:存放復(fù)位后初始化引導(dǎo)程序例程序放在內(nèi)部1000H開(kāi)始的單元
ORG0000H AJMPMAIN ORG1000HMAIN:MOVA,#0AFH0000H0001H0002H(PC)中斷5中斷4中斷3中斷2中斷10003H000BH0013H001BH0023H002BH外部中斷0定時(shí)器0中斷外部中斷1定時(shí)器1中斷串行口中斷8位...0FFFH0FFEH程序存儲(chǔ)器資源分布中斷地址區(qū)初始化引導(dǎo)程序(2)0003H-002AH:中斷地址區(qū)
CPU響應(yīng)中斷后,根據(jù)中斷類型,自動(dòng)轉(zhuǎn)入各中斷區(qū)首地址去執(zhí)行中斷服務(wù)程序。8個(gè)單元不能放下中斷服務(wù)程序,因此在中斷入口地址放一條無(wú)條件跳轉(zhuǎn)指令。
0003H~002AH共40個(gè)單元是中斷服務(wù)程序地址區(qū),它被分為五段,每段8個(gè)單元,分別分配給5個(gè)中斷源: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ū)。中斷源入口地址外部中斷00003H定時(shí)器0溢出中斷000BH外部中斷10013H定時(shí)器1溢出中斷001BH串行口中斷0023H例:假設(shè)外部中斷INT0的中斷服務(wù)程序放在0040H開(kāi)始的單元
ORG0003HAJMPINT0ORG0040HINT0:PUSHPSW…….二、數(shù)據(jù)存儲(chǔ)器內(nèi)部RAM(00H-FFH)外部RAM(0000H-FFFFH)數(shù)據(jù)存儲(chǔ)器00H20H2FH7FH1FH30H
用戶RAM區(qū)位尋址區(qū)
工作寄存器區(qū)特殊功能寄存器區(qū)(80H-FFH)內(nèi)部RAM(00H-FFH)真正RAM區(qū)(1)工作寄存器區(qū)(00H~1FH)地址范圍在00H~1FH的32個(gè)單元,可分成4個(gè)工作寄存器組,每組占8個(gè)字節(jié)。第0組工作寄存器:地址范圍為00H~07H
第1組工作寄存器:地址范圍為08H~0FH
第2組工作寄存器:地址范圍為10H~17H
第3組工作寄存器:地址范圍為18H~1FH1、真正RAM區(qū)每個(gè)工作寄存器組都有8個(gè)寄存器,分別稱為R0、R1、R2、R3、R4、R5、R6、R7。但在程序運(yùn)行時(shí),只允許有一個(gè)工作寄存器組工作,這組工作寄存器稱為當(dāng)前工作寄存器組,所以每組之間不會(huì)因?yàn)槊Q相同而混淆出錯(cuò)。可通過(guò)對(duì)特殊功能寄存器中的程序狀態(tài)字PSW的RS1、RS0的狀態(tài)設(shè)置,選擇哪組工作寄存器作當(dāng)前工作寄存器組。
單片機(jī)復(fù)位時(shí),當(dāng)前工作寄存器默認(rèn)為0組。說(shuō)明?與工作寄存器相連的16個(gè)字節(jié)地址單元20H~2FH為位尋址區(qū),可以對(duì)每個(gè)RAM單元中的任何一個(gè)位進(jìn)行位操作,例如對(duì)某一位進(jìn)置0、清0、判1、判0、轉(zhuǎn)移等。?該位尋址區(qū)既可以按照字節(jié)操作(16個(gè)單元),也可以按照位操作(128位)。?每一位可用位地址尋址,也可用字節(jié)地址和位地址相結(jié)合的表示方法。(2)位尋址區(qū)(20H~2FH)2FH.726H.3
30H-7FH共80個(gè)RAM單元,用來(lái)存放用戶數(shù)據(jù)和堆棧操作使用,稱為用戶RAM區(qū),該區(qū)是按字節(jié)存取的。堆棧的概念堆棧是在單片機(jī)內(nèi)部RAM中從某個(gè)選定的存儲(chǔ)單元開(kāi)始劃定的一個(gè)地址連續(xù)的區(qū)域,在這個(gè)區(qū)域選定某個(gè)存儲(chǔ)單元作為棧底,只允許向一個(gè)方向?qū)懭霐?shù)據(jù),最后一個(gè)寫(xiě)入數(shù)據(jù)的存儲(chǔ)單元稱為棧頂。堆棧的生成有兩種情況,向高地址方向?qū)懭霐?shù)據(jù)生成的堆棧稱為向上生長(zhǎng)型堆棧,反之稱為向下生長(zhǎng)型堆棧,MCS-51單片機(jī)屬于向上生長(zhǎng)型堆棧(即向高地址方向生成)。(3)堆棧和數(shù)據(jù)緩沖區(qū)堆棧指針寄存器SP:一個(gè)8位寄存器,用于指明堆棧頂部在RAM中的位置,可由軟件設(shè)置初始值;系統(tǒng)復(fù)位后,SP初始化為07H;實(shí)際中,一般將SP設(shè)置在30-7FH范圍內(nèi)。堆棧的原則:先進(jìn)后出,后進(jìn)先出。每存(取)一個(gè)字節(jié),SP自動(dòng)加(減)1,SP始終指向新的棧頂。堆棧操作方式:指令方式:PUSH、POP
自動(dòng)方式:調(diào)用子程序或中斷時(shí),將返回地址自動(dòng)進(jìn)棧;程序返回時(shí),斷點(diǎn)地址自動(dòng)彈回PC。棧底AB進(jìn)棧SPSPSP+162H61H60H棧底AB出棧SPSPSP-162H61H60HA先進(jìn)棧B再進(jìn)棧B先出棧A再出棧堆棧示意圖2、特殊功能寄存器(SFRSpecialFunctionRegisters
)◆
8051單片機(jī)中設(shè)置了21個(gè)特殊功能寄存器,它們不連續(xù)地分布在地址為80H-FFH的128個(gè)字節(jié)的存儲(chǔ)空間中。◆
21個(gè)SFR只能采用直接尋址方式,但是字節(jié)地址能被8整除(16進(jìn)制的地址碼尾數(shù)為0或8)的11個(gè)單元均具有位尋址能力。可位尋址(1)堆棧指針寄存器SP:(2)數(shù)據(jù)存儲(chǔ)器地址指針DPTR:16位專用寄存器,由DPH、DPL組成。對(duì)64KB外部數(shù)據(jù)存儲(chǔ)器尋址,做間址寄存器;訪問(wèn)程序存儲(chǔ)器,做基址寄存器。(3)端口寄存器P0~P3:用于控制4個(gè)8位并行I/O口。(4)串口數(shù)據(jù)緩沖器SBUF:由發(fā)送緩沖器和接收緩沖器組成,通過(guò)讀寫(xiě)指令來(lái)區(qū)別對(duì)哪一個(gè)緩沖器進(jìn)行操作。(5)串行口控制與狀態(tài)寄存器SCON:控制串行通信工作方式、接收或發(fā)送控制、設(shè)置狀態(tài)標(biāo)志。SFR:(6)
定時(shí)器/計(jì)數(shù)器T:MCS51有兩個(gè)16位定時(shí)器T0和T1,每個(gè)定時(shí)器各包含兩個(gè)獨(dú)立的8位寄存器TH0、TL0、TH1、TL1。(7)定時(shí)器/計(jì)數(shù)器工作方式寄存器TMOD:主要確定定時(shí)器/計(jì)數(shù)器的工作方式。(8)定時(shí)器/計(jì)數(shù)器控制寄存器TCON:控制定時(shí)器/計(jì)數(shù)器的啟/停操作及對(duì)定時(shí)器溢出時(shí)設(shè)定標(biāo)志位。(9)中斷允許寄存器IE和中斷優(yōu)先級(jí)寄存器IP:IE用來(lái)控制CPU對(duì)各中斷源的中斷請(qǐng)求進(jìn)行響應(yīng),IP用來(lái)確定中斷源的優(yōu)先級(jí)別。
MCS-51共有4個(gè)8位準(zhǔn)雙向并行I/O端口P0~P3,共32根I/O口線,每根都可以獨(dú)立作為輸入和輸出。這四個(gè)端口是單片機(jī)對(duì)外部實(shí)現(xiàn)控制及信息交換的輸入輸出通道。P0:作為外部擴(kuò)展存儲(chǔ)器時(shí)的地址/數(shù)據(jù)線P1:普通I/O口P2:作為外部擴(kuò)展存儲(chǔ)器時(shí)的地址線P3:除作為I/O口外,每根口線都有第二功能。第四節(jié)并行I/O端口一、P0端口★由兩只場(chǎng)效應(yīng)管組成的輸出驅(qū)動(dòng)電路;★由一個(gè)與門(mén)、反向器和多路轉(zhuǎn)換開(kāi)關(guān)MUX組成輸出控制電路;★
MUX的位置由CPU的控制信號(hào)確定,當(dāng)控制信號(hào)為低電平時(shí),P0口用作一般I/O口;反之為高電平時(shí),P0口用作地址/數(shù)據(jù)總線。P0.X1、用作I/O口:控制信號(hào)為低電平,V1截至,輸出極為漏極開(kāi)路電路,應(yīng)接上拉電阻。輸出時(shí):內(nèi)部總線上的數(shù)據(jù)在寫(xiě)信號(hào)控制下,先寫(xiě)入鎖存器,經(jīng)反相端反相,再經(jīng)V2反相,使輸出數(shù)據(jù)正好出現(xiàn)在P0口引腳上。
輸入時(shí):先向鎖存器寫(xiě)1,令V1,V2截至,讀引腳信號(hào)把三態(tài)緩沖器打開(kāi),則端口上的數(shù)據(jù)經(jīng)三態(tài)緩沖器輸入到內(nèi)部總線。P0.X為什么輸入時(shí)要先向鎖存器寫(xiě)1?由于輸出驅(qū)動(dòng)V2并接在引腳上,如果V2導(dǎo)通會(huì)把引腳的高電平拉成低電平,從而產(chǎn)生誤讀,所以輸入時(shí)必須先向鎖存器寫(xiě)1。P0口在做普通I/O口時(shí),是一個(gè)準(zhǔn)雙向口。對(duì)于準(zhǔn)雙向口,在做輸入口時(shí),應(yīng)先向鎖存器寫(xiě)入1,使2個(gè)場(chǎng)效應(yīng)管都截至,引腳處于懸浮狀態(tài),可作高阻態(tài)輸入。因?yàn)橐_上的信號(hào)是加在輸出極場(chǎng)效應(yīng)管的漏極上,當(dāng)它導(dǎo)通時(shí),會(huì)把引腳上的電位拉為低電平。2、用作地址/數(shù)據(jù)總線:控制信號(hào)為高電平,輸出的地址/數(shù)據(jù)信號(hào)經(jīng)反相器驅(qū)動(dòng)V2,同時(shí)通過(guò)與門(mén)驅(qū)動(dòng)V1。
CPU先輸出地址信息,在ALE的下降沿鎖存低8位地址,然后轉(zhuǎn)為數(shù)據(jù)傳輸線。
P0口用作地址/數(shù)據(jù)總線時(shí),便不能再用作I/O口。P0.X
P1口只能傳送數(shù)據(jù),不能作為地址/數(shù)據(jù)口;在輸出驅(qū)動(dòng)部分接有內(nèi)部上拉電阻;
P1口作為輸出口時(shí),輸出狀態(tài)與寫(xiě)入鎖存器狀態(tài)相同;
P1口作為輸入口時(shí),要先向鎖存器寫(xiě)1。二、P1端口三、P2端口P2口與P0口的區(qū)別:﹡用上拉電阻代替上拉場(chǎng)效應(yīng)管;﹡MUX的一個(gè)輸入口是地址。1、用作I/O口如果外部沒(méi)有擴(kuò)展存儲(chǔ)器,或者只擴(kuò)展小于256B的RAM,這時(shí)只需要提供低8位地址,P2口的MUX接鎖存器Q端不動(dòng),用作普通I/O口。2、用作地址線對(duì)于有片外存儲(chǔ)器的系統(tǒng),CPU訪問(wèn)片外存儲(chǔ)器時(shí),MUX在控制信號(hào)控制下,把地址線和反向器3相連,由此輸出高8位地址。此時(shí)只能作為地址總線不能作為數(shù)據(jù)總線。四、P3端口1、P3口比P1口多了一個(gè)與非門(mén)3和一個(gè)輸入緩沖器4,既可以作為一般I/O口,也可以作為第二功能口;2、作一般I/O口,第二功能輸出信號(hào)為高電平,與非門(mén)打開(kāi),過(guò)程與其它口相同。3、實(shí)際應(yīng)用中,P3口基本用作第二功能,此時(shí)應(yīng)首先向鎖存器寫(xiě)1,打開(kāi)與非門(mén),第二功能輸出;第二功能輸入時(shí),第二功能輸出自動(dòng)置1,V1截至,信號(hào)由三態(tài)緩沖器輸入。1、P0~P3均可作為I/O口,但P0、P2多用作地址/數(shù)據(jù)總線,P3多用作第二功能,P1真正作為I/O口;2、P0為真正的雙向口,P1~P3為準(zhǔn)雙向口,只有P0可用作系統(tǒng)的數(shù)據(jù)總線;3、作為I/O口,P0應(yīng)接上拉電阻,P1~P3沒(méi)必要,但是P0用作地址/數(shù)據(jù)總線時(shí),不用接上拉電阻;4、P0~P3作為輸入口時(shí),必須首先向端口鎖存器寫(xiě)1,P3作為第二功能口輸出或輸入時(shí),也要先鎖存器寫(xiě)1;5、P0口的每1位輸出能驅(qū)動(dòng)8個(gè)LS型TTL負(fù)載;P1、P2、P3口的每一位輸出能驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。6、單片機(jī)內(nèi)部的I/O口只有數(shù)據(jù)鎖存和緩沖功能,無(wú)控制功能,只能實(shí)現(xiàn)簡(jiǎn)單的功能。五、I/O端口小結(jié)一、單片機(jī)復(fù)位復(fù)位是單片機(jī)的初始化操作,使單片機(jī)處于一個(gè)固定的初始狀態(tài),并從此狀態(tài)開(kāi)始運(yùn)行。在運(yùn)行中,當(dāng)單片機(jī)的程序受外界因素干擾陷入死循環(huán)或跑飛時(shí),為擺脫困境,可將單片機(jī)復(fù)位,重新啟動(dòng)。
MCS-51單片機(jī)的RST引腳為復(fù)位端,該引腳保持兩個(gè)機(jī)器周期以上的高電平便可以實(shí)現(xiàn)單片機(jī)復(fù)位。第五節(jié)復(fù)位及復(fù)位電路
P0~P3的端口鎖存器被設(shè)置成FFH;堆棧指針SP設(shè)置成07H;串行口的SBUF無(wú)確定值;其它各專用寄存器包括程序計(jì)數(shù)器PC均被設(shè)置成00H;片內(nèi)RAM不受復(fù)位的影響。單片機(jī)復(fù)位后:(1)上電自動(dòng)復(fù)位上電復(fù)位按鍵脈沖復(fù)位按鍵電平復(fù)位二、單片機(jī)的復(fù)位電路脈沖復(fù)位電平復(fù)位(2)按鍵手動(dòng)復(fù)位內(nèi)部復(fù)位電路外部復(fù)位電路復(fù)位電路
★復(fù)位完成后,如果RST端繼續(xù)保持高電平,則單片機(jī)一直處于復(fù)位狀態(tài),只有RST端恢復(fù)低電平后,單片機(jī)才能進(jìn)入其他工作狀態(tài)。
★復(fù)位電路雖然簡(jiǎn)單,但是其作用非常重要。一個(gè)單片機(jī)系統(tǒng)能否正常工作,首先要檢查其是否能復(fù)位成功。說(shuō)明
思考題:41頁(yè)第三章MCS-51指令系統(tǒng)★
指令系統(tǒng)概述★
MCS-51單片機(jī)指令系統(tǒng)
?數(shù)據(jù)傳送類指令?算術(shù)運(yùn)算類指令?邏輯運(yùn)算類指令
?控制轉(zhuǎn)移類指令?位操作類指令指令:規(guī)定計(jì)算機(jī)進(jìn)行某種操作的命令。指令系統(tǒng):計(jì)算機(jī)能夠執(zhí)行的各種指令的集合。單字節(jié)指令:49條雙字節(jié)指令:45條三字節(jié)指令:17條單周期指令:64條雙周期指令:45條四周期指令:2條MCS-51單片機(jī)共有111條指令。第一節(jié)指令系統(tǒng)概述1)數(shù)據(jù)傳送類指令29條:片內(nèi)RAM、片外RAM、程序存儲(chǔ)器的傳送指令;交換及堆棧操作指令;2)算術(shù)運(yùn)算類指令24條:加法、帶進(jìn)位加、減、乘、除、加1、減1指令;3)邏輯運(yùn)算類指令24條:邏輯與、或、異或、移位指令;4)控制轉(zhuǎn)移類指令17條:無(wú)條件轉(zhuǎn)移與調(diào)用、條件轉(zhuǎn)移、空操作指令;5)布爾(位)操作類指令17條:位數(shù)據(jù)傳送、位與、位或、位轉(zhuǎn)移指令。按功能分類:
1.指令的組成:操作碼和操作數(shù)(1)單字節(jié)指令:操作數(shù)、操作碼均在一個(gè)字節(jié)內(nèi);只有操作碼,無(wú)操作數(shù);(2)雙字節(jié)指令:一個(gè)字節(jié)是操作碼,一個(gè)字節(jié)是操作數(shù);(3)三字節(jié)指令:一個(gè)字節(jié)是操作碼,二個(gè)字節(jié)是操作數(shù)。一、指令格式[標(biāo)號(hào)]:操作碼[操作數(shù)];[注釋]標(biāo)號(hào):又稱為指令地址符號(hào),一般是由1~6個(gè)字符組成,以字母開(kāi)頭的字母數(shù)字串,與操作碼之間用冒號(hào)分開(kāi)。操作碼:是由助記符所表示的指令的操作功能,與操作數(shù)之間必須用空格隔開(kāi)。操作數(shù):是指參加操作的數(shù)據(jù)或數(shù)據(jù)的地址,可以沒(méi)有,也可以是1個(gè)、2個(gè)或3個(gè),多個(gè)操作數(shù)之間必須用“,”隔開(kāi)。注釋:是為該條指令作用的說(shuō)明,以便于閱讀。操作碼是指令的核心,不可缺少,其他幾項(xiàng)根據(jù)不同指令為可選項(xiàng)。2、指令的格式1、立即尋址2、直接尋址3、寄存器尋址4、寄存器間接尋址5、變址尋址6、相對(duì)尋址7、位尋址二、尋址方式所謂尋址方式就是指如何找到存放操作數(shù)的地址的方法。操作數(shù)直接出現(xiàn)在指令中。操作數(shù)前加“#”號(hào)表示,也稱立即數(shù)。指令的操作數(shù)可以是8位或16位數(shù)。例:MOVA,#26H ;26H→A指令執(zhí)行結(jié)果:把立即數(shù)26H直接送到累加器A中。這類指令大都是雙字節(jié)指令,只有一條是三字節(jié)指令。例:
MOVDPTR,#data16向數(shù)據(jù)指針DPTR傳送的是16位立即數(shù),立即數(shù)的高8位送入DPH中,低8位送入DPL中。MCS-51只有1條16位數(shù)據(jù)傳送指令。1、立即尋址2、直接尋址指令直接給出操作數(shù)的地址,用direct表示。直接尋址方式可以訪問(wèn)的地址空間有:內(nèi)部數(shù)據(jù)存儲(chǔ)器的低128個(gè)字節(jié)單元、位地址空間及特殊功能寄存器SFR,且SFR和位地址空間只能用直接尋址方式訪問(wèn)。例:MOVA,26H;把26H單元的內(nèi)容送到累加器A中。注意:對(duì)于特殊功能寄存器,指令既可使用它們的地址,也可使用它們的名字。3、寄存器尋址指令中指定寄存器的內(nèi)容作為操作數(shù),使用的寄存器有:工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR和位累加寄存器C等。例:INCR2;(R2)+1→(R2)指令功能是將R2工作寄存器的內(nèi)容加1后傳送回R2。如果選定的工作寄存器屬于第一組(RS1RS0=01B)且原來(lái)(R2)=24H,則指令執(zhí)行結(jié)果為(R2)=25H。指定寄存器中的內(nèi)容是操作數(shù)的地址,該地址對(duì)應(yīng)存儲(chǔ)單元的內(nèi)容才是操作數(shù)。可用間接尋址的寄存器有R0、R1、堆棧指針SP
和16位數(shù)據(jù)指針DPTR,使用時(shí)前面加符號(hào)@表示間接尋址。4、寄存器間接尋址例:MOVA,@R1
設(shè)當(dāng)前工作寄存器組為第0組,R1的內(nèi)容為4FH,片內(nèi)RAM區(qū)4FH單元的內(nèi)容為27H。指令執(zhí)行結(jié)果:A=27H。R0、R1可尋址片內(nèi)RAM低128B和片外RAM低256B,DPTR可尋址片外RAM64KB。R0、R1是當(dāng)前工作寄存器組中可以作為地址指針的2個(gè)工作寄存器基址寄存器加變址寄存器間接尋址,簡(jiǎn)稱變址尋址。
MCS-51單片機(jī)以數(shù)據(jù)指針DPTR或程序計(jì)數(shù)器PC作為基址寄存器,累加器A作為變址寄存器,兩者的內(nèi)容相加形成16位程序存儲(chǔ)器地址,該地址就是操作數(shù)所在地址。5、變址尋址例:MOVCA,@A+DPTR;(A+DPTR)→A
該指令為單字節(jié)指令。指令功能將A+DPTR形成的地址的單元內(nèi)的內(nèi)容送入累加器A。假設(shè)A=0D0H,DPTR=2000H,(20D0H)=1FH,指令執(zhí)行后A=1FH。這種尋址方式常用于訪問(wèn)程序存儲(chǔ)器ROM中的表格。
MOVCA,@A+PC以PC當(dāng)前值為基準(zhǔn),加上指令中給出的相對(duì)偏移量rel形成轉(zhuǎn)移地址。轉(zhuǎn)移的目的地址=轉(zhuǎn)移指令所在地址+
轉(zhuǎn)移指令字節(jié)數(shù)+
rel
其中相對(duì)偏移量rel是有符號(hào)的8位二進(jìn)制數(shù)6、相對(duì)尋址相對(duì)尋址方式主要用于跳轉(zhuǎn)指令。例:SJMP30H此指令為雙字節(jié)指令,地址為1068H,則轉(zhuǎn)移的目的地址為109AH。轉(zhuǎn)移范圍:以PC當(dāng)前值為起始地址,相對(duì)偏移在-128~+127
字節(jié)單元之間。PC當(dāng)前值7、位尋址指對(duì)片內(nèi)RAM的位尋址區(qū)和某些可以進(jìn)行位尋址的特殊功能寄存器進(jìn)行位操作時(shí)的尋址方式。該尋址方式和直接尋址方式的形式與執(zhí)行過(guò)程基本相同,但參與操作的數(shù)據(jù)是1位而不是8位。位地址用bit表示,以區(qū)別字節(jié)地址direct。
MCS-51單片機(jī)內(nèi)的RAM有兩個(gè)區(qū)域可以進(jìn)行位尋址:一個(gè)是20H~2FH的16個(gè)單元中的128位,另一個(gè)是字節(jié)地址能被8整除的特殊功能寄存器的每一位。在8051中,位地址常用下列三種方式表示:1)直接使用位地址;2)字節(jié)地址和位地址相結(jié)合3)直接用特殊功能寄存器名加位數(shù)表示,表示PSW.3。例:SETB2EH判斷下列指令中各操作數(shù)的尋址方式(1)MOVA,#65H
(2)MOV@R1,65H
(3)MOV30H,R2
(4)MOVC,20H
(5)JZ50H
(6)MOV60H,@R1
(7)MOVCA,@A+DPTR
立即尋址寄存器間接尋址直接尋址直接尋址寄存器尋址位尋址位尋址相對(duì)尋址直接尋址寄存器間接尋址變址尋址練習(xí):★
#data:表示指令中的8位立即數(shù)(data),“#”表示后面的數(shù)據(jù)是立即數(shù)?!?/p>
#data16:表示指令中的16位立即數(shù)?!?/p>
direct:表示8位內(nèi)部數(shù)據(jù)存儲(chǔ)器單元的地址?!?/p>
Rn:n=0~7,表示當(dāng)前選中的工作寄存器組R0~R7。★
Ri:i=0或1,表示當(dāng)前選中的工作寄存器組中的2個(gè)寄存器R0、R1,可作地址指針即間址寄存器?!?/p>
Addr11:表示11位的目的地址?!?/p>
Addr16:表示16位的目的地址。三、指令系統(tǒng)中的符號(hào)說(shuō)明★
rel:表示8位帶符號(hào)的偏移量。用于SJMP和所有的條件轉(zhuǎn)移指令中?!?/p>
DPTR:為數(shù)據(jù)指針,可用作16位的地址寄存器。★
bit:內(nèi)部RAM或?qū)S眉拇嫫髦械闹苯訉ぶ肺坏刂?。?/p>
/:位操作數(shù)的前綴,表示對(duì)該位操作數(shù)取反?!?/p>
A:累加器ACC?!?/p>
B:專用寄存器,用于MUL和DIV指令中。★
C:進(jìn)位/借位標(biāo)志位,也可作為布爾處理機(jī)中的位累加器?!?/p>
@:間址寄存器或基址寄存器的前綴?!?/p>
$:當(dāng)前指令的地址?!?/p>
→:表示將箭頭左邊的內(nèi)容送入箭頭的右邊。
?數(shù)據(jù)傳送類指令
?
算術(shù)運(yùn)算類指令?邏輯運(yùn)算類指令
?
控制轉(zhuǎn)移類指令?
位操作類指令第二節(jié)
MCS-51單片機(jī)指令系統(tǒng)數(shù)據(jù)傳送指令是最常用的一類指令,共有29條,可以通過(guò)累加器進(jìn)行數(shù)據(jù)傳送,還可以在數(shù)據(jù)存儲(chǔ)器之間或工作寄存器與數(shù)據(jù)存儲(chǔ)器之間直接進(jìn)行數(shù)據(jù)傳送。數(shù)據(jù)傳送類指令用到的助記符有:MOV、MOVC、MOVX、XCH、XCHD、SWAP、PUSH、POP共8種,源操作數(shù)可以采用寄存器、寄存器間接、直接、立即、變址加基址5種尋址方式,目的操作數(shù)可以采用前3種尋址方式。一、數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令分類內(nèi)部RAM數(shù)據(jù)傳送指令(16條)外部RAM數(shù)據(jù)傳送指令(4條)查表指令(2條)堆棧操作指令(2條)交換指令(5條)1、內(nèi)部RAM數(shù)據(jù)傳送指令(16條)1)以累加器A為目的操作數(shù)的指令:(4條)2)以工作寄存器Rn為目的操作數(shù)的指令(3條)3)以直接地址為目的操作數(shù)的指令(5條)
4)以間接地址為目的操作數(shù)的指令(3條)5)16位數(shù)據(jù)傳送指令(1條)﹡
MOVA,R6
MOVA,Rn
;Rn
→AMOVA,@Ri
;(Ri)→AMOVA,direct ;(direct)→AMOVA,#data ;data→A
該組指令的功能是把源操作數(shù)指定的內(nèi)容送入累加器A。源操作數(shù)有寄存器尋址、直接尋址、寄存器間接尋址和立即尋址4種尋址方式。源操作數(shù)為寄存器尋址源操作數(shù)為寄存器間接尋址源操作數(shù)為直接尋址源操作數(shù)為立即尋址﹡
MOVA,#38H﹡
MOVA,38H﹡MOVR1,#40H
MOVA,@R11)以累加器A為目的操作數(shù)的指令:(4條)
MOVRn,A ;(A)→RnMOVRn,direct;(direct)→
RnMOVRn,#data ;data→
Rn
該組指令的功能是將源操作數(shù)指定的內(nèi)容送入當(dāng)前工作寄存器組的某個(gè)寄存器。源操作數(shù)有寄存器、直接、立即3種尋址方式。沒(méi)有“MOVRn,Rn”指令。﹡MOVR6,A﹡
MOVR5,#38H﹡
MOVR1,40H2)以工作寄存器Rn為目的操作數(shù)的指令(3條):源操作數(shù)為寄存器尋址源操作數(shù)為直接尋址源操作數(shù)為立即尋址
MOVdirect,AMOVdirect,RnMOVdirect1,direct2MOVdirect,@RiMOVdirect,#data
該組指令的功能是將源操作數(shù)指定的內(nèi)容送入由直接地址direct所指定的存儲(chǔ)單元中。源操作數(shù)有寄存器、直接、寄存器間接和立即4種尋址方式。﹡MOV4AH,A﹡MOV20H,R5﹡
MOV26H,#38H﹡
MOV44H,66H3)以直接地址為目的操作數(shù)的指令(5條):
MOV@Ri,AMOV@Ri,directMOV@Ri,#data
該組指令的功能是將源操作數(shù)指定的內(nèi)容傳送至以R0或R1為地址指針的片內(nèi)RAM單元中。源操作數(shù)有寄存器、直接、和立即3種尋址方式。
﹡
MOV@R1,30H假設(shè)(30H)=6FH,R1=40H,執(zhí)行指令后,30H單元中的數(shù)據(jù)送入R1間接尋址的40H單元,(40H)=6FH4)以間接地址為目的操作數(shù)的指令(3條):MOVDPTR,#data16該指令的功能:把16位立即數(shù)傳送至16位數(shù)據(jù)指針寄存器DPTR。5)16位數(shù)據(jù)傳送指令:例:把立即數(shù)34H送到內(nèi)部RAM20H單元。例:用寄存器間接尋址把立即數(shù)6BH送到內(nèi)部RAM20H單元。
例:利用直接尋址把P1口的內(nèi)容送到P3口。MOV20H,#34HMOVR0,#20HMOV@R0,#6BH
MOVP3,P11、MOVA,#30HMOVR0,#45HMOV@R0,A練習(xí):2、MOVR1,#30HMOV30H,#45HMOVA,@R1結(jié)果(45H)=30H結(jié)果A=45H累加器A與片外數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)傳送是通過(guò)P0口與P2口進(jìn)行的。只能通過(guò)寄存器間接尋址方式。由于MCS51指令系統(tǒng)沒(méi)有專門(mén)的輸入輸出指令,且片外擴(kuò)展的I/O口與片外RAM是統(tǒng)一編址的,故以下4條指令也可以作為輸入輸出指令,與外部設(shè)備進(jìn)行數(shù)據(jù)交換。
MOVXA,@DPTR
;(DPTR)→A,為寄存器間接尋址
MOVX@DPTR,A
;A→(DPTR)2、外部數(shù)據(jù)傳送指令(4條)
★這兩條指令以數(shù)據(jù)指針DPTR為片外數(shù)據(jù)存儲(chǔ)器16位地址指針,尋址范圍達(dá)到64KB,低8位(DPL)由P0口送出,高8位(DPH)由P2口送出。MOVXA,@Ri
;(Ri)→A,為寄存器間接尋址MOVX@Ri,A
;A→(Ri)
★這兩條指令是用R0或R1作低8位地址指針,由P0口送出,尋址范圍是256B。例:現(xiàn)有一輸入設(shè)備地址為DE00H,在這個(gè)口中,已有數(shù)據(jù)A8H,欲將此值存入片內(nèi)30H單元,則可編寫(xiě)如下指令:MOVDPTR,#0DE00H;DE00H→DPTRMOVXA,@DPTR;A8H→AMOV30H,A;A→(30H)執(zhí)行指令后30H單元的內(nèi)容為A8H。例:將累加器A中的內(nèi)容送入外部數(shù)據(jù)存儲(chǔ)器的0060H單元。MOVP2,#00;輸出地址高8位輸出00HMOVR0,#60H;地址送間址寄存器MOVX@R0,A;A中內(nèi)容送外部數(shù)據(jù)存儲(chǔ)器
0060H單元例:將外部存儲(chǔ)器的2000H單元的內(nèi)容送入片外2100H單元。MOVDPTR,#2000H;DPTR=2000HMOVXA,@DPTR;A=(DPTR)MOVDPTR,#2100H;DPTR=2100HMOVX@DPTR,A;(DPTR)
=A查表指令,即程序存儲(chǔ)器數(shù)據(jù)傳送指令有兩種形式:MOVCA,@A+PC ;PC+1→PC,(A+PC)→AMOVCA,@A+DPTR
;(A+DPTR)→A3、查表指令“MOVCA,@A+DPTR”指令以DPTR為基址寄存器進(jìn)行查表,使用前,先給DPTR賦地址,查表范圍可達(dá)64KB程序存儲(chǔ)器空間,稱為遠(yuǎn)程查表指令。
CPU執(zhí)行指令“MOVCA,@A+PC”后,先給PC值加1,將新的PC的內(nèi)容與累加器A中的8位無(wú)符號(hào)數(shù)相加形成地址,再取出該地址單元中的內(nèi)容送累加器A中。由于A只有一個(gè)字節(jié),所形成的地址空間范圍只有256B,稱為近程查表指令。
例:在程序存儲(chǔ)器中,數(shù)據(jù)表格為:2010H2011H
2012H
2013H0AH0BH0CH0DH執(zhí)行程序:
2000H:MOVA,#0DH2002H:MOVCA,@A+PC2003H:MOVR1,A結(jié)果A=0AH,R1=0AH,PC=2004H;0DH→A;(0DH+2003H)→A;A→R1例:在程序存儲(chǔ)器中,數(shù)據(jù)表格為:6010H6011H
6012H
6013H0AH0BH0CH0DH執(zhí)行程序:
2000H:MOVA,#10H2002H:MOVDPTR,#6000H2005H:MOVCA,@A+DPTR結(jié)果A=0AH,PC=2006H;10H→A;6000H→DPTR;(10H+6000H)→A例:以查表方式求出片內(nèi)RAM中20H單元中數(shù)的平方,結(jié)果存入片內(nèi)21H單元中。解法一:以DPTR為基址寄存器,平方表首址可靈活安排在適當(dāng)?shù)奈恢?,?000H,即平方表的內(nèi)容從2000H單元放起。程序如下:
ORG1800HMOVDPTR,#2000HMOVA,20H
MOVCA,@A+DPTRMOV21H,AORG2000HDB00H,01H,04H,09H,10H,19H,24HDB31H,40H,51H,64H,...解法二:以PC為基址寄存器,此時(shí)表格須緊跟程序之后,且要計(jì)算好表格首址的位置。程序如下:
ORG1000H1000H:MOVA,20H1001H:ADDA,
1003H:MOVCA,@A+PC1004H:MOV21H,A1006H:DB00H,01H,04H,09H,10H,19H,24HDB31H,40H,51H,64H,...#02HPUSHdirect;(SP)+1→SP(先指針加1);
(direct)→(SP)(再壓棧)POPdirect ;
(direct)→(SP)(先彈出);(SP)-1→SP(再指針減1)
4、堆棧操作指令
PUSH指令是入棧(或稱壓?;蜻M(jìn)棧)指令,其功能是先將堆棧指針SP的內(nèi)容加1,然后將直接尋址direct單元中的數(shù)據(jù)壓入到SP所指示的單元中。
POP是出棧(或稱彈出)指令,其功能是先將堆棧指針SP所指示的單元內(nèi)容彈出到直接尋址direct單元中,然后將SP的內(nèi)容減1,SP始終指向棧頂。例:已知片內(nèi)RAM40H單元中存放數(shù)值為66H,設(shè)堆棧指針為30H,把此數(shù)值壓入堆棧,然后彈出到50H。MOVSP,#30H;30H→SPPUSH40H;SP+1→SP,(40H)→(31H)POP50H;(31H)→(50H),SP-1→SP例:將片外4000H單元中的內(nèi)容壓入堆棧,之后彈出到48H單元中,編寫(xiě)指令如下:MOVDPTR,#4000HMOVXA,@DPTR;(4000H)=AMOV20H,A;A→(20H)MOVSP,#30H;30H→SPPUSH20H;20H單元內(nèi)容壓入堆棧POP48H;彈出到48H單元MOVSP,#30HPUSH10HPUSH20HPOP10HPOP20H用堆棧指令實(shí)現(xiàn)RAM中10H和20H中的內(nèi)容交換,設(shè)(10H)=54H,(20H)=45H。;設(shè)置堆棧指針指向30H;進(jìn)棧SP+1→SP,(SP)=31H,(31H)=54H;進(jìn)棧SP+1→SP,(SP)=32H,(32H)=45H;出棧(10H)=45H,SP-1→SP,(SP)=31H;出棧(20H)=54H,SP-1→SP,(SP)=30H練習(xí)1)字節(jié)交換指令:
XCHA,Rn
;A的內(nèi)容與Rn的內(nèi)容交換
XCHA,@Ri
;A的內(nèi)容與(Ri)的內(nèi)容交換
XCHA,direct;A的內(nèi)容與(direct)的內(nèi)容交換5、數(shù)據(jù)交換指令例:已知(30H)=88H,(40H)=11H,R0=30H,R1=40HMOVA,30HXCHA,40HMOV30H,A;(A)←(30H),(A)=88H;(A)(40H),(A)=11H,(40H)=88H;(30H)←(A),(30H)=11H結(jié)果為A(30H)=11H,(40H)=88H,30H和40H單元的內(nèi)容互換顯然,程序沒(méi)有用到已知條件R0=30H,R1=40H,可以采用寄存器間接尋址的方式,程序如下:MOVA,@R0XCHA,@R1MOV@R0,AXCHA,BXCHB,A練習(xí):編程實(shí)現(xiàn)累加器A與寄存器B的內(nèi)容互換。√×2)低半字節(jié)交換指令:
XCHDA,@Ri
;A的低四位與(Ri)的低四位交換3)累加器A的高、低半字節(jié)交換指令
SWAPA;A的低四位與高四位互換例:累加器A中的內(nèi)容為FFH,間址寄存器R0中的內(nèi)容為5BH,5BH中的內(nèi)容為6DH,執(zhí)行指令“XCHDA,@R0”后。累加器A中的內(nèi)容變?yōu)椋?BH單元中的內(nèi)容變?yōu)椤DH6FH練習(xí):(A)=56H,R0=30H,(30H)=74H,執(zhí)行下列指令:
XCHA,@R0XCHDA,@R0XCHA,R0XCHA,30H;(A)=74H,(30H)=56H;(A)=76H,(30H)=54H;(A)=30H,(R0)=76H;(A)=54H,(30H)=30H※對(duì)8位無(wú)符號(hào)數(shù)進(jìn)行直接的運(yùn)算,包括加法、減法、加1、減1和乘法、除法?!柚绯鰳?biāo)志對(duì)有符號(hào)的二進(jìn)制整數(shù)進(jìn)行加減運(yùn)算?!柚M(jìn)位標(biāo)志,可以實(shí)現(xiàn)多字節(jié)的加減運(yùn)算。※對(duì)壓縮的BCD數(shù)進(jìn)行運(yùn)算(壓縮BCD數(shù),是指在1個(gè)字節(jié)中存放2位BCD數(shù))。※算術(shù)運(yùn)算指令對(duì)程序狀態(tài)字PSW中的CY、AC、OV三個(gè)標(biāo)志都有影響,根據(jù)運(yùn)算的結(jié)果可將它們置1或清除。但是加1和減1指令不影響這些標(biāo)志。二、算數(shù)運(yùn)算類指令1)不帶進(jìn)位的加法指令A(yù)DDA,#data ;A+data
→AADDA,direct ;A+(direct)→AADDA,Rn
;A+Rn
→AADDA,@Ri
;A+(Ri)→A
這4條指令的功能是把累加器A中的數(shù)與源操作數(shù)所確定的內(nèi)容相加,其和送入累加器A中。1、加法指令※規(guī)則①
求和時(shí)總是把操作數(shù)直接相加,而無(wú)須任何變換。②
若位7進(jìn)位,CY=1,若為無(wú)符號(hào)數(shù)的相加,CY代表十進(jìn)制256,但是兩個(gè)帶符號(hào)數(shù)的相加,CY無(wú)意義。③
確定相加后OV
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 骨關(guān)節(jié)炎的膳食調(diào)理
- 員工執(zhí)行力提升培訓(xùn)課件
- 2025年銅及銅合金材合作協(xié)議書(shū)
- 提升糖耐量受損患者生活質(zhì)量
- 腸炎患者的日常飲食管理
- 營(yíng)養(yǎng)管護(hù)理創(chuàng)新方法
- 眼科護(hù)理質(zhì)量與安全管理
- 肺心病患者用藥護(hù)理與注意事項(xiàng)
- 基礎(chǔ)護(hù)理心理支持
- 吸熱和散熱課件
- 法院起訴收款賬戶確認(rèn)書(shū)范本
- 15ZJ001 建筑構(gòu)造用料做法
- 課堂觀察與評(píng)價(jià)的基本方法課件
- 私募基金內(nèi)部人員交易管理制度模版
- 針對(duì)低層次學(xué)生的高考英語(yǔ)復(fù)習(xí)提分有效策略 高三英語(yǔ)復(fù)習(xí)備考講座
- (完整)《走遍德國(guó)》配套練習(xí)答案
- 考研準(zhǔn)考證模板word
- 周練習(xí)15- 牛津譯林版八年級(jí)英語(yǔ)上冊(cè)
- 電力電纜基礎(chǔ)知識(shí)課件
- 代理記賬申請(qǐng)表
- 模型五:數(shù)列中的存在、恒成立問(wèn)題(解析版)
評(píng)論
0/150
提交評(píng)論