3.5.1 硬件电路
硬件电路如图3.7所示。
图3.7 LED显示电路
工作原理
我们在电子技术中学过,七段LED共阳极数码管在段码加低电平和位控制信号加高电平后就可以点亮。所以,要显示某个字符只要将对应字段点亮即可。
3.5.2 程序设计
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实验开发板上的AT89S51单片机芯片,观察程序运行结果。
3.5.4 相关知识
1. 单片机如何控制单根I/O口线?
我们在上面任务中看到,P3口共有8根口线,现在我们只要控制其中一根线,在单片机中能不能实现?答案是肯定的。因为单片机中有一类位操作指令。
2. MCS-51单片机有哪些位操作指令?
位处理功能是MCS-51系列单片机的一个重要特征,这是出于实际应用需要而设置的。位变量也即开关变量,它是以位(bit)为单位进行操作的。
在物理结构上,MCS-51单片机有一个位处理机,它以进位标志做为位累加器,以内部RAM可寻址的128个为存储位。
既然有位处理机功能,所以也就有相应的位操作指令集,下面我们分别谈论。
(1) 位传送指令(2条)
位传送指令就是可寻址位与累加位CY之间的传送,指令有两条。
MOV C,bit ;bit→CY,某位数据送CY。
MOV bit,C ;CY→bit,CY数据送某位
(2) 位置位复位指令(4条)
这些指令对CY及可寻址位进行置位或复位操作,共有四条指令。
CLR C ; 0→CY,清CY。
CLR bit ; 0→bit,清某一位。
SETB C ; 1→CY,置位CY。
SETB bit ; 1→bit,置位某一位。
如:任务中的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) 位控制转移指令(5条)
位控制转移指令是以位的状态作为实现程序转移的判断条件,介绍如下:
JC rel ; (CY)=1转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。
JNC rel ; (CY)=0转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。
JB bit, rel ; 位状态为1转移。
JNB bit, rel ; 位状态为0转移。
JBC bit, rel ; 位状态为1转移,并使该位清“0”。
后三条指令都是三字节指令,如果条件满足,(PC)+3+rel→PC,否则程序往下执行,(PC)+3→PC。
3. 位操作指令应用举例
【例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 ;保存异或结果
RET