3.5.1 硬件電路
硬件電路如圖3.7所示。

圖3.7 LED顯示電路
工作原理
我們在電子技術(shù)中學過,七段LED共陽極數(shù)碼管在段碼加低電平和位控制信號加高電平后就可以點亮。所以,要顯示某個字符只要將對應(yīng)字段點亮即可。
3.5.2 程序設(shè)計
ORG 0000H
LJMP MAIN
ORG 0030H
MIAN: MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P1,A
CLR P3.0
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;0-6
DB 82H,0F8H,80H,90H ; 7-9
END
3.5.3 源程序的編輯、編譯、下載
打開“偉福”模擬仿真軟件進行程序的編輯、編譯。
打開“ISP下載軟件”將目標文件下載到ISP-4實驗開發(fā)板上的AT89S51單片機芯片,觀察程序運行結(jié)果。
3.5.4 相關(guān)知識
1. 單片機如何控制單根I/O口線?
我們在上面任務(wù)中看到,P3口共有8根口線,現(xiàn)在我們只要控制其中一根線,在單片機中能不能實現(xiàn)?答案是肯定的。因為單片機中有一類位操作指令。
2. MCS-51單片機有哪些位操作指令?
位處理功能是MCS-51系列單片機的一個重要特征,這是出于實際應(yīng)用需要而設(shè)置的。位變量也即開關(guān)變量,它是以位(bit)為單位進行操作的。
在物理結(jié)構(gòu)上,MCS-51單片機有一個位處理機,它以進位標志做為位累加器,以內(nèi)部RAM可尋址的128個為存儲位。
既然有位處理機功能,所以也就有相應(yīng)的位操作指令集,下面我們分別談?wù)摗?/p>
(1) 位傳送指令(2條)
位傳送指令就是可尋址位與累加位CY之間的傳送,指令有兩條。
MOV C,bit ;bit→CY,某位數(shù)據(jù)送CY。
MOV bit,C ;CY→bit,CY數(shù)據(jù)送某位
(2) 位置位復位指令(4條)
這些指令對CY及可尋址位進行置位或復位操作,共有四條指令。
CLR C ; 0→CY,清CY。
CLR bit ; 0→bit,清某一位。
SETB C ; 1→CY,置位CY。
SETB bit ; 1→bit,置位某一位。
如:任務(wù)中的CLR P3.0 指令,就是將P3.0清零。
(3) 位運算指令(6條)
位運算都是邏輯運算,有與、或、非三種指令,共六條。
ANL C,bit ;(CY)∧(bit)→CY。
ANL C,/bit ;(CY)∧(/bit)→CY。
ORL C,bit ;(CY)∨(bit)→CY。
ORL C,/bit ;(CY)∧(/bit)→CY。
CPL C ;(/CY)→CY。
CPL bit ;(/bit)→bir。
(4) 位控制轉(zhuǎn)移指令(5條)
位控制轉(zhuǎn)移指令是以位的狀態(tài)作為實現(xiàn)程序轉(zhuǎn)移的判斷條件,介紹如下:
JC rel ; (CY)=1轉(zhuǎn)移,(PC)+2+rel→PC,否則程序往下執(zhí)行,(PC)+2→PC。
JNC rel ; (CY)=0轉(zhuǎn)移,(PC)+2+rel→PC,否則程序往下執(zhí)行,(PC)+2→PC。
JB bit, rel ; 位狀態(tài)為1轉(zhuǎn)移。
JNB bit, rel ; 位狀態(tài)為0轉(zhuǎn)移。
JBC bit, rel ; 位狀態(tài)為1轉(zhuǎn)移,并使該位清“0”。
后三條指令都是三字節(jié)指令,如果條件滿足,(PC)+3+rel→PC,否則程序往下執(zhí)行,(PC)+3→PC。
3. 位操作指令應(yīng)用舉例
【例3.12】 完成(Z)=(X)⊕(Y)異或運算,其中:X、Y、Z表示位地址。
解:異或運算可表示為(Z)=(X)(/Y)+(/X )(Y),參考子程序如下:
PR!:MOV C,X ;(CY)←(X)
ANL C,/Y ;(CY)←(X)∧/(Y)
MOV Z,C ;暫存Z中
MOV C,X ;(CY)←(X)
ANL C,/X ;(CY)←(X)∧/(X)
ORL C,Z ;(CY)←(X)∧/(X)+(X)∧/(Y)
MOV Z,C ;保存異或結(jié)果
RET
