gpt4 book ai didi

assembly - 8051组装按钮点击

转载 作者:行者123 更新时间:2023-12-05 07:51:33 24 4
gpt4 key购买 nike

我似乎找不到这个问题的答案。

一个LED连接到端口P2.4,一个按钮连接到端口P1.7。我们有 COUNT 变量,每次单击按钮时我们都会递增它。因此,如果我们按下按钮 5 次 LED 亮起,如果我们按下按钮 10 次 LED 熄灭并且其继续 15 LED 亮起,20 次熄灭。我认为使用 CJNE 指令可能是必要的,但我不确定。

LED EQU P2.4
button EQU P1.7
COUNT EQU 30H
ORG 00H
LJMP main
main:
CLR P2.4
SETB P1.7
MOV COUNT,#0
again:
JB button,$
JNB button,$
INC COUNT
MOV A,COUNT
ANL A,#01h
MOV P2.4,A
JMP again
END

最佳答案

您永远不会告诉我们您是如何定义COUNTBUTTON 的。这导致我在这里出现两个可能的错误。

首先,我不确定这是不是复制粘贴错误,但我不相信

 MOV COUNT

是合法的。我相当确定您需要指定来源和目的地。我猜这应该是:

 MOV COUNT,0

其次,你有这个:

 SETB P1.7

你永远不会告诉我们,但我假设这是按钮所连接的引脚。然而,稍后,您会这样做:

 JB BUTTON, $
JNB BUTTON, $

因为我没有看到您在任何地方将 BUTTON 定义为 P1.7 的标识符,所以我假设您的代码无限停留在 JNB 按钮,$。我相信这会纠正这个问题:

 JB P1.7, $
JNB P1.7, $

根据您的更新修订您已将 count 定义为一个值,但您没有为它保留任何内存。结果是您(可能)无意中增加了内存中的一个字节,而不是您控制的一个字节。您将需要为此保留内存。我必须实际启动你在模拟器中拥有的东西,看看它在现实世界中会做什么。

我希望它看起来像这样:

DSEG
ORG 30h
COUNT DS 1

CSEG
ORG 0h
<Your code goes here>

关于assembly - 8051组装按钮点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34861864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com