专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

51系列汇编语言

作者:未知   来源:会员上传   点击数:  更新时间:2014年05月20日   【字体:

 

a)  单个按键与多个LED灯(位操作输入与字节操作输出)判断与子程序
此处只是将输出指令由位指令换成了字节指令,而输入判断仍然是位判断指令。
ORG 0000H
MAIN:
  CLR C
   MOV C,P2.0 ;获取P2.0位状态 送位累加器;位与字节转换需要判断指令
JNC ZIJIE;JC位累加器—进位位为1转移到ZIJIE ,
JNC位累加器为0转移到ZIJIE,否则顺序执行。
MOV C,P1.0
ZIJIE:;子程序起始
MOV  A#00H
    MOV  P3A
RET;子程序结束并返回调用处
END
 
 
b)  单个按键与多个LED灯(位操作输入与位、字节操作输出)
l  位输入控制位或字节输出
ORG 0000H
MAIN:
  CLR C
   MOV C,P1.0 ;获取P1.0位状态 送位累加器;位与字节转换需要判断指令
JNC ZIJIE      ;JC位累加器—进位位为1转移到ZIJIE ,JNC位累加器为0转移到ZIJIE,否则顺序执行。
  MOV P0.0,C ;送位累加器到P0.0位等,P1.0位状态变化则输出随之变化
    ACALL  DELAY   ; 调延时子程序
  MOV P0.1,C
      ACALL  DELAY
  MOV P0.2,C
      ACALL  DELAY
  MOV P0.3,C
    ACALL  DELAY 
  MOV P0.4,C
    ACALL  DELAY 
         MOV P0.5,C
    ACALL  DELAY          MOV P0.6,C
    ACALL  DELAY    MOV P0.7,C    ACALL  DELAY     
SJMP MAIN ;相对转移时间短,用AJMP绝对转移时间长,RET是用于子程序的返回
ZIJIE:
  MOV A,#00H
  MOV P2,A      ACALL  DELAY 
  MOV P3,A    ACALL  DELAY
     CLR A      MOV P0,A
   MOV P1,A     ACALL  DELAY  
  RET
  DELAY:      ; 延时子程序 - 这是一个非常有用、而且常见的一个子程序
  MOV R5,#04H    ;将16进制数04H传递给寄存器R5
F1:
  DJNZ  R7, F1 ;寄存器R7减1非0跳转到F1,直到减为0顺序执行下一指令
  RET       ; 子程序结束,返回子程序入口处  ACALL  DELAY   ; 调延时子程序 
  END
l  位输入控制字节输出
 
 
c)  单个按键与单个电机控制开环控制
单“位”P口1位--单个灯位输出,单个按键控制硬控制与软控制
一个按键,一盏照明灯,一个继电器。硬件接口问题—线路连接、硬件硬驱动问题(程序称为软驱动)。
一个按键,两盏灯(指示、照明),一个继电器。硬件接口问题—线路连接、硬件硬驱动问题。程序称为软驱动:就是利用两个端口,通过延时或计时器完成转换。
说明:
硬件特性,驱动与控制信号,程序编写
由继电器引出的强电驱动电器的控制问题,如电动机交流电机、直流电机、步进电机、伺服电机;单项或多项
 
1.  单个开关(按键)与多个LED数码管点阵问题最小系统输出扩展
a)        单个按键与多个LED灯(位操作输入与字节操作输出)
b)        单个按键与多个LED数码管(位操作输入与字节操作输出)数组
c)         单个按键与多个数码管(位操作输入与多字节操作输出)静态数组
d)        多个按键与多个数码管(位操作输入与字节操作输出)动态扫描函数
e)         单个按键与多个数码管点阵(位操作输入与字节操作输出)静态
f)         多个按键与多个数码管点阵(位操作输入与字节操作输出)动态

 

关闭窗口

相关文章