a) 单个按键与多个LED灯(位操作—输入与字节操作—输出)—判断与子程序
此处只是将输出指令由位指令换成了字节指令,而输入判断仍然是位判断指令。
ORG 0000H
MAIN:
; CLR C
JNC ZIJIE;JC位累加器—进位位为1转移到ZIJIE ,
JNC位累加器为0转移到ZIJIE,否则顺序执行。
MOV C,P1.0
ZIJIE:;子程序起始
MOV A,#00H
RET;子程序结束并返回调用处
END
b) 单个按键与多个LED灯(位操作—输入与位、字节操作—输出)
l 位输入控制位或字节输出
ORG 0000H
MAIN:
; CLR C
JNC ZIJIE ;JC位累加器—进位位为1转移到ZIJIE ,JNC位累加器为0转移到ZIJIE,否则顺序执行。
SJMP MAIN ;相对转移时间短,用AJMP绝对转移时间长,RET是用于子程序的返回
ZIJIE:
F1:
l 位输入控制字节输出
c) 单个按键与单个电机控制—开环控制
单“位”—P口1位--单个灯—位输出,单个按键控制—硬控制与软控制
一个按键,一盏照明灯,一个继电器。硬件接口问题—线路连接、硬件硬驱动问题(程序称为软驱动)。
一个按键,两盏灯(指示、照明),一个继电器。硬件接口问题—线路连接、硬件硬驱动问题。程序称为软驱动:就是利用两个端口,通过延时或计时器完成转换。
说明:
硬件特性,驱动与控制信号,程序编写
由继电器引出的强电驱动电器的控制问题,如电动机—交流电机、直流电机、步进电机、伺服电机;单项或多项
1. 单个开关(按键)与多个LED灯→数码管→点阵问题—最小系统—输出扩展
a) 单个按键与多个LED灯(位操作—输入与字节操作—输出)
b) 单个按键与多个LED灯—数码管(位操作—输入与字节操作—输出)—数组
c) 单个按键与多个数码管(位操作—输入与多字节操作—输出)—静态—数组
d) 多个按键与多个数码管(位操作—输入与字节操作—输出)—动态—扫描函数
e) 单个按键与多个数码管—点阵(位操作—输入与字节操作—输出)—静态
3.单个开关(按键)与多个LED灯→数码管→点阵问题—输出扩展—最小系统
a) 单个按键,多个LED灯(位操作—输入与字节操作—输出)
l 单输入与多输出的电子线路—静态特性—结构与联接
对于多个LED灯(LED数 < 8个)来说(图4),在硬件连接方面、软件编写方面均没有大的难点。按照单个LED的连接方式增加便可。控制程序编写基本上也是重复性工作—用COPY简单修改即可。
对于LED数= 8个或是8的倍数的情况,需要解决两个方面的问题。一个是硬件的连接方法,一个是控制程序的编写指令—用词方法—字节操作指令。硬件方面可以用单个或多个成组(NET)的LED或总线接口、单个接口扩展等实现。程序编写则可以使用重复性工作、可以使用字节操作指令而摒弃位操作指令,使得程序简洁、可读性好、硬件运行效率高。
对于LED数> 8个且不能被8整除的,仍需要用位操作指令。参见图5,指令如下:
l 单输入与多输出电子线路的控制指令—动态特性
ORG 0000H
MOV P1,A ;P1口的状态,低电平为关
MOV C,0A0H ;按位操作,P2.0口的状态—按键定,关为低电平,开为高电平
MOV P1.0,C ;P1.0口的状态,按位高电平显示灯亮,低电平显示灯灭
MOV P1.1,C
MOV P1.2,C
MOV P1.3,C ;P1.3口的状态,
MOV P1.7,C
MOV P2.1,C
MOV P2.2,C
MOV P2.4,C
MOV P3.0,C
MOV P3.3,C
MOV P3.5,C
MOV P3.7,C
MOV P0.0,C
MOV P0.4,C
END
对于LED数> 8个且能被8整除的需要用字节操作指令。参见图2所示。
ORG 0000H
START:
MOV P1,A
MOV C,0A0H
JB 0A0H,GUAN ;按位操作;按P2.0口的状态获得两种显示结果,0跳转
MOV P1,#0FFH ;按P2.0口的状态为非1时的顺序显示本指令
RET ;返回控制指令
GUAN : ;程序控制指令入口,跳转入口
MOV P2,#0FFH ;按P2.0口的状态为1时的转移显示本指令
RET ;子程序返回控制指令
END
程序说明:
每个口用位赋值指令来开关P1口的各个LED。也可以用字节赋值指令一次性的开关8位P1口全部LED。
P1=0; // P1口8位置低电平,点亮8个LED
P1=1; // P1口8位置高电平,关闭8个LED。图5为多个LED灯-单个按键的运行结果与汇编语言。
上面的单片机系统和汇编语言控制指令,很容易被更改为多口、多位的单键控制系统。图5为多个LED灯-单个按键的运行结果与汇编语言。图6中对P2.0口改用双掷开关,实现P2.0口的两种电平状态。
ORG 0000H
RET
GUAN :