作业帮 > 综合 > 作业

51单片机控制程序有十个发光二极管标号1-10 分别用p3.6和p3.7控制!按一下P3.6,选择1号 再按一下选择2号

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/13 12:34:54
51单片机控制程序
有十个发光二极管标号1-10 分别用p3.6和p3.7控制!按一下P3.6,选择1号 再按一下选择2号 以此类推1直到10 当选择1号时再按一下p3.7 ,1号亮 ,再按下p3.7 1号灯熄灭!就是用p3.6选择其中一个二极管 用p3.7控制亮和熄灭!不需要延时 也不需要循环程序!只要能控制能按要求控制亮灭就行了
型号MCS—51的单片机,具体的不要求。就是用的是汇编语言 不是C语言。注:一至十号是可以任意选的 另外更改下 是一至十号灯本是亮着的 然后按下p3.7时选中的其中一个灯灯熄灭!再按下p3.7熄灭的灯重新亮!
51单片机控制程序有十个发光二极管标号1-10 分别用p3.6和p3.7控制!按一下P3.6,选择1号 再按一下选择2号
要求汇编语言,还是C语言?
-----------
下列程序,仿真调试通过.
;51单片机控制程序
;有十个发光二极管标号1-10 分别用P3.6和P3.7控制
;按一下P3.6,选择1号 再按一下选择2号 以此类推1直到10
;当选择1号时再按一下P3.7,1号亮,再按下p3.7,1号灯熄灭
;就是用p3.6选择其中一个二极管、用p3.7控制亮和熄灭
;--------------------------------------------------
K1 bit P3.6
K2 bit P3.7
LED1 bit P0.0
LED2 bit P0.1
LED3 bit P0.2
LED4 bit P0.3
LED5 bit P0.4
LED6 bit P0.5
LED7 bit P0.6
LED8 bit P0.7
LED9 bit P2.7
LED10 bit P2.6
sfr CURR = 0x30
;--------------------------------------------------
ORG 0000H
LJMP START
ORG 0100H
START:
MOV P0,#0 ;开始的时候输出10个低电平
CLR LED9 ;全亮
CLR LED10
MOV CURR,#0
;--------------------------------------------------
J_CH_K1:
JB K1,J_CH_K2
LCALL DL10MS
JNB K1,K1_PRG
;--------------------------------------------------
J_CH_K2:
JB K2,J_CH_K1
LCALL DL10MS
JNB K2,K2_PRG
SJMP J_CH_K1
;--------------------------------------------------
K1_PRG:
INC CURR
MOV A,#10
CJNE A,CURR,J_CH_K2
SJMP START
;--------------------------------------------------
K2_PRG:
MOV A,CURR
ADD A,ACC
MOV DPTR,#JMP_TAB
JMP @A + DPTR
;--------------------------------------------------
JMP_TAB:
SJMP _LED1
SJMP _LED2
SJMP _LED3
SJMP _LED4
SJMP _LED5
SJMP _LED6
SJMP _LED7
SJMP _LED8
SJMP _LED9
SJMP _LED10
;--------------------------------------------------
_LED1:
CPL LED1
LJMP J_CH_K1
_LED2:
CPL LED2
LJMP J_CH_K1
_LED3:
CPL LED3
LJMP J_CH_K1
_LED4:
CPL LED4
LJMP J_CH_K1
_LED5:
CPL LED5
LJMP J_CH_K1
_LED6:
CPL LED6
LJMP J_CH_K1
_LED7:
CPL LED7
LJMP J_CH_K1
_LED8:
CPL LED8
LJMP J_CH_K1
_LED9:
CPL LED9
LJMP J_CH_K1
_LED10:
CPL LED10
LJMP J_CH_K1
;--------------------------------------------------
DL10MS:
MOV R7,#20
DL250T:
MOV R6,#250 ;1T
D2:
DJNZ R6,D2 ;2T,原地转移250遍,共用500T
DJNZ R7,DL250T ;2T,转移200遍
RET ;2T
END