de

J

Joshoo

Guest
# 1 si
#
include <16f877.h>

# HS fusibles, NOPROTECT, NOWDT, BROWNOUT, PUT, NOLVP

# ORG 0x1F00, 0x1FFF () / * Reserva de memoria para el gestor de arranque para la 8k 16F876 / 7 * /

# dispositivo PIC16F877 *= 16 / RAM * Permitir a expandirse más allá de 256 bytes * /
#
else#
include <18f452.h>

# NOOSCSEN fusibles, SA, BORV20, NOBROWNOUT, PUT, WDT128, NOWDT, CCP2C1, nodebug, NOLVP, STVREN, NOPROTECT, NOWRT, NOWRTD, NOWRTB

# dispositivo PIC18F452 *= 16 / RAM * Permitir a expandirse más allá de 256 bytes * /

# CONSTRUIR (reset = 0x200)
# CONSTRUIR (interrupción = 0x208)

# ORG 0,0 x1FF
dummy () (
# ASM
NOP
# ENDASM
) / * Reserva de memoria para el gestor de arranque para el 18F452 * /
# endif

si 0 #
# dispositivo adc = 10 / * Asegúrese de que estamos de muestreo en 10 bits.Esta directiva
se requiere para la versión 2.7 del compilador.* /
# endif

#
include "sysdefs.h"

/ * Ajuste la velocidad de reloj, sobre la base de definir en sysdefs.h * /
# ifdef 20_MHZ_CLOCK
# uso retraso (reloj = 20000000)
#
else# uso retraso (reloj = 4000000)
# endif

/ * Directiva de interfaz RS-232 * /
# uso rs232 (baud = 9600, xmit = PIN_C6, VN = PIN_C7)

/ * Directiva para I2C * /
# uso i2c (MASTER, SDA = PIN_C4, SCL = PIN_C3, FORCE_HW)

#
include "sysdefs.h"

#
include "isd5116.c"

/************************************************* ****************************
* Inicio de hardware pines: Configurar el TRIS,
creado analógico puertos, configurar el
* Clavijas a sus valores predeterminados.
************************************************** **************************/
vacío
init_pins (void) (
/ * Establecer los diferentes pines in /
out * /
set_tris_a (0b00000000); / * Port A, A4, salvo que no se utiliza,
es todas las entradas * /
set_tris_b (0b00110000); / * B1 es de salida.B4 y B5 son de entrada.Resto no se utiliza * /
set_tris_c (0b10000000); / * C3 es la producción.C4 es de entrada / salida.C7 es de entrada.* /
set_tris_d (0b00000000); / * Puerto D no se utiliza * /
set_tris_e (0b00000000); / * Puerto de E no se utiliza * /
) / * Init_pins * /

/************************************************* ****************************
* Robot de inicialización.Iniciar pines, variables globales, temporizadores y
* Interrupciones.
************************************************** **************************/
vacío
init (void) (
init_pins ();

isd_init ();

/ * Activar las interrupciones * /
enable_interrupts (GLOBAL);

isd_set_config ();
) / * Init * /

/************************************************* ****************************
* Este es el principal lazo de control.
************************************************** **************************/
vacío
main (void) (
char cmd;
uint8_t estado;
char buf [8];
uint8_t i, j;
uint16_t addr;

init ();

printf ( "ISD5116 shell \ r \ n \ r \ n");

for (;;) (
printf ( "comando");
for (;;) (
if (kbhit ())
break;

delay_us (100);
)

cmd = getchar ();
printf ( "% c \ r \ n", cmd);

switch (cmd) (
caso «a»:
addr = isd_read_address ();
printf ( "% 02x% 02x \ r \ n", addr>> 8, addr
y 0xff);
break;
case 'd':
isd_power_down ();
break;
caso «E»:
isd_digital_erase ();
break;
case 'p':
isd_play ();
break;
case 'r':
isd_record ();
break;
case 'R':
for (i = 0; i <32; i ) (
isd_digital_read (buf,

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

;
/ * Mostrar todos los 8 bytes de datos en el bloque * /for (j = 0; j < 8; j ) printf ( "% 02x", buf [j]);

printf ( "\ r \ n");
)
break;
case 's':
isd_stop ();
break;
case 'u':
isd_power_up ();
break;
case 'W':
isd_digital_write (buf,

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

;
break;
case '>':
isd_message_cue ();
break;
por defecto:
printf ( "comando no válidos \ r \ n");
)
)
) / * Principal * /
λ

 

Welcome to EDABoard.com

Sponsor

Back
Top