A diferença entre assembly e arduino
Por: ingridzsilva • 13/6/2015 • Monografia • 411 Palavras (2 Páginas) • 276 Visualizações
Assembly v.s. c++
Qual a diferença entre as duas formas de programação para a criação do programa na qual liga um LED ao pressionar um botão.
C++
// constantes não vai mudar. Eles são usados aqui para
// definir números de pinos :
const int buttonPin = 2; // o número do pino botão
const int ledPin = 13; // o número do pino de LED
// variáveis vai mudar:
int buttonState = 0; // variável para a leitura do estado de botão
void setup() {
// inicializar o pino de LED como uma saída :
pinMode(ledPin, OUTPUT);
// inicializar o pin botão como entrada :
pinMode(buttonPin, INPUT);
}
void loop() {
// ler o estado do botão de valor :
buttonState = digitalRead(buttonPin);
// verificar se o botão está pressionado .
// Se for, o buttonState é alto:
if (buttonState == HIGH) {
// transformar LED ligado:
digitalWrite(ledPin, HIGH);
}
else {
// transformar LED desligado:
digitalWrite(ledPin, LOW);
}
}
Assembly
;Função JB (Condição se)
org 00h ;Aponta para o endereço inicial da memória
;Cria o endereço "start" (label)
start: JB P1.0, LigaLed ;Testa se o botão P1.0 (Normal acionado) esta acionado, então vai para LigaLed
mov P0, #11111110b ;Caso Negativo move 0 para P0.0 acendendo o led 0.
sjmp start ;Pulo Incondicional para o endereço "Start"
LigaLed: mov P0, #0ffh ;Escreve #11111111b na porta 0 (apaga todos os leds)
sjmp start ;Salta para o endereço Start
end ;fim de programa
Assembly C++
1º cria o endereço inicial da memória.
2º Cria a condição referente o valor da porta e define a saída para outra porta.
3º finaliza o programa. 1º
...