IN THE NAME OF ALLAH, THE MOST GRACIOUS, THE MOST MERCIFUL
Nov 18, 2014
IN THE NAME OF ALLAH, THE MOST GRACIOUS, THE MOST MERCIFUL
CCS PIC “C” COMPILER TUTORIAL
ADEEL ANWAR69th E.C
Created on : 2nd MAY 2010
COLLEGE OF AERONAUTICAL ENGEENERING CAE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
• I am making this tutorial with the motivation that, it will be helpful for the fellow students and it’s a small contribution toward students society.
• I hope and expect that the students coming afterwards will contribute further and we will improve collectively by helping each other.
CONTENTS
• Basic Tutorial• Pic wizard• Pic Device Selector• Fuses and Interrupts list• Serial Port Moniter
COLLEGE OF AERONAUTICAL ENGEENERING CAE
Note: “Basic Tutorial” (for Beginners) is sufficient for creating and compiling the complete project. Next topics (Pic wizard & onwards) describe the extra utilities provided by the compiler that make some tasks easier.
Basic Tutorial
• Creating new Project • Adding Source file • Writing and editing source file• Compilation• RAM/ROM percentage • View generated assembly code (optional) • Generated files
COLLEGE OF AERONAUTICAL ENGEENERING CAE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
WE WANT TO CREATE A NEW
PROJECT
ADD SOURCE FILE TO THE
PROJECT
COLLEGE OF AERONAUTICAL ENGEENERING CAE
WRITE NAME OF SOURCE FILE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
BLANK SOURCE FILE“prg2.c”
START WRITING CODE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
HEADER FILES SPECIFING “CHIP NO” ,
“CRYSTAL FREQUENCY” & “SERIAL PORT PARAMETERS”
RESPECTIVELY MAIN LOOP
INFINITE LOOP TO MAKE u-CONTROLLER WORK FROM POWER
ON TILL OFF
COLLEGE OF AERONAUTICAL ENGEENERING CAE
OBSERVE THESE “-” SIGNS WITH “main” “while” AND “for”
THERE IS ALSO AN ENDING SYMBOL
GENERALLY THESE SYMBOLS ARE ATTACHED TO ALL THE “LOOPS” , “IF
ELSE ” OR ANYSTATEMENTS INSIDE “{ }”
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK ON “-” SIGN
COLLEGE OF AERONAUTICAL ENGEENERING CAE
SIGN CHANGES TO “+” AND ALL THE STATEMENTS
INSIDE “for” LOOP ARE MINIMIZED
USE OF THESE SMALL TIPS MAKES THE CODE MORE READABLE AND EASIER TO DEBUG
COLLEGE OF AERONAUTICAL ENGEENERING CAE
WE HAVE WRITTEN THE CODE NOW WE
WANT TO COMPILE IT
CLICK (1)
CLICK (2)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
COMPILATION IN PROGRESS
“RAM” AND “ROM” PERCENTAGE INDICATE HOW MUCH RAM OR ROM OF MICROCONTROLLER, THE WRITTEN CODE WILL USE
Note:. This feature helps programmer to optimize code and use of u-controller resources. As this is a small program and it is not consuming much Ram/Rom of “16F628A” so, 16F628A should not be used for this particular program during mass
manufacturing as device is under utilized (costly)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
AFTER COMPILATION IS COMPLETE ERRORS OR WARNINGS WILL
APPEAR HERE. IF ANY ERROR THEN PROGRAM NEEDS TO BE
CORRECTED BUT WARNING MAY BE NEGLECTED
COLLEGE OF AERONAUTICAL ENGEENERING CAE
IF USER WANT TO SEE THE ASSEMBLY CODE GENERATED BY WRITTEN “C”
CODE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
THE “C” STATEMENT “output_D(0)” IS
CONVERTED TO FOUR ASSEMBLY STATEMENTS
A SMALL “C” PROGRAM IS CONVERTED TO “216” ASSEMBLY STATEMENTS (ALTHOUGH THERE ARE SOME COMMENTS LINES). DUE TO THIS REASON
NOWADAYS u-CONTROLLER ARE MOSTLY PROGRAMMED IN “C” NOT ASSEMBLY
COLLEGE OF AERONAUTICAL ENGEENERING CAE
SOURCE FILE
COF FILE
HEX FILE
HEADER FILE (2ND C FILE AMONG ALL
FILES)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
PIC WIZARD
COLLEGE OF AERONAUTICAL ENGEENERING CAE
INTRODUCTION
• Pic wizard is a useful tool that helps the user for initializing peripherals and writing code for PIC u-Controller.
• Different peripherals options/settings are presented in form of Graphical User Interface (GUI).
• It creates the basic layout of the code that include different interrupt service routines, initialization parameters for timers, interrupts and other device peripherals etc.
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK (1)
CLICK (2)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
WRITE NAME OF SOURCE FILE
WIZARD WINDOW
FEATURES WINDOW
FEATURES OPTIONS WINDOW
COLLEGE OF AERONAUTICAL ENGEENERING CAE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
GENERAL (1)
SELECT DEVICE NOTE: ALL FURTHER
FEATURE SELECTION OPTIONS WILL BE
BASED ON SELECTED DEVICE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
OSCILLATOR
OTHER START-UP
/PROGRAMMING OPTIONS
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK (1)USER WANTS TO USE RS-
232
SELECT RS-232 OPTIONS
CLICK (1)
TIMER 1 DISABLED
TIMER 0 WITH .2 us Resol. AND 51.2 us OVERFLOW TIME
TIMER 2 DISABLED
COLLEGE OF AERONAUTICAL ENGEENERING CAE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
TIMER 1 ENABLED
TIMER 1 SETTINGS
NOTE: RESOLUTION EFFECTS OVERFLOW
TIME (COMPARE PREVIOUS)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
EACH TIMER SETTINGS GENERATES A CODE THAT
WILL BE ADDED TO SOURCE FILE AT THE END OF WIZARD
CLICK (1)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK (1)
SELECT A/D CONVERTERS
CURRENTLY 8-BIT (0-255) MODE IS
SELECTED
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK (1)
SELECT INTERRUPTS
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK (1)
AS WE HAVE SELECTED EXTERNAL INTERRUPT (PREVIOUS PAGE). THIS
CODE WILL BE ADDED TO SOURCE FILE.
COLLEGE OF AERONAUTICAL ENGEENERING CAE
IF THERE ARE NO MORE FEATURES THAT USER WANT TO USE CLICK
“OK”
COLLEGE OF AERONAUTICAL ENGEENERING CAE
INITILIZATION CODE GENERATED BY WIZARD TO
SET REQUIRED PARAMETERS OF TIMER/INTERRUPT & A/D
CONVERTER etc.
WRITE EXTERNAL INTERRUPT
SERVICE ROUTINE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
START WRITING CODE HERE
(MAIN LOOP etc.)
THERE IS AN INCLUDE FILE (HEADER FILE) AT
THE BEGINNING OF EACH SOURCE FILE
CREATED BY WIZARD
COLLEGE OF AERONAUTICAL ENGEENERING CAE
HEADER FILE HAS INFORMATION ABOUT THE SELECTED DEVICE,CLOCK,RS-232 PINS, A/D CONVERTERS
& FUSES etc…
CLICK (1)
CLICK (2)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
GENERALLY THE SECOND “C FILE” IN THE LIST IS HEADER
FILE (CLICK)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
“prog1.h” IS HEADER FILE.
NOTE: THIS FILE IS CREATED SEPERATELY SO THAT
READABILITY OF THE “source file” IS IMPROVED
CCS PICC DEVICE SELECTOR
COLLEGE OF AERONAUTICAL ENGEENERING CAE
INTRODUCTION
• A large PIC family provides user, the flexibility to select the chip which fulfill the requirement optimally.
• The devices which have large features are more costly. So, from Economical point of view, select the device which only has those features that the design requires.
• Device Selection Tool is helpful in selecting the appropriate chip which meets the design requirement.
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK (1)
CLICK (2)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
“SELECTED” SHOWS THE CHIPS WHICH
FULFILL THE CRITERIA
“CRITERIA” CONSISTS OF THE MINIUM
FEATURES THE CHIP SHOULD HAVE
SPECIFY THE PIC FAMILY THE SELECTED CHIP SHOULD BELONG.
COLLEGE OF AERONAUTICAL ENGEENERING CAE
IF WE REQUIRE USB PORT SO, WE
CHANGE “Don’t Care” TO “Yes”
SELECTED DEVICES ALL HAVE USB PORT AND THEY BELONG
TO PIC 14-16 BIT FAMILYCOLLEGE OF AERONAUTICAL ENGEENERING CAE
Min. 256 Byte RAM AND 8 KB ROM (8192 Bytes) IS
REQUIRED
ANOTHER REQUIREMENT IS
OF 8-12 A/D CONVERTERS
ALL THESE CHIPS SHOWN FULFILL THE CRITERIA.
COLLEGE OF AERONAUTICAL ENGEENERING CAE
FEATURES OF DEVICES SHOWN IN “SELECTED” LIST ARE LIMITED. IF
WE WANT SEE ALL THE FEATURES OF A PARTICULAR CHIP e.g. 16F877
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK (1)
ALL FEATURES OF 16F877
COLLEGE OF AERONAUTICAL ENGEENERING CAE
16F877 HAVE TIMER 1 & 2 ONLY . ALL PIC CHIPS HAVE TIMER 0
(thus not shown )
COLLEGE OF AERONAUTICAL ENGEENERING CAE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
FUSES AND INTERRUPTS LIST
• This tool of the compiler can be used to see the fuses and interrupts that can be used for a specific device.
• Thus, it provides a quick glance, at the fuses and interrupts options available for a particular Pic device, instead of tedious search in the device data sheet
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK (1)
CLICK (2)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
SELECT DEVICE (e.g. 16F877)
ALL THESE FUSES CAN BE USED FOR SELECTED DEVICE
(16F877)
NOTE: FOR FUSES DETAIL REFER TO BOOK “PROGRAMMING 8 BIT PIC u-
CONTROLLER ” M. P Bates (PAGE 11)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK (1)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
SELECT DEVICE
ALL THE INTERRUPTS THAT CAN BE USED FOR SELECTED DEVICE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
SERIL PORT MONITER
This tool works same as hyper terminal but in new windows (vista and later) there is no hyper terminal so this tool can be used to send/receive data to/from the computer serial port.
COLLEGE OF AERONAUTICAL ENGEENERING CAE
CLICK (1)
CLICK (2)
COLLEGE OF AERONAUTICAL ENGEENERING CAE
SELECT COM PORT
BAUD RATE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
TYPE DATA TO SEND TO SERIAL PORT
RECEIVED DATA APPEAR HERE
COLLEGE OF AERONAUTICAL ENGEENERING CAE
END
COLLEGE OF AERONAUTICAL ENGEENERING CAE
Don't blame the unfavorable circumstances that stops you from doing what needs to be done as "the key lies in our decision not our condition"
(Everyday Greatness)