This page has many links to hardware and software techniques that I have found useful in developing microcontroller circuits. I hope you find them useful as well.
Hardware Debugging Techniques
PIC Timer overview
I/O Expansion techniques
USB RS232 Ports
Setting up RS232
12F675 :Recovering lost calibration
12F675 OSCCAL Program
Voltage reference as a DAC
Using R-2R as a DAC and more
Logic level converter
Soft USART (TX) (TX details)
Soft USART (RX/TX) (RX details)
Using fixed point maths
Timers and Oscillators
Crystal ppm calculations
TCL code for ppm calculations
Interactive Timer 0 calculator
Interactive Timer 1 calculator
Interactive Timer 2 calculator
Using an oscilloscope
Electronic schematic symbols
ICSP In Circuit Serial Programming circuit and notes.
ICSP programming - How you set up the ICSP hardware and PC software.
RS232- What it is and how it works.
This method applies equally well for long cables or PCB traces. e.g. Parallel port or Serial port cables.
Methods to increase your Input or output pins from/to your microcontroller. Minimum requirement is 1 pin.
PIC Programmers Explanation of the various types of PIC programmers
PIC device comparison Comparing some pic microcontroller features using bubble diagrams.They also give a quick overview of the Program memory, RAM, EEPROM and peripherals.
Pinouts of some common devices used on this site
RS232 pinout diagrams at the PC connector.
Using PIC I/O : TRIS, PORT: General notes applicable to any PIC device.
Crystal ppm calculations: Notes on accuracies of crystal and other oscillators.
Interactive Timer 0 calculator showing frequency, period of Timer 0 output.
Interactive Timer 1 calculator showing frequency, period of Timer 1 output.
Interactive Timer 2 calculator as above using
pre-,post- scaler & period reg.
Switch debouncing Debouncing input keys on a Microcontroller port.
Does RS232 work? Five simple rules to ensure your RS232 system works.
12F675 - How to set the OSCCAL value stored in the 12F675.
12F675 - How to recover OSCCAL.
Bits bytes and hexadecimal conversions
All about bits, bytes and hexadecimal numbers and conversions.
Soft USART (TX)The transmission part of a USART (~90 words).
Soft USART (RX/TX) Detailsthe reception part of a USART (~? words).
Fixed point maths How to avoid using floating point maths to save memory and operate faster.
Click here for PIC microcontroller projects
Reading schematics A simple introduction to reading schematics.
Multitasking A guide to simple multitasking - fits into 12F675 (1k).
Schematic symbols A list of schematic symbols and components
Prototyping Discusses solderless breadboard, stripboard and pcb methods.
Using an oscilloscope Beginners guide to using an oscilloscope.
PWM what it is and what it's for.
Jump from Tips and
Best-microcontroller-projects home page
The Arduino shiftOut() function can simply control many different serial interfaced chips. Find out how it works and how fast it operates.
A tutorial on using the ADS1115 precision 16 bit ADC for low power use.
Learn how to use the TP4056 properly. There's a right, and a wrong way, to use it to safely charge Lithium Ion batteries.
The MCP4922 chip is an SPI interfaced 12 bit DAC but how fast can it go? Find out here.
The MCP4725 chip is a 12 bit DAC with memory that outputs voltage that you can use for many dfferent purposes. Find out what they are in this page.
The MCP4728 chip is a four channel 12 bit DAC, with memory that outputs voltage that you can use for calibration, anywhere you want a fixed voltage.