日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]MCS-51單片機(jī)通常有4個(gè)8位I/O端口, 向各端口的寫(xiě)數(shù)據(jù)均寫(xiě)入到對(duì)應(yīng)端口的鎖存器中, 但對(duì)各端口的讀操作卻有兩個(gè)方式:讀鎖存器和讀引腳1 讀-修改-寫(xiě)操作 Pn(指P0,P1,P2,P3)在51匯編語(yǔ)言中是特殊的標(biāo)識(shí)符,既代表Pn端口

MCS-51單片機(jī)通常有4個(gè)8位I/O端口, 向各端口的寫(xiě)數(shù)據(jù)均寫(xiě)入到對(duì)應(yīng)端口的鎖存器中, 但對(duì)各端口的讀操作卻有兩個(gè)方式:讀鎖存器和讀引腳

1 讀-修改-寫(xiě)操作
Pn(指P0,P1,P2,P3)在51匯編語(yǔ)言中是特殊的標(biāo)識(shí)符,既代表Pn端口引腳,又代表Pn鎖存器(Pn SFR)。在MCS-51指令系統(tǒng)中有些指令讀鎖存器的值, 有些指令則讀引腳上的值。讀鎖存器指令是從鎖存器中讀取一個(gè)值并進(jìn)行處理, 把處理后的值(原值或已修改后的值)重新寫(xiě)入鎖存器中。這類(lèi)指令稱(chēng)為讀-修改-寫(xiě)指令, 表1列舉了有該功能的指令 當(dāng)目的操作數(shù)是Pn端口或Pn端口的某一位時(shí). 該指令讀取鎖存器的值.

這些指令的一個(gè)共同特點(diǎn), 就是要先并行讀入Pn鎖存器(非Pn端口引腳)中的值,作一定的修改,然后再寫(xiě)入諺端口的鎖存器。表1中晶后三條指令讀-修改-寫(xiě)關(guān)系不夠明顯。實(shí)際上它們的執(zhí)行過(guò)程序是:先將Pn的8位鎖存器內(nèi)容一起讀人,再對(duì)指定位進(jìn)行修改, 然后又 8位一起寫(xiě)入鎖存器。
對(duì)于讀-修改-寫(xiě)指令。直接讀鎖存器而不是讀端口引腳, 是因?yàn)閺囊_上讀出的數(shù)據(jù)不一定能真正反映鎖存器的狀態(tài) 例如:若用Pn的某一位引腳直接驅(qū)動(dòng)一個(gè)NPN三極管的基極,當(dāng)向此端口寫(xiě)“1” 時(shí), 三極管導(dǎo)通并把端口引腳的電平鉗位約0.7 V (對(duì)于硅管) 這時(shí),CPU若從此引腳讀取數(shù)據(jù). 會(huì)把該數(shù)據(jù)(應(yīng)為1)錯(cuò)讀為0;若直接從鎖存器讀取, 則讀出正確的數(shù)據(jù)。
理解了Pn的特殊性及讀-修改-寫(xiě)指令后, 就不難理解指令PUSH Pn的含義了。它的執(zhí)行過(guò)程是:讀Pn引腳(非讀Pn鎖存器)的值, 然后將此數(shù)值壓入堆棧 以下是一段測(cè)試程序:

ORG 1000H
1000 75A07F MOV P2,#7FH
1003 7900 MOV R1,#00H
1005 74FF MOV A,#0FFH
1007 COA0 PUSH P2
1009 D0A0 POP P2
100B F3 MOVX @R1,A
100C 22 RET

這段程序原意是將FFH立即數(shù)存人外部RAM地址為7F00的單元中, 但具體的運(yùn)行結(jié)果與這段程序是在片內(nèi)或片外被執(zhí)行有密切關(guān)系。若在片內(nèi),結(jié)果與程序原意一致;若在片外,MCU執(zhí)行這段片外程序后 結(jié)果卻把FFH錯(cuò)誤地送到了外部RAM 的1000H地址去。為什么會(huì)出錯(cuò)?因?yàn)樵趫?zhí)行片外程序時(shí), 出現(xiàn)在P2端口引腳上的數(shù)據(jù)是PCH (程序指針的高8位,此時(shí)為10H),在執(zhí)行PUSH P2指令時(shí).讀取P2引腳上的數(shù)據(jù)是10H.所
以將10H壓入堆棧,緊跟的POP P2指令是將當(dāng)前棧頂數(shù)據(jù)10H彈出并寫(xiě)入P2鎖存器,然后執(zhí)行的MOVX @R1,A指令,將A中的數(shù)據(jù)寫(xiě)入[P2R1](此
時(shí)P2RI=1000H)地址中 有興趣的讀者可以嘗試一下。

2 可靠讀取Pn鎖存器中數(shù)據(jù)的方法
上述程序并無(wú)實(shí)際運(yùn)行意義, 在這里只是引出如何可靠地讀取Pn鎖存器中的數(shù)據(jù)問(wèn)題。在MCS51指令系統(tǒng)中并沒(méi)有一條指令可以讓匯編程序員直接讀取Pn鎖存器的數(shù)據(jù)。在表1中只有JBC Pn.Y,Label可以較快速地獲取Pn鎖存器第Y位的值。由于篇幅關(guān)系,本文只介紹P2鎖存器的操作,其他鎖存器的操作可參照P2寫(xiě)出 下面是獲取P2鎖存器值的子程序。

GetSfrP2:PUSH IE ;保護(hù)中斷允許寄存器
CLR EA ;禁止所有中斷
MOV A.#0FFH
JBC P2.0,$+5;P2鎖存器位0為"1" 則清"0"并跳
;轉(zhuǎn)到$+5地址(JBC P2.1,$+5)

CLR ACC.0 ;否則ACC.0清為"0"
JBC P2.1,$+5
CLR ACC.1
JBC P2.2,$+5
CLRACC2
JBC P2.3,$+5
CLR ACC 3
JBC P2.4,$+5
CLR ACC 4
JBC P2.5,$+5
CLRACC 5
JBC P2.6,$+5
CLR ACC.6
JBC P2.7,$+5
CLR ACC.7
MOV P2,A ;恢復(fù)P2鎖存器原值
POPIE ;恢復(fù)中斷允許寄存器
RET

另外也可在RAM 中建立各Pn鎖存器的映像.通過(guò)專(zhuān)用程序?qū)n鎖存器進(jìn)行操作 這樣就可以在不對(duì)引腳狀態(tài)有任何影響的情況下,快速可靠地讀取與Pn鎖存器一致的數(shù)值。以在內(nèi)部RAM 中建立P2映像為例:

EP2 Data 60H ;P2鎖存器映像
WriteSfrP2: MOV EP2,A ;將A寫(xiě)人P2鎖存器映像
MOV P2,A ;將A寫(xiě)人P2鎖存器
RET
ReadSfrP2: MOV A,EP2 ;將P2鎖存器映像寫(xiě)入A
RET

如果確信讀P2端口時(shí)的值都等于P2鎖存器中的值,則可以用51單片機(jī)地址指針及其應(yīng)用的操作方法,簡(jiǎn)單地PUSHP2和POP P2指令來(lái)保護(hù)和恢復(fù)現(xiàn)場(chǎng)程序段中使用的P2鎖存器
以上三種讀取Pn鎖存器值的方法, 第二種方法,即在RAM 中建立Pn鎖存器映像的方法,存取速度較快,適臺(tái)MCS-51的任何工作方式,在讀過(guò)程中不會(huì)對(duì)Pn鎖存器及端口引腳狀態(tài)有任何干擾,是三種方法中最好的。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

采用51單片機(jī)最小開(kāi)發(fā)板,由8位自制獨(dú)立按鍵控制。單片機(jī)芯片為STC89C52RC,晶振為@12.000 mhz。8X8LED點(diǎn)陣屏模塊由MAX7219驅(qū)動(dòng),MAX7219包含一個(gè)自動(dòng)掃描電路。你只需要把要顯示的數(shù)據(jù)發(fā)送...

關(guān)鍵字: 51單片機(jī) MAX7219 寄存器

在嵌入式系統(tǒng)開(kāi)發(fā)的廣闊領(lǐng)域,51單片機(jī)和STM32無(wú)疑是兩種極具代表性的微控制器。對(duì)于初學(xué)者而言,選擇學(xué)習(xí)路徑時(shí)往往會(huì)面臨一個(gè)抉擇:是直接跨越51單片機(jī),挑戰(zhàn)更高層次的STM32,還是從51開(kāi)始,逐步進(jìn)階?本文旨在探討直...

關(guān)鍵字: 51單片機(jī) STM32

在嵌入式系統(tǒng)開(kāi)發(fā)中,特別是在使用8051系列單片機(jī)(簡(jiǎn)稱(chēng)C51)進(jìn)行編程時(shí),數(shù)據(jù)類(lèi)型的選擇與定義對(duì)程序的性能和可讀性至關(guān)重要。C51語(yǔ)言在標(biāo)準(zhǔn)C語(yǔ)言的基礎(chǔ)上進(jìn)行了擴(kuò)展,以適應(yīng)單片機(jī)特有的硬件結(jié)構(gòu)和操作需求。本文將深入探討...

關(guān)鍵字: C51數(shù)據(jù) 51單片機(jī)

在嵌入式系統(tǒng)領(lǐng)域,51單片機(jī)作為一種經(jīng)典的微控制器,廣泛應(yīng)用于各種自動(dòng)化控制系統(tǒng)中。其外部引腳作為單片機(jī)與外界交互的接口,承載著數(shù)據(jù)傳輸、控制信號(hào)輸出等重要功能。本文將通過(guò)對(duì)51單片機(jī)外部引腳的案例分析,結(jié)合實(shí)際代碼,深...

關(guān)鍵字: 51單片機(jī) 單片機(jī)

在電子技術(shù)的浩瀚星空中,LED(發(fā)光二極管)以其獨(dú)特的魅力成為了一顆璀璨的明星。而結(jié)合51單片機(jī)這一經(jīng)典的嵌入式開(kāi)發(fā)平臺(tái),LED的應(yīng)用更是被賦予了無(wú)限可能,其中,花樣流水燈便是一個(gè)生動(dòng)而富有創(chuàng)意的實(shí)例。本文將帶您深入探索...

關(guān)鍵字: 51單片機(jī) LED

在現(xiàn)代嵌入式系統(tǒng)設(shè)計(jì)中,51單片機(jī)作為一種經(jīng)典的微控制器,憑借其豐富的功能和廣泛的應(yīng)用領(lǐng)域,仍然受到工程師們的青睞。定時(shí)器中斷是51單片機(jī)中一個(gè)非常實(shí)用的功能,它可以在特定的時(shí)間間隔內(nèi)自動(dòng)觸發(fā)中斷,執(zhí)行預(yù)設(shè)的操作,從而提...

關(guān)鍵字: 51單片機(jī) 定時(shí)器

STM32與51單片機(jī)之間有什么差異呢?兩者可以說(shuō)是一場(chǎng)科技與性能的較量了。在科技飛速發(fā)展的今天,微控制器(MCU)已廣泛應(yīng)用于各類(lèi)電子設(shè)備和系統(tǒng)中,發(fā)揮著舉足輕重的作用。其中,STM32和51單片機(jī)作為兩種常見(jiàn)的微控制...

關(guān)鍵字: STM32 51單片機(jī) MCU

51單片機(jī)將是下述內(nèi)容的主要介紹對(duì)象,通過(guò)這篇文章,小編希望大家可以對(duì)51單片機(jī)的相關(guān)情況以及信息有所認(rèn)識(shí)和了解,詳細(xì)內(nèi)容如下。

關(guān)鍵字: 單片機(jī) 51單片機(jī)

在嵌入式系統(tǒng)開(kāi)發(fā)中,單片機(jī)是不可或缺的重要組成部分。其中,STM32單片機(jī)和51單片機(jī)是兩種常見(jiàn)的單片機(jī)芯片。本文將對(duì)比分析這兩種單片機(jī)的區(qū)別,并探討STM32單片機(jī)的優(yōu)勢(shì)。

關(guān)鍵字: stm32單片 51單片機(jī)

51單片機(jī)是指由美國(guó)INTEL公司生產(chǎn)的一系列單片機(jī)的總稱(chēng),這一系列單片機(jī)包括了許多品種,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的產(chǎn)品,該系列其它單片機(jī)都是在8051的基...

關(guān)鍵字: 51單片機(jī) 串行通信
關(guān)閉