Moderadores: 51, guest2003, Renie, gpenga
378 ; Pteste.c:10: port = &P2;
379 ; Pteste.c:11: *port = 0x00;
0000 75 A0 00 380 mov _P2,#0x00
381 ; Pteste.c:12: while(1);
0003 382 00102$:
0003 80 FE 383 sjmp 00102$
unsigned char porta ;
porta = ( unsigned char ) P2 ;
( __sft )( porta ) = 0x00 ;
#include <at89s8252.h>
unsigned char *port;
void main(void)
{
port = &P2;
*port = 0x00;
while(1);
}
553 ; main.c:34: void main(void)
554 ; -----------------------------------------
555 ; function main
556 ; -----------------------------------------
0000 557 _main:
0002 558 ar2 = 0x02
0003 559 ar3 = 0x03
0004 560 ar4 = 0x04
0005 561 ar5 = 0x05
0006 562 ar6 = 0x06
0007 563 ar7 = 0x07
0000 564 ar0 = 0x00
0001 565 ar1 = 0x01
0000 566 C$main.c$36$1$1 ==.
567 ; main.c:36: port = &P2;
0000 75*00 A0 568 mov _port,#_P2
0003 75*01 00 569 mov (_port + 1),#0x00
0006 75*02 40 570 mov (_port + 2),#0x40
0009 571 C$main.c$37$1$1 ==.
572 ; main.c:37: *port = 0x00;
0009 AA*00 573 mov r2,_port
000B AB*01 574 mov r3,(_port + 1)
000D AC*02 575 mov r4,(_port + 2)
000F 8A 82 576 mov dpl,r2
0011 8B 83 577 mov dph,r3
0013 8C F0 578 mov b,r4
0015 74 00 579 mov a,#0x00
0017 12s00r00 580 lcall __gptrput
void main( void )
{
__sfr * porta ;
porta = &P2 ;
*porta = 0x5A ;
P2 = 0xA5 ;
for( ; ; )
;
}
...
324 ; teste.c:7: porta = &P2 ;
325 ; teste.c:9: *porta = 0x5A ;
0000 75 A0 5A 326 mov _P2,#0x5A
327 ; teste.c:10: P2 = 0xA5 ;
0003 75 A0 A5 328 mov _P2,#0xA5
0006 329 00102$:
0006 80 FE 330 sjmp 00102$
...[quote]
Francesco[/quote]
void escrevePorta( __sfr * porta , unsigned char valor )
{
*porta = valor ;
}
void main( void )
{
escrevePorta( &P0 , 0x55 ) ;
escrevePorta( &P1 , 0xAA ) ;
for( ; ; )
;
}
#define PORTA_0 0
#define PORTA_1 1
#define PORTA_2 2
#define PORTA_3 3
void escrevePorta( unsigned char porta , unsigned char valor )
{
switch( porta )
{
case PORTA_0 :
P0 = valor ;
break ;
case PORTA_1 :
P1 = valor ;
break ;
case PORTA_2 :
P2 = valor ;
break ;
case PORTA_3 :
P3 = valor ;
break ;
}
}
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante