The PIC18F452 is, as with all the other18F
series parts, optimized for using
C. It has a 31 deep hardware stack and linear memory (rather than banked memory) so
you don't have to make adjustements for the hardware when coding in C.
This microcontroller is exceptionally powerful and ideal for C programming...but the 18F2550/18F4550 are similar and have a built-in USB interface.
The 18F452 has 16k of program memory
and 1536 Bytes of RAM and
because the RAM is linear you can declare large arrays which is not possible if
you use devices with banked memory (16F series).
Note: Banked memory occupies the same memory adress space and you switch from one bank to another using some program code (in other devices).
It is packaged in a 40 pin DIP other packages are PLCC and TQFP for surface mount) and it can be programmed in circuit using ICSP. As with the other 18F devices it has an 8 bit hardware multiplier (8x8).
Note: The PIC 18F452 is pin compatible with 40-pin PIC16C7X devices.
It also has a 4x internal phase locked loop oscillator - so you can supply an external clock signal of 10MHz and it will run at 40MHz internally but remember that the maximum internal instruction rate is Fosc/4 so even with the PLL active (or using an external 40MHz clock) you only get 1 instruction every 4 clock cycles - the maximum you can get is 10MIPS.
|Device||Program memory words||Data Memory Bytes||ADC||PSP||PINS|
Note: 18F452 and 18F442 come in PLCC and TQFP while the 18F252 and 18F242 come in SOIC as well. All have 256 bytes of EEPROM.
The Essential Guide to the 74HC595; What it is and how you can easily use one in any of your projects.
Which pic programmer do you need? This page discusses PIC programmers and gives some essential information on choosing or building your own programmer.
learn how to use Arduino pulseIn and pulseInLong to get the most accurate pulse measurement on an Arduino.
How to use Arduino millis() for deylays but still make the processor do work - Stop using delay()
This MCP23017 Interrupt tutorial shows you how to connect interrupt outputs from several MCP23017s to a single microcontroller interrupt pin.
Arduino Delay() is a useful function but not for large programs - Find Out Why Here...