Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Knowledge and sense of PIC microcontroller family. (a) Why PIC 18 is called 8 bi

ID: 1846140 • Letter: K

Question

Knowledge and sense of PIC microcontroller family.

(a)   Why PIC 18 is called 8 bits microcontroller?

(b)  Is (are) any other PIC microcontroller of 8 bits?

(c)   Are there PIC microcontrollers of 16 bits, 32 bits?

(d)  Are there PIC microcontrollers of other bits combination such as 4 bits, 12 bits?

(e)   PIC18F458 in the book consists of 40 pins. Does this mean all PIC18 family microcontrollers are of 40 pins?

      (f)   Have a delay of between 100 ms and 200 ms (it can be anything like a 3 digits 1xx ms).

      (g)  Add up three integers a, b, and c each between decimal 15 and 30 (you specify a, b and c yourself,

           hex or in decimal as you like).

Explanation / Answer

(a) Why PIC 18 is called 8 bits microcontroller?

All the data buses and in the controller are 8 bit, hence PIC18 is 8 bit

(b) Is (are) any other PIC microcontroller of 8 bits?

Yes, there are for example PIC16

(c) Are there PIC microcontrollers of 16 bits, 32 bits?

Yes there are PIC32MX is 32 bit controller and PIC24F is a 16 bit controller.

(d) Are there PIC microcontrollers of other bits combination such as 4 bits, 12 bits?

No there are no PIC controller of 4 and 12 bit (atleast in my knowledge)

(e) PIC18F458 in the book consists of 40 pins. Does this mean all PIC18 family microcontrollers are of 40 pins?

Not Necessarily. The number of pins depends on Package of the IC and the model.


(f) Have a delay of between 100 ms and 200 ms (it can be anything like a 3 digits 1xx ms).

Need more info!!!


void my_delay (int delay)

{

volatile int i,j;

if(delay<200) && (delay>99)

{

for(i=0,i<delay;i++)

{

for(j=0;j<DELAY_MS;j++); /* DELAY_MS should be #defined as the count that is required for 1 ms*/

}

}

}


(g) Add up three integers a, b, and c each between decimal 15 and 30 (you specify a, b and c yourself,

hex or in decimal as you like).

Need more info!!!


int my_addition(int a, int b, int c)
{

if((a<=30)&&(a>=15)&&(b<=30)&&(b>=15)&&(c<=30)&&(c>=15))

{

return(a+b+c);

}

else

{

return(0);

}

}