Proteus, passo dopo passo

M

muganga

Guest
I cercando di simulare il codice riportato di seguito.Non ho trovato opzione: CODICE SORGENTE PIC CPU ... solo REGISTRI, DATAMEMORY, PROGRAMMA DI MEMORIA E STACK.
Voglio aiutare i valori della variabile contatore avere durante l'esecuzione del programma.
E 'possibile utilizzare proteo?

# include <16C77.h>
#
usa il ritardo (clock = 4000000)
# include <lcd.c># int_TIMER0
void TIMER0 ()
(
int contatore;
set_timer0 (0);
if (contatore == 15)
(
contatore ;
)
)void main () (
setup_timer_0 (RTCC_INTERNAL | RTCC_DIV_256 | RTCC_8_BIT); / / orologio interno; prescaler; 8bits
enable_interrupts (INT_RTCC);
enable_interrupts (GLOBAL);

lcd_init ();
lcd_gotoxy (1,1);
lcd_putc ( "teste");

)TKS

fernando

 
Sì, è possibile in Proteous
invece di carico *. HEX Caricare file *. COF sul chip
Questo mostrerà il tuo codice sorgente e variabili troppo
Ricorda, se la vostra variabile globale è quindi sostenere un valore permanente Locali sono creati e distrutti
tempestiva.

 
la ringrazio molto per le informazioni ...
Ho fatto quello che si sugest ma non ho potuto vedere la variabile contatore ..
sai perché?# include <16C77.h>
#
usa il ritardo (clock = 4000000)
# include <lcd.c># int_TIMER0
void TIMER0 ()
(
int contatore;
set_timer0 (0);
if (contatore == 15)
(
contatore ;
)
)void main () (
setup_timer_0 (RTCC_INTERNAL | RTCC_DIV_256 | RTCC_8_BIT); / / orologio interno; prescaler; 8bits
enable_interrupts (INT_RTCC);
enable_interrupts (GLOBAL);

lcd_init ();
lcd_gotoxy (1,1);
delay_ms (100000);
lcd_putc ( "Benvenuti in Egitto");

)

grazie di nuovo

muganga

 
La ringrazio per la risposta .. quindi .. qual è il miglior software per la simulazione di un circuito?

TKS

muganga

 
dove è il vostro codice di inizializzazione del timer?anche il motivo per cui si esegue questa

if (contatore == 15)
(
contatore ;
)

vuoi fare così
if (contatore == 15)
(
counter = 0;
)garretto

 
orologio = 4Mhz

4 / 4 * 256 * 256 = 0,065536 s

15 * 0,065536 = 1seg

se ho un overflow che significa 15 volte ho 1 sec.In questo modo posso contare 1 sec e voglio visualizzare sul display LCD.

TKS

muganga

 
ma il codice è sbagliato.
non potrà mai incrementare il contatore come
all'inizio count = 0 e, di conseguenza, la condizione SE contare == 15 non sarà mai vero ans count non funzionera 'mai.il conte rimarrà 0x00.

garretto

 
Modificare il codice e per conoscere il lavoro che è ..

per qualcuno che sta imparando l'interruzione .. vedi di seguito il codice ...# include <16C77.h>
#
usa il ritardo (clock = 4000000)
# include <lcd.c>

int contatore;
int sec = 0;
int valore;

# int_TIMER0
void TIMER0 ()
(
contatore ;
if (contatore == 15)
(
counter = 0;
sec ;
)
)void main () (

setup_timer_0 (RTCC_INTERNAL | RTCC_DIV_256 | RTCC_8_BIT);
enable_interrupts (INT_RTCC);
enable_interrupts (GLOBAL);

while (1)
(
lcd_init ();
lcd_gotoxy (1,0);
printf (lcd_putc, "\ f tempo:% i secondi", sec);
delay_ms (200);
)
)

 

Welcome to EDABoard.com

Sponsor

Back
Top