Você está na página 1de 33

Tutorial Gravador de AT89S52

Introduo
Neste tutorial o intuito mostrar a montagem e funcionamento de um gravador de
E2PROM. Este gravador permite o programador transferir seus cdigos compilados
para a memria Flash do micro controlador (M! "#$%&'2.
O pro(eto do circuito) montado em uma proto*oard) funciona para a maioria dos
programas gravadores atualmente dispon+veis na internet) como por e,emplo o- .&P/
Flash Programmer 0.1 criado pelo Muhammad "ssim 2han.
Eu utili3ei esse circuito para a cria45o do meu programa de grava45o. Este programa eu
chamei de Flash'6. Foi desenvolvido em 77. Para efeitos de aprendi3agem) neste
tutorial utili3aremos 8isual 9asic : (89:! e eu mostrarei apenas o funcionamento
*;sico da programa45o. a*e a voc< leitor de*ru4ar so*re os manuais dos M=s e criar
seus prprios programas gravadores.
Objetivo
Montar circuito para grava45o de memria flash do micro controlador "#$%&'2.
Escrever um programa de e,emplo capa3 de esta*elecer uma comunica45o com o M e
fa3</lo responder de acordo. O cdigo contido neste tutorial apenas e,ecuta um
comando de inicia45o (Programming Ena*le! e for4a o M a responder uma palavra.
>essa forma) poderemos testar a capacidade do M entender um comando e responder)
esta*elecendo um cumprimento (hand/sha?ing!. Este e,emplo apenas funciona no
micro "#$%&'2 e n5o funcionar; para outros Ms) pois cada micro tem suas frases de
programa45o e timmings de comunica45o.
Montar um ca*o para comunica45o entre o computador) via porta paralela) e o M) via
.&P.
ndice
#utorial @ravador de "#$%&'2 .......................................................................................... 6
.ntrodu45o ...................................................................................................................... 6
O*(etivo ......................................................................................................................... 6
Andice ............................................................................................................................. 2
Passo/"/Passo ............................................................................................................... :
Montagem do ircuito ............................................................................................... :
Montagem do ca*o .................................................................................................. 6%
O Programa @ravador de E2PROM ............................................................................ 21
Entendendo o &istema de @rava45o ........................................................................ 26
Bgica do Programa ................................................................................................. 2'
O digo ompleto ................................................................................................. 2%
onclusCes ................................................................................................................... 00
Material Necess;rio
Tabela de materiais.
D on(untos de
BE> 7 Resistor
6)2? ohms
6 apacitor
Eletrol+tico
221uF E 2'8
6 apacitor de
erFmica 611nF
(61D!
2 apacitores de
erFmica 00pF
(00!
6 ristal de
62Mh3 ou
66)1'%2Mh3
6 >iodo 6ND11G
6 Regulador de
#ens5o BMG$1'
6 Ponte om '
#erminais
6 Micro
ontrolador
"#$%&'2 (com
soHuete!
6 #erminal
F<mea Para
Fonte de
"limenta45o
6 Fonte de
alimenta45o %8
6 BE> 8erde
6 Resistor de
611 ohms
6 Proto*oard
para montagem
do circuito ((;
grampeada para
conectar as 0
linhas de energia
entre si!
Fios variados de
co*re duro e
grampos para a
liga45o dos
componentes.
Passo-A-Passo
Montagem do Circuito
Tabela de instrues da montagem.
Para Huem n5o conhece uma proto*oard) note Hue ela tem linhas hori3ontais (e,emplo
em amarelo! de cone,5o para os componentes e linhas verticais de for4a (e,emplos em
vermelho e a3ul!) Hue garantem alimenta45o aos circuitos. Repare tam*m Hue nas
linhas de for4a e,istem marca4Ces em a3ul para o negativo e vermelho para o positivo.
"ntes de tudo vale a pena verificar a tens5o da fonte de alimenta45o e sua polaridade.
No existe
conexo entre os
dois lados.
Bigue os fios vindos da fonte de alimenta45o conforme a foto) na primeira linha de
montagem dos componentes) no *uraco mais e,terior e com o negativo para o lado
direito.
@rampeie a placa na parte inferior para fa3er as cone,Ces entre as linhas de for4a.
+
"gora fa4a um grampo entre o negativo vindo da fonte para o negativo da linha de
for4a central.
Bigue o capacitor cerFmico de 611nF entre o positivo e o negativo da linha de
alimenta45o lateral.
"gora coloHue o diodo 6ND11G na linha do positivo da fonte e outra linha mais a*ai,o.
8erifiHue o sentido do componente) a fai,a prata deve ficar para o lado oposto do
positivo da fonte.
Para conectar o BMG$1') Hue o regulador respons;vel por fornecer '8 para o
circuito) olhando por tr;s (conforme na foto! deve/se ligar o pino mais a direita na
mesma linha do diodo.
O pino do meio do BMG$1' deve ser ligado no negativo da linha de for4a.
" perna mais a esHuerda (ainda tomando como *ase a vis5o por tr;s! deve ser
grampeada no positivo da linha de for4a.
8oltando a perna da direita do BMG$1') devemos conectar o capacitor eletrol+tico.
Bigue o positivo do capacitor na linha da perna da direita do regulador e o negativo) no
negativo da linha de for4a lateral. "ten45o para a polaridade do capacitor. Fai,a
prateada para o negativo.
Para terminar a montagem do circuito da fonte de alimenta45o) coloHue o BE> verde e
o resitor de 611 ohms como mostrado na foto. "proveite uma linha de componentes
Hue est; desligada e monte a perna do BE> Hue n5o tem o chanfro. Monte tam*m
nessa linha uma das pernas do resistor. >epois conecte a parte chanfrada do BE> no
negativo da linha de for4a e a outra perna do resistor no positivo da linha de for4a.
oloHue ent5o o micro controlador em outra ;rea de componentes) do lado direito da
linha central de for4a.
@rampeie o pino D1 do "#$%&'2 no positivo da linha de for4a. 8e(a Hue o pino D1 o
primeiro da direita.
Nos dois pinos antepenIltimos da esHuerda) J#"B6 e J#"B2) conecte o cristal.
"proveite as linhas do cristal para conectar os capacitores eletrol+ticos de 00pF. Kma
perna de cada capacitor nas linhas das pernas do cristal. Bigue a outra perna dos
capacitores no negativo da linha de for4a.
@rampeie o negativo do M. Lltima perna da esHuerda no negativo da linha de for4a.
Bigue o pino 06 (E"M! no positivo da linha de for4a. .sso far; com Hue o controlador
e,ecute o cdigo da memria interna do M.
onecte a ponte com cinco terminais nas linhas da direita da parte a esHuerda da linha
de for4a central) na proto*oard) conforme mostra a foto. >epois eu desco*ri Hue
melhor colocar mais a direita ainda) mas por ora vamos dei,ar a+.
8amos ligar o MO&.) Hue o pino 6 do conector e o : do M) na porta P6.'. Esse pino
respons;vel por rece*er os dados enviados pelo P.
O segundo pino do conector ligado no pino % do M) Hue o Reset. Na hora da
programa45o) ele conhecido como Ena*le (EN!) respons;vel por Ndi3erO ao micro
controlador Hue o P vai enviar informa4Ces.
O pino 0 do conector ligado ao M.&O do micro) Hue o pino G) porta P6.:. Esse pino
respons;vel pela parte de envio de dados do M para o P) caminho inverso do
MO&..
O Huarto pino do conector de ' pinos o &2) Hue ligado no pino $ do M) na porta
P6.G. Ele respons;vel por sincroni3ar a comunica45o) enviando um pulso Hue forma
uma onda Huadrada) para sincroni3ar os dois dispositivos se comunicando) ou se(a) o
M e o P.
O pino ') Iltimo do conector) ligado no negativo da linha de for4a. Repare tam*m
Hue eu reposicionei a *arra de pinos) Hue se voc< ainda n5o notou o nosso conector.
Eu sei Hue n5o se parece com um) mas onde vamos conectar o ca*o de dados Hue vai
ligado na outra ponta- o P) pela porta paralela.
Para finali3ar) ligamos os BE>s vermelhos e seus resistores de 622 ohms. onecte a
parte com chanfro no negativo da fonte e a outra perna no pino correspondente. O
primeiro ligado na foto o do pino D) o B2.
Pino 1 Pino 1
MISO
GND
EN
MOSI
SCK
>epois ligue o BE> do pino 0) invertido) com o conector achatado do BE> na linha do
pino e a outra perna do resistor no positivo da linha de for4a. #ermine conectando os
outros dois con(untos de BE>s como foi feito no primeiro. Estes Hue faltam s5o os
pinos 2 e 6) Ena*le e MO&.) respectivamente.
om isso terminamos a parte da montagem do circuito do gravador.
Montagem do cabo
Tabela de instrues da montagem.
N5o vou me prender muito na montagem do ca*o de dados. 8ou apenas di3er Hue o
conector Hue vai ligado no P um >92' macho. Na outra ponta) o conector deve ser
f<mea) compat+vel com a *arra de pinos. Facilmente encontrada nas melhores casas do
ramo. " fita preta do aca*amento isolante termo/ativado.
Mapeamento dos Pinos
Tabela de mapeamento de pinos entre os conectores.
Pino DB25 (porta paralela) Conector IP
M!I G 6
"# % 2
MI! 61 0
C$ : D
%#D 2' '
O*s- E,iste uma liga45o entre os pinos 2 e 62 do conector da porta paralela) Hue
somente necess;ria para o funcionamento em outros programas de grava45o) como
citado anteriormente- .&P/Flash Programmer 0.1 criado pelo Muhammad "ssim 2han.
O Programa Gravador de E2PROM
Eu desenvolvi um gravador em 77. Eu preferi utili3ar essa linguagem por ela ter uns
tratamentos mais elegantes no deslocamento de *its) entre outras caracter+sticas. Mas
para esse tutorial decidi escrever um fragmento de cdigo especialmente em 89:. "
ra35o disso simples- o intuito desse tutorial mostrar o processo de grava45o de dados
na memria Flash do micro controlador e n5o e,plicar recursos complicados de
linguagens de programa45o. Por isso o 89: cai como uma luva para n5o perdermos o
foco.
O importante entender o processo de grava45o. O resto vem f;cil. Na verdade n5o vou
mostrar o processo de grava45o em si) mas sim o caminho para tal. O Hue vamos fa3er
enviar uma instru45o inicial de programa45o para esta*elecer comunica45o. P como se
fosse uma verifica45o r;pida de Hue todos os componentes foram montados
corretamente e Hue n5o h; pro*lemas na comunica45o entre o P e o M.
Para aprender a montar a programa45o restante do programa de grava45o) voc<
precisar; estudar o datasheet do "#$%&'2 e ler as partes referentes Q &erial
Programming.
Esse mtodo de programa45o chamado de .n/&Rstem Programming (.&P!) tam*m
conhecido como &erial Programming .nterface (&P.!. Neste mtodo) temos frases de D
*Rtes Hue devem ser enviadas para o M em forma de comandos. E,istem comandos
para apagar a memria Flash do micro) escrever dados) ler dados) ha*ilitar programa45o
(Programming Ena*le E este Hue vamos estudar! e ler e escrever dados em forma de
p;gina de dados.
E,istem ainda fus+veis program;veis) mas ainda n5o estudei so*re eles.
#odas essas funcionalidades eu vou disponi*ili3ar no meu programa chamado Flash'6.
"Hui vou apenas mostrar o caminho para voc< poder fa3er igual) ou melhorS
Entendendo o Sitema de Grava!"o
O *;sico Hue precisamos sa*er Hue para se comunicar com esse M em espec+fico)
temos Hue enviar D *Rtes em uma velocidade inferior a 6M6: do cloc? do micro
controlador.
omo estamos utili3ando um cristal de 62Mh3) temos Hue enviar mais devagar Hue
G'1.111 ciclos por segundo. Na verdade isso (; *em r;pido para os nossos padrCes de
comunica45o. &e enviarmos dados a uma ta,a de mil ciclos por segundo (; estaremos
*em mais devagar e fica mais f;cil fa3er c;lculos.
8e(a *em) para ficar *em claro esse assunto) vamos fa3er uns c;lculos-
62Mh3 M 6: T G'12U3
Ent5o temos G'1 mil ciclos por segundo) isso nos d;-
6 segundo M G'12U3 T 1)1111160D segundos.
#emos Hue ser mais lentos Hue 6 ciclo a cada 1)1111160D segundos. N5o parece ser
muito dif+cil ser mais lento Hue issoS "inda *em Hue n5o ao contr;rioS
O ideal seria tra*alharmos com algo em torno de meio milissegundo por ciclo. Faria o
programa gravador ficar mais r;pido e mais eficiente. Mas como no 89: tra*alhar com
tempori3adores meio complicado) optei por uma solu45o *em caseira. Km loop va3io
para atrasar o processamento o suficiente para criar o pulso da comunica45o.
8amos rever algumas etapas da comunica45o-
Bevantar o estado lgico do pino % da porta paralela para ha*ilitar o
envio de dados e comandos para o micro controladorV
riar uma onda Huadrada para sincronia da comunica45o) utili3ando o
pino : da porta paralela) em uma velocidade menor Hue 6 pulso a cada
1)1111160D segundos.
Enviar os dados pelo pino G da porta paralela.
Rece*er os dados pelo pino 61 da porta paralela.
Pronto) assim esta*elecemos comunica45oS
&e voc< ainda n5o entendeu muito *em a forma de envio porHue voc< precisa estudar
comunica45o serial. 8e(a Hue n5o vamos passar os D *Rtes diretamente para o micro
controlador. ada *Rte tem $ *its e ns s temos um fio para enviar e um para rece*er)
alm do sinal de sincronismo e do ena*le Hue o interruptor geral.
Ent5o o Hue precisamos fa3er enviar cada *it pelo pino do MO&. em sincronia com o
pino do &2. E no momento apropriado) ler os *its chegando ao pino M.&O.
Os tempos Hue essas a4Ces devem ocorrer seguem o padr5o da figura a*ai,o-
(>esculpem o desenho!
&endo Hue as linhas pretas representam o pulso do cloc?) e as linhas vermelhas
representam o canal de dados. 8e(a *em) n5o porHue e,istem duas linhas vermelhas se
cru3ando) Hue significa Hue s5o realmente dois canais de comunica45o. O canal um s)
mas as duas linhas representam o estado do canal naHuele dado momento. E esse canal
pode ter um de dois estados ao mesmo tempo) por isso duas linhas.
Portanto) Huando temos um sinal alto no cloc?) a linha preta est; na sua parte mais alta)
e se mantm l; por um per+odo de tempo. >epois desse tempo devemos colocar valor
*ai,o no pino do cloc? por mais um tempo) Hue deve ser o mesmo em Hue o cloc? ficou
em alto. Repetindo esse ciclo indefinidamente) temos o sinal de sincronismo Hue nada
mais sen5o um tipo de marca/passo.
8e(a Hue as linhas vermelhas est5o se cru3ando para mostrar Huando deve haver troca de
informa45o no canal de dados. &e a informa45o for alterada no canal) fora desses
intervalos indicados) onde podemos ver a intersec45o das linhas vermelhas) o M vai se
perder na comunica45o.
9om) o importante desse desenho verificar Hue os dados s5o realmente enviados
enHuanto o cloc? est; em alto e Hue Huando o cloc? est; em *ai,o a hora de mudar a
informa45o no canal de dados) se for necess;rio.
Outra coisa importante a se sa*er Hue os *Rtes s5o enviados pelo canal de dados pelo
*it mais significativo. " seHW<ncia deve ser ao contr;rio) conforme a figura a*ai,o-
9om) para irmos para a parte pr;tica) precisamos primeiro estudar a frase Hue vamos
enviar para o micro.
Tabela do c&digo bin'rio do comando Programming "nable.
Ua*ilita Programa45o &erial enHuanto o EN est; em alto.
&entido de Envio-
9Rte 6 9Rte 2 9Rte 0 9Rte D
6 1 6 1 6 6 1 1 1 6 1 6 1 1 6 6 J J J J J J J J J J J J J J J J
1 6 6 1 6 1 1 6
Resposta do M
Resumindo) precisamos enviar uma seHu<ncia 61616611 e depois 16161166. om isso
o M entende Hue estamos enviando um comando. O *Rte 0 n5o importa para esse
PC MC
Sentido da comunicao
0 X 1 X 2 X 3 X 4 X 5 X 6 X 7
Sentido do envio dos bits
comando) ent5o enviamos HualHuer informa45o. 8amos enviar sempre 3ero Huando os
*its n5o importarem.
O Iltimo *Rte tam*m n5o importa) mas o interessante Hue no timming desse *Rte) o
M responde a aceita45o do comando. Mais ou menos como um- EntendidoS
Para enviar os *its pela porta paralela) precisamos esta*elecer um ciclo. O ciclo do
envio dos *Rtes deve ser-
Envia o *it mais significativo (unto com o sinal de cloc?YV
Espera mais ou menos 6 milissegundoV
Envia o *it como 3ero (unto com o sinal de cloc? em *ai,oV
Espera mais ou menos 6 milissegundoV
Repete seHW<ncia para o pr,imo *it at o oitavo *itV
Repete seHW<ncia para o pr,imo *Rte.
Y "Hui tem um truHue. &e o *it for 6) preciso enviar antes para a porta para s ent5o
ligar o cloc?. &e for enviado no mesmo comando) ele leva uma fra45o de segundo a
mais Hue o cloc? para ligar e o M entende errado. &e o *it for 1 n5o tem pro*lemas.
9om) para enviar dados pela porta paralela) precisamos escrever no *uffer de dados)
chamado >ata Register. Os *its desse *uffer Hue nos interessam s5o o >G (MO&.!) o >'
(EN! e o >D (M.&O!. Portanto para enviar as com*ina4Ces Hue precisamos) temos a
ta*ela a seguir-
Tabela do registrador de dados da porta paralela.
>G >: >' >D >0 >2 >6 >1 Ue,. >ec.
EN 6 1 1 1 1 1 1 1 $1 62$
EN7MO&. 6 1 6 1 1 1 1 1 "1 6:1
EN7&2 6 1 1 6 1 1 1 1 %1 6DD
EN7MO&.7&2 6 1 6 6 1 1 1 1 91 6G:
E para ler do *uffer de entrada) chamado &tatus Register) temos Hue acompanhar a
ta*ela a*ai,o para entender Hual *it precisamos pegar) pois o *it Hue nos interessa o
Hue vem do pino do M.&O) Hue o "c? do *uffer-
Tabela do registrador de status da porta paralela.
&1 &6 &2 &0 &D &' &: &G Ue,. >ec.
J J J J J J 6 J 'F %'
J J J J J J 1 J 6F 06
Essa ta*ela mais simples. >if+cil mesmo tratar o resultado) pois ve(a) temos 2
estados poss+veis para a porta- 6 e 1. O pro*lema Hue n5o sa*emos o valor dos outros
*its. Pode ser Hue forme HualHuer outra palavra fora 6 e 1. Mas isso outra histria. Nos
meus testes eu rece*i 06 em decimal para 1 e %' tam*m em decimal para 6.
Na verdade se voc< parou para fa3er os c;lculos) perce*eu Hue n5o *ate) mas confuso
assim mesmo. O pro*lema Hue alm do *Rte do registrator status ser invertido) os *its
&: e &G tam*m s5o invertidos) mais ou menos assim-
Tabela de mapeamento do registrador de status.
Pino 61 66 62 60 J 6' J J
Nome "c? 9usR Paper/
out
&elect Error
&igla &: &G &' &D &2 &0 &6 &1
Ordem 6 1 2 0 ' D : G
P uma *agun4a esse registradorS
O fato Hue o *it Hue nos interessa o "c?) Hue na ordem certa o terceiro *it do
segundo ni**le) ou se(a) o penIltimo e n5o o segundo como era de se esperar. #emos
ent5o D1 em he,adecimal e n5o 21. 9asta fa3er um N"N>O lgico com esse valor para
sa*er se o *it D1 ou 1. >eslocando o *Rte : posi4Ces para a direita) temos 6 e 1.
Nem sei fa3er isso no 89) mas a receita essa.
#$gica do Programa
Tabela de instrues de (uncionamento do programa.
Km programa simples) apenas para testar a comunica45o. #em apenas um *ot5o para
iniciar a comunica45o e uma cai,a de te,to para apresentar o resultado.
Primeiro devemos enviar 3ero para a porta) a fim de 3erar todos os *its. O endere4o $$$
o da porta paralela BP#6. O comando Out um apelido para uma "P.. No cdigo do
mdulo tem a declara45o desse comando. O funcionamento simples) *asta pasar a
porta no primeiro parFmetro e o valor no segundo.
" fun45o de atraso (delaR! foi uma gam*iarra Hue fi3 para simular um cloc? de mais ou
menos 6 ms. Km loop Hue e,ecuta ' mil ve3es o comando >oEvents.
>epois de 3erar a porta e esperar um tempo (delaR! vamos colocar o Ena*le em alto
para indicar ao M Hue vamos enviar um comando. oloHuei alguns delaRs na
seHuencia pois o manual do micro pede esse tempo de preparo. O cdigo em decimal
62$ igual a $1 em he,adecimal) portanto estamos ativando apenas o *it >G do
registrador de dados. Reve(a a ta*ela acima para lem*rar.
"gora vamos enviar o primeiro *it. Ele 6. Nesse caso vem o truHue. Primeiro
levantamos o MO&. (unto com o EN) pois este o momento de transi45o Hue citei
antes. Ent5o enviamos 6:1 em decimal Hue ativa os registradores >G e >'.
& ent5o levantamos o sinal de sincronismo. Nesse caso passamos 6G: para a porta no
intuito de colocar em alto os *its >G) >' e >D) Hue esse Iltimo o &2.
Na seHuencia e,ecutamos o delaR para manter o sinal do cloc? em alto por um tempo.
Para completar o ciclo) passamos 3ero para o &2 e para o MO&.) mantendo o EN
sempre em alto.
Para finali3ar) chamamos o delaR para manter o cloc? em *ai,o por um tempo. om
isso conclu+mos o ciclo de envio de um *it. 9asta come4ar tudo de novo para enviar o
pr,imo. 8e(a na imagem Hue poss+vel ver o pr,imo *it sendo enviado. Repare Hue
como o pr,imo *it 3ero) *asta enviar 6DD e manter o sinal do cloc? alto pelo tempo
determinado e est; tudo certo. N5o precisa reconfigurar o MO&. antes de levantar o
cloc?. Faltam 06 *its.
FiHue atento aps *it 2D. " partir do *it 2') poderemos ler o retorno do M enHuanto o
cloc? estiver em alto. Para isso envie 6DD) chame o delaR e logo antes de *ai,ar o
cloc?) fa4a a leitura do *it) utili3ando o comando .np) tam*m declarado como "P. no
mdulo.
Para finali3ar o cdigo) devemos 3erar a porta novamente. .sso far; com Hue o EN
fiHue em *ai,o e desa*ilite o modo de programa45o do M. om isso o micro
controlador entra em modo de opera45o normal e e,ecuta o programa gravado. No
nosso caso) n5o gravamos programa nenhum) apenas enviamos um comando.
Repare no retorno- 06) %') %') 06) %') 06) 06) %'. Essa a resposta para 1661 6116.
onforme o manual do "#$%&'2 essa a resposta certa para a ativa45o desse comando.
% C$digo Com&leto
Tabela da listagem do c&digo)(onte.
Form6.frm
Dim data As Integer
Private Sub Command1_Click()
' Zerando porta
ut !!!" #
Call dela$

' %igando &'
ut !!!" 1(!
Call dela$
Call dela$
Call dela$

' &nviando Prog &n

' Parte 1
ut !!!" 1)#
ut !!!" 1*)
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1)#
ut !!!" 1*)
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1)#
ut !!!" 1*)
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1)#
ut !!!" 1*)
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$

' Parte (
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1)#
ut !!!" 1*)
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1)#
ut !!!" 1*)
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1)#
ut !!!" 1*)
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1)#
ut !!!" 1*)
Call dela$
ut !!!" 1(!
Call dela$

' Parte ,
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
ut !!!" 1(!
Call dela$

-e.t1/-e.t 0 11

' Parte +
ut !!!" 1++
Call dela$
-e.t1/-e.t 0 -e.t1/-e.t 2 Inp(!!3) 2 1"1
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
-e.t1/-e.t 0 -e.t1/-e.t 2 Inp(!!3) 2 1"1
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
-e.t1/-e.t 0 -e.t1/-e.t 2 Inp(!!3) 2 1"1
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
-e.t1/-e.t 0 -e.t1/-e.t 2 Inp(!!3) 2 1"1
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
-e.t1/-e.t 0 -e.t1/-e.t 2 Inp(!!3) 2 1"1
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
-e.t1/-e.t 0 -e.t1/-e.t 2 Inp(!!3) 2 1"1
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
-e.t1/-e.t 0 -e.t1/-e.t 2 Inp(!!3) 2 1"1
ut !!!" 1(!
Call dela$
ut !!!" 1++
Call dela$
-e.t1/-e.t 0 -e.t1/-e.t 2 Inp(!!3) 2 11
ut !!!" 1(!
Call dela$

' Zerando porta
ut !!!" #
Call dela$
&nd Sub
Private Sub dela$()
Dim i As %ong
4or i 0 # -o 5###
Do&vents
'e.t i
&nd Sub
Module6.*as
Public Declare 4unction Inp %ib
1inpout,(/dll1 _
Alias 1Inp,(1 (6$7al PortAddress As Integer)
As Integer
Public Declare Sub ut %ib 1inpout,(/dll1 _
Alias 1ut,(1 (6$7al PortAddress As Integer"
6$7al 7alue As Integer)
Concus!es
9om) para concluir) vale a pena ficar de olho nos BE>s conectados nos pinos do ca*o
de dados. Eles v5o piscar conforme a partitura. P *em interessante. FiHue de olho no
BE> ao contr;rio) Hue o ligado no M.&O) pois Huando ele piscar Huer di3er Hue o M
est; respondendo ao comandoS
Outra coisa curiosa Hue a parte mais complicada de fa3er um programa gravador de
E2PROM a de carregar o arHuivo .N#EB UEJ e decodific;/lo para enviar os *Rtes
certos para os endere4os de memria certos. .sso d; tra*alho.
" comunica45o a parte mais f;cil.
9oa sorte e *ons estudosS
Renato "loi
62 de novem*ro de 211$

Você também pode gostar