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

📄 system.asm

📁 凌阳61单片机万年历程序
💻 ASM
字号:
.include hardware.inc


.public _system
.external _flag
.external _num
.external _line
.public _key_scan
.ram
.var newkey
.code 
_system: .proc          //系统设置    
   
 INT OFF
   
   r1=0xfff0					//IOA0-A7接键盘
	[P_IOA_Attrib] = r1
	[P_IOA_Dir] = r1
	r1=0x0000
	[P_IOA_Data] = r1
	r1=0x00ff			//IOB0-B10接LCD
	[P_IOB_Attrib] = r1
	[P_IOB_Dir] = r1
	r1=0
	[P_IOB_Data] = r1
	
	r1=0x0004					
	[P_INT_Ctrl]= r1
	r1=0
	[_num]=r1
	r1=0x0010
	[_line]=r1
	
	int irq
	retf
	.endp
   
.data
keytable:
.DW 0x0011, 0x0021, 0x0041, 0x0081
.DW 0x0012, 0x0022, 0x0042, 0x0082
.DW 0x0014, 0x0024, 0x0044, 0x0084
.DW 0x0018, 0x0028, 0x0048, 0x0088

.code 
_key_scan: .proc          //键盘扫描
		r1=[_line]
		[P_IOA_Data]=r1
		r3=0
		r4=0
		r2=[P_IOA_Data]
		CMP R1,r2
		JE endloop
		[newkey]=r2
	add:
		r3+=1
	round1:
		r4+=1
		r1=[_line]
		[P_IOA_Data]=r1
		CMP r3,4000     //键盘单击灵敏度调节
		JAE save
		CMP r4,8000
		JE endloop
		r2=[P_IOA_Data]
		CMP r2,[newkey]
		JE add
		JMP round1
	save:
		bp=keytable
		r3=0
	round2:
		r3+=1
		r2=[bp++]
		CMP r2,[newkey]
		JE save_end
		JMP round2
	save_end:
		[_flag]=r3
	endloop:
		r1=r1 lsl 1
		r1&=0x00f0
		CMP R1,0x0000
		JNE goon
		r1=0x0010
	goon:
		[_line]=r1
		retf
		.endp

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -