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

📄 ex4_portb.lst

📁 基于摩托罗拉S12标准源程序 包括:SCIO,Timer
💻 LST
📖 第 1 页 / 共 3 页
字号:
  0017 2605         BNE   *+7 ;abs = 001e
  143:  		  printf0(" configures as input\r");
  0019 cc0000       LDD   #" configures as input\015"
  001c 2003         BRA   *+5 ;abs = 0021
  144:  		else
  145:  		//  tx_char0(i+'0');
  146:  		  printf0(" configures as output\r");	
  001e cc0000       LDD   #" configures as output\015"
  0021 160000       JSR   printf0
  0024 160000       JSR   portb_config:0x00e3
  0027 2ddf         BLT   *-31 ;abs = 0008
  147:  	}
  148:  	
  149:  /*=== Display option for user select ===*/
  150:  	printf0("\n	0. Quit\r");
  0029 cc0000       LDD   #"\012\0110. Quit\015"
  002c 160000       JSR   printf0
  151:  	printf0("\n	1. Configures PORTB In/Out\n\r");
  002f cc0000       LDD   #"\012\0111. Configures PORTB In/Out\012\015"
  0032 160000       JSR   printf0
  152:  	
  153:  	do							//get input from user
  154:  	{
  155:  	  if(cdata!=0)				// do once
  0035 e685         LDAB  5,SP
  0037 1826008d     LBNE  *+145 ;abs = 00c8
  156:  	    break;
  157:  	  cdata=rx_char0();
  003b 160000       JSR   rx_char0
  003e 6b85         STAB  5,SP
  158:  	  if (cdata=='1')			//get input from user
  0040 c131         CMPB  #49
  0042 2678         BNE   *+122 ;abs = 00bc
  159:  	  {  
  160:  	    for (i=0;i<8;i++)		//display bit by bit
  0044 c7           CLRB  
  0045 87           CLRA  
  0046 6c80         STD   0,SP
  161:  	    {
  162:  	      printf0("\nPORTB bit \r");
  0048 cc0000       LDD   #"\012PORTB bit \015"
  004b 160000       JSR   portb_config:0x00d9
  163:  	      tx_char0(i+'0');
  164:  		  printf0(" (0 = In, 1 = Out, ESC = Quit)\r");
  004e cc0000       LDD   #" (0 = In, 1 = Out, ESC = Quit)\015"
  0051 160000       JSR   printf0
  165:  	 	  do
  166:  	      {
  167:  	        cdata=rx_char0();
  0054 160000       JSR   rx_char0
  0057 6b85         STAB  5,SP
  168:              if(cdata==ESC)
  0059 c11b         CMPB  #27
  005b 2607         BNE   *+9 ;abs = 0064
  169:              {
  170:                 i=8;
  005d c608         LDAB  #8
  005f 87           CLRA  
  0060 6c80         STD   0,SP
  171:                 break;
  0062 2008         BRA   *+10 ;abs = 006c
  172:              }			//force to finish the for loop.
  173:            }  
  174:  	      while((cdata>'1') || (cdata<'0'));
  0064 c131         CMPB  #49
  0066 22ec         BHI   *-18 ;abs = 0054
  0068 c130         CMPB  #48
  006a 25e8         BCS   *-22 ;abs = 0054
  175:           
  176:            if(cdata=='0')
  006c e685         LDAB  5,SP
  006e c130         CMPB  #48
  0070 2620         BNE   *+34 ;abs = 0092
  177:            {
  178:              cmask=0xfe;	
  0072 c6fe         LDAB  #254
  0074 6b82         STAB  2,SP
  179:  		    for(j=0;j<i;j++)
  0076 c7           CLRB  
  0077 87           CLRA  
  0078 6c83         STD   3,SP
  007a 200a         BRA   *+12 ;abs = 0086
  180:    		      cmask= (cmask << 1) | ((cmask & 0x80)? 0x1 : 0x00);
  007c 0e828002     BRSET 2,SP,#128,*+6 ;abs = 0082
  0080 c7           CLRB  
  0081 8f           SKIP2 
  0082 c601         LDAB  #1
  0084 0745         BSR   *+71 ;abs = 00cb
  0086 ec83         LDD   3,SP
  0088 ac80         CPD   0,SP
  008a 2df0         BLT   *-14 ;abs = 007c
  181:              DDRB = DDRB & cmask;
  008c d603         LDAB  3
  008e e482         ANDB  2,SP
  0090 5b03         STAB  3
  182:            }
  183:            if(cdata=='1')
  0092 e685         LDAB  5,SP
  0094 c131         CMPB  #49
  0096 2620         BNE   *+34 ;abs = 00b8
  184:            {
  185:              cmask=0x1;	
  0098 c601         LDAB  #1
  009a 6b82         STAB  2,SP
  186:    			for(j=0;j<i;j++)
  009c c7           CLRB  
  009d 87           CLRA  
  009e 6c83         STD   3,SP
  00a0 200a         BRA   *+12 ;abs = 00ac
  187:    			  cmask= (cmask << 1) | ((cmask & 0x80)? 0x1 : 0x00);
  00a2 0e828002     BRSET 2,SP,#128,*+6 ;abs = 00a8
  00a6 c7           CLRB  
  00a7 8f           SKIP2 
  00a8 c601         LDAB  #1
  00aa 071f         BSR   *+33 ;abs = 00cb
  00ac ec83         LDD   3,SP
  00ae ac80         CPD   0,SP
  00b0 2df0         BLT   *-14 ;abs = 00a2
  188:              DDRB = DDRB | cmask;
  00b2 d603         LDAB  3
  00b4 ea82         ORAB  2,SP
  00b6 5b03         STAB  3
  00b8 0729         BSR   *+43 ;abs = 00e3
  00ba 2d8c         BLT   *-114 ;abs = 0048
  189:            }          
  190:          }  	 
  191:  	  }
  192:  	} 
  193:  	while((cdata!='1') || (cdata!='0'));		//get input from user
  00bc e685         LDAB  5,SP
  00be c131         CMPB  #49
  00c0 2602         BNE   *+4 ;abs = 00c4
  00c2 c130         CMPB  #48
  00c4 1826ff6d     LBNE  *-143 ;abs = 0035
  194:  }
  00c8 1b86         LEAS  6,SP
  00ca 3d           RTS   
  00cb a684         LDAA  4,SP
  00cd 48           ASLA  
  00ce 37           PSHB  
  00cf aab0         ORAA  1,SP+
  00d1 6a84         STAA  4,SP
  00d3 ee85         LDX   5,SP
  00d5 08           INX   
  00d6 6e85         STX   5,SP
  00d8 3d           RTS   
  00d9 160000       JSR   printf0
  00dc e683         LDAB  3,SP
  00de cb30         ADDB  #48
  00e0 060000       JMP   tx_char0
  00e3 ee82         LDX   2,SP
  00e5 08           INX   
  00e6 6e82         STX   2,SP
  00e8 8e0008       CPX   #8
  00eb 3d           RTS   
  195:  
  196:  /**********************************************
  197:  * Toggle portb corresponding bit subroutine
  198:  * modify 	: PORTB
  199:  ***********************************************/
  200:  void portb_in_out()
  201:  {

Function: portb_in_out
Source  : D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\sources\ex4_portb.c
Options : -DNON_BANK -Env"GENPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\cmd;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\prm;D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb 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\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Env"TEXTPATH=D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Profiles\r63492.FSL\My Documents\技术资料\培训教材\HCS12\S12 Ex4 Portb ICD CW31\S12_Ex4_Portb_ICD_CW31_Data\Flash_Application\ObjectCode\ex4_portb.c.o" -Ol0

  0000 1b9c         LEAS  -4,SP
  202:  	  byte cdata,loop=ENABLE,ctemp;
  0002 c601         LDAB  #1
  0004 6b82         STAB  2,SP
  203:  		
  204:  	  printf0("\n		PORTB On/Off Menu\n\r");
  0006 cc0000       LDD   #"\012\011\011PORTB On/Off Menu\012\015"
  0009 160000       JSR   printf0
  205:  	  printf0("	Toggle the numeric key for the corresponding\n\r");
  000c cc0000       LDD   #"\011Toggle the numeric key for the corresponding\012\015"
  000f 160000       JSR   printf0
  206:  	  printf0("	PORTB Channel On/Off\n\r");
  0012 cc0000       LDD   #"\011PORTB Channel On/Off\012\015"
  0015 160000       JSR   printf0
  207:  	  printf0("\n\r");
  0018 cc0000       LDD   #"\012\015"
  001b 160000       JSR   printf0
  208:  	  printf0("	0. PORTB 0\n\r");
  001e cc0000       LDD   #"\0110. PORTB 0\012\015"
  0021 160000       JSR   printf0
  209:  	  printf0("	1. PORTB 1\n\r");
  0024 cc0000       LDD   #"\0111. PORTB 1\012\015"
  0027 160000       JSR   printf0
  210:  	  printf0("	2. PORTB 2\n\r");
  002a cc0000       LDD   #"\0112. PORTB 2\012\015"
  002d 160000       JSR   printf0
  211:  	  printf0("	3. PORTB 3\n\r");
  0030 cc0000       LDD   #"\0113. PORTB 3\012\015"
  0033 160000       JSR   printf0
  212:  	  printf0("	4. PORTB 4\n\r");
  0036 cc0000       LDD   #"\0114. PORTB 4\012\015"
  0039 160000       JSR   printf0
  213:  	  printf0("	5. PORTB 5\n\r");
  003c cc0000       LDD   #"\0115. PORTB 5\012\015"
  003f 160000       JSR   printf0
  214:  	  printf0("	6. PORTB 6\n\r");
  0042 cc0000       LDD   #"\0116. PORTB 6\012\015"
  0045 160000       JSR   printf0
  215:  	  printf0("	7. PORTB 7\n\r");
  0048 cc0000       LDD   #"\0117. PORTB 7\012\015"
  004b 160000       JSR   printf0
  216:  	  printf0("	Q. Exit to PORTB Test Menu\n\r");
  004e cc0000       LDD   #"\011Q. Exit to PORTB Test Menu\012\015"
  0051 160000       JSR   printf0
  217:  	  printf0("\n\r");
  0054 cc0000       LDD   #"\012\015"
  0057 160000       JSR   printf0
  218:  	  printf0("Bt0 Bt1 Bt2 Bt3 Bt4 Bt5 Bt6 Bt7  LED0 LED1 LED2 LED3 LED4 LED5 LED6 LED7\n\r");
  005a cc0000       LDD   #"Bt0 Bt1 Bt2 Bt3 Bt4 Bt5 Bt6 Bt7  LED0 LED1 LED2 LED3 LED4 LED5 LED6 LED7\012\015"
  005d 160000       JSR   printf0
  219:  		        

⌨️ 快捷键说明

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