⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 propos.asm

📁 在定时器中断中做LED的PWM输出 AT89C2051实现A/D转换的C51程序 单片机开发系统 指令系统 程序设计 定时与中断 系统扩展 接口技术 串行口
💻 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 + -