O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
PIC MICROCONTROLLER
PROGRAMMING
BASED ON MIKROC
Difference from A
microprocessor?
• To communicate microprocessor with
peripheral environment, special circuits must
be us...
Internal Structure
Description
• PIC – “Peripheral Interface Controller”
• Made by Microchip Technology
• Most popular by industry developers...
Internal Units description
REGISTER
• An electronic circuit which can memorize the
state of one byte
SFR(Special Function Register)
• Registers whose function is predetermined by
the manufacturer of the microcontroller
• Ex...
INPUT / OUTPUT PORTS
• Microcontroller has one or more registers
(called ports) connected to the microcontroller
pins.
• C...
MEMORY UNIT
• Memory is part of the microcontroller used for
data storage.
• Types
1.MROM,
2.OTP ROM, 3.UV EP
ROM, 4.FLASH...
INTERRUPT
• Most programs use interrupts in their regular
execution
• The signal which informs the central processor
unit ...
CENTRAL PROCESSOR UNIT (CPU)
• Instruction decoder decodes program
instructions and runs other circuits based on
this
• Ac...
OSCILLATOR
• Enable harmonic and synchronous operation of
all circuits within the microcontroller.
• Usually configured so...
TIMERS/COUNTERS
• To measure time between two events, it is
sufficient to count up pulses generated by the
oscillator. Thi...
HOW DOES THE TIMER OPERATE?
• It is easy to measure short time intervals, up to
256 microsecond in this mode
•To measure t...
Using a pre Scaler
Using
Interrupt
COUNTERS
• If the timer receives pulses form the
microcontroller input pin, then it turns into a
counter.
• The only diffe...
A/D CONVERTER
• Converts continuous signals to discrete digital
numbers or circuit converts an analogue value
into a binar...
Basic path of processing codes
Tools required for programming
• Micro C IDE
• USB PIC Programmer drivers
• USB PIC Programmer
IDE FOR MIKROC PRO FOR PIC
• HNKKKKHH
COMPILER’S TOOLS AND LIBRARIES
• USART TERMINAL
• EEPROM EDITOR
• ASCII CHART
• SEVEN SEGMENT EDITOR
• LCD CUSTOM CHARACTE...
SEVEN SEGMENT EDITOR
PIC 16F877A LAYOUT
Analog I/O
UART
I2C
PORTA
http://www.mikroe.com/eng/chapters/view/74/pic-basic-book-chapter-1-
world-of...
FEATURES OF PIC 16F887A
• RISC architecture
– Only 35 instructions to learn
– All single-cycle instructions except branche...
• 256 bytes EEPROM memory
– Data can be written more than 1.000.000 times
• 368 bytes RAM memory
• A/D converter:
– 14-cha...
BASIC CONNECTION OF A PIC
Basic codes of MikroC
• TRISB=0; means that all the pins of PORTB is set
as output. If it is set as 1 then all the pins wi...
• TRISC.F0 = 1; Makes 0th bit of PORTC Input
• TRISC.F5 = 0; Makes 5th bit of PORTC Output
• PORTB.F3 = 1; Makes 3ed bit o...
Simple MikroC program for blinking an
LED
Interfacing DC Motor with PIC
Microcontroller using L293D
• Control Signals and Motor Status
RB0/IN1 RB2/IN2 Motor
Status ...
CCP(Capture/Compare/PWM) Module
• Three modes-Capture, compare , PWM
• PWM
• Signals with varying duty cycle.
• Importance...
• /* In this example, PWM module is initialized and set to give a pulse train of 50%
dutycycle.
For this purpose, function...
SERIAL COMMUNICATION
MODULES
• EUSART
Enhanced Universal Synchronous Asynchronous
Receiver Transmitter (EUSART)module is a...
• In order to enable data transmission via
EUSART module it is necessary to define the
state of the following pins-RX , TX...
/* In this example, internal EUSART module is initialized and set to send back the
message immediately after receiving it....
END
BY
PIC-MICROCONTROLLER TUTORIALS FOR BEGINNERS
PIC-MICROCONTROLLER TUTORIALS FOR BEGINNERS
PIC-MICROCONTROLLER TUTORIALS FOR BEGINNERS
PIC-MICROCONTROLLER TUTORIALS FOR BEGINNERS
Próximos SlideShares
Carregando em…5
×

PIC-MICROCONTROLLER TUTORIALS FOR BEGINNERS

PIC microcontroller programming based on micro c IDE.Those who really want to build a base in microcontroller programming,just keep going through this. ;) :)

  • Entre para ver os comentários

PIC-MICROCONTROLLER TUTORIALS FOR BEGINNERS

  1. 1. PIC MICROCONTROLLER PROGRAMMING BASED ON MIKROC
  2. 2. Difference from A microprocessor? • To communicate microprocessor with peripheral environment, special circuits must be used.
  3. 3. Internal Structure
  4. 4. Description • PIC – “Peripheral Interface Controller” • Made by Microchip Technology • Most popular by industry developers and hobbyists – Low cost (cents to dollars) – Availability – Extensive application notes – Serial programming 4
  5. 5. Internal Units description REGISTER • An electronic circuit which can memorize the state of one byte
  6. 6. SFR(Special Function Register) • Registers whose function is predetermined by the manufacturer of the microcontroller • Examples are timers, A/D converter, oscillators ,etc
  7. 7. INPUT / OUTPUT PORTS • Microcontroller has one or more registers (called ports) connected to the microcontroller pins. • Can change a pin function as you wish
  8. 8. MEMORY UNIT • Memory is part of the microcontroller used for data storage. • Types 1.MROM, 2.OTP ROM, 3.UV EP ROM, 4.FLASH MEM 5. EEPROM, 6. RAM
  9. 9. INTERRUPT • Most programs use interrupts in their regular execution • The signal which informs the central processor unit about such an event is called an INTERRUPT.
  10. 10. CENTRAL PROCESSOR UNIT (CPU) • Instruction decoder decodes program instructions and runs other circuits based on this • Accumulator is a kind of working desk used for storing all data upon which some operation should be performed (addition, shift/move etc.) • ALU
  11. 11. OSCILLATOR • Enable harmonic and synchronous operation of all circuits within the microcontroller. • Usually configured so as to use quartz crystal or ceramic resonator for frequency stability • but it can also operate as a stand-alone circuit (like RC oscillator).
  12. 12. TIMERS/COUNTERS • To measure time between two events, it is sufficient to count up pulses generated by the oscillator. This is exactly what the timer does. • ‘Stopwatches’ commonly 8- or 16-bit SFRs the contents of which is automatically incremented by each coming pulse.
  13. 13. HOW DOES THE TIMER OPERATE? • It is easy to measure short time intervals, up to 256 microsecond in this mode •To measure time intervals greater than 256 micro size we use two modified methods
  14. 14. Using a pre Scaler Using Interrupt
  15. 15. COUNTERS • If the timer receives pulses form the microcontroller input pin, then it turns into a counter. • The only difference is that in this case pulses to be counted come over the microcontroller input pin and their duration (width) is mostly undefined.
  16. 16. A/D CONVERTER • Converts continuous signals to discrete digital numbers or circuit converts an analogue value into a binary number and passes it to the CPU for further processing.
  17. 17. Basic path of processing codes
  18. 18. Tools required for programming • Micro C IDE • USB PIC Programmer drivers • USB PIC Programmer
  19. 19. IDE FOR MIKROC PRO FOR PIC • HNKKKKHH
  20. 20. COMPILER’S TOOLS AND LIBRARIES • USART TERMINAL • EEPROM EDITOR • ASCII CHART • SEVEN SEGMENT EDITOR • LCD CUSTOM CHARACTER • GRAPHIC LCD BITMAP GENERATOR • LIBRARIES
  21. 21. SEVEN SEGMENT EDITOR
  22. 22. PIC 16F877A LAYOUT Analog I/O UART I2C PORTA http://www.mikroe.com/eng/chapters/view/74/pic-basic-book-chapter-1- world-of-microcontrollers/ 24
  23. 23. FEATURES OF PIC 16F887A • RISC architecture – Only 35 instructions to learn – All single-cycle instructions except branches • Operating frequency 0-20 MHz • Precision internal oscillator – Factory calibrated – Software selectable frequency range of 8MHz to 31KHz • Power supply voltage 2.0-5.5V – Consumption: 220uA (2.0V, 4MHz), 11uA (2.0 V, 32 KHz) 50nA (stand-by mode) • Power-Saving Sleep Mode • Brown-out Reset (BOR) with software control option • 35 input/output pins – High current source/sink for direct LED drive
  24. 24. • 256 bytes EEPROM memory – Data can be written more than 1.000.000 times • 368 bytes RAM memory • A/D converter: – 14-channels – 10-bit resolution • 3 independent timers/counters • Watch-dog timer • Analogue comparator module with – Two analogue comparators – Fixed voltage reference (0.6V) – Programmable on-chip voltage reference • PWM output steering control • Enhanced USART module – Supports RS-485, RS-232 and LIN2.0 – Auto-Baud Detect • Master Synchronous Serial Port (MSSP) – supports SPI and I2C mode
  25. 25. BASIC CONNECTION OF A PIC
  26. 26. Basic codes of MikroC • TRISB=0; means that all the pins of PORTB is set as output. If it is set as 1 then all the pins will be configured as input. • PORTB=0; means that all the pins of PORTB is Logic low. If it is set as 1 then all the pins will be set as Logic high state. • ANSELA = 0; Configure PORTA pins as digital. ANSELA = 0b00000101; Means that RA0/C12IN0- and RA2/C2IN+ pins are analog inputs. • ANSELH=0; Configure PORTB pins as digital.
  27. 27. • TRISC.F0 = 1; Makes 0th bit of PORTC Input • TRISC.F5 = 0; Makes 5th bit of PORTC Output • PORTB.F3 = 1; Makes 3ed bit of PORTB at Logic High • PORTB.F7 = 0; Makes 7th bit of PORTB at Logic Low
  28. 28. Simple MikroC program for blinking an LED
  29. 29. Interfacing DC Motor with PIC Microcontroller using L293D • Control Signals and Motor Status RB0/IN1 RB2/IN2 Motor Status LOW LOW Stops LOW HIGH ANT-CLK HIGH LOW CLK HIGH HIGH CLK
  30. 30. CCP(Capture/Compare/PWM) Module • Three modes-Capture, compare , PWM • PWM • Signals with varying duty cycle. • Importance in power control circuits.
  31. 31. • /* In this example, PWM module is initialized and set to give a pulse train of 50% dutycycle. For this purpose, functions PWM1_Init(), PWM1_Start() and PWM1_Set_Duty() are used. All of them are already contained in the mikroC PRO for PIC PWM library and just need to be copied to the program. */ unsigned short duty_c; // Define variable duty_c void initMain() { ANSEL = ANSELH = 0; // All I/O pins are configured as digital PORTC = TRISC = 0; // Initial state of port C output pins PWM1_Init(5000); // PWM module initialization (5KHz) } void main() { initMain(); duty_c = 127; // Initial value of duty-cycle PWM1_Start(); // Start PWM1 module PWM1_Set_Duty(duty_c); // Set PWM duty-cycle to 50% ...
  32. 32. SERIAL COMMUNICATION MODULES • EUSART Enhanced Universal Synchronous Asynchronous Receiver Transmitter (EUSART)module is a serial I/O communication peripheral unit. • also known as Serial Communications Interface (SCI) • contains all clock generators, shift registers and data buffers necessary to perform an input/output serial data transfer
  33. 33. • In order to enable data transmission via EUSART module it is necessary to define the state of the following pins-RX , TX • RX-Receiver • TX-Transmitter
  34. 34. /* In this example, internal EUSART module is initialized and set to send back the message immediately after receiving it. Baude rate is set to 9600 bps. The program uses UART library routines UART1_init(), UART1_Write_Text(), UART1_Data_Ready(), UART1_Write() and UART1_Read().*/ char uart_rd; void main() { ANSEL = ANSELH = 0; // Configure AN pins as digital C1ON_bit = C2ON_bit = 0; // Disable comparators UART1_Init(9600); // Initialize UART module at 9600 bps Delay_ms(100); // Wait for UART module to become stable UART1_Write_Text("Start"); while (1) { // Endless loop if (UART1_Data_Ready()) { // If data is received, uart_rd = UART1_Read(); // read the received data, UART1_Write(uart_rd); // and send data back via UART }` }
  35. 35. END BY

×