📄 ex4_portb.lst
字号:
220: while(loop==ENABLE)
221: {
222: do
223: {
224: cdata=menurx_char0(PORTB_PAGE_DE); //get input from user
0060 c608 LDAB #8
0062 160000 JSR menurx_char0
0065 6b83 STAB 3,SP
225:
226: 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
227: {
228: case '0': ctemp=0x1;
008d c601 LDAB #1
229: break;
008f 8f SKIP2
230: case '1': ctemp=0x2;
0090 c602 LDAB #2
231: break;
0092 8f SKIP2
232: case '2': ctemp=0x4;
0093 c604 LDAB #4
233: break;
0095 8f SKIP2
234: case '3': ctemp=0x8;
0096 c608 LDAB #8
235: break;
0098 8f SKIP2
236: case '4': ctemp=0x10;
0099 c610 LDAB #16
237: break;
009b 8f SKIP2
238: case '5': ctemp=0x20;
009c c620 LDAB #32
239: break;
009e 8f SKIP2
240: case '6': ctemp=0x40;
009f c640 LDAB #64
241: break;
00a1 8f SKIP2
242: case '7': ctemp=0x80;
00a2 c680 LDAB #128
00a4 6b81 STAB 1,SP
243: break;
00a6 8f SKIP2
244: case 'q':
245: case 'Q': loop=DISABLE;
00a7 6982 CLR 2,SP
246: break;
247: }
248: }
249: 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
250: if((cdata<='7')&&(cdata>='0'))
00b3 c030 SUBB #48
00b5 c107 CMPB #7
00b7 2206 BHI *+8 ;abs = 00bf
251: 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
252: }
253: }
00c4 1b84 LEAS 4,SP
00c6 3d RTS
254:
255: /**********************************************
256: * Display portb status subroutine
257: * output : DDRB, PORTB & hour, min and sec
258: ***********************************************/
259: void portb_info()
260: {
Function: portb_info
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
261: 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
262: printf0(" \r");
0009 cc0000 LDD #" \015"
000c 160000 JSR printf0
263: 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
264: printf0(" \r");
0018 cc0000 LDD #" \015"
001b 160000 JSR printf0
265: hex_clk_dec(HourData);
001e f60000 LDAB HourData
0021 160000 JSR hex_clk_dec
266: printf0(" \r");
0024 cc0000 LDD #" \015"
0027 160000 JSR printf0
267: hex_clk_dec(MinData);
002a f60000 LDAB MinData
002d 160000 JSR hex_clk_dec
268: printf0(" \r");
0030 cc0000 LDD #" \015"
0033 160000 JSR printf0
269: hex_clk_dec(SecData);
0036 f60000 LDAB SecData
0039 160000 JSR hex_clk_dec
270: tx_char0(CR);
003c c60d LDAB #13
003e 060000 JMP tx_char0
271:
272: }
273:
274: /**********************************************
275: * Display portb & LED information subroutine
276: ** output : PORTB bit and LED on/off
277: ***********************************************/
278: void portb_info_detail()
279: {
Function: portb_info_detail
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
280: int i;
281:
282: for(i=0;i<8;i++)
0000 c7 CLRB
0001 87 CLRA
0002 3b PSHD
283: {
284: if (((PORTB>>i)&1))
0003 0732 BSR *+52 ;abs = 0037
0005 2701 BEQ *+3 ;abs = 0008
285: hex_asc_sp(1,2);
0007 42 INCA
286: else
287: 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
288: }
289:
290: tx_char0(' ');
0014 c620 LDAB #32
0016 160000 JSR tx_char0
291:
292: for(i=0;i<8;i++)
0019 c7 CLRB
001a 87 CLRA
001b 6c80 STD 0,SP
293: {
294: if (((PORTB>>i)&1))
001d 0718 BSR *+26 ;abs = 0037
001f 2705 BEQ *+7 ;abs = 0026
295: printf0("0FF \r");
0021 cc0000 LDD #"0FF \015"
0024 2003 BRA *+5 ;abs = 0029
296: else
297: printf0("ON \r");
0026 cc0000 LDD #"ON \015"
0029 160000 JSR printf0
002c 0713 BSR *+21 ;abs = 0041
002e 2ded BLT *-17 ;abs = 001d
298: }
299: tx_char0(CR);
0030 c60d LDAB #13
0032 160000 JSR tx_char0
300: }
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
301:
302:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -