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语言的。
还是复杂了一点,还有没有更简单的,语句更少的?麻烦高手们?
展开
 我来答
做而论道
高能答主

2014-02-16 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.2万
采纳率:86%
帮助的人:8805万
展开全部
提问者追求的是:还有没有更简单的,语句更少的?

但是,提问者采纳的答案中,最后的程序,还不是最简的。
还有一条多余的指令。

最简的程序,如下:
;---------------------------------------------------------

LOOP:
MOV A, P1 ;读入P1口
ORL A, #0FH ;置位低四位
SWAP A ;交换高低半字节,用按键位状态驱动LED
MOV P1, A ;写入P1口
SJMP LOOP

;---------------------------------------------------------

这个程序,效率,比采纳答案中的程序,大约提高了 14%。
f5911
推荐于2018-03-08 · TA获得超过132个赞
知道答主
回答量:70
采纳率:0%
帮助的人:39.3万
展开全部
这个非常简单啊:

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

你这人真是的。好了,这是最简单的了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7f80138
2012-03-14 · TA获得超过132个赞
知道答主
回答量:171
采纳率:0%
帮助的人:81.9万
展开全部
为什么要用汇编呢?C的要不要?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-14
展开全部
采用一楼的吧.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liyuzhiliyu
2012-03-08 · TA获得超过353个赞
知道答主
回答量:638
采纳率:0%
帮助的人:355万
展开全部
无语
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式