Capitulo 2 1-) Escreva um programa para acionar o led conectado no pino 0 da porta B da figura 9 de acordo com a seguinte lógica: a-) Pisca 4 vezes o led a uma freq!ncia de 1 "z# $-) Espera % segundos# c-) Pisca & vezes o led a uma freq!ncia de ' "z# d-) Espera ( segundos# e-) oltar para o item a* +B,: + tempo ligado igual ao tempo desligado* .omente cada lin/a do programa* '-) aa o desen/o de um microcontrolador# alimentado com uma tens2o de % # que tem um led ligado no pino 0 da porta B e um led ligado no pino 0 da porta 3* +s leds devem ligar quando tiver nvel lógico 1 no referido pino* (-) Escreva um programa para fazer com que os leds do e5erccio anterior pisquem a uma freq!ncia de ' "z cada um* + tempo que os leds ficam ligados deve ser igual ao tempo que ficam desligados e quando um led estiver ligado o outro deve estar desligado* .omente cada lin/a do programa* 4-) Escreva um programa para acionar os leds do circuito do e5erccio ' de acordo com a seguinte lógica* a-) Pisca ( vezes o led da porta 3 a uma freq!ncia de 16( "z* $-) Espera 1 segundo* c-) Pisca ( vezes o led da porta B a uma freq!ncia de 16( "z* d-) Espera 1 segundo* e-) Pisca % vezes os dois leds simultaneamente a uma freq!ncia de 4 "z* f-) Espera ' segundos* g-) olta para o item a* +B,: + tempo ligado igual ao tempo desligado* .omente cada lin/a do programa* %-) Escreva um programa para acionar os leds do circuito do e5erccio ' de acordo com a seguinte lógica* a-) Pisca 4 vezes alternadamente os leds das portas 3 e B 7quando um est8 ligado o outro est8 desligado) a uma freq!ncia de 0#' "z* $-) Espera 1 segundo* c-) Pisca ( vezes simultaneamente os leds das portas 3 e B a uma freq!ncia de ( "z* d-) Espera ( segundo* e-) olta para o item a* +B,: + tempo ligado igual ao tempo desligado* .omente cada lin/a do programa* &-) Em código orse o sinal ,+, produzido atravs de ( $ips curtos# ( $ips longos e ( $ips curtos novamente* aa um programa para reproduzir em um $uzzer; conectado no pino 0 da porta B o sinal ,+,* + tempo de dura2o dos $ips curtos deve ser de 100 ms e os $ips longos '00 ms* + tempo ligado deve ser igual ao tempo desligado* + tempo entre cada sequ!ncia de ( $ips deve ser de 400 ms* Entre 1 ,+, e outro# esperar 1#% s* .omente cada lin/a do programa*
1) void main()
{ trisb = 0; while(1) { portb = 1;
|
delay_ms(500);| portb = 0;
4X
|
delay_ms(500);|
delay_ms(4500);
portb = 1; delay_ms(250); portb = 0; delay_ms(250);
delay_ms(2!50);
" "
X
3)
void main() { trisb=0; trisa=0; while(1) { portb=0; delay_ms(250); porta=1; delay_ms(250); portb=1; delay_ms(250); porta=0; delay_ms(250); " "
4)
void main() { trisb=0; trisa=0; while(1) { #orta$%0 = 1; delay_ms(1500);
&X
porta$%0 = 0; delay_ms(1500); delay_ms(1000); #ortb$%0 = 1; delay_ms(1500);
&X
portb$%0 = 0; delay_ms(1500); delay_ms(1000); porta$%0 = 1; portb$%0 = 1; delay_ms(125); porta$%0 = 0; portb$%0 = 0; delay_ms(125); delay_ms(&000); " "
5'
5)
void main() { trisb=0; trisa=0; while(1) { porta=1; portb=0; delay_ms(2500);
4X
porta=0; portb=1; delay_ms(2500);
delay_ms(1000);
porta=1; portb=1; delay_ms(1); porta=0; portb=0; delay_ms(1);
delay_ms(&000); "
&X
"
6)
void main() { trisb=0; while(1) { portb=1; delay_ms(100);
&X
portb=0; delay_ms(100);
delay_ms(400);
portb=1; delay_ms(200);
&X
portb=0; delay_ms(200);
delay_ms(400);
portb=1; delay_ms(100);
&X
portb=0; delay_ms(100);
delay_ms(1500); " "
Capitulo 4 1%-)
a-se comandar a liga2o dos leds conectados nos pinos da porta B da figura 9 atravs da c/ave colocada no pino 0 da porta 3* aa um programa que coloque no pino 0 da porta B# durante um segundo o mesmo nvel lógico do pino 0 da porta 3# espera 1 segundo e coloca no pino 1 da porta B o mesmo nvel lógico do pino 0 da porta 3# espera mais 1 segundo e repete para o pino ' da porta B e assim sucessivamente# depois volta para o pino 0 da porta B* 1?-)
sequ!ncia: liga os leds 0 e ?# espera 1s# desliga os leds 0 e ? e liga os leds 1 e espera 1s# desliga os leds 1 e & e liga os leds ' e %# espera 1s# desliga os leds ' e % e liga os leds ( e 4# espera 1s# desliga os leds ( e 4 e liga os leds ' e %# espera 1s# desliga os leds ' e % e liga os leds 1 e espera 1s# desliga os leds 1 e & e reinicia o ciclo* '1-) aa um programa para ligar os @ leds conectados na porta B de um microcontolador PA. de forma seqencial# ou se>a# liga o led 0# espera 1s# desliga o led 0 e liga o led 1# espera 1s# desliga o led 1 e liga o led ' e assim por diante at o led ?* ''-) aa um programa para ligar os @ leds conectados na porta B de um microcontolador PA. de forma seqencial# ou se>a# liga o led ?# espera 1s# desliga o led ? e liga o led espera 1s# desliga o led & e liga o led % e assim por diante at o led ?* igura 10 '(-) .om$ine os programas dos e5erccios anteriores para fazer um seqencial que ligue os leds 0 a ? e depois de & a 1# novamente de 0 a ? e assim por diante* .ada led deve ficar ligado durante 1 segundo* '4-)
trisb$%0 = 0; trisb$%1 = 0; trisb$%2 = 0; trisb$%& = 0; while (1) {
portb$%0 = 1; delay_ms(1000); portb$%0 = 0; portb$%1 = 1; delay_ms(1000); portb$%1 = 0; portb$%2 = 1; delay_ms(1000); portb$%2 = 0; portb$%& = 1; delay_ms(1000); portb$%& = 0; " "
b) void main() {
trisb = 0; while(1) { portb = 1; delay_ms(1000);
portb = 2; delay_ms(1000); portb = 4; delay_ms(1000); portb = ; delay_ms(1000); " "
15) a)
void main() { trisb$%0 = 0; trisb$%1 = 0;
trisb$%2 = 0; trisb$%& = 0; while(1) { portb$%0 = 1; portb$%2 = 1; delay_ms(250); portb$%0 = 0; portb$%2 = 0; delay_ms(250); portb$%0 = 1; portb$%2 = 1; delay_ms(250); portb$%0 = 0; portb$%2 = 0; delay_ms(250); portb$%0 = 1; portb$%2 = 1; delay_ms(250); portb$%0 = 0; portb$%2 = 0; delay_ms(250); delay_ms(&000); portb$%1 = 1; portb$%& = 0; delay_ms(500); portb$%1 = 0; portb$%& = 1; delay_ms(500); portb$%1 = 1; portb$%& = 0; delay_ms(500); portb$%1 = 0; portb$%& = 1; delay_ms(500); portb$%1 = 1; portb$%& = 0; delay_ms(500); portb$%1 = 0; portb$%& = 1; delay_ms(500); portb$%1 = 1; portb$%& = 0; delay_ms(500); portb$%1 = 0; portb$%& = 1; delay_ms(500); portb$%& = 0; delay_ms(2000); " "
b) void main() {
trisb = 0; while (1) { portb = 5; delay_ms(250); portb = 0; delay_ms(250); portb = 5; delay_ms(250); portb = 0; delay_ms(250); portb = 5; delay_ms(250); portb = 0; delay_ms(250); delay_ms(&000); portb = 2; delay_ms(500); portb = ; delay_ms(500); portb = 2; delay_ms(500); portb = ; delay_ms(500); portb = 2; delay_ms(500); portb = ; delay_ms(500); portb = 2; delay_ms(500); portb = ; delay_ms(500); portb = 0; delay_ms(2000); "" 16)
void main() { trisa$%0 = 1; trisb = 0; while (1){ portb$%0 = porta$%0; delay_ms(1000); portb$%1 = porta$%0; delay_ms(1000); portb$%2 = porta$%0; delay_ms(1000); portb$%& = porta$%0; delay_ms(1000); "" 17)
void main() { trisa = 15;
trisb = 0; while (1){ portb$%0 = porta$%0; delay_ms(1000); portb$%0 = porta$%1; delay_ms(1000); portb$%0 = porta$%2; delay_ms(1000); portb$%0 = porta$%&; delay_ms(1000); "" 18)
void main() { trisb = 0; trisa = 15; while(1) { portb$%& = porta$%0; delay_ms(1000); portb$%2 = porta$%1; delay_ms(1000); portb$%1 = porta$%2; delay_ms(1000); portb$%0 = porta$%&; delay_ms(1000); " " 20)
void main() { trisb = 0; while (1) { portb$%0 = 1; portb$%! = 1; delay_ms(1000); portb$%0 = 0; portb$%! = 0; portb$%1 = 1; portb$% = 1; delay_ms(1000); portb$%1 = 0; portb$% = 0; portb$%2 = 1; portb$%5 = 1; delay_ms(1000); portb$%2 = 0; portb$%5 = 0; portb$%& = 1; portb$%4 = 1; delay_ms(1000); portb$%& = 0; portb$%4 = 0; portb$%2 = 1; portb$%5 = 1; delay_ms(1000); portb$%2 = 0; portb$%5 = 0;
portb$%1 = 1; portb$% = 1; delay_ms(1000); portb$%1 = 0; portb$% = 0; " "
21)
void main() { trisb = 0; while (1) { portb$%0 = 1; delay_ms(500); portb$%0 = 0; delay_ms(500); portb$%1 = 1; delay_ms(500); portb$%1 = 0; delay_ms(500); portb$%2 = 1; delay_ms(500); portb$%2 = 0; delay_ms(500); portb$%& = 1; delay_ms (500); portb$%& = 0; delay_ms(500); portb$%4 = 1; delay_ms (500); portb$%4 = 0; delay_ms (500); portb$%5 = 1; delay_ms (500); portb$%5 = 0; delay_ms (500); portb$% = 1; delay_ms (500); portb$% = 0; delay_ms(500); portb$%! = 1;
delay_ms (500); portb$%! = 0; delay_ms (500); " "
22)
trisb=0; while (1) { portb$%!=1; delay_ms (500); portb$%!=0; delay_ms (500); portb$%=1; delay_ms (500); portb$%=0; delay_ms (500); portb$%5=1; delay_ms (500); portb$%5=0; delay_ms (500); portb$%4=1; delay_ms (500); portb$%4=0; delay_ms (500); portb$%&=1; delay_ms (500); portb$%&=0; delay_ms (500); portb$%2=1; delay_ms (500);
portb$%2=0; delay_ms (500); portb$%1=1; delay_ms (500); portb$%1=0; delay_ms (500); portb$%0=1; delay_ms (500); portb$%0=0; delay_ms (500); " "
23) void main() {
trisb = 0; while(1) { portb$%0=1; delay_ms(500); portb$%0=0; delay_ms(500); portb$%1=1; delay_ms(500); portb$%1=0; delay_ms(500); portb$%2=1; delay_ms(500); portb$%2=0; delay_ms(500); portb$%&=1; delay_ms(500); portb$%&=0;
delay_ms(500); portb$%4=1; delay_ms(500); portb$%4=0; delay_ms(500); portb$%5=1; delay_ms(500); portb$%5=0; delay_ms(500); portb$%=1; delay_ms(500); portb$%=0; delay_ms(500); portb$%!=1; delay_ms(500); portb$%!=0; delay_ms(500); portb$%=1; delay_ms(500); portb$%=0; delay_ms(500); portb$%5=1; delay_ms(500); portb$%5=0; delay_ms(500); portb$%4=1; delay_ms(500); portb$%4=0; delay_ms(500); portb$%&=1; delay_ms(500); portb$%&=0; delay_ms(500); portb$%2=1; delay_ms(500); portb$%2=0; delay_ms(500); portb$%1=1; delay_ms(500); portb$%1=0; delay_ms(500); " "
24)
void main() { trisb = 0; while(1) { portb = 0b11101110; delay_ms (1000); portb = 0b00101000;
delay_ms (1000); portb = 0b11001101; delay_ms (1000); " "
25)
.apitulo % 1-) Escreva um programa para ligar o led da figura 1 se pelo menos uma das duas c/aves for pressionada* '-) Escreva um programa para ligar o led da figura 1 se apenas uma das c/aves for pressionada* ,e nen/uma c/ave for pressionada ou# se as duas c/aves forem pressionadas simultaneamente# o led deve ser desligado* .arregando-se o microcontrolador da figura 1 com este programa# o circuito funcionar8 como uma c/ave paralela* (-) Escreva um programa# utilizando o operador lógico D+ 7F)# para ligar o led da figura 1 se a c/ave 0 estiver a$erta e deslig8-lo se a c/ave estiver fec/ada* 4-) Escreva um programa para ligar o led da figura 1 somente se as duas c/aves estiverem a$ertas* %-) Escreva um programa para desligar o led da figura 1 se apenas uma das c/aves estiver fec/ada* &-) Escreva um programa para piscar o led da figura 1 a uma frequ!ncia de ' "z# com tempo ligado igual ao tempo desligado# utilizando o operador lógico D+ 7F)* ?-) .onsidere que foram colocadas mais duas c/aves no circuito da figura 1# uma no pino ' e outra no pino ( da porta 3* aa um programa para ligar o led 0 se as c/aves 0 e 1 estiverem fec/adas ou as c/aves ' e ( estiverem fec/adas* @-) Em rela2o ao circuito do e5erccio anterior# faa um programa para ligar o led 0 se a c/ave 0 estiver fec/ada ou as c/aves 1 e ' estiverem fec/adas ou a c/ave ( estiver fec/ada* 9-) Em rela2o ao circuito do e5erccio ?# faa um programa para ligar o led 0 se a c/ave 0 ou a c/ave 1estiver fec/ada e a c/ave ' ou a c/ave ( estiver fec/ada* D2o se esquea que o operador 3D< tem prioridade em rela2o ao operador +G*
10-) Em rela2o ao circuito do e5erccio ?# faa um programa para ligar o led 0 se as c/aves 0 e ' estiverem a$ertas e as c/aves 1 e ( estiverem fec/adas* ,ugest2o: .onstrua a ta$ela verdade e utilize o mtodo soma de produtos* 11-) Gefaa o e5emplo ( invertendo o sentido de liga2o dos leds# ou se>a# primeiro liga o led ?# depois o & e assim por diante* =tilize o operador HH 7deslocamento I direita)* 1'-) .om$ine os programas do e5emplo ( e do e5erccio anterior e faa um sequencial para ligar os leds 0 a ? e depois de & a 1# novamente de 0 a ?# e assim por diante* 1)
void main() { trisb$%0 = 0; trisa = ; portb = 0; mon = !; while(1) { portb$%0 = porta$%2|porta$%1; " "
2)
void main() { portb = 0; trisa = ; trisb$%0 = 0; mon = !; while (1) { portb$%0 = porta$%1*porta$%2; " "
3)
void main() { trisb$%0 = 0; trisa = ; portb = 0; mon = !; while(1) { portb$%0 = +porta$%1 , porta$%2; "
"
4)
void main() { trisb$%0 = 0; trisa = ; portb = 0; mon = !; while(1) { portb$%0 = +porta$%1 , +porta$%2; " " 5)
void main() { trisb$%0 = 0; trisa = ; portb = 0; mon = !; while(1) { portb$%0 = +(porta$%1 * porta$%2); " " 6)
void main() { trisb$%0 = 0; trisa = ; portb = 0; mon = !; while(1) { portb$%0 = porta$%1; delay_ms(500); portb$%0 = +porta$%1; delay_ms(500); " "
7)
void main() { trisb$%0 = 0; trisa = 0b11110; portb = 0; mon = !; while(1) { portb$%0 = +(porta$%1,porta$%2) | +(porta$%&,porta$%4) " " 8)
void main() { Trisb.f0 = 0; Trisa = 0b11110; Cmcon = 7; Wil! (1) "ortb = 0; { "ortb.f0 = (porta.f0) # (porta.f1 $ porta.f2) # (porta.f%) && 9) 'oid main() { Trisb.f0 = 0; Trisa = 1; Cmcon = 7; Wil! (1) "ortb = 0; { "ortb.f0 = (porta.f0 # porta.f1) $ (porta.f2 # porta.f%) && 10) 'oid main() { Trisb.f0 = 0; Trisa = 1; Cmcon = 7; "ortb = 0; Wil! (1) {
"ortb = (porta.f0 $ porta.f2) $ (porta.f1 $ porta.f%)&& 11) 'oid main() { Trisb = 0; "ortb = 0; Wil! (1) { "ortb = 0b10000000; *!la+,ms(00); "ortb = portb--1 *!la+,ms(00) && co
/