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
Find out how to use the AD9833 to generate sine, square and triangle waves at 0.1Hz resolution.
Arduino Nano ISP: How to program an ATmega328P using an Arduino Nano as the ISP programmmer. One common problem: Programming a sketch into the chip without a reset control - solved here.
Arduino Voltage reference: Both the Uno and Nano have a built-in voltage reference: Find out how to make it more accurate. In addition find out how to use it to measure the supply voltage 1V8 ~ 5V5
Arduino EEPROM: How to use it and How to preserve the life of EEPROM. Two examples sketches to save multiple values to EEPROM.
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.