Quem, assim como eu, trabalha com TI está acostumado a ver sistemas transformando informações em informações =P, ou seja, dados vem daqui e vão para lá. Isso me deixa um pouco frustrado, pois não construo nada, não vejo nada acontecer, etc. (não me diga que ver um gráfico em um relatório é "ver" as coisas acontecerem em um sistema ;) ) então voltei para os meus primórdios sonhos infantis de construir alguma coisa (na verdade um robô) e para isso invoquei meus conhecimentos de quando tinha 15 anos e estudei na Escola Estadual Técnica Parobé (hoje Centro Tecnológico Estadual Parobé), onde cursei eletrônica.
Junte a vontade de fazer algo "se mexer" a ter um colega com skills do Professor Pardal a muitas conversas sobre automação na hora do almoço e um passeio pela Rua República do Líbano (onde estão as lojas de componentes eletrônicos aqui no Rio de Janeiro) e então terás nas mãos uma protoboard, um punhado de componentes e muita diversão ;)
Comecei leve: um micro controlador da Microchip (16F628A), dois LEDs, um botão e um programa escrito em Assembly. Assembly ao invés de C porque é o mais próximo que podemos chegar de ver os elétrons passando pela placa ;).
A brincadeira é muito simples, mas com ela tive contato com Assembly para micro controladores, o que não conhecia.
Vamos lá, o negócio é ter dois LEDs ligados no PIC, um ficará permanentemente aceso (indicando que o circuito está ligado) e o outro LED ficará desligado até que se pressione o botão, que o ligará.
Eis a simulação do circuito (as imagens podem ser vistas direto no Flickr: http://www.flickr.com/photos/jeanjmichel/sets/72157624156071640/):
Circuito desligado:
Circuito ligado:
Circuito em uso (botão pressionado):
Eis o código Assembly:
;******************************************************************************;
; Processor: PIC16F628 at 4 MHz using internal RC oscillator ;
; Function : Switch on two LEDs. The first LED (D1), conenected to RB0, turns ;
; on when the circuit is energized (power LED), while the second ;
; LED (D2), connected to RA1, just turns on when the push button ;
; (PB1) is pressed. ;
; Hardware : Protoboard ;
; Filename : main.asm ;
; Author : Jean J. Míchel <jeanjmichel-at-gmail.com> ;
; Website : http://www.jeanjmichel.blogspot.com ;
; Credit : Eduardo Bekman ;
;******************************************************************************;
; Wiring diagram ;
; +---v---+ R1 D1 ;
; -<|º 1 |>--/\/\/--|>|--o GND ;
; -<| 6 |>--+ ;
; -<| F |>- +----o¯o----o VDD 5v ;
; -<| 6 |>- | PB1 ;
; D2 R3 -<| 2 |>- | ;
; GND o--|<|--/\/\/--<| 8 |>- +---/\/\/---o GND ;
; -<| A |>- R2 ;
; -<| |>- ;
; +-------+ ;
; ;
;******************************************************************************;
#include <p16f628a.inc>
list p=16f628a
ERRORLEVEL 0, -302;, -224, -302, -305, -207
__config (_INTOSC_OSC_NOCLKOUT & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _BODEN_OFF & _MCLRE_OFF)
#define select_bank0 bcf STATUS,RP0
#define select_bank1 bsf STATUS,RP0
#define BUTTON PORTA,0
#define LED_D1 PORTA,1
#define LED_D2 PORTB,0
org 0x00
goto setup ;Perform the initial settings ;
main btfsc BUTTON ;Monitors the action of the button;
goto turn_on_led ;Turns on LED_D1 ;
goto turn_off_led ;Turns off LED_D1 ;
turn_on_led bsf LED_D1 ;Turns on LED_D1 ;
goto main
turn_off_led bcf LED_D1 ;Turns off LED_D1 ;
goto main
setup select_bank1
movlw B'00000001' ;Defines all pins of the PORTA ;
movwf TRISA ;registrator as output except ;
;pin 0 - push button ;
movlw B'00000000' ;Defines all pins of the PORTB ;
movwf TRISB ;registrator as output ;
bsf PCON, OSCF ;Sets 16F628 to operate at 4MHz ;
select_bank0
movlw 0x07
movwf CMCON ;Turns off the comparator ;
clrf PORTA ;Clears all pins of the PORTA ;
;registrator ;
clrf PORTB ;Clears all pins of the PORTB ;
;registrator ;
bsf LED_D2 ;Turns on LED_D2 - power LED ;
goto main ;Loop forever ;) ;
end
Ainda não consegui monta-lo na protoboard para postar fotos e vídeos do projeto funcionando, mas assim que o fizer eu posto.
terça-feira, junho 01, 2010
Eletrônica - micro controlador Microchip 16F628A + Assembly
Marcadores:
16f628A,
assembly,
eletronic,
eletrônica,
micro controladores,
microchip,
microcontroller,
pic,
protoboard
Assinar:
Postar comentários (Atom)
2 comentários:
Caramba, achei que só eu era louco por essas coisas assim :-D
Ótimo post, verdadeiro espírito de viciado em tecnologia
Depois que eu tiver um tempo vou brincar com o Arduino.
Eu estava fuçando com meus componentes não programáveis, CIs CMOS(4017, 4011) e o 555. Vou arrumar percloreto de ferro e voltar a fazer minhas plaquinhas :)
Aguardando próximo post com as fotos heim
William, pode deixar que eu postarei ;)
Comprei um Arduino no eBay semana passada, estou só esperando o bichin chegar para começar a aloprar com ele e postar os resultados aqui :-D
Como chegou ao blog?
Abraço
Postar um comentário