de programación C para 8051

A

Ayuda

Guest
Hai ...

Cualquier persona puede explicarme ........

-------------------------------------------------- ------------------------------

Read_Bit_P1 bits (unsigned char const);

void main (void)
(
Bit X;

while (1)
(
x = Read_Bit_P1 (2); / / ¿Por qué es el puerto 1???
Write_Bit_P1 (5, x); / / x es llevar a alta o baja ahora ?????¿por qué ..
)
)

-------------------------------------------------- -----------------------------

Gracias .....

 
Ayuda ¡Hola!

Como yo había dicho en tema diferente se le ayudó.En aras de la confianza, por favor, se menciona de dónde sacaste el código.
Así, los miembros podían ver la declaración de prototipo de función.Recuerde, los miembros no pueden adivinar lo que hiciste antes de preguntar en el foro.
Creo que es tomado de aquí:
http://www.le.ac.uk/engineering/mjp9/pes1ohp_a4.pdfSu pregunta es: "¿por qué es el puerto 1"

Si nos fijamos en el principio del código fuente (página 66) verás una declaración include:
# include <reg52.H>
Entre todos declaración dentro de reg52 encabezado del archivo es uno que dice:
P1 SFR = 0x90;and tell me what's the value returned by function.

Ahora veamos la función de Read_Bit_P1 bits (const char sin signo PIN)
y dígame ¿cuál es el valor devuelto por la función..

Sí, supongo que es el retorno (P1 & P).
Cuando el compilador genera el código obj busca p y encontró declarado como variable local p unsigned char

Si por P1 no encuentra ninguna función dentro de las declaraciones como una variable local ni como declaración de variables globales o externos, se ve el interior de la cabecera del archivo incluido.
No se encuentra P1 y eso es todo lo que el compilador necesita saber.

Si desea devolver el valor de bits de acuerdo con el P2 luego cambiar a la vuelta (P2 & P)Su segunda pregunta era "x es llevar a alta o baja ahora ????? por qué"
you'll see

Si usted mira dentro de la función void write_Bit_P1 (const char PIN de firma, valor del bit const), verás

una sentencia if.Que es una operación OR bit a bit entre la variable p P1 y locales, si queremos 1 salida.with P1 variable (remember the reg52 header file )

Si queremos 0 salida en la terminal especificado, entonces usted tendrá que completar la p variable local y luego realizar un bit a bit y
con la variable P1 (recuérdese el reg52 encabezado del archivo)

Para comprender estas dos funciones arriba mencionadas es indispensable para comprender la configuración de hardware de 8051.
Con otras palabras, la lectura-modificación-wryte "instrucciones. ¿Por qué algunas instrucciones que leer un puerto de leer el pestillo y otros leen el PIN.appears inside function bit Read_Bit_P1(const unsigned char PIN)
when all we want to do it's a input pin reading..

De lo contrario, su apuesta bastante confuso por qué el write_Bit_P1 (const char PIN de firma, valor del bit const)
aparece dentro de la función poco Read_Bit_P1 (unsigned char const PIN)
cuando todos los que queremos hacer es una lectura del pin de entrada ..

Usted puede encontrar buena fuente de información en estos tres documentos:
http://www.8052.it/download/architecture.pdf
http://www.8052.it/download/hardware_description.pdf
http://www.8052.it/download/programmers_guide.pdf
La mayoría de la gente está llamando 8051 Biblia.

En el futuro, por favor mencione el código fuente, o si no está disponible en una página web de subirlo a su puesto.De lo contrario, no se puede ayudar como se esperaba (rápidamente?)

recuerdos,
Silvio

 
Silvio escribió:

Ayuda ¡Hola!Como yo había dicho en tema diferente se le ayudó.
En aras de la confianza, por favor, se menciona de dónde sacaste el código.

Así, los miembros podían ver la declaración de prototipo de función.
Recuerde, los miembros no pueden adivinar lo que hiciste antes de preguntar en el foro.

Creo que es tomado de aquí:

h ** p: / / www.le.ac.uk/engineering/mjp9/pes1ohp_a4.pdfSu pregunta es: "¿por qué es el puerto 1"Si nos fijamos en el principio del código fuente (página 66) verás una declaración include:

# include <reg52.H>

Entre todos declaración dentro de reg52 encabezado del archivo es uno que dice:

P1 SFR = 0x90;

and tell me what's the value returned by function.
Ahora veamos la función de Read_Bit_P1 bits (const char sin signo PIN)
y dígame ¿cuál es el valor devuelto por la función.

.
Sí, supongo que es el retorno (P1 & P).Cuando el compilador genera el código obj busca p y encontró declarado como variable local p unsigned charSi por P1 no encuentra ninguna función dentro de las declaraciones como una variable local ni como declaración de variables globales o externos, se ve el interior de la cabecera del archivo incluido.

No se encuentra P1 y eso es todo lo que el compilador necesita saber.Si desea devolver el valor de bits de acuerdo con el P2 luego cambiar a la vuelta (P2 & P)
Su segunda pregunta era "x es llevar a alta o baja ahora ????? por qué"you'll see
Si usted mira dentro de la función void write_Bit_P1 (const char PIN de firma, valor del bit const), verásuna sentencia if.
Que es una operación OR bit a bit entre la variable p P1 y locales, si queremos 1 salida.

with P1 variable (remember the reg52 header file )
Si queremos 0 salida en la terminal especificado, entonces usted tendrá que completar la p variable local y luego realizar un bit a bit y
con la variable P1 (recuérdese el reg52 encabezado del archivo)Para comprender estas dos funciones arriba mencionadas es indispensable para comprender la configuración de hardware de 8051.

Con otras palabras, la lectura-modificación-wryte "instrucciones. ¿Por qué algunas instrucciones que leer un puerto de leer el pestillo y otros leen el PIN.

appears inside function bit Read_Bit_P1(const unsigned char PIN)
when all we want to do it's a input pin reading..
De lo contrario, su apuesta bastante confuso por qué el write_Bit_P1 (const char PIN de firma, valor del bit const)
aparece dentro de la función poco Read_Bit_P1 (unsigned char const PIN)
cuando todos los que queremos hacer es una lectura del pin de entrada ..Usted puede encontrar buena fuente de información en estos tres documentos:

h ** p: / / www.8052.it/download/architecture.pdf

h ** p: / / www.8052.it/download/hardware_description.pdf

h ** p: / / www.8052.it/download/programmers_guide.pdf

La mayoría de la gente está llamando 8051 Biblia.En el futuro, por favor mencione el código fuente, o si no está disponible en una página web de subirlo a su puesto.
De lo contrario, no se puede ayudar como se esperaba (rápidamente?)recuerdos,

Silvio
 
Ayuda ¡Hola!

¿De dónde has sacado los siguientes:

Cita:

Bit X;while (1)

(

P3 = x;

Read_Bit_P1 (0); / / Leer el Puerto 1, Pin 0

P3 = x;
 
Silvio escribió:

Ayuda ¡Hola!¿De dónde has sacado los siguientes:Cita:

Bit X;while (1)

(

P3 = x;

Read_Bit_P1 (0); / / Leer el Puerto 1, Pin 0

P3 = x;

 
Hai ...

Cualquier persona que me ayude a ...... explian

1)
La función llamada "Read_Bit_P1 (0)" que no sabía lo poco que son, sólo hasta que termine la función "Read_Bit_P1 bits (unsigned char const PIN)", entonces sabemos que el bit es debido a que el "retorno (P2 & p)" .Am i right???
2)
¿Cuál es la diferencia que poner
x = Read_Bit_P1 (0); -> Read_Bit_P1 (0);
¿Por qué no puedo ver la diferencia??
3)
¿Por qué el "regreso (P2 & p)" bitwase y la cooperación entre P variable P1 y locales??
4)
Todavía no entiendo ..función de "vacío write_Bit_P1 (const char PIN de firma, valor del bit const)" cómo el valor de llevar el valor??

1 º, cuando la función principal de la llamada "Read_Bit_P1 (0)", dentro de esta función se han 1 Estado que es "Write_Bit_P1 (PIN, 1);" entonces llevará a pin = 0 y 1 al valor de Write_Bit_P1 este "vacío (const char PIN de firma, valor del bit const) "función izit .....Así pues, si la declaración será leída
"Si (valor == 1)" luego de salida será «1'.....izit

2 ª, después de que ...volver a la "Read_Bit_P1 bits (unsigned char const PIN)" y después "(retorno de P1 y p);", la pregunta es ¿qué es (ida y vuelta (P1 & P)

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

retorno a la función principal ....entonces, ¿qué es "Write_Bit_P1 (1, x);" x llevar al "vacío Write_Bit_P1 (const char PIN de firma, const poco valor )"???Por qué el valor se '0'...??Código:/*------------------------------------------------ -------------------*-

Bits2.C (v1.00)

-------------------------------------------------- --------------------

Lectura y escritura de los pines de los puertos las

NOTA: Los dos pines en el mismo puerto

Versión genérica --- ---

-*----------------------------------------------- -------------------*/

# include <reg52.h>/ / Prototipos de funciones

Write_Bit_P1 void (unsigned char const, poco const);

Read_Bit_P1 bits (unsigned char const);/*------------------------------------------------ --------------------*/void main (void)

(

Bit X;while (1)

(

x = Read_Bit_P1 (0); / / Leer el Puerto 1, Pin 0

Write_Bit_P1 (1, x); / / Escribir al Puerto 1, Pin 1

)

)

/*------------------------------------------------ --------------------*/

Write_Bit_P1 void (const char PIN de firma, valor del bit const)

(unsigned char p = 0x01; / / 00000011<p <= PIN / / Izquierda cambio de número adecuado de plazas deif (valor == 1) / / Si queremos 1 salida a este pin

(

P1 | = p; / / OR bit a bit

retorno;

)

= P ~ P / / Complemento

P1 y = p; / / AND bit a bit

)

/*------------------------------------------------ ---------------------------*/

Read_Bit_P1 bits (unsigned char const PIN)

(

unsigned char p = 0x01; / / 00000100<p <= PIN / / Izquierda cambio de número adecuado de plazas deWrite_Bit_P1 (PIN, 1); / / Escribir un 1 a los pines (para configurar para la lectura)return (P1 & P) / / Leer el pin (AND bit a bit) y el retorno

)/*------------------------------------------------ -------------------------------*/
 
1)
Usted sabe exactamente lo poco que desea leer cuando se llama a la función.
Para el bit 0 just call Read_Bit_P1 (0)
Para el bit 1 sólo llame Read_Bit_P1 (1)
Para el bit 2 just call Read_Bit_P1 (2)
y así sucesivamente hasta
Para el bit 7 just call Read_Bit_P1 (7)
¿Ves la diferencia?De tipo I de esta manera sólo para estar seguro de que tengo!
¿Qué es "duro codificado" si podemos llamarlo así, es el número de puerto.
Sabemos P1 es el puerto mirando el "retorno (P1 & p)"
Si quiere leer el bit 5 de P2 puerto, hay que llamar como Read_Bit_P2 (5) donde la función es así:

Código:

Read_Bit_P2 bits (unsigned char const PIN)

(

unsigned char p = 0x01; / / 00000100<p <= PIN / / Izquierda cambio de número adecuado de plazas deWrite_Bit_P2 (PIN, 1); / / Escribir un 1 a los pines (para configurar para la lectura)

/ / debe cambiar la función de escritura de acuerdo con el puerto 2return (P2 & P) / / Leer el pin (AND bit a bit) y el retorno

)
 
Silvio escribió:

1)

Usted sabe exactamente lo poco que desea leer cuando se llama a la función.

Para el bit 0 just call Read_Bit_P1 (0)

Para el bit 1 sólo llame Read_Bit_P1 (1)

Para el bit 2 just call Read_Bit_P1 (2)

y así sucesivamente hasta

Para el bit 7 just call Read_Bit_P1 (7)

¿Ves la diferencia?
De tipo I de esta manera sólo para estar seguro de que tengo!

¿Qué es "duro codificado" si podemos llamarlo así, es el número de puerto.

Sabemos P1 es el puerto mirando el "retorno (P1 & p)"

Si quiere leer el bit 5 de P2 puerto, hay que llamar como Read_Bit_P2 (5) donde la función es así:Código:

Read_Bit_P2 bits (unsigned char const PIN)

(

unsigned char p = 0x01; / / 00000100<p <= PIN / / Izquierda cambio de número adecuado de plazas deWrite_Bit_P2 (PIN, 1); / / Escribir un 1 a los pines (para configurar para la lectura)

/ / debe cambiar la función de escritura de acuerdo con el puerto 2return (P2 & P) / / Leer el pin (AND bit a bit) y el retorno

)
 
Espero que el único propósito de cambiar de

unsigned char p = 0x01; el ejemplo el primer tema

para

unsigned char p = 0x03;

era sólo para proove a entender cómo el programa está funcionando y para el uso depurador.

De lo contrario, no funciona desde la derrota el propósito de la lectura o la escritura pin puerto específico.

 
Silvio escribió:

Espero que el único propósito de cambiar deunsigned char p = 0x01; el ejemplo el primer temaparaunsigned char p = 0x03;era sólo para proove a entender cómo el programa está funcionando y para el uso depurador.De lo contrario, no funciona desde la derrota el propósito de la lectura o la escritura pin puerto específico.
 

Welcome to EDABoard.com

Sponsor

Back
Top