Академический Документы
Профессиональный Документы
Культура Документы
MOSSOR-RN
2017
EXERCCIO 1: Em uma caixa dgua temos dois sensores que verificam o valor mximo e
mnimo (chaves P1_4 e P1_5). Quando o nvel de gua fica abaixo do valor mnimo, acionada
uma bomba (P1_0) que comea a encher a caixa. Quando o nvel da gua chega ao valor mximo,
esta bomba desligada. Faa um programa que simule este comportamento. Caso o sensor de nvel
baixo estiver 0 e o de nvel alto estiver 1, pisque todos os LEDS para indicar que houve falha no
sistema.
Linha 1
Linha 2
Define a porta P1_4 como o sensor de baixo nvel, definido como sensormin no programa;
Linha 3
Define a porta P1_5 como o sensor de alto nvel, definido como sensormax no programa;
Linha 4
Linha 6
Linha 7
Determinam-se as variveis j e i como inteiras e sem sinal, unsigned int, com 8 bits e
variando de 0 a 255
Linha 8
Linha 9
Inicia-se a segunda funo for, como segundo contador da sub-rotina de atraso, e ao chegar
ao valor 1275, termina-se a sub-rotina;
Linha 11
Linha 13
Inicia-se a funo for, como lao infinito, que far o programa rodar sempre dentro do lao;
Linha 15
Linha 16
Linha 18
Linha 19
Linha 21
Linha 22
Caso a condio seja satisfeita permanece ativo ou ativa-se o motor bomba, caso contrario
salta-se para a prxima instruo, while, na linha 24;
Linha 24
Linha 25
Caso a condio seja satisfeita desativa-se o motor bomba, caso contrario salta-se para a
prxima instruo, while, na linha 27;
Linha 27
Caso a condio seja satisfeita, desativa-se o motor-bomba e ativam-se as porta P1_1, P1_2
e P1_3, led's;
Linha 32
Linha 34
Linha 1
Define a porta P1_4 como uma chave denominado como dip1 no programa;
Linha 3
Define a porta P1_5 como uma chave denominado como dip2 no programa;
Linhas 4, 5 e 6
Define as portas P1_0, P1_1 e P1_2 como LED1, LED2, LED3 e LED4, led's no meio
fsico;
Linha 9
Linha 10
Determinam-se o valor inicial da porta P1, P1_0 porta P1_3, zerando-a, atravs do valor
0x00;
Linhas 11 e 12
Determinam-se o valor inicial das portas, chaves, P1_4 e P1_5, dip1 e dip2, setando-as pra
1;
Linha 17
Inicia-se a funo for, como lao infinito, que far o programa rodar sempre dentro do lao;
Linha 19
Comparam-se as posies das chaves dip1 e dip2 atravs de uma sequncia de funes if,
iniciando-se na linha 19, na qual compara-se se uma das chaves esto ativada;
Linhas 20 e 21
Caso a condio do if da linha17 seja satisfeita, ativam-se o LED1 e o LED4, nas linha 20 e
21, respectivamente, caso contrario salta-se para a funo eles na linha 23;
Linha 23
A funo else executa uma tarefa no caso da condio da funo if da linha 17 no seja
satisfeita;
Linhas 24 e 25
Linha 27
Linha 28
Caso a condio do if da linha 27 seja satisfeita, ativa-se o LED2, caso contrario salta-se
para a funo eles na linha 29;
Linha 29
A funo else executa uma tarefa no caso da condio da funo if da linha 27 no seja
satisfeita;
Linha 30
Linha 31
Compara se uma das duas ou as duas chaves, dip1 e dip2, esto ativada;
Linha 32
Caso a condio do if da linha 31 seja satisfeita, desativa-se o LED3, caso contrario salta-se
para a funo eles na linha 33;
Linha 33
A funo else executa uma tarefa no caso da condio funo if da linha 31 no seja
satisfeita;
Linha 34
A funo else executa a ativao do LED3. Aps isso retorna-se ao lao infinito for na linha
17.
EXERCCIO 3: Faa um programa que acione o BZ quando a DIP1 = 1.
Linha 1
Linha 2
Linha 3
Define a porta P1_4 como uma chave denominado como dip1 no programa;
Linha 5
Linha 7
Linhas 8
Linha 9
Inicia-se a funo for, como lao infinito, que far o programa rodar sempre dentro do lao;
Linha 11
Linhas 12
Caso a condio do if da linha11 seja satisfeita, desativa-se o BZ, caso contrario salta-se
para a funo eles na linha 13;
Linha 13
A funo else executa uma tarefa no caso da condio da funo if da linha 11 no seja
satisfeita;
Linha 14
A funo else executa a ativao do BZ. Aps isso retorna-se ao lao infinito for na linha 10.
Por impossibilidade tcnica o BZ, buzzer, foi substitudo por um led.
EXERCCIO 3: Faa um programa que faz os LEDS acenderem e apagarem com velocidade
controlada pela DIPS segundo tabela dada a seguir:
Linha 1
Linhas 2,3 e 4
Define as portas P1_4, P1_5 e P1_6 como as chaves denominadas como dip1,dip2 e dip3,
respectivamente, no programa;
Linhas 5, 6, 7 e 8
Define as portas P1_0, P1_1, P1_2 e P1_3 como LED1, LED2, LED3 e LED4, led's no meio
fsico;
Linha 10
Linha 11
Determinam-se as variveis j e i como inteiras e sem sinal, unsigned int, com 8 bits e
variando de 0 a 255
Linha 12
Linha 13
Inicia-se a segunda funo for, como segundo contador da sub-rotina de atraso, e ao chegar
ao valor 1275, termina-se a sub-rotina;
Linha 16
Linha 18
Determinam-se o valor inicial da porta P1, P1_0 porta P1_3, zerando-a, atravs do valor
0x00;
Linhas 19, 20 e 21
Determinam-se o valor inicial das portas, chaves, P1_4, P1_5 e P1_6, dip1, dip2 e dip3,
setando-as pra 1;
Linha 22, 23, 24 e 25
Linha 27
Inicia-se a funo for, como lao infinito, que far o programa rodar sempre dentro do lao;
Linha 28
Comparam-se as posies das chaves dip1, dip2 e dip3 atravs de uma sequncia de funes
if, iniciando-se na linha 29, na qual compara se as chaves esto desativadas;
Caso a condio do if da linha 28 seja satisfeita, ativam-se os LED1, LED2, LED3 e LED4,
nas linha 29,30,31 e 32;
Linha 33
Linha 38
Chama-se a funo MSDelay, com tempo de 100 ms, e enquanto a condio da linha 28
estiver satisfeita os led's acendero e apagaro com um atraso de 100 ms;
Linha 40
Caso a condio do if da linha 40 seja satisfeita, ativam-se os LED1, LED2, LED3 e LED4,
nas linha 41, 42, 43 e 44;
Linha 45
Linha 50
Chama-se a funo MSDelay, com tempo de 200 ms, e enquanto a condio da linha 40
estiver satisfeita os led's acendero e apagaro com um atraso de 200 ms;
Linha 52
Caso a condio do if da linha 52 seja satisfeita, ativam-se os LED1, LED2, LED3 e LED4,
nas linha 53, 54, 55 e 56;
Linha 57
Aps o termino da sub-rotina MSDelay da linha 52, desativam-se os LED1, LED2, LED3 e
LED4, nas linha 58, 59, 60 e 61;
Linha 62
Chama-se a funo MSDelay, com tempo de 300 ms, e enquanto a condio da linha 52
estiver satisfeita os led's acendero e apagaro com um atraso de 300 ms;
Linha 64
Caso a condio do if da linha 64 seja satisfeita, ativam-se os LED1, LED2, LED3 e LED4,
nas linha 65, 66, 67 e 68;
Linha 69
Aps o termino da sub-rotina MSDelay da linha 69, desativam-se os LED1, LED2, LED3 e
LED4, nas linha 70, 71, 72 e 73;
Linha 74
Chama-se a funo MSDelay, com tempo de 400 ms, e enquanto a condio da linha 64
estiver satisfeita os led's acendero e apagaro com um atraso de 400 ms;
Linha 76
Caso a condio do if da linha 76 seja satisfeita, ativam-se os LED1, LED2, LED3 e LED4,
nas linha 77, 78, 79 e 80;
Linha 81
Aps o termino da sub-rotina MSDelay da linha 81, desativam-se os LED1, LED2, LED3 e
LED4, nas linha 82, 83, 84 e 85;
Linha 86
Chama-se a funo MSDelay, com tempo de 500 ms, e enquanto a condio da linha 76
estiver satisfeita os led's acendero e apagaro com um atraso de 500 ms;
Linha 88
Caso a condio do if da linha 88 seja satisfeita, ativam-se os LED1, LED2, LED3 e LED4,
nas linha 89, 90, 91 e 92;
Linha 93
Aps o termino da sub-rotina MSDelay da linha 88, desativam-se os LED1, LED2, LED3 e
LED4, nas linha 94, 95, 96 e 97;
Linha 98
Chama-se a funo MSDelay, com tempo de 600 ms, e enquanto a condio da linha 88
estiver satisfeita os led's acendero e apagaro com um atraso de 600 ms;
Linha 100
Caso a condio do if da linha 100 seja satisfeita, ativam-se os LED1, LED2, LED3 e
LED4, nas linha 101, 102, 103 e 104;
Linha 105
Aps o termino da sub-rotina MSDelay da linha 105, desativam-se os LED1, LED2, LED3 e
LED4, nas linha 106, 107, 108 e 109;
Linha 110
Chama-se a funo MSDelay, com tempo de 700 ms, e enquanto a condio da linha 100
estiver satisfeita os led's acendero e apagaro com um atraso de 700 ms;
Linha 112
Caso a condio do if da linha 112 seja satisfeita, ativam-se os LED1, LED2, LED3 e LED4,
nas linha 113, 114, 115 e 116;
Linha 117
Aps o termino da sub-rotina MSDelay da linha 117, desativam-se os LED1, LED2, LED3 e
LED4, nas linha 118, 119, 120 e 121;
Linha 122
Chama-se a funo MSDelay, com tempo de 800 ms, e enquanto a condio da linha 112
estiver satisfeita os led's acendero e apagaro com um atraso de 800 ms. Aps isso retorna-se ao
inicio do lao infinito for na linha 17.
Linha 2
Linha 3
Define as portas P2_1 como PB, uma chave, que dar o pulso necessrio;
Linha 5
Determinam-se as variveis j e i como inteiras e sem sinal, unsigned int, com 8 bits e
variando de 0 a 255
Linha 7
Linha 8
Inicia-se a segunda funo for, como segundo contador da sub-rotina de atraso, e ao chegar
ao valor 1275, termina-se a sub-rotina;
Linha 10
Linha 12
Determinam-se as variveis i e CONT como inteiras e sem sinal, unsigned int, com 8 bits e
variando de 0 a 255
Linhas 13
Linha 14
Linha 15
Utiliza-se a funo while para o pulso de PB, e enquanto o valor for 1 permanece-se nesse
lao, caso contrario salta-se para a prxima linha;
Linha 16
Linhas 17
Utiliza-se a funo while para o pulso de PB, e enquanto o valor for 0 permanece-se nesse
lao, caso contrario salta-se para a prxima linha;
Linha 18
Linha 19
Linha 20
A varivel LEDS recebe o valor da varivel CONT, atualiza-se o valor de LEDS acendendo-
os conforme o valor de CONT;
Linha 21
Linha 22
Caso a condio do if da linha 21 seja satisfeita, entra-se em um lao for, caso contrario
salta-se para a funo while na linha 15;
Linha 24
Linha 25
Zeram-se os led's;
Linha 26
Chama-se a funo MSDelay, com tempo de 1 ms, aps salta-se para a prxima linha;
Linha 27
Linha 28
Linha 29
Chama-se a funo MSDelay, com tempo de 250 ms, aps salta-se para a prxima linha.
Repete-se esse lao for cinco vezes, aps isso atualizam-se os valores das variveis CONT e LEDS
e salta-se para a linha 15 reiniciando o programa.