This post provides the UART code (compiled in MPLAB + HI-TECH C) for PIC18F452 (e-g to connect PIC18F452 controller with PC using serial adapter). Complete project code and the proteus simulation can be downloaded from the Downloads section at the bottom of this post. The following diagram shows the required circuit.
A crystal of 10MHz is used with PIC18F452. This crystal frequency is fed into PLL of PIC18F452, which boosts it to 40MHz. As we know that any PIC micro controller has an architecture which executes an instruction in 4 CPU cycles, hence this 10Mhz crystal + PLL makes this PIC run at 10MIPS (Million of instructions per second). The code for UART initialization is shown below.
In this function a baudrate of 9600 bps is defined (which you can easily change by changing the value from 9600 to any other number ). _XTAL_FREQ is basically the crystal frequency ( PLL output is 40MHz, which is the CPU frequency). After that different parameters of the serial port are being configured e-g the SPFRG register which is responsible for the baudrate generation for the UART. This function defines the UART to have these properties,
- Baudrate = 9600 bps
- 8 bit data mode
- 1 start and 1 stop bit
- No parity bit
- No flow control
The code for the main function is shown below.
The code was compiled in MPLAB v8.76 with HI-TECH C and simulation was made in Proteus v7.7.
To download code and proteus simulation click here.
For more detail: PIC18F452 UART code and Proteus Simulation