📄 ex4_portb.lst
字号:
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 + -