基于80C51單片機位尋址編程
80C51單片機有位處理功能,可以對數據位進行操作,因此就有相應的位尋址方式。所謂位尋址,就是對內部RAM或可位尋址的特殊功能寄存器SFR內的某個位,直接加以置位為1或復位為0。
位尋址的范圍,也就是哪些部份可以進行位尋址:
1、我們在學習51單片機的存儲器結構時,我們已知道在單片機的內部數據存儲器RAM的低128單元中有一個區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區(qū)共有128位。這128位都單獨有一個位地址,其位地址的名字就是00H-7FH。
這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學習中00H、01H。。。。7FH等等,所表示的都是一個字節(jié)(或者叫單元地址),而在這里,這些數據都變成了位地址。我們在指令中,或者在程序中如何來區(qū)分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現(xiàn)在正在研究的位尋址的一個重要問題。其實,區(qū)分這些數據是位地址還是單元地址,我們都有相應的指令形式的。這個問題我們在后面的指令系統(tǒng)學習中再加以論述。
2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關于專用寄存器的相關文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進行位尋址,當然并不是全部,大家在應用當中應引起注意。
專用寄存器的位尋址表示方法:
1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H
MOV C,D5H
2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示
MOV C,F(xiàn)0
3、單元(字節(jié))地址加位表示:D0H單元位5,表示為DOH.5
MOV C,D0H.5
4、專用寄存器符號加位表示:例如PSW.5
MOV C,PSW.5
這四種方法實現(xiàn)的功能都是相同的,只是表述的方式不同而已。