






































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
manual do microcontrolador Basic step1
Tipologia: Manuais, Projetos, Pesquisas
1 / 46
Esta página não é visível na pré-visualização
Não perca as partes importantes!







































Ambos são computadores digitais que realizam operações em seqüência sem intervenção
humana. As operações são programadas por um programador, que segue uma lista de instruções que compõe a linguagem de programação (Assembly, C, Java).
Os microcontroladores ou μC são conhecidos como computadores embutidos em circuito-
integrado. Em um microcontrolador podemos encontrar memória, CPU, entradas e saídas. Alguns ainda possuem periféricos como conversores A/D e D/A, comparadores. Os
microcontroladores chegam a custar muitas vezes mais barato do que um transistor. Existem uma quantidade grande de μC no mercado, veja alguns nomes a baixo:
BasicStep
Os μC estão presentes em agendas eletrônicas, telefones celulares, alarmes, CLP’s, veículos, caixas eletrônicos, impressoras...
O microprocessador é um circuito integrado que possui uma poderosa CPU (Unidade Central
de Processamento). É o microprocessador que processa as informações de uma memória ou de um periférico. Não é possível obter um computador somente com um microprocessador. Um
exemplo clássico é o computador pessoal que agrega no interior do gabinete diversos componentes, dentre eles o microprocessador. Os microprocessadores são requisitados
sempre que houver a necessidade de se processar inúmeros cálculos em um curtíssimo espaço de tempo. Exemplo de processadores: Z80, 8080, 80386, 80486...
Programação é a seqüência de operações que o sistema deve executar para que a tarefa
determinada seja realizada. Cada operação correspondente a uma instrução que pode ser interpretada e executada pelo computador. As instruções são constituídas por uma série de
bits. Esses bits são decodificados e acionam as variáveis de controle internas ao sistema para
que a operação correspondente à instrução seja realizada.
Cada microcontrolador adota uma linguagem de programação. As linguagens mais difundidas
para microcontroladores são: Assembly e C. Todo programador deve conhecer o Set de Instruções de seu microcontrolador para poder realizar a programação do chip.
O código fonte do programa, ou seja, a escrita do programa precisa passar por um compilador, o compilador irá traduzir cada linha digitada em linguagem de máquina, para que o microcontrolador possa ser gravado. A gravação requer muitas vezes um equipamento de
gravação. No mercado existem gravadores dedicados e universais que permitem a gravação de inúmeros chips’s. O nosso BASIC Step só precisa de um cabo para ser programado.
BASIC Step I é um microcontrolador extremamente fácil de utilizar, com comandos em português e inglês. Alimentação de 7,5V a 15V. Possui 8 entradas e saídas com capacidade de
corrente de 25mA.Tamanho: 3,5 cm x 3,0 cm.
Hardware:
O Basic Step trabalha com um microcontrolador PIC16F628 e numa única placa engloba esse microcontrolador, uma memória com o interpretador PBASIC e um regulador de tensão. Pode
ser alimentado com tensão de 7,5 a 15v. Possui 8 portas configuráveis para entrada ou saída. É programável diretamente pela serial do computador, por um cabo simples, por isso, não
precisa de programadores caros ou difíceis de construir. Tudo isso numa minúscula placa. Outra vantagem é que ele se encaixa perfeitamente na matriz de contatos, simplificando os
testes. Veja a pinagem do BASIC Step:
Pino Função PWR Alimentação +7 a +15V GND 0V - Terra Pc0 Saída de sinais de progr. Pc1 Entrada de sinais de progr. OUT +5V Saída de tensão +5V RESET Reseta com nível baixo P0 I/O P1 I/O P2 I/O P3 I/O P4 I/O P5 I/O P6 I/O P7 I/O
Software:
O BASIC Step é programado pela linguagem Tbasic ou Pbasic. Ambas são muito fáceis de
utilizar, sendo que a diferença está no idioma: Pbasic é inglês e o Tbasic é português.
Ao lado o compilador BASIC Step.
O compilador permite edição de texto do código fonte, possui compilador, debug para procurar erros de digitação, download para transferência do programa ao microcontrolador e ajuda para consulta de instruções.
O software está na verão 0.9.22 e pode ser executado no Windows 95, Windows 98, Windows Me e Windows XP.
Barra de ferramentas:
Vamos conhecer como o BASIC Step trabalha, para isso é necessário escrever um programa. A princípio não vamos comentar as funções de cada instrução, pois o objetivo é compreender e
se familiarizar com o modo de trabalho de gravação de um microcontrolador. Vamos lá: Conecte o cabo de gravação da placa StepLab à porta serial do seu computador. Monte agora
o hardware e o software. O BASIC Step, o compilador e a placa Steplab podem ser adquiridos na home page do fabricante: www.tato.ind.br.
Hardware:
Monte o circuito ao lado em uma matriz de contatos ou na placa StepLab. Confira as ligações. Evite curto-circuito, pois um erro pode ocasionar a perda de um pino de I/O.
O VDD é + 5VCC.
Software:
Digite o mesmo texto da figura em seu compilador.
Depois de digitado, clique com mouse sobre o ícone “compile” para transformar seu programa em linguagem de máquina.
Caso surja uma mensagem de erro, após o clique no ícone compile, dê ok na tela de mensagem e revise todo o texto. O compilador está lhe dizendo que existe um erro no código fonte, um “Bug”. Por isso “Debugar” um programa é fundamental antes da compilação final.
Agora pressione novamente o ícone compile, ele irá compilar o programa.
Agora faça o download para o μC. Verifique o cabo de gravação.
Aguarde, o compilador está estabelecendo comunicação com o μC.
Veja o resultado! Caso o led não tenha piscado, revise o hardware e seu software.
Vamos utilizar a linguagem Pbasic para desenvolver nossos programas, o compilador também
suporta a linguagem Tbasic, desenvolvida pelo fabricante. A linguagem Pbasic é muito semelhante à utilizada por outros microcontroladores: BASIC Stamp, 8052-Basic... Por essa
razão, adotaremos o Pbasic como linguagem principal nos experimentos do curso.
Tabela de Instruções do BASIC Step Instruções em Português - Tbasic Instruções em Inglês - Pbasic
ALTO LE BRANCH OUTPUT
ALEATÓRIO LESERIAL BUTTON PAUSE
BAIXO LIGA DEBUG POT
CHAVE MEDEPULSO EEPROM PULSIN
CONSOLE PAUSA END PULSAUT
DESCANÇA POTENCIOMETRO FOR...NEXT PWM
DESLIGA PROCURA GOSUB RANDOM
DORME PULA GOTO READ
ENTRADA REPITA...CONTINUE HIGH RETURN
ESCREVE RETORNA IF...THEN REVERSE
ESCREVESERIAL SAIDA INPUT SERIN
EXECUTE SE...ENTÃO LET SEROUT
FIM SOM LOOKDOWN SLEEP
GERAPULSO TABELA LOOKUP SOUND
INVERTE VAIPARA LOW TOGGLE
INVERTEDIREÇÃO NAP WRITE
São 32 instruções a disposição do programador, em nosso curso não veremos todas por não haver necessidade. Como vemos na tabela acima, percebemos que o compilador suporta duas
linguagens: o Tbasic e o Pbasic. Disponibilizamos todas as instruções no anexo. Os comentários podem ser escritos após o símbolo “ ’ “. Um comentário não é considerado pelo
compilador, ele deve ser utilizado para comentar uma linha de programação. Exemplo:
pin0 = 1 ‘liga pino 0 do basic step
Os pinos do BASIC Step quando estiverem trabalhando como saída drenam no máximo 25mA
em sua saída, para cargas que necessitem de uma capacidade maior de corrente há a necessidade de ser adicionado um amplificador de corrente na saída (transistor, driver, tiristor,
relé, contactora).
Ao lado um driver – 2004. O C.I. possui 7 transistores darlington NPN. O C.I. 2004 pode ser utilizado com o BASIC Step, sempre que houver necessidade de elevação da corrente dos pinos. Não esqueça que o 2004 inverte o sinal (lógica invertida). Para acionar cargas de baixa potência, como diodos emissores de luz, não se faz necessário utilizar o driver. Desde que não ultrapasse 25mA por pino.
Se seu programa estiver funcionando você deve ter observado que somente um led está oscilando, é necessário terminar o programa. Acrescente os comandos para fazer o segundo
led piscar. Uma outra forma de escrever o programa anterior é utilizando os comandos “high” e “low”.
Veja:
Software: ‘*********************************** ‘PROGRAMA: Sinalizador de veículo * ‘PROGRAMADOR: Derli L. Angnes * ‘DATA: 02/11/02 * ‘VERSÃO: 2.0 * ‘***********************************
novamente: ‘novamente: é um label, uma posição
low 0 ‘pino 0 está em nível baixo pause 1000 ‘pausa a saída por 1000ms = 1seg. high 0 ‘pino 0 está em nível alto pause 1000 ‘pausa a saída por 1000ms = 1seg. goto novamente ‘goto manda saltar para label novamente,entra em ciclo
Os comandos low e high atribuem nível lógico às saídas e ao mesmo tempo configura o pino
declarado como uma saída. Para conhecer detalhadamente todos os comandos veja o anexo.
b) Seqüencial de 6 canais
Hardware: Monte o circuito ao lado na placa StepLab. Vamos construir um seqüencial de 6 canais, lembra do C.I. 4017...
Software: ‘*********************************** ‘PROGRAMA: Seqüêncial de 6 canais * ‘PROGRAMADOR: Derli L. Angnes * ‘DATA: 02/11/02 * ‘VERSÃO: 1.0 * ‘***********************************
REPITA: ‘label
LOW 0 ‘põe nível baixo na porta 0 HIGH 0 ‘põe nível alto na porta 0 PAUSE 100 ‘aguarda 100ms LOW 0 ‘põe nível baixo na porta 0
LOW 1 ‘põe nível baixo na porta 1 HIGH 1 ‘põe nível alto na porta 1 PAUSE 100 ‘aguarda 100ms LOW 1 ‘põe nível baixo na porta 1
LOW 2 ‘põe nível baixo na porta 2
HIGH 2 ‘põe nível alto na porta 2 PAUSE 100 ‘aguarda 100ms LOW 2 ‘põe nível baixo na porta 2
LOW 3 ‘põe nível baixo na porta 3 HIGH 3 ‘põe nível alto na porta 3 PAUSE 100 ‘aguarda 100ms LOW 3 ‘põe nível baixo na porta 3
LOW 4 ‘põe nível baixo na porta 4 HIGH 4 ‘põe nível alto na porta 4 PAUSE 100 ‘aguarda 100ms LOW 4 ‘põe nível baixo na porta 4
LOW 5 ‘põe nível baixo na porta 5 HIGH 5 ‘põe nível alto na porta 5 PAUSE 100 ‘aguarda 100ms LOW 5 ‘põe nível baixo na porta 5
GOTO REPITA ‘retorna para o início do programa
Existe um modo de programar o mesmo programa de forma mais enxuta, veja:
Software: ‘*********************************** ‘PROGRAMA: Seqüêncial de 6 canais * ‘PROGRAMADOR: Derli L. Angnes * ‘DATA: 02/11/02 * ‘VERSÃO: 2.0 * ‘***********************************
dirs=%11111111 ‘atribui todos os pinos como saída symbol a = b0 ‘symbol declara variável a como sendo um byte a =1 ‘estamos atribuindo a variável a o valor 1 inicio: ‘label inicio
if a = 64 then muda ‘se a for igual a 64 então vá para muda pause 100 ‘espera 100ms pins=a ‘atribui a porta (0a7) o valor da variável a a=a*2 ‘multiplica (a x 2) e atribui o resultado à a goto inicio ‘salta para o rótulo inicio
muda: ‘label muda a= 1 ‘muda o valor da variável a para 1 goto inicio ‘salta para o rótulo inicio e entra em ciclagem
Informações sobre variáveis
Variáveis são muito utilizadas em programação, elas podem assumir valores numéricos e podem mudar seu valor ao longo do programa. Se houver necessidade de realizar cálculos
num programa, o resultado sempre deve ser dado à uma variável. Para declarar variáveis devemos utilizar o comando “symbol”.
Os nomes das variáveis podem ser de três tipos: 1bit, 1byte (8bits) ou 1word(16bits). Sempre
devemos declarar as variáveis no menor tamanho possível para o dado que ela irá armazenar. O BAISIC Step tem um número limitado de variáveis. Elas são organizadas em 7 variáveis
words (w0 até w6), 14 variáveis bytes (b0 até b13) e 16 variáveis bits (bit0 até bit15).
Exemplos de atribuição de números nos sistemas: decimal, hexadecimal e binário
a = 15 ‘atribuição no sistema decimal (a = 15) a = $f ‘atribuição no sistema hexadecimal - $ (a = 15) a = %11111111 ‘atribuição no sistema binário - % (a = 15)
Hardware:
Monte o circuito ao lado, não esqueça de por os resistores (7 x 470R).
Software: ‘*********************************** ‘PROGRAMA: Contador década * ‘PROGRAMADOR: Derli L. Angnes * ‘DATA: 02/11/02 * ‘VERSÃO: 1.0 * ‘*********************************** dirs=$ff ‘habilita todos pinos como saída rotate: ‘ rótulo FOR b2=0 TO 9 ‘ FOR faz b2 assumir valores de 0 a 9 PAUSE 1000 ‘ pára por 1 seg. LOOKUP b2,(64,121,36,48,25,18,2,120,0,16),b3 ‘b2 pega um valor na ‘tabela e repassa o dado para a porta, atravez da variável b3. pins=b3 ‘ faz com que os dados de b3 passem para a porta Next ‘ retorna para o laço FOR para incrementar unidade ‘ caso b2>9, o programa continua aqui GOTO rotate ‘ salta para o rótulo “rotate”
e) Gerando tons musicais
O BASIC Step possui um comando próprio para gerar tons musicais e ruídos. Todos comandos utilizados pelo BASIC Step podem ser consultados detalhadamente no help (ajuda) do
compilador ou no anexo desse fascículo.
Hardware: Monte o circuito ao lado, utilize a placa StepLab. Interligue o circuito ao pino 1 do BASIC Step. O falante pode ser de 8R/250mW.
Software: ‘*********************************** ‘PROGRAMA: Gera tons * ‘PROGRAMADOR: Derli L. Angnes * ‘DATA: 02/11/02 * ‘VERSÃO: 1.0 * ‘***********************************
repete: SOUND 1,(20,100,56,100,100,100,120,100) ‘gera tons musicais SOUND 1, (250,140) ‘gera um ruído por um tempo GOTO repete
f) Gerando tons musicais aleatoriamente
O BASIC Step possui um comando próprio para gerar notas musicais e ruído, SOUND.
Hardware: Monte o circuito ao lado, utilize a placa StepLab. Interligue o circuito ao pino 1 do BASIC Step.
Software: ‘*********************************** ‘PROGRAMA:Gera tons aleatoriamente ‘PROGRAMADOR: Derli L. Angnes * ‘DATA: 02/11/02 * ‘*VERSÃO: 2.0 * ‘*********************************** loop:
RANDOM W1 ‘gera número aleatório de 16BIT’s. B4=b2/2 ‘pega-se somente os 8 bits LSB e divide por 2 SOUND 1,(b4,100) ‘executa tons musicais aleatórios
GOTO loop ‘repete o processo
Para declarar um pino como entrada utiliza-se o comando input e para saída o comando
output, porém se não for declarado, todos os pinos estão configurados intrinsecamente para serem entradas.
a) Teclando tons musicais
Hardware: Monte o circuito ao lado, utilize a placa StepLab.
goto Loop ‘salta para loop
proximo: ‘rotina que irá incrementar os led’s b3=b3+1 ‘incrementa em uma unidade debug b3 ‘mostra o esto de b3 na tela do PC if b3<4 then tabela ‘se b3 for menor que 4 salta para tabela
b3=0 ‘se b3 for maior que 4 b3 será zerada
tabela: ‘rotina que contém a tabela de saída lookup b3,(1,2,4,8),pins
goto loop ‘salta para o início do programa
c) Conhecendo o comando potenciômetro
Hardware:
Monte o circuito ao lado, utilize a placa StepLab.
Software: ‘*********************************** ‘PROGRAMA: Comando potenciômetro * ‘PROGRAMADOR: Derli L. Angnes * ‘DATA: 02/11/02 * ‘VERSÃO: 1.0 * ‘***********************************
abc:
POT 0,110,b2 'lê potenciômetro em pino 0 e carrega b POT 1,50, b3 ‘lê potenciômetro em pino 1 e carrega b
DEBUG b2,b3 ‘mostra valor das variáveis na tela do PC
goto abc ‘repete o processo
O comando potenciômetro possibilita ao programador trabalhar com valores analógicos. Ao
variar a resistência elétrica de um potenciômetro iremos modificar o tempo de carga do capacitor, o BASIC Step calcula o tempo de carga do capacitor e repassa um valor numérico a
uma variável. O programador pode realizar uma série de sentenças para tomar uma decisão – liga motor, liga lâmpada...
Com o comando POT poderíamos desenvolver um termômetro, termostato de forma simples.
Veja no próximo experimento um exemplo de temporizador. As chaves J1 a J6 permitem a escolha de tempos diferenciados, R8 modifica o tempo.
Hardware: Monte o circuito ao lado, utilize a placa StepLab.
Caso o experimento não funcione será necessário reajustar valores do comando POT ou até mesmo das condições (if then).
Software: ‘*********************************** ‘PROGRAMA: Comando potenciômetro * ‘PROGRAMADOR: Derli L. Angnes * ‘DATA: 02/11/02 * ‘VERSÃO: 1.0 * ‘***********************************
output 2
abc: ‘rotina principal w4=0 ‘atribui a w4 como sendo 0 low 2 ‘faz pino 2 assumir valor 0 b2=0:b3=0 ‘zera variáveis b2 e b POT 0,110,b2 ‘lê potenciômetro em pino 0 e carrega b POT 1,50,b3 ‘lê potenciômetro em pino 1 e carrega b
debug b2,b3 ‘mostra na tela do PC os valores de b2 e b
if b2<=0 then t0 ‘se b2 satisfaz a situação salta para t if b2<=22 then t1 ‘se b2 satisfaz a situação salta para t if b2<=36 then t2 ‘se b2 satisfaz a situação salta para t if b2<=50 then t3 ‘se b2 satisfaz a situação salta para t if b2<=63 then t4 ‘se b2 satisfaz a situação salta para t if b2<=77 then t5 ‘se b2 satisfaz a situação salta para t if b2<=90 then abc ‘se b2 satisfaz a situação salta para t
goto abc
t0: ‘rotina do tempo 0 high 2 ‘faz pino assumir nível 1 w4=b3*10 ‘aqui a variável W4 é o resultado de b3 x 10 pause w4 ‘aguarda o tempo acumulado em w low 2 ‘faz pino assumir nível 0 goto abc ‘retorna para abc
t1: ‘rotina do tempo 2 high 2 w4=b3* pause w low 2 goto abc
t2: ‘rotina do tempo 3 high 2 w4=b3* pause w low 2 goto abc
t3: ‘rotina do tempo 4 high 2 w4=b3*
O terceiro parâmetro (z), é à parte onde serão enviados os dados ao display.
Comandos:
Para que o display execute as suas funções devem ser enviados comandos que são reconhecidos por ele. Esses comandos são colocados na parte z da instrução serout, e devem
vir entre parênteses.
Sempre antes de enviar uma instrução ao display, deve-se enviar o código 254, de acordo com
o exemplo abaixo:
serout 2,N2400,(254,1) ‘limpa o display ligado ao pino 2 do Step.
Veja a lista dos códigos e um exemplo de comando:
Comando Código
Limpar o display 1
Retornar cursor ao inicio 2
Apagar o display 8
Ligar o display 12
Desligar cursor 12
Ligar cursor piscante 13
Ligar cursor fixo 14
Mover o display p/ a esquerda 24
Mover o display p/ a direita 28
Mover cursor p/ a esquerda 16
Mover cursor p/ a direita 20
Posicionar cursor (vide tabela de posições) nº em DECIMAL, que representa a posição
Exemplo de comando:
serout 0,N2400,(254,1,2) ‘limpa o display, coloca o cursor no ‘inicio; display ligado ao pino 0 serout 0,N2400,("BASIC Step") ‘mostra a mensagem "BASIC Step" na tela ‘do display ...
****** Note que o comando 254, sempre vai antes de qualquer instrução a ser enviada ao display,
com exceção das mensagens, que não devem vir com os 254.
Posições:
Usando os comandos apresentados na tabela abaixo, pode-se colocar o cursor em qualquer das 32 posições no display. Essas posições referem-se ao display 16X2.
LCD 16x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Linha1 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 Linha2 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
Exemplo de uso das posições:
... serout 0,N2400,(254,1,192) ‘posiciona cursor no início da 2ª linha serout 0,N2400,("basic step") ‘mostra a mensagem "basic step" na ‘posição indicada acima ...
a) Inserindo mensagem no LCD
Esse programa conta de 0 a 255 e mostra cada valor no display.
Hardware: Monte o circuito ao lado, utilize a placa StepLab. Tome cuidado ao conectar o display a placa StepLab. Utilize a saída de 5V.
Software: ‘*********************************** ‘PROGRAMA: Mensagem no LCD * ‘PROGRAMADOR: Derli L. Angnes * ‘DATA: 02/11/02 * ‘VERSÃO: 1.0 * ‘***********************************
symbol cmd=254 ‘atribuição de valores symbol clear= symbol home=
b0= serout 0,N2400,(cmd,clear) 'limpa display loop: serout 0,N2400,(cmd,home) 'cursor no inicio serout 0,N2400,("valor de b0=",#b0) ‘mostra valor de b0 no display b0=b0+1 ‘incrementa b pause 500 goto loop ‘repete o processo
Iremos demonstrar uma aplicação prática envolvendo o BASIC Step, um semáforo de dois tempos. A idéia inicial do software é dos estudantes em eletrônica: Jonas e Marcelo da turma
de 2001/2002 de aprendizagem industrial do SENAI de Santa Cruz do Sul/RS.
Hardware: Monte o circuito ao lado, utilize a placa StepLab. Tome cuidado ao conectar o display a placa StepLab. Utilize a saída de 5V.
Jonas e Marcelo no Laboratório