assembly - 汇编语言按钮功能
问题描述
这是我的代码:
ORG 0100H
SETB P1.0
DONGU1:
JB P1.0,DONGU1
MOV R4,#0FFH
BASLANGIC:
MOV DPTR,#NUM
MOV A,#00H
MOVC A,@A+DPTR
MOV P3,#02H
MOV P2,A
ACALL GECIKME
MOV A,#01H
MOVC A, @A+DPTR
MOV P3,#08H
MOV P2,A
ACALL GECIKME
MOV A,#02H
MOVC A, @ A+DPTR
MOV P3,#04H
MOV P2,A
ACALL GECIKME
MOV A,#03H
MOVC A, @A+DPTR
MOV P3,#01H
MOV P2,A
ACALL GECIKME
DJNZ R4,BASLANGIC
MOV P2,#00H
ACALL GECIKME1
SJMP BASLANGIC
GECIKME1:
MOV R7,#100D
MOV TMOD,#01H
L2:MOV TH0,#0DBH
MOV TL0,#0FFH
SETB TCON.4
L3:JNB TCON.5,L3
CLR TCON.4
CLR TCON.5
DJNZ R7,L2
RET
GECIKME:
MOV R0, #200
DJNZ R0, $
RET
ORG 0000H
NUM: DB 58H,6H,7CH,75H
END
我想在我的按钮上添加开关功能。当我按下按钮时,它应该显示字符,当我释放按钮时,它必须停止。
目前,它刚刚开始显示。
感谢您的建议和帮助。
我刚刚上传了它,看看它是如何工作的。
我使用的是AT89C51RC2,一切正常,除了按钮的关闭功能。
解决方案
一旦你进入BASLANGIC
,你就再也不会测试 P1.0。
ORG 0100H
SETB P1.0
DONGU1: ;Wait for button down
JB P1.0,DONGU1
MOV R4,#0FFH
BASLANGIC:
... activate LEDs ...
... turn LEDs off ...
SJMP DONGU1 ; and not BASLANGIC
推荐阅读
- multithreading - 显示长时间不返回的冗长后台作业的进度
- r - tmap:删除legend.outside右侧的空白
- flowtype - 有没有办法从对象类型派生流类型,使可选属性不是可选的?
- node.js - 在 VS Code 中调试 Typescript Apollo Server (graphQL) 时断点未绑定
- docker - 基于Raspbian Jessie在docker中安装libfile-homedir-perl
- sql - 将行转换为列 SQL Server
- python - OpenCV 错误:(-215:断言失败)size.width>0 && size.height>0 in function 'imshow'
- python - 如何在 Tweepy 中创建搜索代码以自动获取具有指定日期范围的数据
- c# - 使用 .NET Core 3.1 Worker 服务时出现 1053 Windows 服务错误
- python - 发出自定义事件 discord.py