1. Trang chủ
  2. » Giáo án - Bài giảng

CCS c PIC getting started

13 38 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 1,08 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Logic 1 at TRIS register makes the corresponding pin Input while Logic 0 at TRIS register makes the corresponding pin Output.. PORT register can be used to read input pins or to write st

Trang 1

1

Getting Started with PIC Microcontroller

CCS C Compiler

Trang 2

2

CONTENTS

PIC16F877A Pin Diagram ……… 4

TRIS and PORT Registers in PIC Microcontroller ……… 5

Prerequisite Knowledge ……… 5

CCS C Discrete IO Functions……… …… 6

get_tris_x()……… 6

set_tris_x()……… 6

input_x()……… 6

output_x()……….… 7

input()……… 7

output_bit()……… 7

input_state()……… ………… 8

input_change_x()……… ……… 8

output_float()……… 8

output_drive()……… 8

output_high()……… 9

output_low()……….……… 9

output_toggle()……….……… 9

Circuit Diagram - LED Blinking……….……… 10

CCS C - Starting a New Project……….…….……… 10

CCS C Code - LED Blinking……….….…… 13

Trang 3

3

You are at the right place if you are a beginner to the field of microcontrollers In this tutorial you will learn How to Blink an LED using PIC Microcontroller PIC is a family of microcontrollers manufactured by Microchip Technology Inc PIC stands for Peripheral Interface Controller It is also referred to as Programmable Interface Controller or Programmable Intelligent Computer

As all other microcontrollers PIC Microcontroller can be programmed using Assembly Language As it is little bit difficult we prefer High Level Languages Many high level language compilers are available for programming a PIC Microcontroller like MikroC, MPLAB XC8, Hi-Tech C, CCS C etc In this tutorial

we will use CCS C Compiler CCS stands for Custom Computer Services, a Microchip PIC Microcontroller Tool Solutions company

MikroC and CCS C are the best compilers for beginners as they includes a lot of built in libraries which enable us to program a PIC Microcontroller without the deep knowledge of its internal architecture I think CCS C is the best

High Level Language Compiler for PIC Microcontroller as it is hardware independent

In this tutorial we will learn how to write outputs to an IO pin In the following section, I am going to explain the basics of PIC Microcontroller Input Output configurations As we are using CCS C Compiler you may skip it but every PIC programmer should know it In this experiment we are using PIC16F877A microcontroller

Trang 4

4

PIC 16F877A PIN Diagram

VDD and VSS are the pins for providing power

For PIC 16F877A, VDD = 5V and VSS = GND (0V)

Pin 13 & 14, OSC1 and OSC2 are for connecting oscillator which will provide the

necessary clock for the operation of microcontroller The 1st pin MCLR is the reset

pin of PIC Microcontroller; it is an active low input It should be connected to HIGH

(VDD) for normal operations

IO (Input Output) pins in a PIC Microcontroller is divided in to different ports, eg :

PORTA, PORTB, PORTC, PORTD etc Each PORT is associated with two

registers, TRIS and PORT which are named as TRISA, PORTA, TRISB, PORTB

etc

Trang 5

5

PORT and TRIS Register in PIC Microcontroller

PORT and TRIS are the registers which handle discrete IO operations in PIC Microcontroller TRIS stands for Tri-state TRIS register determines the function of

an IO pin Logic 1 at TRIS register makes the corresponding pin Input while Logic 0

at TRIS register makes the corresponding pin Output PORT register can be used to read input pins or to write status of output pins For an Output Pin, Logic 1 at PORT register makes the corresponding pin HIGH state (VDD) while Logic 0 at PORT register makes the corresponding pin LOW state (VSS) Reading PORT register reads the actual voltage levels on IO pins If the actual voltage level is near to HIGH Level (VDD), corresponding PORT bit will be 1 and if the voltage level is near to LOW Level (VSS), corresponding PORT bit will be 0 Hope that you can understand its working from the above image

PREREQUISITE KNOWLEDGE

 You should know the basics of C Programming for developing projects in CCS C Compiler Following are some C concepts that may help you

 A number with a prefix '0b' indicates a binary number

 A number with a prefix '0' indicates an octal number

Trang 6

6

 A number with a prefix '0x' indicates a hexadecimal number

 A number without prefix is a decimal number Let's see some examples

CCS C Discrete IO Functions

get_tris_x()

This function is used to read TRIS register Examples are given below

tris_a = get_tris_A(); //Reads TRISA register

tris_b = get_tris_B(); //Reads TRISB register

set_tris_x()

This function is used to write TRIS register Examples are given below

set_tris_b(0xFF); //All pins of PORTB as Input

set_tris_c(0x00); //All pins of PORTC as Output

input_x()

This function is used to read data from an IO port, i.e it returns the value of a PORT register This function sets direction of all pins of the specified port as INPUT (TRIS bits 1) before reading the input Examples are given below

Trang 7

7

a = input_a(); //Reads PORTA

b = input_b(); //Reads PORTB

c = input_c(); //Reads PORTC

output_x()

This function is used to write data to a PORT This function sets direction of all pins

of specified port as OUTPUT (TRIS bits 0) before writing the output Examples are given below

output_b(0xFF); //All pins of PORTB HIGH (VDD)

output_c(0x00); //All pins of PORTC LOW (VSS)

input()

This function returns the state of the specified pin This function sets the direction

of the specified pin as INPUT (TRIS bit 1) before reading the input Examples are given below

while(!input(PIN_B0)); //Waits for Pin B0 to goes HIGH

if(input(PIN_C0)) //Pin C0 is HIGH Now

output_bit()

This function writes the specified value (1 or 0) to the specified IO pin This function sets the direction of the IO pin to OUTPUT before writing the value

output_bit(PIN_B0, 1); //Makes the pin B0 logic HIGH (VDD) output_bit(PIN_B7, 0); //Makes the pin B7 logic LOW (VSS)

Trang 8

8

input_state()

This function reads the state of a pin without changing the direction of that pin as input() does

b0 = input_state(PIN_B0); //Reads the state of B0 without changing its direction

c0 = input_state(PIN_C0); //Reads the state of C0 without changing its direction

input_change_x()

This function reads the value of the specified port and it compares with the result of last time input_change_x() function was called It returns an 8 bit or a 16 bit number representing the changes on the port A 1 corresponds if the value has changed and 0 corresponds if the value has unchanged

portc_check = input_change_c();

output_float()

This function sets the specified pin to input mode (TRIS bit 1), which is in high impedance state

output_float(PIN_B3); //Makes pin B3 Input

output_float(PIN_C5); //Makes pin C5 Input

output_drive()

This function sets the specified pin to output mode (TRIS bit 0)

output_drive(PIN_B6); //Makes pin B6 output

output_drive(PIN_C3); //Makes pin C3 output

Trang 9

9

output_high()

This function sets the specified pin to HIGH state (VDD)

output_high(PIN_A0); //Makes pin A0 HIGH

output_high(PIN_E0); //Makes pin E0 HIGH

output_low()

This function sets the specified pin to LOW state (VSS)

output_low(PIN_A2); //Makes pin A2 LOW

output_low(PIN_E1); //Makes pin E1 LOW

output_toggle()

This function toggles the HIGH/LOW state of the specified pin

output_toggle(PIN_B1); //Toggles the state of PIN B1 output_toggle(PIN_B2); //Toggles the state of PIN B2

Trang 10

10

Circuit Diagram - LED Blinking

Blinking LED using PIC Microcontroller - Circuit Diagram

CCS C - Starting a New Project

Hope you download CCS C compiler from CCS Website and installed it

 Open the CCS C Software

 CCS C Compiler

Trang 11

11

 File >> New >> Project Wizard

 Opening New Project Wizard

 Name the Project

Trang 12

12

 Project Wizard - Save Project As

 Select the device and Set Clock frequency

 Project Wizard - Select Device and Set Clock Frequency

 Click on Create Project

 The New Project Wizard is completed, now you can see code editor

 Enter the Code

Trang 13

13

CCS C Code - LED Blinking

#include <main.h>

#use delay (clock=8000000)

void main() {

while(TRUE)

{

output_high(PIN_B0); //LED ON

delay_ms(1000); //1 Second Delay

output_low(PIN_B0); //LED OFF

delay_ms(1000); //1 Second Delay

}

Enter the Code Here - CCS C Editor

 Then click on Compile

 This will generate, hex file in your project folder

 This is the file that to be burned to PIC Microcontroller

 You can also simulate its working in Proteus ISIS

d

Ngày đăng: 16/12/2019, 17:04

TỪ KHÓA LIÊN QUAN

w