ccs pic 'c' compiler tutorial

58
IN THE NAME OF ALLAH, THE MOST GRACIOUS, THE MOST MERCIFUL

Upload: adeelanwar

Post on 18-Nov-2014

561 views

Category:

Documents


32 download

DESCRIPTION

using PIC CCS Compiler and creating hex file

TRANSCRIPT

Page 1: CCS PIC 'C' Compiler Tutorial

IN THE NAME OF ALLAH, THE MOST GRACIOUS, THE MOST MERCIFUL

Page 2: CCS PIC 'C' Compiler Tutorial

CCS PIC “C” COMPILER TUTORIAL

ADEEL ANWAR69th E.C

Created on : 2nd MAY 2010

COLLEGE OF AERONAUTICAL ENGEENERING CAE

([email protected])

Page 3: CCS PIC 'C' Compiler Tutorial

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.

Page 4: CCS PIC 'C' Compiler Tutorial

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.

Page 5: CCS PIC 'C' Compiler Tutorial

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

Page 6: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

WE WANT TO CREATE A NEW

PROJECT

ADD SOURCE FILE TO THE

PROJECT

Page 7: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

WRITE NAME OF SOURCE FILE

Page 8: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

BLANK SOURCE FILE“prg2.c”

START WRITING CODE

Page 9: CCS PIC 'C' Compiler Tutorial

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

Page 10: CCS PIC 'C' Compiler Tutorial

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 “{ }”

Page 11: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK ON “-” SIGN

Page 12: CCS PIC 'C' Compiler Tutorial

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

Page 13: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

WE HAVE WRITTEN THE CODE NOW WE

WANT TO COMPILE IT

CLICK (1)

CLICK (2)

Page 14: CCS PIC 'C' Compiler Tutorial

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)

Page 15: CCS PIC 'C' Compiler Tutorial

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

Page 16: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

IF USER WANT TO SEE THE ASSEMBLY CODE GENERATED BY WRITTEN “C”

CODE

Page 17: CCS PIC 'C' Compiler Tutorial

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

Page 18: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

SOURCE FILE

COF FILE

HEX FILE

HEADER FILE (2ND C FILE AMONG ALL

FILES)

Page 19: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

PIC WIZARD

Page 20: CCS PIC 'C' Compiler Tutorial

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.

Page 21: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

CLICK (2)

Page 22: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

WRITE NAME OF SOURCE FILE

Page 23: CCS PIC 'C' Compiler Tutorial

WIZARD WINDOW

FEATURES WINDOW

FEATURES OPTIONS WINDOW

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Page 24: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

GENERAL (1)

SELECT DEVICE NOTE: ALL FURTHER

FEATURE SELECTION OPTIONS WILL BE

BASED ON SELECTED DEVICE

Page 25: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

OSCILLATOR

OTHER START-UP

/PROGRAMMING OPTIONS

Page 26: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)USER WANTS TO USE RS-

232

SELECT RS-232 OPTIONS

Page 27: CCS PIC 'C' Compiler Tutorial

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

Page 28: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

TIMER 1 ENABLED

TIMER 1 SETTINGS

NOTE: RESOLUTION EFFECTS OVERFLOW

TIME (COMPARE PREVIOUS)

Page 29: CCS PIC 'C' Compiler Tutorial

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)

Page 30: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

SELECT A/D CONVERTERS

CURRENTLY 8-BIT (0-255) MODE IS

SELECTED

Page 31: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

SELECT INTERRUPTS

Page 32: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

AS WE HAVE SELECTED EXTERNAL INTERRUPT (PREVIOUS PAGE). THIS

CODE WILL BE ADDED TO SOURCE FILE.

Page 33: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

IF THERE ARE NO MORE FEATURES THAT USER WANT TO USE CLICK

“OK”

Page 34: CCS PIC 'C' Compiler Tutorial

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

Page 35: CCS PIC 'C' Compiler Tutorial

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

Page 36: CCS PIC 'C' Compiler Tutorial

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)

Page 37: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

GENERALLY THE SECOND “C FILE” IN THE LIST IS HEADER

FILE (CLICK)

Page 38: CCS PIC 'C' Compiler Tutorial

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

Page 39: CCS PIC 'C' Compiler Tutorial

CCS PICC DEVICE SELECTOR

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Page 40: CCS PIC 'C' Compiler Tutorial

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

Page 41: CCS PIC 'C' Compiler Tutorial

CLICK (1)

CLICK (2)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Page 42: CCS PIC 'C' Compiler Tutorial

“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

Page 43: CCS PIC 'C' Compiler Tutorial

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

Page 44: CCS PIC 'C' Compiler Tutorial

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

Page 45: CCS PIC 'C' Compiler Tutorial

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

Page 46: CCS PIC 'C' Compiler Tutorial

CLICK (1)

ALL FEATURES OF 16F877

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Page 47: CCS PIC 'C' Compiler Tutorial

16F877 HAVE TIMER 1 & 2 ONLY . ALL PIC CHIPS HAVE TIMER 0

(thus not shown )

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Page 48: CCS PIC 'C' Compiler Tutorial

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

Page 49: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

CLICK (1)

CLICK (2)

Page 50: CCS PIC 'C' Compiler Tutorial

COLLEGE OF AERONAUTICAL ENGEENERING CAE

SELECT DEVICE (e.g. 16F877)

Page 51: CCS PIC 'C' Compiler Tutorial

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

Page 52: CCS PIC 'C' Compiler Tutorial

CLICK (1)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Page 53: CCS PIC 'C' Compiler Tutorial

SELECT DEVICE

ALL THE INTERRUPTS THAT CAN BE USED FOR SELECTED DEVICE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Page 54: CCS PIC 'C' Compiler Tutorial

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

Page 55: CCS PIC 'C' Compiler Tutorial

CLICK (1)

CLICK (2)

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Page 56: CCS PIC 'C' Compiler Tutorial

SELECT COM PORT

BAUD RATE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Page 57: CCS PIC 'C' Compiler Tutorial

TYPE DATA TO SEND TO SERIAL PORT

RECEIVED DATA APPEAR HERE

COLLEGE OF AERONAUTICAL ENGEENERING CAE

Page 58: CCS PIC 'C' Compiler Tutorial

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)