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

📄 key4x4.s

📁 此为4*4扩展键盘程序
💻 S
字号:
	.module key4x4.c
	.area text(rom, con, rel)
	.dbfile E:\产品\开发板\mega128-board\待完成\扩展4x4键盘输入\key4x4.c
	.dbfile E:\产品\开发板\mega128-board\待完成\扩展4x4键盘输入\key4x4.h
	.dbfunc e s_ms _s_ms fV
;              t -> R16,R17
	.even
_s_ms::
	.dbline -1
	.dbline 3
; #include<iom128v.h>
; #include"key4x4.h"
; #define uchar unsigned char 
	.dbline 4
; #define uint unsigned int 
	xjmp L5
L2:
	.dbline 5
; 
	.dbline 6
; //主函数
L3:
	.dbline 4
	subi R16,1
	sbci R17,0
L5:
	.dbline 4
	ldi R24,1
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlo L2
X0:
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r t 16 i
	.dbend
	.dbfunc e key_value _key_value fc
;              i -> <dead>
;           tem2 -> R10
;            rem -> R20
;           tem1 -> R22
	.even
_key_value::
	xcall push_xgsetF00C
	.dbline -1
	.dbline 12
; main()
; {
; uchar key;
; DDRA=0xff;
; DDRC=0xff;
; PORTA=0xff;
	.dbline 14
; while(1)
;      {
	clr R20
	.dbline 16
; 	 key=key_value(); //读取4x4键盘
; 	 if(key!=0)       //有按键被按下
	ldi R24,240
	out 0x14,R24
	.dbline 18
; 	   {
; 	   PORTA=~key;    //显示键值
	ldi R24,15
	out 0x15,R24
	.dbline 20
; 	   }
; 	 }
	ldi R16,30
	ldi R17,0
	xcall _s_ms
	.dbline 21
; 
	in R22,0x13
	.dbline 23
; }
	andi R22,15
	.dbline 25
	cpi R22,15
	breq L7
X1:
	.dbline 26
	.dbline 27
	ldi R16,800
	ldi R17,3
	xcall _s_ms
	.dbline 29
	in R10,0x13
	.dbline 31
	mov R24,R10
	andi R24,15
	mov R10,R24
	.dbline 33
	cp R22,R24
	brne L9
X2:
	.dbline 34
	.dbline 35
	ldi R24,15
	out 0x14,R24
	.dbline 37
	ldi R24,240
	out 0x15,R24
	.dbline 39
	ldi R16,1
	ldi R17,0
	xcall _s_ms
	.dbline 41
	in R20,0x13
	.dbline 43
	andi R20,240
	.dbline 45
	add R20,R22
	.dbline 47
	com R20
L11:
	.dbline 51
	.dbline 52
	ldi R24,240
	out 0x15,R24
	.dbline 53
	ldi R16,3000
	ldi R17,11
	xcall _s_ms
	.dbline 54
L12:
	.dbline 55
	in R24,0x13
	cpi R24,240
	brne L11
X3:
	.dbline 56
L9:
	.dbline 57
L7:
	.dbline 58
	ldi R16,6000
	ldi R17,23
	xcall _s_ms
	.dbline 59
	ldi R16,6000
	ldi R17,23
	xcall _s_ms
	.dbline 60
	mov R16,R20
	.dbline -2
L6:
	.dbline 0 ; func end
	xjmp pop_xgsetF00C
	.dbsym l i 1 c
	.dbsym r tem2 10 c
	.dbsym r rem 20 c
	.dbsym r tem1 22 c
	.dbend
	.dbfile E:\产品\开发板\mega128-board\待完成\扩展4x4键盘输入\key4x4.c
	.dbfunc e main _main fI
;            key -> R10
	.even
_main::
	.dbline -1
	.dbline 8
	.dbline 10
	ldi R24,255
	out 0x1a,R24
	.dbline 11
	out 0x14,R24
	.dbline 12
	out 0x1b,R24
	xjmp L16
L15:
	.dbline 14
	.dbline 15
	xcall _key_value
	mov R10,R16
	.dbline 16
	tst R16
	breq L18
X4:
	.dbline 17
	.dbline 18
	mov R2,R10
	com R2
	out 0x1b,R2
	.dbline 19
L18:
	.dbline 20
L16:
	.dbline 13
	xjmp L15
X5:
	.dbline -2
L14:
	.dbline 0 ; func end
	ret
	.dbsym r key 10 c
	.dbend

⌨️ 快捷键说明

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