Desenvolvimento de Sistemas Embarcados - do hardware ao software
-
Upload
rafael-moreira -
Category
Devices & Hardware
-
view
102 -
download
0
Transcript of Desenvolvimento de Sistemas Embarcados - do hardware ao software
![Page 1: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/1.jpg)
Alexandre Zambotti Rodrigues
Gabriel Silva Marcatto
Rafael de Moura Moreira
![Page 2: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/2.jpg)
19/11/2016
![Page 3: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/3.jpg)
19/11/2016
![Page 4: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/4.jpg)
19/11/2016
![Page 5: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/5.jpg)
19/11/2016
![Page 6: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/6.jpg)
19/11/2016
![Page 7: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/7.jpg)
19/11/2016
![Page 8: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/8.jpg)
19/11/2016
![Page 9: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/9.jpg)
19/11/2016
![Page 10: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/10.jpg)
19/11/2016
![Page 11: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/11.jpg)
19/11/2016
![Page 12: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/12.jpg)
19/11/2016
![Page 13: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/13.jpg)
19/11/2016
![Page 14: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/14.jpg)
19/11/2016
![Page 15: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/15.jpg)
19/11/2016
![Page 16: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/16.jpg)
19/11/2016
![Page 17: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/17.jpg)
19/11/2016
![Page 18: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/18.jpg)
19/11/2016
![Page 19: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/19.jpg)
19/11/2016
![Page 20: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/20.jpg)
19/11/2016
![Page 21: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/21.jpg)
19/11/2016
![Page 22: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/22.jpg)
19/11/2016
![Page 23: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/23.jpg)
19/11/2016
![Page 24: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/24.jpg)
19/11/2016
![Page 25: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/25.jpg)
19/11/2016
![Page 26: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/26.jpg)
19/11/2016
![Page 27: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/27.jpg)
19/11/2016
![Page 28: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/28.jpg)
19/11/2016
![Page 29: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/29.jpg)
19/11/2016
![Page 30: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/30.jpg)
19/11/2016
![Page 31: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/31.jpg)
19/11/2016
while(a==a); //Não é um loop infinito!
![Page 32: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/32.jpg)
19/11/2016
![Page 33: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/33.jpg)
19/11/2016
![Page 34: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/34.jpg)
19/11/2016
![Page 35: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/35.jpg)
19/11/2016
![Page 36: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/36.jpg)
19/11/2016
![Page 37: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/37.jpg)
19/11/2016
![Page 38: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/38.jpg)
19/11/2016
void main (void){char *ptr;//pointing to the port Dptr = 0xF83;//changing all outputs to high*ptr = 0xFF;
}
![Page 39: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/39.jpg)
19/11/2016
#define PORTD (*(volatile __near unsigned char*)0xF83)#define TRISC (*(volatile __near unsigned char*)0xF94)
//this is not an infinite loop!while( PORTD == PORTD);
![Page 40: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/40.jpg)
19/11/2016
char mask;mask = 1 << 2;arg = arg | mask;
//one linearg = arg | (1<<bit);
//using define#define BitSet(arg,bit) ((arg) |= (1<<bit))#define BitClr(arg,bit) ((arg) &= ~(1<<bit))#define BitFlp(arg,bit) ((arg) ^= (1<<bit))#define BitTst(arg,bit) ((arg) & (1<<bit))
![Page 41: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/41.jpg)
19/11/2016
![Page 42: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/42.jpg)
19/11/2016
![Page 43: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/43.jpg)
19/11/2016
![Page 44: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/44.jpg)
19/11/2016
![Page 45: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/45.jpg)
19/11/2016
#define PORTD (*(volatile __near unsigned char*)0xF83)#define TRISD (*(volatile __near unsigned char*)0xF95)
void main(void) {TRISD = 0x00;for(;;){
PORTD ^= 0xFF;//delay();
}}
![Page 46: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/46.jpg)
19/11/2016
![Page 47: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/47.jpg)
19/11/2016
![Page 48: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/48.jpg)
19/11/2016
![Page 49: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/49.jpg)
19/11/2016
#define TRISA (*(volatile __near unsigned char*)0xF92)#define ADCON2 (*(volatile __near unsigned char*)0xFC0)#define ADCON1 (*(volatile __near unsigned char*)0xFC1)#define ADCON0 (*(volatile __near unsigned char*)0xFC2)#define ADRESL (*(volatile __near unsigned char*)0xFC3)#define ADRESH (*(volatile __near unsigned char*)0xFC4)
void adInit(void) {BitSet(TRISA, 0); //pin setupADCON0 = 0b00000001; //channel selectADCON1 = 0b00001110; //ref = sourceADCON2 = 0b10101010; //t_conv = 12 TAD
}
![Page 50: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/50.jpg)
19/11/2016
unsigned int adRead(void){unsigned int ADvalue;BitSet(ADCON0,1); //start conversionwhile(BitTst(ADCON0,1)); //waitADvalue = ADRESH; //read resultADvalue <<= 8;ADvalue += ADRESL;return ADvalue;
}
![Page 51: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/51.jpg)
19/11/2016
void main(void) {unsigned int i;unsigned int ad;TRISD = 0x00;adInit();for (;;) {
ad = adRead();PORTD = 0xff;for (i = 0; i < ad;
i++);PORTD = 0x00;for (i = ad; i <
1024; i++);}
}
![Page 52: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/52.jpg)
19/11/2016
![Page 53: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/53.jpg)
19/11/2016
![Page 54: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/54.jpg)
19/11/2016
![Page 55: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/55.jpg)
19/11/2016
#define RS 6#define EN 7void delayMicroseconds(int ms) {
int i;for (; ms > 0; ms--) {
for (i = 0; i < 30; i++);}
}void pulseEnablePin() {
BitClr(PORTC, EN);delayMicroseconds(1);// send a pulse to enableBitSet(PORTC, EN);delayMicroseconds(1);BitClr(PORTC, EN);
}
![Page 56: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/56.jpg)
19/11/2016
void pushNibble(int value, int rs) {PORTD = value;if (rs) {
BitSet(PORTC, RS);} else {
BitClr(PORTC, RS);}pulseEnablePin();
}
void pushByte(int value, int rs) {int val_lower = value & 0x0F;int val_upper = value >> 4;pushNibble(val_upper, rs);pushNibble(val_lower, rs);
}
![Page 57: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/57.jpg)
19/11/2016
void lcdCommand(int value) {pushByte(value, 0);delayMicroseconds(40);
}
void lcdChar(int value) {pushByte(value, 1);delayMicroseconds(2);
}
![Page 58: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/58.jpg)
19/11/2016
void lcdInit() {BitClr(TRISC, EN);BitClr(TRISC, RS);TRISD = 0x0f;delayMicroseconds(50);
commandWriteNibble(0x03);delayMicroseconds(5);commandWriteNibble(0x03);delayMicroseconds(100);commandWriteNibble(0x03);delayMicroseconds(5);commandWriteNibble(0x02);delayMicroseconds(10);//display configlcdCommand(0x28); //4bits, 2 linhas, 5x8lcdCommand(0x06); //incremental modelcdCommand(0x0c); //display on, cursor and blink
offlcdCommand(0x03); //clean internal variableslcdCommand(0x80); //initial positionlcdCommand(0x01); //clear displaydelayMicroseconds(2);
}
![Page 59: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/59.jpg)
19/11/2016
![Page 60: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/60.jpg)
19/11/2016
![Page 61: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/61.jpg)
19/11/2016
void lcdBsidesLogo(void) {int i;unsigned char bsides[] = {
0b00111, 0b00100, 0b00100, 0b00100, 0b00111, 0b00100, 0b00100, 0b00100, 0b10000, 0b01001, 0b01001, 0b01011, 0b10010, 0b01010, 0b01010, 0b11011, 0b01111, 0b11001, 0b00000, 0b00110, 0b00110, 0b00000, 0b00000, 0b00001, 0b00000, 0b11000, 0b01000, 0b01100, 0b00100, 0b00100, 0b00000, 0b11100, 0b00111, 0b00000, 0b00100, 0b00100, 0b00110, 0b00010, 0b00011, 0b00000,0b10011, 0b00000, 0b00000, 0b01100, 0b01100, 0b00000, 0b10011, 0b11110, 0b10011, 0b10010, 0b11011, 0b01001, 0b11000, 0b10000, 0b10000, 0b00011, 0b00000, 0b00000, 0b00000, 0b11000, 0b01100, 0b00100, 0b01100, 0b11000, };
lcdCommand(0x40);for (i = 0; i < 8 * 6; i++) {
lcdChar(~bsides[i]);}
}
![Page 62: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/62.jpg)
19/11/2016
![Page 63: Desenvolvimento de Sistemas Embarcados - do hardware ao software](https://reader031.fdocuments.us/reader031/viewer/2022030313/58ecda651a28abbe5a8b4641/html5/thumbnails/63.jpg)
19/11/2016