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

📄 keyboard_driver.s

📁 单片机 mega16L 电池放电器源码
💻 S
字号:
	.module keyboard_Driver.c
	.area text(rom, con, rel)
	.dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\keyboard_Driver.c
	.dbfunc e key _key fi
;             pb -> R22
;              a -> R20
	.even
_key::
	rcall push_gset2
	mov R20,R16
	.dbline -1
	.dbline 7
; #include <iom8v.h>
; #include <macros.h>
; #include "discharge.h"
;  unsigned char key_old;
;  unsigned char key_time;
; unsigned int key(unsigned char a)
; {
	.dbline 8
;  unsigned char pb=0;
	clr R22
	.dbline 9
;  if(a==0)
	tst R20
	brne L2
	.dbline 10
;  {  
	.dbline 11
;     delay_nms(1);
	ldi R16,1
	ldi R17,0
	rcall _delay_nms
	.dbline 12
;     pb=(~PINB)&0x39;
	in R22,0x16
	com R22
	andi R22,57
	.dbline 13
; 	a=(pb>>2)|(pb&0x01); 
	mov R24,R22
	andi R24,1
	mov R20,R22
	lsr R20
	lsr R20
	or R20,R24
	.dbline 14
; 	if(a==key_old)
	lds R2,_key_old
	cp R20,R2
	brne L4
	.dbline 15
; 	  {
	.dbline 16
; 	    key_time++;
	lds R24,_key_time
	subi R24,255    ; addi 1
	sts _key_time,R24
	.dbline 17
; 		 if(key_time==20)
	cpi R24,20
	brne L6
	.dbline 18
; 		   {a|=0x10;key_old=a;key_time=0;return a;}
	.dbline 18
	ori R20,16
	.dbline 18
	sts _key_old,R20
	.dbline 18
	clr R2
	sts _key_time,R2
	.dbline 18
	mov R16,R20
	clr R17
	rjmp L1
L6:
	.dbline 20
; 		 else
; 		return 0;
	clr R16
	clr R17
	rjmp L1
L4:
	.dbline 23
; 	}
; 	  else 
; 	    {
	.dbline 24
; 		  if(a==(key_old&~0x10)){return 0;}
	lds R24,_key_old
	andi R24,239
	cp R20,R24
	brne L8
	.dbline 24
	.dbline 24
	clr R16
	clr R17
	rjmp L1
L8:
	.dbline 25
; 		 else  key_old=a;key_time=0;return a;
	sts _key_old,R20
	.dbline 25
	clr R2
	sts _key_time,R2
	.dbline 25
	mov R16,R20
	clr R17
	rjmp L1
L2:
	.dbline 28
; 		}
;  }
;  return a;
	mov R16,R20
	clr R17
	.dbline -2
L1:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r pb 22 c
	.dbsym r a 20 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\刻录的\电子技术\项目\电池放电器\软件V2.0\keyboard_Driver.c
_key_time::
	.blkb 1
	.dbsym e key_time _key_time c
_key_old::
	.blkb 1
	.dbsym e key_old _key_old c

⌨️ 快捷键说明

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