I agree. Flash and RAM size is scalable to application requirements over a large range, small devices are only slightly more expensive than PIC16 or PIC18 devices with similar parameters. Nevertheless, there's a lot of other processors to be considered too, particularly various ARM chips.I'd recommend the PIC24 family.
i've done a project motorbike Display system using 8051 based P89V51RD2 (NXP) chip, code HEX reached >30K, 1K ram is full (no space to add even one variable), i cant interface more devices like GLCD, RTC and all.
BTW i heard PIC is robust than 8051, which pic is better to do this project??.. for 8051 (code is 30K, & RAM is 1K) is full,, i need to add more peripherals to my project,,,
Part of the 8051 code will be device specific and has to be ported to the new processor, particular hardware-specific stuff. How much work is involved depends, is it written in a portable way yet, using function calls or macros to access the hardware.but what about programming, i know oly 8051 C programming, what will be the difference?
what about mikroC pro, but that has some 2k limit,,,,, and it has inbuilt macros rit, means writeDtataToLCD() like this
is mikroC's library can be used with MPLAB????, im feeling some difficulties with PIC compared to 8051
#include "Includes.h"
// Configuration word for PIC16F877
__CONFIG( FOSC_HS & WDTE_OFF & PWRTE_ON & CP_OFF & BOREN_ON
& LVP_OFF & CPD_OFF & WRT_ON & DEBUG_OFF);
// Main Function
void main(void)
{
unsigned int ADC_value = 0;
unsigned int digit1, digit2, digit3, digit4;
InitADC(); // Initialize ADC
InitLCD(); // Initialize LCD
while(1)
{
ClearLCDScreen(); // Clear LCD screen
ADC_value = GetADCValue(AN7); // Read ADC value from RE2(AN7) pin
// ADC_value can have a value from 0 (0v) to 1023(5v) only.
// SO display 4 digits of ADC_value
digit1 = (unsigned int)(ADC_value/1000); // Calculate digit1 of ADC_value
digit2 = (unsigned int)((ADC_value - digit1*1000)/100); // Calculate digit2 of ADC_value
digit3 = (unsigned int)((ADC_value - (digit1*1000+digit2*100))/10); // Calculate digit3 of ADC_value
digit4 = (unsigned int)(ADC_value - (digit1*1000+digit2*100+digit3*10)); // Calculate digit4 of ADC_value
WriteDataToLCD(digit1+0x30); // Display digit1 of ADC_value on LCD
WriteDataToLCD(digit2+0x30); // Display digit2 of ADC_value on LCD
WriteDataToLCD(digit3+0x30); // Display digit3 of ADC_value on LCD
WriteDataToLCD(digit4+0x30); // Display digit4 of ADC_value on LCD
__delay_ms(500); // Half second delay before next reading
}
}
1) is PIC18F46K20 can be used for simulation???, is there any differences??... Proteus don't having K22
2) is PIC18F can be flashed using serial port????.. or requires new programmer?????????
3) im using mikroC pro, not basic pro is there any differences???
4) is there any changes by increasing crystal frequency?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?