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

📄 key.s

📁 一个正在应用的步进电机控制程序,包括电机的调速,正反,细分,通讯控制
💻 S
字号:
	.module key.c
	.area text(rom, con, rel)
	.dbfile C:\BJQD\key.c
	.dbfunc e key_init _key_init fV
	.even
_key_init::
	.dbline -1
	.dbline 18
; #include <iom16v.h>
; #include <macros.h>
; #include <eeprom.h>
; #include "delay.h"
; #include "key.h"
; #include "main.h"
; 
; extern unsigned char state;
; extern unsigned char state0;
; extern unsigned char state_other;
; extern unsigned char key;
; extern unsigned char state2;
; extern unsigned char in_out_number;
; /****************************************************
; 键盘初始化函数  
; ****************************************************/
; void key_init(void)
; {
	.dbline 19
; SFIOR&=0b11111011;
	in R24,0x30
	andi R24,251
	out 0x30,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e out_init _out_init fV
	.even
_out_init::
	.dbline -1
	.dbline 24
; }
; 
; /*外控初始化*/
; void out_init(void)
; {
	.dbline 25
; PINA&=~((1<<EX_RS)|(1<<EX_ZF));
	in R24,0x19
	andi R24,63
	out 0x19,R24
	.dbline 26
; PORTA|=(1<<EX_RS)|(1<<EX_ZF);
	in R24,0x1b
	ori R24,192
	out 0x1b,R24
	.dbline 27
; PIND&=~(1<<EX_PULL);
	cbi 0x10,2
	.dbline 28
; PORTD|=(1<<EX_PULL);
	sbi 0x12,2
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e scan_key _scan_key fc
;       what_key -> R16
	.even
_scan_key::
	.dbline -1
	.dbline 38
; }
; /****************************************************
;       键盘扫描函数,注意本函数不作按键释放检查					 
; 	  返回值:1、没有键按下返回0x7f
;               2、如果shift按下,返回值最高位为1
;               3、其余键按下时,返回键名对应数值
; 	  
; ****************************************************/
; unsigned char scan_key(void)
; { 
	.dbline 40
; unsigned char what_key;
; what_key=0;
	clr R16
	.dbline 41
; return what_key;						//返回按键值
	.dbline -2
L3:
	.dbline 0 ; func end
	ret
	.dbsym r what_key 16 c
	.dbend
	.dbfunc e rs _rs fV
	.even
_rs::
	.dbline -1
	.dbline 46
; }
; 
; 
; void rs(void)
; {
	.dbline 47
; 		   key=runstop_nu;
	ldi R24,1
	sts _key,R24
	.dbline -2
L4:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e zf _zf fV
	.even
_zf::
	.dbline -1
	.dbline 51
; }
; 
; void zf(void)
; {
	.dbline 52
; 		   key=cwccw_nu;
	ldi R24,2
	sts _key,R24
	.dbline -2
L5:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e out_key _out_key fV
;           sta0 -> R22
;            sta -> R20
;              i -> R22
	.even
_out_key::
	xcall push_gset2
	.dbline -1
	.dbline 57
; }
; 
; /*外控按键处理函数*/
; void out_key(void)//abcd
; {
	.dbline 61
; unsigned char i;
; unsigned char sta;
; unsigned char sta0;
; sta=state;
	lds R20,_state
	.dbline 62
; sta0=state0;	  
	lds R22,_state0
	.dbline 65
; 
;    //正反转	 
;    if (in_out_number>=2)
	lds R24,_in_out_number
	cpi R24,2
	brlo L7
	.dbline 66
;        {
	.dbline 67
; 	   i=PINA; 
	in R22,0x19
	.dbline 68
; 	   if ((i&(1<<EX_RS))==0)           //高电平
	sbrc R22,6
	rjmp L9
	.dbline 69
; 	      {
	.dbline 70
; 	      if (sta&(1<<RUN_STOP))	    //启停判断
	sbrs R20,3
	rjmp L10
	.dbline 71
; 		     {rs();}
	.dbline 71
	xcall _rs
	.dbline 71
	.dbline 72
; 	      }
	xjmp L10
L9:
	.dbline 74
;        else   				   			//低电平
; 	      {
	.dbline 75
; 	      if ((sta&(1<<RUN_STOP))==0)	   		//启停判断
	sbrc R20,3
	rjmp L13
	.dbline 76
; 		     {rs();}
	.dbline 76
	xcall _rs
	.dbline 76
L13:
	.dbline 77
; 	      }  
L10:
	.dbline 78
; 	   i=PINA;   					    					   
	in R22,0x19
	.dbline 79
;        if ((i&(1<<EX_ZF))==0)           //高电平
	sbrc R22,7
	rjmp L15
	.dbline 80
; 	      {
	.dbline 81
; 	      if (sta&(1<<CW_CCW))	    //正反判断
	sbrs R20,0
	rjmp L16
	.dbline 82
; 		     {zf();}
	.dbline 82
	xcall _zf
	.dbline 82
	.dbline 83
; 	      }
	xjmp L16
L15:
	.dbline 85
;        else   				   			//低电平
; 	      {
	.dbline 86
; 	      if ((sta&(1<<CW_CCW))==0)	   		//正反判断
	sbrc R20,0
	rjmp L19
	.dbline 87
; 		     {zf();}
	.dbline 87
	xcall _zf
	.dbline 87
L19:
	.dbline 88
; 	      }
L16:
	.dbline 89
L7:
	.dbline -2
L6:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r sta0 22 c
	.dbsym r sta 20 c
	.dbsym r i 22 c
	.dbend

⌨️ 快捷键说明

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