
AT89S51单片机的P1.0~P1.3 接四个发光二极管, P1.4~P1.7 接四个开关, 编程反映对应关系
AT89S51单片机的P1.0~P1.3接四个发光二极管L1~L4,P1.4~P1.7接四个开关K1~K4编程将开关的状态反映到发光二极管上开关闭合对应的灯亮开关断开,对...
AT89S51单片机的P1.0~P1.3 接四个发光二极管L1~L4 ,P1.4~P1.7 接四个开关K1~K4 编程将开关的状态反映到发光二极管上开关闭合对应的灯亮开关断开,对应的灯灭 求:使用汇编语言编程,不要使用C语言的。
还是复杂了一点,还有没有更简单的,语句更少的?麻烦高手们? 展开
还是复杂了一点,还有没有更简单的,语句更少的?麻烦高手们? 展开
5个回答
展开全部
提问者追求的是:还有没有更简单的,语句更少的?
但是,提问者采纳的答案中,最后的程序,还不是最简的。
还有一条多余的指令。
最简的程序,如下:
;---------------------------------------------------------
LOOP:
MOV A, P1 ;读入P1口
ORL A, #0FH ;置位低四位
SWAP A ;交换高低半字节,用按键位状态驱动LED
MOV P1, A ;写入P1口
SJMP LOOP
;---------------------------------------------------------
这个程序,效率,比采纳答案中的程序,大约提高了 14%。
但是,提问者采纳的答案中,最后的程序,还不是最简的。
还有一条多余的指令。
最简的程序,如下:
;---------------------------------------------------------
LOOP:
MOV A, P1 ;读入P1口
ORL A, #0FH ;置位低四位
SWAP A ;交换高低半字节,用按键位状态驱动LED
MOV P1, A ;写入P1口
SJMP LOOP
;---------------------------------------------------------
这个程序,效率,比采纳答案中的程序,大约提高了 14%。
展开全部
这个非常简单啊:
L1 EQU P1.0 ;LED1
L2 EQU P1.1 ;LED2
L3 EQU P1.2 ;LED3
L4 EQU P1.3 ;LED4
ANK1 EQU P1.4 ;按键1
ANK2 EQU P1.5 ;按键2
ANK3 EQU P1.6 ;按键3
ANK4 EQU P1.7 ;按键4
ORG 0100H
MOV P1, #0FFH
LOP10: JB ANK1, LOP11
CLR L1
SJMP LOP20
LOP11: SETB L1
LOP20: JB ANK2, LOP21
CLR L2
SJMP LOP30
LOP21: SETB L2
LOP30: JB ANK3, LOP31
CLR L3
SJMP LOP40
LOP31: SETB L3
LOP40: JB ANK4, LOP41
CLR L4
SJMP LOP10
LOP41: SETB L4
SJMP LOP10
END
L1 EQU P1.0 ;LED1
L2 EQU P1.1 ;LED2
L3 EQU P1.2 ;LED3
L4 EQU P1.3 ;LED4
ANK1 EQU P1.4 ;按键1
ANK2 EQU P1.5 ;按键2
ANK3 EQU P1.6 ;按键3
ANK4 EQU P1.7 ;按键4
ORG 0100H
MOV P1, #0FFH
LOP10: JB ANK1, LOP11
CLR L1
SJMP LOP20
LOP11: SETB L1
LOP20: JB ANK2, LOP21
CLR L2
SJMP LOP30
LOP21: SETB L2
LOP30: JB ANK3, LOP31
CLR L3
SJMP LOP40
LOP31: SETB L3
LOP40: JB ANK4, LOP41
CLR L4
SJMP LOP10
LOP41: SETB L4
SJMP LOP10
END
追问
首先感谢,但还是复杂了点,有没有语句更少的。
追答
;P1.3-P1.0=LED的L4-L1
;P1.7-P1.4=按键的K4-K1
LOOP: MOV A, P1 ;读入P1口
SWAP A ;交换高低半字节,用按键位状态驱动LED
ANL A, #0FH ;清零高四位(P1.7-P1.4)
ORL A, #0F0H ;置位高四位
MOV P1, A ;写入P1口
SJMP LOOP
你这人真是的。好了,这是最简单的了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么要用汇编呢?C的要不要?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-03-14
展开全部
采用一楼的吧.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
无语
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询