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