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

📄 key_board.s

📁 数控电压源程序数控电压源程序数控电压源程序数控电压源程序
💻 S
字号:
	.module key_board.c
	.area data(ram, con, rel)
_key_return::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数控电压源\key_board.c
	.dbsym e key_return _key_return c
	.area bss(ram, con, rel)
	.dbfile E:\张秋伟\我的实验\数控电压源\key_board.c
L2:
	.blkb 1
L3:
	.blkb 1
	.area text(rom, con, rel)
	.dbfile E:\张秋伟\我的实验\数控电压源\key_board.c
	.dbfunc e read_keyboard _read_keyboard fc
	.dbsym s key_line L3 c
	.dbsym s key_value L2 c
;              i -> R20
	.even
_read_keyboard::
	rcall push_gset1
	.dbline -1
	.dbline 14
; //包含所需头文件
; #include <ioM16v.h>
; #include <macros.h>
; #include "delay.h"
; /*------宏定义------*/
; #define uchar	unsigned char
; #define uint	unsigned int
; 
; #define key_mask  0b00001111
; 
; //static uchar keyvalue;
; uchar key_return=0;
; uchar read_keyboard()
; {
	.dbline 17
;  static uchar key_value,key_line;
;  uchar i;
;  DDRD=0xf0;
	ldi R24,240
	out 0x11,R24
	.dbline 18
;    key_line=0b00010000;
	ldi R24,16
	sts L3,R24
	.dbline 19
;    for(i=1;i<=4;i++)
	ldi R20,1
	rjmp L7
L4:
	.dbline 20
;    {
	.dbline 21
;    PORTD=~key_line;
	lds R2,L3
	com R2
	out 0x12,R2
	.dbline 22
;    PORTD=~key_line;
	lds R2,L3
	com R2
	out 0x12,R2
	.dbline 23
;    key_value=key_mask&PIND;
	in R24,0x10
	andi R24,15
	sts L2,R24
	.dbline 24
;    if(key_value==key_mask)
	cpi R24,15
	brne L6
	.dbline 25
;      key_line<<=1;
	lds R2,L3
	lsl R2
	sts L3,R2
	.dbline 27
;      else
; 	 break;
L9:
	.dbline 28
L5:
	.dbline 19
	inc R20
L7:
	.dbline 19
	ldi R24,4
	cp R24,R20
	brsh L4
L6:
	.dbline 29
;    }
; 	delay_nms(5);
	ldi R16,5
	ldi R17,0
	rcall _delay_nms
	.dbline 30
;   if(key_value==(key_mask&PIND))
	in R24,0x10
	andi R24,15
	lds R2,L2
	cp R2,R24
	breq X1
	rjmp L10
X1:
	.dbline 31
;    {
	.dbline 33
;     
;     switch(key_line|key_value)
	clr R3
	lds R20,L3
	clr R21
	or R20,R2
	or R21,R3
	cpi R20,39
	ldi R30,0
	cpc R21,R30
	brne X2
	rjmp L22
X2:
	cpi R20,43
	ldi R30,0
	cpc R21,R30
	brne X3
	rjmp L21
X3:
	cpi R20,45
	ldi R30,0
	cpc R21,R30
	breq L20
	cpi R20,46
	ldi R30,0
	cpc R21,R30
	breq L19
	ldi R24,46
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brlt L26
L25:
	cpi R20,23
	ldi R30,0
	cpc R21,R30
	breq L18
	cpi R20,27
	ldi R30,0
	cpc R21,R30
	breq L17
	cpi R20,29
	ldi R30,0
	cpc R21,R30
	breq L16
	cpi R20,30
	ldi R30,0
	cpc R21,R30
	breq L15
	rjmp L12
L26:
	cpi R20,77
	ldi R30,0
	cpc R21,R30
	breq L24
	cpi R20,78
	ldi R30,0
	cpc R21,R30
	breq L23
	rjmp L12
X0:
	.dbline 34
;     {
L15:
	.dbline 35
;     case 0b00011110:key_return=1;
	ldi R24,1
	sts _key_return,R24
	.dbline 36
; 	                break;
	rjmp L13
L16:
	.dbline 37
; 	case 0b00011101:key_return=2;
	ldi R24,2
	sts _key_return,R24
	.dbline 38
; 	                break;
	rjmp L13
L17:
	.dbline 39
; 	case 0b00011011:key_return=3;
	ldi R24,3
	sts _key_return,R24
	.dbline 40
; 	                break;	
	rjmp L13
L18:
	.dbline 41
; 	case 0b00010111:key_return=4;
	ldi R24,4
	sts _key_return,R24
	.dbline 42
; 	                break;	
	rjmp L13
L19:
	.dbline 43
; 	case 0b00101110:key_return=5;
	ldi R24,5
	sts _key_return,R24
	.dbline 44
; 	                break;	
	rjmp L13
L20:
	.dbline 45
; 	case 0b00101101:key_return=6;
	ldi R24,6
	sts _key_return,R24
	.dbline 46
; 	                break;
	rjmp L13
L21:
	.dbline 47
;     case 0b00101011:key_return=7;
	ldi R24,7
	sts _key_return,R24
	.dbline 48
; 	                break;	
	rjmp L13
L22:
	.dbline 49
; 	case 0b00100111:key_return=8;
	ldi R24,8
	sts _key_return,R24
	.dbline 50
; 	                break;		
	rjmp L13
L23:
	.dbline 51
; 	case 0b01001110:key_return=9;
	ldi R24,9
	sts _key_return,R24
	.dbline 52
; 	                break;	
	rjmp L13
L24:
	.dbline 53
; 	case 0b01001101:key_return=0;
	clr R2
	sts _key_return,R2
	.dbline 54
; 	                break;																												
L12:
L13:
	.dbline 56
;      }
;   }
L10:
	.dbline 57
;     return key_return;
	lds R16,_key_return
	.dbline -2
L1:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend

⌨️ 快捷键说明

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