IDE877 PIC lab
The IDE877 PIC lab was developed as a tool to teach microcontoller programming
and interfacing. It was also intended to be used as a convenient way to implement some microcontroller
based projects. The IDE877 integrated development environment (IDE) is specific to the
Microchip PIC16F877 8-bit microcontroller. The following design criteria were followed:
- The system should consist of a PIC-based board that includes several basic peripherals and
a prototyping are for user projects. Software running on a host computer would be used to
program the PIC, interact with the user program and monitor the PIC status via a serial/USB interface.
- The programming language used to code the assembler, graphical user interface and access
to the PIC board should be platform-independent and freely available.
- The IDE should be intuitive and easy to use. The student should be able to type
in a PIC instruction, press a GO button and immediately observe changes to the PIC board
and the internal state of the microcontroller.
- The IDE simulator should further display the internal operation and data flow of the PIC on a
cycle by cycle basis, a 'virtual PIC', for educational purposes.
- The PIC instruction set should be small and need only include the basic arithmetic/logical
operations represented by gates, latches and timers. The focus here is not on
- The PIC should be pre-programmed with a library of subroutines that make the use of the
PIC board hardware such as LCD displays and A/D converters transparent to the user.
- The PIC board should be able to operate as a stand-alone data acquisition unit. The data
should be stored in a table that can be uploaded to the host computer on re-connection.
The hardware consists of a printed circuit board that houses the PIC,
LED/LCD displays, a keypad, solid state relays, serial RS232 and USB interface.
The PIC microcontroller includes input/output ports, 8 channels of analog to digital
conversion, several counter/timers, and I2C/SPI bus interfaces to serial-connected
peripherals. The In-circuit serial programming port is used to load the PIC with a small
operating system that includes several preprogrammed input/output and data
conversion routines as well as tabular data storage in program memory.
PIC board: USB powered with LED display and self-powered serial-comnnected with LCD display:
The software is a platform independent TCL/TK script that codes the (mostly)
MPLAB compatible macroassembler, graphical user interface and PIC simulator.
When connected to the PIC board, the software uploads the user program and reads the
internal state of the PIC. With some hardware exceptions, the execution of code
by the simulator and the PIC yields identical results. These results can be displayed
on windows that monitor the state of file registers, EEPROM and program memory, user
variables and data generated by the user program. A patch to the Gnuplot graphing
program allows the user program to control a window on the host machine
and hence provide real time graphical output of the user data.
Simulated LED output:
Simulated LCD output:
Virtual PIC output window and tutorial as a PDF file
PIC/simulator EEPROM, status and watch windows:
PIC/simulator program and file memory windows:
PIC/simulator output to Gnuplot
Connect-4 game running on PIC with real-time output to Gnuplot:
IDE877 help menus as a PDF file
Some IDE877 student projects
The development team,
my official web page
and E-mail: email@example.com