PIC
SIMULATION QUICK TUTORIAL M Bates
|
|||||||||
|
This tutorial supports is provided to support the book ‘Interfacing PIC Microcontrollers’, and introduces microcontroller circuit design using ISIS schematic capture and simulation. Further details may be found in Chapter 3. This tutorial refers to Proteus v6.8, available from www.labcenter.co.uk. |
|||||||||
|
1 THE CIRCUIT The
circuit to be simulated is shown here, consisting of a PIC 16F877
microcontroller unit (MCU), input push buttons and output LEDs which will
display a binary count. An external adjustable CR clock circuit is used. The
push buttons are not used in the simple program BIN1. Make
a folder to hold the project files called BIN1. |
Circuit Schematic
|
||||||||
|
2 THE SCHEMATIC The
ISIS user interface is shown here, consisting of edit, overview and object
select windows, with edit toolbars. Components are added to the object list
from the libraries provided, dropped onto the schematic, and connected up
using virtual wiring. Components can be labelled and their simulation
properties modified. Save
the schematic as BIN1.DSN in the project folder. |
ISIS Screen
|
||||||||
|
3 SELECT COMPONENTS Components
are found in the libraries accessed via the ‘pick’ button P in the object
select window. The MCU is selected from ‘Microprocessors ICs’ category,
‘PIC16 Family’ sub-category. The other components are added to the pick list
from the appropriate categories. These are then selected and dropped on the
schematic within the blue border. Save
the design file BIN1.DSN in the project folder. |
Component selection dialogue
|
||||||||
4 WRITE PROGRAM The
MCU needs a program to work as required. From the ‘Source’ menu, select ‘add
source file’, ‘new’ and open the source file BIN1.ASM in folder BIN1. Select
code generation tool MPASM. Open the source edit window by selecting the new
file from the source menu, and enter the source code listed here. It is a
minimal program which produces a binary count at Port B (06). Save
the source file code file BIN1.ASM in the project folder. |
Program Source Code PROCESSOR 16F877 MOVLW 00 TRIS 06 CLRF 06 again INCF
06 GOTO again END |
||||||||
|
5 ASSEMBLE PROGRAM Save
the source code when complete. From the Source menu, select Build All. The
message window should confirm build OK. If not, correct syntax errors in the source
code by reference to PIC programming rules. A hex file is produced as shown,
BIN1.HEX, which contains the MCU machine code. The
machine code program BIN1.HEX is stored automatically in the project folder
with the source code. |
Machine Code
Program :020000040000FA :0A000000003066008601860A03281E :00000001FF |
||||||||
|
6 ATTACH PROGRAM This
hex file must be attached to the MCU in the schematic. Right click, then left
click on the PIC chip to open the Edit Component dialogue. Click on the
Program File folder tab and select the BIN1.HEX file from the project folder.
Set the Processor Clock Frequency to 40kHz. Note that the external components
do not affect the simulation clock frequency. The Port B output LEDs should
operate when the run/step/pause/stop controls are clicked (the buttons on the
schematic have no effect with this program). Save
the completed design file. |
MCU properties dialogue
|
||||||||
|
7 TEST PROGRAM Pause
the program and from the Debug menu check the PIC CPU Source Code option to
display the program with the execution point highlighted. Use the ‘Step Into’
button in the source code window to single step the program. Note that the
initialisation instructions are executed once, and the loop then repeats
endlessly – this is the usual program operating sequence for control
applications. The source code window has buttons to run, single step (into,
over and out of subroutines) and set breakpoints. Correct
any logical program errors detected. |
Source code debug window
|
||||||||
|
8 DEBUG PROGRAM To
monitor program progress, the MCU registers can be displayed, and other
changes monitored, using: ·
Special function register display ·
RAM register display ·
Register watch window ·
Execution clock ·
Simulation logs The
effect of the program on the registers and status flags, and program timing
can thus be checked. Save
the test window arrangement using ‘save preferences’. |
Program debug windows
|
||||||||
|
9 DOWNLOAD PROGRAM When
all logical errors have been resolved, the program can be downloaded to the
real hardware using the programming tools in MPLAB, for example, using the Mpstart
programmer unit. Alternatively, the ICD system allows in-circuit programming
and debugging, requiring the purchase of the MPLAB ICD2 module. |
|
|
|||||||
|
|||||||||
|
|||||||||
|
|||||||||