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

📄 ex3_utility.lst

📁 基于摩托罗拉S12标准源程序 包括:SCIO,Timer
💻 LST
📖 第 1 页 / 共 5 页
字号:
  170:  *			  :
  171:  * Example     : 0x32 <=> 50 
  172:  * Input 	  : 0x32 (cdata)
  173:  * Output	  : 5 0 (ascii)
  174:  * Modify      : N/A
  175:  * Return      : void
  176:  ********************************************************************/ 
  177:  void hex_clk_dec(unsigned char data)
  178:  {

Function: hex_clk_dec
Source  : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0

  0000 37           PSHB  
  179:  	div_t static digit;
  180:  
  181:  	digit=int_div((int)data,10);
  0001 cc0000       LDD   #digit
  0004 3b           PSHD  
  0005 e682         LDAB  2,SP
  0007 87           CLRA  
  0008 3b           PSHD  
  0009 c60a         LDAB  #10
  000b 0700         BSR   int_div
  000d 1b84         LEAS  4,SP
  182:  	tx_char0(digit.quot+'0'); 
  000f f60000       LDAB  digit:1
  0012 cb30         ADDB  #48
  0014 0700         BSR   tx_char0
  183:  	tx_char0(digit.rem+'0'); 	
  0016 f60000       LDAB  digit:3
  0019 cb30         ADDB  #48
  001b 0700         BSR   tx_char0
  184:  }
  001d 32           PULA  
  001e 3d           RTS   
  185:  
  186:  
  187:  /*******************************************************************
  188:  * Wait for receiving char subroutine
  189:  * Description : Waiting for rx char
  190:  *			  :
  191:  * Example     : N/A  
  192:  * Input 	  : N/A
  193:  * Output	  : N/A
  194:  * Modify      : N/A
  195:  * Return      : char
  196:  ********************************************************************/ 
  197:  byte rx_char0()
  198:  {

Function: rx_char0
Source  : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0

  199:  	char data;
  200:  	
  201:  	while( (SC0SR1 & 0x20)==0);
  0000 4fcc20fc     BRCLR 204,#32,*+0 ;abs = 0000
  202:      data = SC0SR1;
  0004 d6cc         LDAB  204
  203:  	return(SC0DRL);
  0006 d6cf         LDAB  207
  204:  }
  0008 3d           RTS   
  205:  
  206:  /*******************************************************************
  207:  * Wait for receiving char subroutine
  208:  * Description : Waiting for rx char and display page information
  209:  *			  :
  210:  * Example     : N/A  
  211:  * Input 	  : menu_page
  212:  * Output	  : N/A
  213:  * Modify      : N/A
  214:  * Return      : char
  215:  ********************************************************************/ 
  216:  byte menurx_char0(char menu_page)
  217:  { 

Function: menurx_char0
Source  : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0

  0000 37           PSHB  
  218:  	char data;
  219:  	
  220:  	while( (SC0SR1 & 0x20)==0)
  0001 2007         BRA   *+9 ;abs = 000a
  221:  	{
  222:  	  delay1();
  0003 0700         BSR   delay1
  223:  	  disp_info(menu_page);		//display corresponding menu info 
  0005 e680         LDAB  0,SP
  0007 160000       JSR   disp_info
  000a 4fcc20f5     BRCLR 204,#32,*-7 ;abs = 0003
  224:  	} 
  225:  	data = SC0SR1;
  000e d6cc         LDAB  204
  226:  	return(SC0DRL);
  0010 d6cf         LDAB  207
  227:  }
  0012 32           PULA  
  0013 3d           RTS   
  228:  
  229:  /*******************************************************************
  230:  * Check user abort data display subroutine
  231:  * Description : Checking whether user abort or not
  232:  *			  :
  233:  * Example     : N/A  
  234:  * Input 	  : SC0SR1 empty?
  235:  * Output	  : 3 2 (ascii)
  236:  * Modify      : N/A
  237:  * Return      : status [OK for (DOT or ESC) or NOTOK for others chars]
  238:  ********************************************************************/ 
  239:  byte check_user_abort()
  240:  {

Function: check_user_abort
Source  : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0

  241:  	char data;
  242:  	
  243:  	if((SC0SR1 & 0x20)!=0)
  0000 4fcc200d     BRCLR 204,#32,*+17 ;abs = 0011
  244:      {
  245:         data=SC0DRL;
  0004 d6cf         LDAB  207
  246:         if(data==DOT||data==ESC)
  0006 c12e         CMPB  #46
  0008 2704         BEQ   *+6 ;abs = 000e
  000a c11b         CMPB  #27
  000c 2603         BNE   *+5 ;abs = 0011
  247:           return(OK);
  000e c601         LDAB  #1
  0010 3d           RTS   
  248:         else 
  249:           return(NOTOK);  
  250:      }
  251:      else
  252:        return(NOTOK);
  0011 c7           CLRB  
  253:  }
  0012 3d           RTS   
  254:  
  255:  /*******************************************************************
  256:  * Transmit out 1 char (ASCII) subroutine
  257:  * Description : Transmit out upper and lower 4 bit of char as ascii
  258:  *             : via RS232
  259:  *			  :
  260:  * Example     : 0x32  
  261:  * Input 	  : 0x32 (cdata)
  262:  * Output	  : 3 2 (ascii)
  263:  * Modify      : N/A
  264:  * Return      : void
  265:  ********************************************************************/ 
  266:  void send_asc(byte cdata)
  267:  {

Function: send_asc
Source  : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0

  268:  	if(cdata>9)
  0000 c109         CMPB  #9
  0002 2303         BLS   *+5 ;abs = 0007
  269:  	  tx_char0(cdata+'0'+7);
  0004 cb37         ADDB  #55
  0006 8f           SKIP2 
  270:  	else
  271:  	  tx_char0(cdata+'0');	  	
  0007 cb30         ADDB  #48
  0009 060000       JMP   tx_char0
  272:  }
  273:  
  274:  /*******************************************************************
  275:  * Convert HEX to ASCII subroutine
  276:  * Description : Convert hex to ascii and send out via RS232
  277:  *			  :
  278:  * Example     : 0x32  
  279:  * Input 	  : 0x32 (cdata)
  280:  * Output	  : 3 2 (ascii)
  281:  * Modify      : N/A
  282:  * Return      : void
  283:  ********************************************************************/ 
  284:  void hex_asc(byte cdata)
  285:  {

Function: hex_asc
Source  : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0

  0000 37           PSHB  
  286:  	send_asc((cdata>>4)&0x0f);
  0001 54           LSRB  
  0002 54           LSRB  
  0003 54           LSRB  
  0004 54           LSRB  
  0005 0700         BSR   send_asc
  287:  	send_asc((cdata)&0x0f);	
  0007 e680         LDAB  0,SP
  0009 c40f         ANDB  #15
  000b 0700         BSR   send_asc
  288:  }
  000d 32           PULA  
  000e 3d           RTS   
  289:  
  290:  /*******************************************************************
  291:  * Convert HEX to ASCII with additional spaces subroutine
  292:  * Description : Convert hex to ascii and send out spaces followed
  293:  *             : via RS232
  294:  *			  :
  295:  * Example     : 0x32  
  296:  * Input 	  : 0x32 (cdata), 3(space)
  297:  * Output	  : 3 2 _ _ _ (ascii)
  298:  * Modify      : N/A
  299:  * Return      : void
  300:  ********************************************************************/ 
  301:  void hex_asc_sp(byte cdata, byte space)
  302:  {

Function: hex_asc_sp
Source  : D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources\ex3_utility.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\sources;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\LIB;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\SRC;C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"LIBPATH=C:\Program Files\Metrowerks\CodeWarrior CW12_V3.1\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\Training document\培训教材\HCS12\S12 Ex5 EEPROM ICD CW31\S12_Ex5_EEPROM_ICD_CW31_Data\FCS\ObjectCode\ex3_utility.c.o" -Ol0

  0000 6bad         STAB  3,-SP
  303:  	int	i;
  304:  	
  305:  	hex_asc(cdata);
  0002 e685         LDAB  5,SP
  0004 0700         BSR   hex_asc
  306:  	for (i=0;i<space;i++)
  0006 c7           CLRB  
  0007 87           CLRA  
  0008 6c81         STD   1,SP
  000a 200a         BRA   *+12 ;abs = 0016
  307:  		tx_char0(' ');
  000c c620         LDAB  #32
  000e 160000       JSR   tx_char0
  0011 ee81         LDX   1,SP
  0013 08           INX   
  0014 6e81         STX   1,SP
  0016 e680         LDAB  0,SP
  0018 87           CLRA  
  0019 ac81         CPD   1,SP
  001b 2eef         BGT   *-15 ;abs = 000c
  308:  }
  001d 1b83         LEAS  3,SP
  001f 3d           RTS   
  309:  
  310:  /*******************************************************************

⌨️ 快捷键说明

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