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

📄 portb.lst

📁 基于摩托罗拉S12标准源程序 包括:SCIO,Timer
💻 LST
📖 第 1 页 / 共 2 页
字号:
  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
  185:              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
  186:            }          
  187:          }  	 
  188:  	  }
  189:  	} 
  190:  	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
  191:  }
  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   
  192:  
  193:  /**********************************************
  194:  * Toggle portb corresponding bit subroutine
  195:  * modify 	: PORTB
  196:  ***********************************************/
  197:  void portb_in_out()
  198:  {

Function: portb_in_out
Source  : D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\sources\portb.c
Options : -Env"GENPATH=D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\bin;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\cmd;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\prm;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\sources;D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\LIB;D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\SRC;D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\INCLUDE" -Env"LIBPATH=D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\bin" -Env"TEXTPATH=D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\S12_Ex4_Portb_ICD_CW31_Data\Flash_Application\ObjectCode\portb.c.o" -Ol0

  0000 1b9c         LEAS  -4,SP
  199:  	  byte cdata,loop=ENABLE,ctemp;
  0002 c601         LDAB  #1
  0004 6b82         STAB  2,SP
  200:  		
  201:  	  printf0("\n		PORTB On/Off Menu\n\r");
  0006 cc0000       LDD   #"\012\011\011PORTB On/Off Menu\012\015"
  0009 160000       JSR   printf0
  202:  	  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
  203:  	  printf0("	PORTB Channel On/Off\n\r");
  0012 cc0000       LDD   #"\011PORTB Channel On/Off\012\015"
  0015 160000       JSR   printf0
  204:  	  printf0("\n\r");
  0018 cc0000       LDD   #"\012\015"
  001b 160000       JSR   printf0
  205:  	  printf0("	0. PORTB 0\n\r");
  001e cc0000       LDD   #"\0110. PORTB 0\012\015"
  0021 160000       JSR   printf0
  206:  	  printf0("	1. PORTB 1\n\r");
  0024 cc0000       LDD   #"\0111. PORTB 1\012\015"
  0027 160000       JSR   printf0
  207:  	  printf0("	2. PORTB 2\n\r");
  002a cc0000       LDD   #"\0112. PORTB 2\012\015"
  002d 160000       JSR   printf0
  208:  	  printf0("	3. PORTB 3\n\r");
  0030 cc0000       LDD   #"\0113. PORTB 3\012\015"
  0033 160000       JSR   printf0
  209:  	  printf0("	4. PORTB 4\n\r");
  0036 cc0000       LDD   #"\0114. PORTB 4\012\015"
  0039 160000       JSR   printf0
  210:  	  printf0("	5. PORTB 5\n\r");
  003c cc0000       LDD   #"\0115. PORTB 5\012\015"
  003f 160000       JSR   printf0
  211:  	  printf0("	6. PORTB 6\n\r");
  0042 cc0000       LDD   #"\0116. PORTB 6\012\015"
  0045 160000       JSR   printf0
  212:  	  printf0("	7. PORTB 7\n\r");
  0048 cc0000       LDD   #"\0117. PORTB 7\012\015"
  004b 160000       JSR   printf0
  213:  	  printf0("	Q. Exit to PORTB Test Menu\n\r");
  004e cc0000       LDD   #"\011Q. Exit to PORTB Test Menu\012\015"
  0051 160000       JSR   printf0
  214:  	  printf0("\n\r");
  0054 cc0000       LDD   #"\012\015"
  0057 160000       JSR   printf0
  215:  	  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
  216:  		        
  217:  	  while(loop==ENABLE)
  218:  	  { 
  219:  	    do
  220:  	    {
  221:  	      cdata=menurx_char0(PORTB_PAGE_DE);	//get input from user
  0060 c608         LDAB  #8
  0062 160000       JSR   menurx_char0
  0065 6b83         STAB  3,SP
  222:  
  223:  	      switch(cdata)
  0067 c171         CMPB  #113
  0069 223e         BHI   *+64 ;abs = 00a9
  006b c130         CMPB  #48
  006d 6b80         STAB  0,SP
  006f 2512         BCS   *+20 ;abs = 0083
  0071 c137         CMPB  #55
  0073 220e         BHI   *+16 ;abs = 0083
  0075 c030         SUBB  #48
  0077 87           CLRA  
  0078 160000       JSR   _CASE_DIRECT_BYTE
  007b 12           DC.B  18
  007c 15           DC.B  21
  007d 18           DC.B  24
  007e 1b           DC.B  27
  007f 1e           DC.B  30
  0080 21           DC.B  33
  0081 24           DC.B  36
  0082 27           DC.B  39
  0083 c151         CMPB  #81
  0085 2720         BEQ   *+34 ;abs = 00a7
  0087 c171         CMPB  #113
  0089 271c         BEQ   *+30 ;abs = 00a7
  008b 201c         BRA   *+30 ;abs = 00a9
  224:  	      {  
  225:  		      case	'0': ctemp=0x1;
  008d c601         LDAB  #1
  226:  				 	           break;
  008f 8f           SKIP2 
  227:  		      case	'1': ctemp=0x2;
  0090 c602         LDAB  #2
  228:  				          	 break;
  0092 8f           SKIP2 
  229:      		  case	'2': ctemp=0x4;
  0093 c604         LDAB  #4
  230:  					           break;
  0095 8f           SKIP2 
  231:  		      case	'3': ctemp=0x8;
  0096 c608         LDAB  #8
  232:  					           break;
  0098 8f           SKIP2 
  233:  		      case	'4': ctemp=0x10;
  0099 c610         LDAB  #16
  234:  					           break;
  009b 8f           SKIP2 
  235:    		    case	'5': ctemp=0x20;
  009c c620         LDAB  #32
  236:  	  				         break;
  009e 8f           SKIP2 
  237:  		      case	'6': ctemp=0x40;
  009f c640         LDAB  #64
  238:  			  		         break;
  00a1 8f           SKIP2 
  239:      		  case	'7': ctemp=0x80;
  00a2 c680         LDAB  #128
  00a4 6b81         STAB  1,SP
  240:  					           break;
  00a6 8f           SKIP2 
  241:  		      case  'q': 
  242:  		      case	'Q': loop=DISABLE; 
  00a7 6982         CLR   2,SP
  243:  					           break;
  244:    	    }	
  245:  	    }
  246:  	    while((cdata>'z') || (cdata<'0'));	//get input from user
  00a9 e683         LDAB  3,SP
  00ab c17a         CMPB  #122
  00ad 22b1         BHI   *-77 ;abs = 0060
  00af c130         CMPB  #48
  00b1 25ad         BCS   *-81 ;abs = 0060
  247:  	    if((cdata<='7')&&(cdata>='0'))
  00b3 c030         SUBB  #48
  00b5 c107         CMPB  #7
  00b7 2206         BHI   *+8 ;abs = 00bf
  248:  	      PORTB	^= ctemp;
  00b9 d601         LDAB  1
  00bb e881         EORB  1,SP
  00bd 5b01         STAB  1
  00bf e682         LDAB  2,SP
  00c1 04119c       DBEQ  B,*-97 ;abs = 0060
  249:  	  }		
  250:  }
  00c4 1b84         LEAS  4,SP
  00c6 3d           RTS   
  251:  
  252:  /**********************************************
  253:  * Display portb status subroutine
  254:  * output 	: DDRB, PORTB & hour, min and sec
  255:  ***********************************************/
  256:  void portb_info()
  257:  {

Function: portb_info
Source  : D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\sources\portb.c
Options : -Env"GENPATH=D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\bin;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\cmd;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\prm;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\sources;D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\LIB;D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\SRC;D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\INCLUDE" -Env"LIBPATH=D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\bin" -Env"TEXTPATH=D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\S12_Ex4_Portb_ICD_CW31_Data\Flash_Application\ObjectCode\portb.c.o" -Ol0

  258:  	hex_asc_sp(DDRB,3);	
  0000 d603         LDAB  3
  0002 37           PSHB  
  0003 c603         LDAB  #3
  0005 160000       JSR   hex_asc_sp
  0008 32           PULA  
  259:  	printf0("  \r");
  0009 cc0000       LDD   #"  \015"
  000c 160000       JSR   printf0
  260:  	hex_asc_sp(PORTB,3);	
  000f d601         LDAB  1
  0011 37           PSHB  
  0012 c603         LDAB  #3
  0014 160000       JSR   hex_asc_sp
  0017 32           PULA  
  261:  	printf0("     \r");
  0018 cc0000       LDD   #"     \015"
  001b 160000       JSR   printf0
  262:      hex_clk_dec(HourData);	
  001e f60000       LDAB  HourData
  0021 160000       JSR   hex_clk_dec
  263:  	printf0("  \r");
  0024 cc0000       LDD   #"  \015"
  0027 160000       JSR   printf0
  264:  	hex_clk_dec(MinData);
  002a f60000       LDAB  MinData
  002d 160000       JSR   hex_clk_dec
  265:  	printf0("  \r");
  0030 cc0000       LDD   #"  \015"
  0033 160000       JSR   printf0
  266:  	hex_clk_dec(SecData);
  0036 f60000       LDAB  SecData
  0039 160000       JSR   hex_clk_dec
  267:  	tx_char0(CR);
  003c c60d         LDAB  #13
  003e 060000       JMP   tx_char0
  268:  
  269:  }
  270:  
  271:  /**********************************************
  272:  * Display portb & LED information subroutine
  273:  ** output 	: PORTB bit and LED on/off
  274:  ***********************************************/
  275:  void portb_info_detail()
  276:  {

Function: portb_info_detail
Source  : D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\sources\portb.c
Options : -Env"GENPATH=D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\bin;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\cmd;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\prm;D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\sources;D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\LIB;D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\SRC;D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\INCLUDE" -Env"LIBPATH=D:\Metrowerks\CodeWarrior CW12_V3.0\lib\HC12c\INCLUDE" -Env"OBJPATH=D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\bin" -Env"TEXTPATH=D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\bin" -Lasm=%n.lst -ObjN="D:\Code S12\Utility\S12DP256 CW31\S12 Ex4 Portb ICD CW31\S12_Ex4_Portb_ICD_CW31_Data\Flash_Application\ObjectCode\portb.c.o" -Ol0

  277:  	int	i;
  278:  	
  279:  	for(i=0;i<8;i++)
  0000 c7           CLRB  
  0001 87           CLRA  
  0002 3b           PSHD  
  280:  	{
  281:  	  if (((PORTB>>i)&1))
  0003 0732         BSR   *+52 ;abs = 0037
  0005 2701         BEQ   *+3 ;abs = 0008
  282:  	    hex_asc_sp(1,2);	
  0007 42           INCA  
  283:  	  else
  284:  	    hex_asc_sp(0,2);	
  0008 36           PSHA  
  0009 c602         LDAB  #2
  000b 160000       JSR   hex_asc_sp
  000e 1b81         LEAS  1,SP
  0010 072f         BSR   *+49 ;abs = 0041
  0012 2def         BLT   *-15 ;abs = 0003
  285:  	}
  286:  	
  287:  	tx_char0(' ');
  0014 c620         LDAB  #32
  0016 160000       JSR   tx_char0
  288:  	
  289:  	for(i=0;i<8;i++)
  0019 c7           CLRB  
  001a 87           CLRA  
  001b 6c80         STD   0,SP
  290:  	{
  291:  	  if (((PORTB>>i)&1))
  001d 0718         BSR   *+26 ;abs = 0037
  001f 2705         BEQ   *+7 ;abs = 0026
  292:  	    printf0("0FF  \r");	
  0021 cc0000       LDD   #"0FF  \015"
  0024 2003         BRA   *+5 ;abs = 0029
  293:  	  else
  294:  	    printf0("ON   \r");	
  0026 cc0000       LDD   #"ON   \015"
  0029 160000       JSR   printf0
  002c 0713         BSR   *+21 ;abs = 0041
  002e 2ded         BLT   *-17 ;abs = 001d
  295:  	}
  296:  	tx_char0(CR);
  0030 c60d         LDAB  #13
  0032 160000       JSR   tx_char0
  297:  }
  0035 3a           PULD  
  0036 3d           RTS   
  0037 d601         LDAB  1
  0039 a683         LDAA  3,SP
  003b 160000       JSR   _BSHRU
  003e c401         ANDB  #1
  0040 3d           RTS   
  0041 ee82         LDX   2,SP
  0043 08           INX   
  0044 6e82         STX   2,SP
  0046 8e0008       CPX   #8
  0049 3d           RTS   
  298:  
  299:  

⌨️ 快捷键说明

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