📄 propos.asm
字号:
;模拟出题程序(在P1.0上接按键)
X DATA 30H ;被乘数存放单元。
Y DATA 31H ;乘数存放单元。
ORG 0000H
LJMP TEST
ORG 100H
TEST: LCALL RAND
STOP: LJMP STOP
RAND: SETB P1.0 ;将P1.0设置为输入状态,准备出题。
LOOP: MOV A,P1 ;等待按键释放。
JNB ACC.0,LOOP
MOV R6,#10 ;延时去抖动。
MOV R7,#0
LOOP1: DJNZ R7,LOOP1
DJNZ R6,LOOP1
MOV A,P1
JNB ACC.0,LOOP ;等待按键真正释放,防止连击现象。
MOV TMOD,#21H ;将T1设置为8位自动重装工作方式。
MOV TH1,#175 ;对T1进行预置。
MOV TL1,#175
SETB TR1 ;启动T1。
LOOP2: MOV A,P1 ;检查按键状态。
JB ACC.0,LOOP2 ;未按键,继续检查。
CLR TR1 ;发现按下按键,停止T1运行。
MOV A,TL1 ;取T1的当前值。
CPL A ;取反得到对应的题号。
MOV B,#9 ;就题目分成9组。
DIV AB
INC A ;将组号0~8转换为被乘数1~9。
MOV X,A ;保存被乘数。
INC B ;将组内序号0~8转换为乘数1~9。
MOV Y,B ;保存乘数。
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -