Skip to main content Skip to local navigation
Home » PIC16/18 & ATMEGA Page

PIC16/18 & ATMEGA Page

General intro to PIC16, PIC18 and ATMEGA microcontrollers by Microchip. This includes the PIC16F1. A nice overview of the PIC16F1 with respect to the other PIC processors is available at WikiBooks.

Programming tutorials for the 8bit pics:

PIC16f84a (one of the simplest PICs).

  1. The databook on the PIC16F84 (#D35007B)
  2. Good overviews: Microchip & Wikipedia.
  3. "Easy PIC'n" book by Benson (1999 in Assembler): Free eBook (PDF, text, etc.).  Benson distills the databooks with an experienced, reasoned voice.  He talks about hardware and programming using Assembler.  It's a product of the time (20 years ago... 1999) and so there's nothing about using C or MPLAB X.  However, it's got just the right level of detail for you to be able to put together a single-chip breadboarded computer, with simple I/O.
  4. Interrupts tutorial on the PIC16f84a
  5. A step-by-step PIC16f84a and assembler tutorial.
  6. Another PIC16f84a series of tutorials (PDF).
  7. Fundamentals of the PIC16f84a.
  8. A book on the PIC16f84a and assembler (2004)
  9. Using the PICKit 3 with the PIC16f84a.
  10. Tutorial on the PIC16f84a by Roland of Teach Me Micro
    1. What is a PIC Microcontroller?
    2. Introduction to Assembler, Registers and Banked Memory
    3. Inputs and Outputs in Assembler and C
    4. Interrupts
    5. Timers
    6. USART with a different PIC16
    7. SPI with a different PIC16
    8. PWM with a different PIC16
    9. ADC with a  different PIC16
  11. PIC assembler macros by Chuck McManis.
  12. Discussion of Bank 0 and Bank 1

The "enhanced mid-range" processors like the PIC16F1:

MPLAB X is a contemporary IDE with excellent tools for programming and debugging:

  1. Intro video to MPLAB X.
  2. Simulator: Microchip Developer Page; Intro video;
  3. Debugging: Microchip Developer Page; Disassembler View;

The PIC16 Curiosity board by Microchip is a really interesting development platform.  It's a little confusing trying to figure out the pin functions, in no small part due to the datasheet for the PIC16F1619 not giving a straight-forward pin-out diagram.  Digging around in the datasheet and using Lucio DiJasio's helpful diagram, I've come up with the following pinout that I may use in class:

 

PIC16F1618 pinout

Pinout for the PIC16F1619 chip, with details associated with the Microchip Curiosity board. Source: Microchip https://bit.ly/2OsQtQ1 (Table 1-2) and DiJasio https://bit.ly/2PMxNeo

For the AVR

For the SAMD (to be filed elsewhere later)

 


James Andrew Smith is an associate professor in Electrical Engineering and Computer Science Department in YorkUniversity's Lassonde School.  He lives in Toronto, Canada.  While on sabbatical in 2018-19 with his wife and kids he lived in Strasbourg, France and taught at the INSA Strasbourg and Hochschule Karlsruhe and wrote about his personal and professional perspectives.  You can find him on Twitter.