MikroElektronika white logo
  • Products
    • Click Boards
      • Wireless Connectivity
        • GPS/GNSS
        • GSM/LTE
        • LTE IoT
        • BT/BLE
        • WiFi
        • RFID/NFC
        • GSM+GPS
        • 6LoWPAN
        • ZigBee
        • UWB
        • SigFox
        • Sub-1 GHz Transceievers
        • 2.4 GHz Trancevers
        • LoRa
        • WiFi+BLE
      • Sensors
        • Biometrics
        • Gas
        • Magnetic
        • Motion
        • Optical
        • Pressure
        • Proximity
        • Temperature & humidity
        • Current sensor
        • Miscellaneous
        • Environmental
        • Force
        • Inductance
        • RF meter
        • Click Shields
        • Click Bundles
      • Interface
        • Adapter
        • CAN
        • Port expander
        • RS485
        • USB
        • 1-Wire
        • RS232
        • Ethernet
        • LIN
        • PWM
        • Current
        • DALI
        • I2C
        • Fiber optics
        • SPI
        • DMX
        • CXPI
        • Click Shields
        • Click Bundles
      • Display & LED
        • LED Drivers
        • LED Matrix
        • LED Segment
        • OLED
        • LCD
        • TFT
        • Click Shields
        • Click Bundles
      • Miscellaneous
        • Relay
        • Optocoupler
        • ID
        • Proto
        • Encryption
        • Click Shields
        • Click Bundles
      • Mixed Signal
        • ADC
        • Measurements
        • DAC
        • Digital potentiometer
        • ADC-DAC
        • Click Shields
        • Click Bundles
      • Storage
        • EEPROM
        • FLASH
        • FRAM
        • microSD
        • MRAM
        • SRAM
        • EERAM
        • ReRAM
        • DRAM
        • Click Shields
        • Click Bundles
      • Motor Control
        • Brushed
        • Brushless
        • Servo
        • Stepper
        • Click Shields
        • Click Bundles
      • Audio & Voice
        • Amplifier
        • Microphone
        • Speakers
        • Signal Processing
        • Speech recognition
        • FM
        • MP3
        • Click Shields
        • Click Bundles
      • HMI
        • Capacitive
        • Pushbutton/Switches
        • Potentiometers
        • Rotary encoder
        • Haptic
        • Fingerprint
        • Click Shields
        • Click Bundles
      • Clock & Timing
        • RTC
        • Clock generator
        • Click Shields
        • Click Bundles
      • Power Management
        • Battery charger
        • Boost
        • Buck
        • Linear
        • Buck-Boost
        • Wireless Charging
        • Power Switch
        • USB-C PD
        • Click Shields
        • Click Bundles
      • Click Bundles
      • Click Shields
    • NECTO
      • NECTO Studio
    • Compilers
      • PIC
        • C
          • NECTO Studio
          • mikroC PRO for PIC
        • Basic
          • mikroBasic PRO for PIC
        • Pascal
          • mikroPascal PRO for PIC
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual TFT AI
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • dsPIC/PIC24
        • C
          • NECTO Studio
          • mikroC PRO for dsPIC
        • Basic
          • mikroBasic PRO for dsPIC
        • Pascal
          • mikroPascal PRO for dsPIC
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • PIC32
        • C
          • NECTO Studio
          • mikroC PRO for PIC32
        • Basic
          • mikroBasic PRO for PIC32
        • Pascal
          • mikroPascal PRO for PIC32
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • ARM
        • C
          • NECTO Studio
          • mikroC PRO for ARM
        • Basic
          • mikroBasic PRO for ARM
        • Pascal
          • mikroPascal PRO for ARM
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual TFT AI
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • AVR
        • C
          • NECTO Studio
          • mikroC PRO for AVR
        • Basic
          • mikroBasic PRO for AVR
        • Pascal
          • mikroPascal PRO for AVR
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • FT90x
        • C
          • mikroC PRO for FT90x
        • Basic
          • mikroBasic PRO for FT90x
        • Pascal
          • mikroPascal PRO for FT90x
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • 8051
        • C
          • mikroC PRO for 8051
        • Basic
          • mikroBasic PRO for 8051
        • Pascal
          • mikroPascal PRO for 8051
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
    • Dev Boards
      • PIC (8-bit)
        • 8th Generation
          • Fusion for PIC v8
          • EasyPIC PRO v8
          • EasyPIC PRO v8 over USB-C
          • EasyPIC v8
          • EasyPIC v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC PRO v7a
          • PICPLC16 v7a
          • EasyPIC v7a
          • EasyPIC PRO v7
          • EasyPIC v7
        • 6th Generation
          • PICPLC16 v6
      • dsPIC/PIC24 (16-bit)
        • 8th Generation
          • EasyPIC v8 PIC24/dsPIC33
          • EasyPIC v8 for dsPIC30
          • EasyPIC v8 for dsPIC30 over USB-C
          • Fusion for PIC v8
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC Fusion v7
          • EasyPIC v7 for dsPIC30
        • 6th Generation
          • Easy24-33 v6
      • PIC32 (32-bit)
        • 8th Generation
          • Fusion for PIC32
          • Fusion for PIC32 over USB-C
          • Fusion for PIC v8
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC Fusion v7
      • ARM (32-bit)
        • 8th Generation
          • Fusion for ARM v8
          • Fusion for ARM v8 over USB-C
          • Fusion for STM32 v8
          • Fusion for STM32 over USB-C
          • Fusion for KINETIS v8
          • Fusion for Kinetis v8 over USB-C
          • Fusion for TIVA v8
          • Fusion for TIVA v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyMx PRO v7a STM32
          • EasyMx PRO v7 STM32
          • EasyMx PRO v7 Tiva
      • AVR (8-bit)
        • 8th Generation
          • EasyAVR v8
          • EasyAVR PRO v8
          • EasyAVR PRO v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyAVR v7
        • 6th Generation
          • AVRPLC16 v6
      • 8051 (8-bit)
        • 7th generation
          • BIG8051
        • 6th Generation
          • Easy8051 v6
      • PSoC (8-bit)
        • 6th Generation
          • UNI-DS6 Development System
      • RISC-V (32bit)
        • 8th Generation
          • UNI-DS v8
          • UNI-DS v8 over USB-C
      • Universal Boards
        • 8th Generation
          • UNI-DS v8
          • UNI-DS v8 over USB-C
          • Fusion for PIC v8
          • Fusion for ARM v8
        • 7th Generation
          • EasyPIC Fusion v7
        • 6th Generation
          • UNI-DS6
          • mikroBoard for PIC 80-pin
          • mikroBoard for AVR
          • mikroBoard for dsPIC
          • mikroBoard for PSoC
          • mikroBoard for 8051
          • mikroBoard for PIC 40-pin
          • mikroBoard for ARM
          • mikroBoard for ARM 144-pin
      • IoT - Wearable
        • Hexiwear
          • Hexiwear
          • Hexiwear Power User Pack
          • Hexiwear Docking Station
          • Hexiwear Battery Pack
          • Hexiwear Color Pack
          • Hexiwear Workstation
      • Analog Boards
        • 7th Generation
          • Analog System Lab Kit PRO
    • Starter Boards
      • PIC (8-bit)
        • Clicker
          • PIC clicker
        • Clicker 2
          • Clicker 2 for PIC18FJ
          • Clicker 2 for PIC18FK
        • Clicker 4
          • Clicker 4 for PIC18F
          • UNI Clicker
        • Ready
          • Ready for PIC Board
          • Ready for PIC (DIP28)
          • PIC-Ready2 Board
          • MMC Ready Board
        • StartUSB
          • StartUSB for PIC
      • dsPIC/PIC24 (16-bit)
        • Clicker 2
          • Clicker 2 for PIC24
          • Clicker 2 for dsPIC33
        • Clicker 4
          • UNI Clicker
        • Ready
          • dsPIC-Ready1 Board
          • dsPIC-Ready2 Board
          • DsPIC-Ready3 Board
          • dsPIC-Ready4 Board
      • PIC32 (32-bit)
        • Clicker
          • PIC32MX clicker
          • 6LoWPAN Clicker
          • PIC32MZ clicker
        • Clicker 2
          • Clicker 2 for PIC32MX
          • Clicker 2 for PIC32MZ
        • Clicker 4
          • UNI Clicker
        • MINI
          • MINI-32 Board
          • MINI-32 for PIC32MZ
        • Flip&Click
          • Flip&Click PIC32MZ
      • ARM (32-bit)
        • Clicker
          • RA4M1 Clicker
          • Kinetis Clicker
          • MSP432 Clicker
          • CEC1702 clicker
          • CEC1302 Clicker
          • STM32 M4 clicker
        • Clicker 2
          • Clicker 2 for STM32
          • Clicker 2 for Kinetis
          • Clicker 2 for CEC1702
          • Clicker 2 for MSP432
          • Clicker 2 for CEC1302
          • Clicker 2 for PSoC 6
        • Clicker 4
          • Clicker 4 for STM32F745VG
          • Clicker 4 for STM32F4
          • Clicker 4 for TMPM3H
          • Clicker 4 for TMPM4K
          • Clicker 4 for STM32
          • UNI Clicker
        • MINI
          • MINI-M4 for STM32
          • MINI-M4 For Kinetis
          • MINI-M4 for Tiva
          • MINI-M4 for Stellaris
          • MINI-M4 for MSP432
          • MINI-M0 for STM32
        • Flip&Click
          • Flip&Click SAM3X
      • AVR (8-bit)
        • Clicker 4
          • UNI Clicker
        • MINI
          • MINI-AT Board - 3.3V
          • MINI-AT Board - 5V
        • Ready
          • Ready for AVR Board
          • Ready For XMEGA
          • mikroXMEGA Board
          • AVR-Ready2 Board
        • StartUSB
          • StartUSB for AVR
      • 8051 (8-bit)
        • Ready
          • 8051-Ready Board
      • FT90x (32-bit)
        • Clicker 2
          • Clicker 2 for FT90x
      • Miscellaneous
        • USB
          • USB Wizard
          • Quail
          • FlowPaw Kit
      • Universal Boards
        • Clicker 4
          • UNI Clicker
    • Prog-Debug
      • PIC (8-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
          • CODEGRIP for PIC USB-C
        • mikroProg
          • mikroProg for PIC
      • dsPIC/PIC24 (16-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
        • mikroProg
          • mikroProg for dsPIC
      • PIC32 (32-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
          • CODEGRIP for PIC USB-C
        • mikroProg
          • mikroProg for PIC32
      • ARM (32-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP USB-C
          • CODEGRIP for ARM
          • CODEGRIP for ARM USB-C
          • CODEGRIP for STM32
          • CODEGRIP for KINETIS
          • CODEGRIP for Tiva
          • CODEGRIP for Tiva USB-C
        • mikroProg
          • mikroProg for STM32
          • mikroProg for Tiva
          • mikroProg for Kinetis
          • mikroProg for CEC
          • mikroProg for MSP432
          • mikroProg for PSoC 5LP
      • AVR (8-bit)
        • CODEGRIP
          • CODEGRIP for AVR
          • CODEGRIP for AVR - USB-C
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
        • mikroProg
          • mikroProg for AVR
      • 8051 (8-bit)
        • mikroProg
          • mikroProg for 8051
      • FT90x (32-bit)
        • mikroProg
          • mikroProg for FT90x
    • Smart Displays
      • 2.8"
        • ARM (32-bit)
        • AVR (8-bit)
        • dsPIC/PIC24 (16-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 3.5"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 4.3"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 5"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC32 (32-bit)
      • 7"
        • ARM (32-bit)
        • FT90x (32-bit)
    • MCU Cards
      • PIC (8-bit)
        • 8th Generation
        • 7th Generation
        • 6th Generation
      • dsPIC/PIC24 (16-bit)
        • 8th Generation
        • 7th Generation
        • 6th Generation
      • PIC32 (32-bit)
        • 8th Generation
        • 7th Generation
      • ARM (32-bit)
        • 8th Generation
        • 7th Generation
      • AVR (8-bit)
        • 8th Generation
      • RISC-V (32bit)
        • 8th Generation
    • Accessories
      • TFT Displays
      • LCD Displays
      • LED Displays
      • E-Paper Displays
      • Sensors
      • Headers and Connectors
      • Wire Jumpers and Cables
      • Antennas
      • Batteries
      • RFID/NFC
      • Proto
      • Motors
      • Storage
      • Power
      • Adapters
      • Interface
      • Input/Output
      • Miscellaneous
      • FANware
      • MCUs
      • Books
    • Kits
      • PIC Kits
      • dsPIC/PIC24 Kits
      • PIC32 Kits
      • ARM Kits
      • AVR Kits
      • FT90x Kits
      • 8051 Kits
  • Shop
  • EmbeddedWiki
  • Support
    • Helpdesk
    • Contact us
    • Forum
    • LibStock
    • Learn
    • Let's make
    • Books
  • Services
    • Planet Debug
    • Design Service
    • Product Customization
    • Contract Manufacturing
    • Premium Technical Support
  • News
  • My profile
  • Privacy settings
  • Activity
  • Sign out

Your shoppingcart is empty.
Continue shopping.

MikroElektronika white logo
  • Products
    • click boards icon Click Boards
      • Wireless Connectivity
        • GPS/GNSS
        • GSM/LTE
        • LTE IoT
        • BT/BLE
        • WiFi
        • RFID/NFC
        • GSM+GPS
        • 6LoWPAN
        • ZigBee
        • UWB
        • SigFox
        • Sub-1 GHz Transceievers
        • 2.4 GHz Trancevers
        • LoRa
        • WiFi+BLE
      • Sensors
        • Biometrics
        • Gas
        • Magnetic
        • Motion
        • Optical
        • Pressure
        • Proximity
        • Temperature & humidity
        • Current sensor
        • Miscellaneous
        • Environmental
        • Force
        • Inductance
        • RF meter
        • Click Shields
        • Click Bundles
      • Interface
        • Adapter
        • CAN
        • Port expander
        • RS485
        • USB
        • 1-Wire
        • RS232
        • Ethernet
        • LIN
        • PWM
        • Current
        • DALI
        • I2C
        • Fiber optics
        • SPI
        • DMX
        • CXPI
        • Click Shields
        • Click Bundles
      • Display & LED
        • LED Drivers
        • LED Matrix
        • LED Segment
        • OLED
        • LCD
        • TFT
        • Click Shields
        • Click Bundles
      • Miscellaneous
        • Relay
        • Optocoupler
        • ID
        • Proto
        • Encryption
        • Click Shields
        • Click Bundles
      • Mixed Signal
        • ADC
        • Measurements
        • DAC
        • Digital potentiometer
        • ADC-DAC
        • Click Shields
        • Click Bundles
      • Storage
        • EEPROM
        • FLASH
        • FRAM
        • microSD
        • MRAM
        • SRAM
        • EERAM
        • ReRAM
        • DRAM
        • Click Shields
        • Click Bundles
      • Motor Control
        • Brushed
        • Brushless
        • Servo
        • Stepper
        • Click Shields
        • Click Bundles
      • Audio & Voice
        • Amplifier
        • Microphone
        • Speakers
        • Signal Processing
        • Speech recognition
        • FM
        • MP3
        • Click Shields
        • Click Bundles
      • HMI
        • Capacitive
        • Pushbutton/Switches
        • Potentiometers
        • Rotary encoder
        • Haptic
        • Fingerprint
        • Click Shields
        • Click Bundles
      • Clock & Timing
        • RTC
        • Clock generator
        • Click Shields
        • Click Bundles
      • Power Management
        • Battery charger
        • Boost
        • Buck
        • Linear
        • Buck-Boost
        • Wireless Charging
        • Power Switch
        • USB-C PD
        • Click Shields
        • Click Bundles
      • Click Bundles
      • Click Shields
    • necto icon NECTO
      • NECTO Studio
    • compilers icon Compilers
      • PIC
        • C
          • NECTO Studio
          • mikroC PRO for PIC
        • Basic
          • mikroBasic PRO for PIC
        • Pascal
          • mikroPascal PRO for PIC
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual TFT AI
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • dsPIC/PIC24
        • C
          • NECTO Studio
          • mikroC PRO for dsPIC
        • Basic
          • mikroBasic PRO for dsPIC
        • Pascal
          • mikroPascal PRO for dsPIC
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • PIC32
        • C
          • NECTO Studio
          • mikroC PRO for PIC32
        • Basic
          • mikroBasic PRO for PIC32
        • Pascal
          • mikroPascal PRO for PIC32
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • ARM
        • C
          • NECTO Studio
          • mikroC PRO for ARM
        • Basic
          • mikroBasic PRO for ARM
        • Pascal
          • mikroPascal PRO for ARM
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual TFT AI
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • AVR
        • C
          • NECTO Studio
          • mikroC PRO for AVR
        • Basic
          • mikroBasic PRO for AVR
        • Pascal
          • mikroPascal PRO for AVR
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • FT90x
        • C
          • mikroC PRO for FT90x
        • Basic
          • mikroBasic PRO for FT90x
        • Pascal
          • mikroPascal PRO for FT90x
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
      • 8051
        • C
          • mikroC PRO for 8051
        • Basic
          • mikroBasic PRO for 8051
        • Pascal
          • mikroPascal PRO for 8051
        • Additional Software
          • CODEGRIP WiFi license
          • CODEGRIP SSL license
          • Visual TFT
          • Visual GLCD
          • Package Manager
          • mikroBootloader
          • CAN calculator
          • GLCD Font Creator
          • Timer Calculator
          • MikroPlot
    • dev boards icon Dev Boards
      • PIC (8-bit)
        • 8th Generation
          • Fusion for PIC v8
          • EasyPIC PRO v8
          • EasyPIC PRO v8 over USB-C
          • EasyPIC v8
          • EasyPIC v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC PRO v7a
          • PICPLC16 v7a
          • EasyPIC v7a
          • EasyPIC PRO v7
          • EasyPIC v7
        • 6th Generation
          • PICPLC16 v6
      • dsPIC/PIC24 (16-bit)
        • 8th Generation
          • EasyPIC v8 PIC24/dsPIC33
          • EasyPIC v8 for dsPIC30
          • EasyPIC v8 for dsPIC30 over USB-C
          • Fusion for PIC v8
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC Fusion v7
          • EasyPIC v7 for dsPIC30
        • 6th Generation
          • Easy24-33 v6
      • PIC32 (32-bit)
        • 8th Generation
          • Fusion for PIC32
          • Fusion for PIC32 over USB-C
          • Fusion for PIC v8
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyPIC Fusion v7
      • ARM (32-bit)
        • 8th Generation
          • Fusion for ARM v8
          • Fusion for ARM v8 over USB-C
          • Fusion for STM32 v8
          • Fusion for STM32 over USB-C
          • Fusion for KINETIS v8
          • Fusion for Kinetis v8 over USB-C
          • Fusion for TIVA v8
          • Fusion for TIVA v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyMx PRO v7a STM32
          • EasyMx PRO v7 STM32
          • EasyMx PRO v7 Tiva
      • AVR (8-bit)
        • 8th Generation
          • EasyAVR v8
          • EasyAVR PRO v8
          • EasyAVR PRO v8 over USB-C
          • UNI-DS v8
          • UNI-DS v8 over USB-C
        • 7th Generation
          • EasyAVR v7
        • 6th Generation
          • AVRPLC16 v6
      • 8051 (8-bit)
        • 7th generation
          • BIG8051
        • 6th Generation
          • Easy8051 v6
      • PSoC (8-bit)
        • 6th Generation
          • UNI-DS6 Development System
      • RISC-V (32bit)
        • 8th Generation
          • UNI-DS v8
          • UNI-DS v8 over USB-C
      • Universal Boards
        • 8th Generation
          • UNI-DS v8
          • UNI-DS v8 over USB-C
          • Fusion for PIC v8
          • Fusion for ARM v8
        • 7th Generation
          • EasyPIC Fusion v7
        • 6th Generation
          • UNI-DS6
          • mikroBoard for PIC 80-pin
          • mikroBoard for AVR
          • mikroBoard for dsPIC
          • mikroBoard for PSoC
          • mikroBoard for 8051
          • mikroBoard for PIC 40-pin
          • mikroBoard for ARM
          • mikroBoard for ARM 144-pin
      • IoT - Wearable
        • Hexiwear
          • Hexiwear
          • Hexiwear Power User Pack
          • Hexiwear Docking Station
          • Hexiwear Battery Pack
          • Hexiwear Color Pack
          • Hexiwear Workstation
      • Analog Boards
        • 7th Generation
          • Analog System Lab Kit PRO
    • starter boards icon Starter Boards
      • PIC (8-bit)
        • Clicker
          • PIC clicker
        • Clicker 2
          • Clicker 2 for PIC18FJ
          • Clicker 2 for PIC18FK
        • Clicker 4
          • Clicker 4 for PIC18F
          • UNI Clicker
        • Ready
          • Ready for PIC Board
          • Ready for PIC (DIP28)
          • PIC-Ready2 Board
          • MMC Ready Board
        • StartUSB
          • StartUSB for PIC
      • dsPIC/PIC24 (16-bit)
        • Clicker 2
          • Clicker 2 for PIC24
          • Clicker 2 for dsPIC33
        • Clicker 4
          • UNI Clicker
        • Ready
          • dsPIC-Ready1 Board
          • dsPIC-Ready2 Board
          • DsPIC-Ready3 Board
          • dsPIC-Ready4 Board
      • PIC32 (32-bit)
        • Clicker
          • PIC32MX clicker
          • 6LoWPAN Clicker
          • PIC32MZ clicker
        • Clicker 2
          • Clicker 2 for PIC32MX
          • Clicker 2 for PIC32MZ
        • Clicker 4
          • UNI Clicker
        • MINI
          • MINI-32 Board
          • MINI-32 for PIC32MZ
        • Flip&Click
          • Flip&Click PIC32MZ
      • ARM (32-bit)
        • Clicker
          • RA4M1 Clicker
          • Kinetis Clicker
          • MSP432 Clicker
          • CEC1702 clicker
          • CEC1302 Clicker
          • STM32 M4 clicker
        • Clicker 2
          • Clicker 2 for STM32
          • Clicker 2 for Kinetis
          • Clicker 2 for CEC1702
          • Clicker 2 for MSP432
          • Clicker 2 for CEC1302
          • Clicker 2 for PSoC 6
        • Clicker 4
          • Clicker 4 for STM32F745VG
          • Clicker 4 for STM32F4
          • Clicker 4 for TMPM3H
          • Clicker 4 for TMPM4K
          • Clicker 4 for STM32
          • UNI Clicker
        • MINI
          • MINI-M4 for STM32
          • MINI-M4 For Kinetis
          • MINI-M4 for Tiva
          • MINI-M4 for Stellaris
          • MINI-M4 for MSP432
          • MINI-M0 for STM32
        • Flip&Click
          • Flip&Click SAM3X
      • AVR (8-bit)
        • Clicker 4
          • UNI Clicker
        • MINI
          • MINI-AT Board - 3.3V
          • MINI-AT Board - 5V
        • Ready
          • Ready for AVR Board
          • Ready For XMEGA
          • mikroXMEGA Board
          • AVR-Ready2 Board
        • StartUSB
          • StartUSB for AVR
      • 8051 (8-bit)
        • Ready
          • 8051-Ready Board
      • FT90x (32-bit)
        • Clicker 2
          • Clicker 2 for FT90x
      • Miscellaneous
        • USB
          • USB Wizard
          • Quail
          • FlowPaw Kit
      • Universal Boards
        • Clicker 4
          • UNI Clicker
    • prog-debug icon Prog-Debug
      • PIC (8-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
          • CODEGRIP for PIC USB-C
        • mikroProg
          • mikroProg for PIC
      • dsPIC/PIC24 (16-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
        • mikroProg
          • mikroProg for dsPIC
      • PIC32 (32-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
          • CODEGRIP for PIC
          • CODEGRIP for PIC USB-C
        • mikroProg
          • mikroProg for PIC32
      • ARM (32-bit)
        • CODEGRIP
          • UNI CODEGRIP
          • UNI CODEGRIP USB-C
          • CODEGRIP for ARM
          • CODEGRIP for ARM USB-C
          • CODEGRIP for STM32
          • CODEGRIP for KINETIS
          • CODEGRIP for Tiva
          • CODEGRIP for Tiva USB-C
        • mikroProg
          • mikroProg for STM32
          • mikroProg for Tiva
          • mikroProg for Kinetis
          • mikroProg for CEC
          • mikroProg for MSP432
          • mikroProg for PSoC 5LP
      • AVR (8-bit)
        • CODEGRIP
          • CODEGRIP for AVR
          • CODEGRIP for AVR - USB-C
          • UNI CODEGRIP
          • UNI CODEGRIP - USB-C
        • mikroProg
          • mikroProg for AVR
      • 8051 (8-bit)
        • mikroProg
          • mikroProg for 8051
      • FT90x (32-bit)
        • mikroProg
          • mikroProg for FT90x
    • smart displays icon Smart Displays
      • 2.8"
        • ARM (32-bit)
        • AVR (8-bit)
        • dsPIC/PIC24 (16-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 3.5"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 4.3"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC (8-bit)
        • PIC32 (32-bit)
      • 5"
        • ARM (32-bit)
        • FT90x (32-bit)
        • PIC32 (32-bit)
      • 7"
        • ARM (32-bit)
        • FT90x (32-bit)
    • mcu cards icon MCU Cards
      • PIC (8-bit)
        • 8th Generation
        • 7th Generation
        • 6th Generation
      • dsPIC/PIC24 (16-bit)
        • 8th Generation
        • 7th Generation
        • 6th Generation
      • PIC32 (32-bit)
        • 8th Generation
        • 7th Generation
      • ARM (32-bit)
        • 8th Generation
        • 7th Generation
      • AVR (8-bit)
        • 8th Generation
      • RISC-V (32bit)
        • 8th Generation
    • accessories icon Accessories
      • TFT Displays
      • LCD Displays
      • LED Displays
      • E-Paper Displays
      • Sensors
      • Headers and Connectors
      • Wire Jumpers and Cables
      • Antennas
      • Batteries
      • RFID/NFC
      • Proto
      • Motors
      • Storage
      • Power
      • Adapters
      • Interface
      • Input/Output
      • Miscellaneous
      • FANware
      • MCUs
      • Books
    • kits icon Kits
      • PIC Kits
      • dsPIC/PIC24 Kits
      • PIC32 Kits
      • ARM Kits
      • AVR Kits
      • FT90x Kits
      • 8051 Kits
  • Shop
  • EmbeddedWiki
  • Support
    • Helpdesk
    • Contact us
    • Forum
    • LibStock
    • Learn
    • Let's make
    • Books
  • Services
    • Planet Debug
    • Design Service
    • Product Customization
    • Contract Manufacturing
    • Premium Technical Support
  • News
  • Price :

    More info
Reset filter
  • 0
Authentication
Account

Create account

Forgot your password?

Your cart is empty !
View cart ( )
  1. Home
  2. ebooks
  3. Microcontroladores PIC – Programación en BASIC
  4. principales-registros-sfr
MikroElektronika books

3.2 Principales Registros SFR

 7
El siguiente texto describe los principales registros SFR del microcontrolador PIC16F887. Los bits de cada registro controlan los circuitos diferentes dentro del chip, así que no es posible clasificarlos en grupos especiales. Por esta razón, se describen junto con los procesos que controlan.

Registro STATUS

al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-16
Leyenda: R/W - Bit de lectura/escritura, R - Bit de solo lectura, (0) - Después del reinicio, el bit se pone a cero, (1) - Después del reinicio, el bit se pone a uno, (X) - Después del reinicio, el estado de bit es desconocido El registro STATUS contiene: el estado aritmético de datos en el registro W, el estado RESET, los bits para seleccionar el banco para los datos de la memoria.
  • IRP - Registro de selección de Banco (usado para direccionamiento indirecto)
    • 1 - Bancos 0 y 1 son activos (localidades de memoria 00h-FFh)
    • 0 - Bancos 2 y 3 son activos (localidades de memoria 100h-1FFh)
  • RP1,RP0 - Registro de selección de banco (usado para direccionamiento directo).
RP1 RP0 BANCO ACTIVO
0 0 Banco 0
0 1 Banco 1
1 0 Banco 2
1 1 Banco 3
  • TO - Time-out bit (bit de salida del temporizador perro guardián)
    • 1 - Después de encender el microcontrolador, después de ejecutarse la instrucción CLRWDT que reinicia al WDT (temporizador perro guardián) o después de ejecutarse la instrucción SLEEP que pone al microcontrolador en el modo de bajo consumo.
    • 0 - Después de acabarse el tiempo del WDT.
  • PD - Power-down bit (bit de apagado)
    • 1 - Después de encender el microcontrolador, después de ejecutar la instrucción CLRWDT que reinicia al WDT.
    • 0 - Después de ejecutarse la instrucción SLEEP que pone al microcontrolador en el modo de bajo consumo.
  • Z - Zero bit (bit cero)
    • 1 - El resultado de una operación lógica o aritmética es 0.
    • 0 - TEl resultado de una operación lógica o aritmética es distinto de 0.
  • DC - Digit carry/borrow bit (bit de acarreo/préstamo de dígito) cambia al sumar o al restar si ocurre un “desbordamiento” o un “préstamo” en el resultado.
    • 1 - Hubo acarreo del cuarto bit de orden bajo (nibble bajo) en el resultado.
    • 0 - No hubo acarreo del cuarto bit de orden bajo (nibble bajo) en el resultado.
  • C - Carry/Borrow bit (bit de acarreo/préstamo) cambia al sumar o al restar si ocurre un “desbordamiento” o un “préstamo” en el resultado, o sea si el resultado es mayor de 255 o menor de 0.
    • 1 - Ocurrió acarreo en el bit más significativo (MSB) del resultado.
    • 0 - No ocurrió acarreo en el bit más significativo (MSB) del resultado.

Registro OPTION_REG

al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-17
Leyenda: R/W - Bit de lectura/escritura, (1) Después del reinicio, el bit se pone a uno
El registro OPTION_REG contiene varios bits de control para configurar el pre - escalador del Timer0/WDT, el temporizador Timer0, la interrupción externa y las resistencias pull-up en el puerto PORTB.
al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-18
  • RBPU - Port B Pull up Enable bit (resistencia Pull Up Puerto B)
    • 1 - Desactivadas
    • 0 - Activadas
al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-19
  • INTEDG - Interrupt Edge Select bit (bit selector de flanco activo de la interrupción externa)
    • 1 - Interrupción por flanco ascendente en el RB0/INT
    • 0 - Interrupción por flanco descendente en el RB0/INT
al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-20
  • T0CS - TMR0 Clock Source Select bit (bit selector de tipo de reloj para el Timer0)
    • 1 - Pulsos introducidos a través del TOCKI (contador)
    • 0 - Pulsos de reloj internos Fosc/4 (temporizador)
al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-21
  • T0SE - TMR0 Source Edge Select bit (bit selector de tipo de flanco en TOCKI) selecciona el flanco (ascendente o descendente) contado por el temporizador Timer0 por el pin RA4/T0CKI.
    • 1 - Incrementa en flanco descendente en el pin TOCKI.
    • 0 - Incrementa en flanco ascendente en el pin TOCKI.
al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-22
  • PSA - Prescaler Assignment bit asigna el pre-escalador (hay sólo uno) al temporizador o al WDT.
    • 1 - Pre - escalador se le asigna al WDT
    • 0 - Pre - escalador se le asigna al temporizador Timer0.

PS2, PS1, PS0 Prescaler Rate Select bits (bit selector del valor del divisor de frecuencia)

El valor del divisor de frecuencia se selecciona al combinar estos tres bits. Como se muestra en la siguiente tabla, el valor del divisor de frecuencia se le asigna al temporizador Timer0 o al temporizador perro guardián (WDT).
PS2 PS1 PS0 TMR0 WDT
0 0 0 1:2 1:1
0 0 1 1:4 1:2
0 1 0 1:8 1:4
0 1 1 1:16 1:8
1 0 1 1:64 1:32
1 1 0 1:128 1:64
1 1 1 1:256 1:128
Para conseguir el valor del divisor de frecuencia 1:1 cuando el temporizador Timer0 cuenta pulsos, el pre-escalador debe ser asignado al WDT. En consecuencia, el temporizador Timer0 no utiliza el pre-escalador, sino que cuenta directamente los pulsos generados por el oscilador, lo que era el objetivo. Vamos a hacerlo en mikroBasic...
' Si el comando CLRWDT no se ejecuta, el WDT va a reiniciar al microcontrolador cada 32.768
' uS (f=4 MHz) 
OPTION_REG = %00001111 ' Pre-escalador está asignado al WDT (1:128)
asm
CLRWDT ' Comando en ensamblador para reiniciar al WDT
end asm
...    ' El tiempo entre estos dos comandos CLRWDT no debe exceder 32.768 microsegundos (128x256)
CLRWDT ' Comando en ensamblador para reiniciar al WDT 
...
...    ' El tiempo entre estos dos comandos CLRWDT no debe exceder 32.768 microsegundos (128x256)
CLRWDT ' Comando en ensamblador para reiniciar al WDT 
...

REGISTROS DEL SISTEMA DE DESARROLLO

Al llegar la petición de interrupción, no significa que una interrupción ocurrirá automáticamente, puesto que debe ser habilitada por el usuario (por el programa) también. Por esta razón, hay bits especiales utilizados para habilitar o deshabilitar interrupciones. Es fácil de reconocerlos por las letras IE contenidas en sus nombres (Interrupt Enable - Interrupción habilitada). Además, cada interrupción se asocia con otro bit denominado bandera que indica que una petición de interrupción ha llegado sin verificar si está habilitada. Asimismo, se reconocen con facilidad por las dos últimas letras contenidas en sus nombres - IF (Interrupt Flag - Bandera de interrupción).
al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-24
Como hemos visto, toda la idea es muy simple y eficiente. Al llegar la petición de interrupción, primero el bit de bandera se pone a uno. Si el bit IE apropiado está a cero (0), esta condición será ignorada completamente. De lo contrario, ocurre una interrupción. Si varias fuentes de interrupción están habilitadas, es necesario detectar la activa antes de que la rutina de interrupción se ponga a ejecutar. La detección de la fuente se realiza al comprobar los bits de las banderas. Cabe destacar que los bits de cada bandera no se ponen a cero automáticamente, sino por el software, mientras que la ejecución de la rutina de interrupción continúa ejecutándose. Si no hacemos caso a este detalle, ocurrirá otra interrupción inmediatamente después de volver al programa principal, aunque no hay más peticiones de ejecución. Simplemente, la bandera, así como el bit IE, se quedan en uno. Todas las fuentes de interrupción típicas para el microcontrolador PIC16F887 se muestran en la siguiente página. Fíjese en lo siguiente: El bit GIE habilita/deshabilita simultáneamente las interrupciones no enmascaradas. El PEIE habilita/deshabilita las interrupciones no enmascaradas de periféricos. Esto no se refiere al temporizador Timer0 y a las fuentes de interrupción del puerto PORTB. Para habilitar una interrupción causada por el cambio del estado lógico en el puerto PORTB, es necesario habilitarla para cada bit por separado. En este caso, los bits del registro IOCB se comportan como los bits IE de control. al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-25
Sistema de interrupción del microcontrolador PIC16F887

Registro INTCON

El registro OPTION_REG contiene varios bits de control para configurar el pre - escalador del Timer0/WDT, el temporizador Timer0, la interrupción externa y las resistencias pull-up en el puerto PORTB. al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-26
Leyenda: R/W - Bit de lectura/escritura, (0) Después del reinicio, el bit se pone a cero, (X) - Después del reinicio, el estado de bit es desconocido
  • GIE - Global Interrupt Enable bit (bit de habilitación de interrupciones globales) controla simultáneamente todas las fuentes de interrupciones posibles.
    • 1 - Habilita las interrupciones no enmascaradas.
    • 0 - Deshabilita las interrupciones no enmascaradas.
  • PEIE - Peripheral Interrupt Enable bit (bit de habilitación de interrupciones periféricas) es similar al bit GIE, sin embargo controla interrupciones habilitadas por los periféricos. Eso significa que no influye en interrupciones causadas por el temporizador Timer0 o por el cambio del estado en el puerto PORTB o por el cambio en el pin RB0/INT.
    • 1 -Habilita las interrupciones periféricas no enmascaradas.
    • 0 -Deshabilita las interrupciones periféricas no enmascaradas
  • T0IE - TMR0 Overflow Interrupt Enable bit (bit de habilitación de interrupciones por el desbordamiento del registro Timer0) controla interrupciones causadas por el desbordamiento del Timer0.
    • 1 - Habilita interrupciones por Timer0
    • 0 - Deshabilita interrupciones por Timer0
  • INTE - RB0/INT External Interrupt Enable bit (bit de habilitación de la interrupción externa en RB0) controla interrupciones causadas por el cambio del estado lógico en el pin de entrada RB0/INT (interrupción externa).
    • 1 - Habilita interrupciones externas INT
    • 0 - Deshabilita interrupciones externas INT
  • RBIE - RB Port Change Interrupt Enable bit. (bit de habilitación de interrupciones por cambios en el puerto PORTB). Cuando se configuran como entradas, los pines en el puerto PORTB pueden causar una interrupción al cambiar el estado lógico (no importa si se produce bajada o subida de tensión, lo que importa es que se produce un cambio). Este bit determina si una interrupción va a ocurrir.
    • 1 - Habilita interrupciones por cambio en el puerto PORTB
    • 0 - Deshabilita interrupciones por cambio en el puerto PORTB
  • T0IF - TMR0 Overflow Interrupt Flag bit (bit de bandera de interrupción por el desbordamiento del Timer0) detecta el desbordamiento en el registro del temporizador Timer0, o sea el contador se pone a cero.
    • 1 - En el registro TMR0 ha ocurrido desbordamiento (esta bandera debe volverse a 0 por software)
    • 0 - En el registro TMR0 no ha ocurrido desbordamiento
  • INTF - RB0/INT External Interrupt Flag bit (bit de bandera de interrupción externa en INT) detecta el cambio en el estado lógico en el pin INT.
    • 1 - Ha ocurrido una interrupción externa por INT (esta bandera debe volverse a 0 por software)
    • 0 - No ha ocurrido una interrupción externa por INT
  • RBIF - RB Port Change Interrupt Flag bit (bit de bandera de interrupción por cambio en el puerto RB) detecta cualquier cambio del estado lógico de alguno de los pines de entrada en el puerto PORTB.
    • 1 - Al menos uno de los pines de E/S de propósito general en el puerto PORTB ha cambido de valor. Después de leer el puerto PORTB, el bit RBIF debe volverse a 0 por software)
    • 0 - Ninguno de los pines de E/S de propósito general en el puerto PORTB ha cambiado de valor.
Vamos a hacerlo en mikroBasic...
' El pin PORTB.4 se configura como una entrada sensible al cambio del estado lógico. 
ANSEL, ANSELH = 0 ' Todos los pines de E/S se configuran como digitales
PORTB = 0         ' Todos los pines del puerto PORTB se ponen a cero
TRISB = %00010000 ' Todos los pines del puerto PORTB menos PORTB.4 
                  ' se configuran como salidas
INTCON.RBIE = 1   ' Se habilitan las interrupciones por el cambio en el puerto PORTB
IOCB.IOCB4 = 1    ' Se habilita la interrupción por el cambio en el pin 4 en el puerto PORTB
INTCON.GIE = 1    ' Se habilita la interrupción global
...
...
'Desde este punto, se produce una interrupción con cualquier cambio del estado lógico en el pin 
'PORTB.

PIE1 Register

El registro PIE1 contiene los bits de habilitación de interrupciones periféricas. al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-27
Leyenda: (-) Bit no implementado, (R/W) - Bit de lectura/escritura, (0) Después del reinicio, el bit se pone a cero
  • ADIE - A/D Converter Interrupt Enable bit (bit de habilitación de interrupciones del convertidor A/D)
    • 1 - Habilita la interrupción ADC.
    • 0 - Deshabilita la interrupción ADC.
  • RCIE - EUSART Receive Interrupt Enable bit (bit de habilitación de interrupciones de recepción del EUSART)
    • 1 - Habilita la interrupción de recepción del EUSART.
    • 0 - Deshabilita la interrupción de recepción del EUSART.
  • TXIE - EUSART Transmit Interrupt Enable bit (bit de habilitación de interrupciones de transmisión del EUSART)
    • 1 - Habilita la interrupción de transmisión del EUSART.
    • 0 - Deshabilita la interrupción de transmisión del EUSART.
  • SSPIE - Master Synchronous Serial Port (MSSP) Interrupt Enable bit (bit de habilitación de la interrupción del puerto serie síncrono maestro (MSSP) habilita generar una petición de interrupción después de cada transmisión de datos por el módulo de comunicación serie síncrona (modo SPI o I2C).
    • 1 - Habilita la interrupción del MSSP.
    • 0 - Deshabilita la interrupción del MSSP.
  • CCP1IE - CCP1 Interrupt Enable bit bit de habilitación de la interrupción del módulo 1 de Comparación/Captura/PWM - CCP1) permite generar una petición de interrupción en el módulo CCP1 utilizado para procesamiento de la señal PWM.
    • 1 - Habilita la interrupción CCP1.
    • 0 - Deshabilita la interrupción CCP1.
  • TMR2IE - TMR2 to PR2 Match Interrupt Enable bit (bit de habilitación de la interrupción de igualdad entre TMR2 y PR2)
    • 1 - Habilita la interrupción de igualdad entre TMR2 y PR2
    • 0 - Deshabilita la interrupción de igualdad entre TMR2 y PR2
  • TMR1IE - TMR1 Overflow Interrupt Enable bit (bit de habilitación de la interrupción de desbordamiento del temporizador Timer1) habilita generar una petición de interrupción después de cada desbordamiento en el registro del temporizador Timer1, o sea el contador se pone a cero.
    • 1 - Habilita la interrupción por desbordamiento en el registro TMR1.
    • 0 - Deshabilita la interrupción por desbordamiento en el registro TMR1.
Vamos a hacerlo en mikroBasic...
' El comparador C2 se configura para utilizar los pines RA0 y RA2 como entradas. Al producirse 
' un cambio en la salida del comparador, el pin de salida PORTB.1 cambia el estado lógico en  
' la rutina de interrupción. 

dim unsigned short cnt     ' Definir la variable cnt
sub procedure interrupt    ' Inicio de la rutina de interrupción
cnt = cnt + 1              ' Al producirse una interrupción, la cnt se incrementa por 1 
  PIR1.TMR1IF = 0          ' El bit TMR1IF se reinicia  
  TMR1H = 0x80             ' A los registros del temporizador TMR1H y TMR1L se les   
TMR1L = 0x00               ' devuelven sus valores iniciales
end sub

main: 
  ANSEL, ANSELH = 0        ' Todos los pines de E/S se configuran como digitales    
  T1CON = 1                ' Encender el temporizador Timer1
  PIR1.TMR1IF = 0          ' El bit TMR1IF se pone a cero
  TMR1H = 0x80             ' Establecer los valores iniciales para el temporizador Timer1 
  TMR1L = 0x00
  PIE1.TMR1IE  = 1         ' Habilitar la interrupción al producirse un 
                           ' desbordamiento en el Timer1

  cnt =   0                ' Reiniciar la variable cnt
  INTCON = 0xC0            ' Habilitar la interrupción (los bits GIE y PEIE)
  ...

Registro PIE2

El registro PIE2 también contiene varios bits de habilitación de interrupciones. al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-28
Leyenda: (-) Bit no implementado, (R/W) - Bit de lectura/escritura, (0) Después del reinicio, el bit se pone a cero
  • OSFIE - Oscillator Fail Interrupt Enable bit (bit de habilitación de la interrupción de fallo en el oscilador)
    • 1 - Habilita la interrupción de fallo en el oscilador.
    • 0 - Deshabilita la interrupción de fallo en el oscilador.
  • C2IE - Comparator C2 Interrupt Enable bit (bit de habilitación de la interrupción del comparador C2)
    • 1 - Habilita la interrupción del comparador C2.
    • 0 - Deshabilita la interrupción del comparador C2.
  • C1IE - Comparator C1 Interrupt Enable bit (bit de habilitación de la interupción del comparador C1)
    • 1 - Habilita la interrupción del comparador C1.
    • 0 - Deshabilita la interrupción del comparador C1.
  • EEIE - EEPROM Write Operation Interrupt Enable bit (bit de habilitación de la interrupción de escritura en la memoria EEPROM)
    • 1 - Habilita la interrupción de escritura en la memoria EEPROM.
    • 0 - Deshabilita la interrupción de escritura en la memoria EEPROM.
  • BCLIE - Bus Collision Interrupt Enable bit (bit de habilitación de la interrupción de colisión de bus)
    • 1 - Habilita la interrupción de colisión de bus.
    • 0 - Deshabilita la interrupción de colisión de bus.
  • ULPWUIE - Ultra Low-Power Wake-up Interrupt Enable bit (bit de habilitación de la interrupción para salir del modo de ultra bajo consumo - la reactivación)
    • 1 - Habilita la interrupción para salir del modo de ultra bajo consumo.
    • 0 - Deshabilita la interrupción para salir del modo de ultra bajo consumo.
  • CCP2IE - CCP2 Interrupt Enable bit (bit de habilitación de la interrupción del módulo 2 de Comparación/Captura/PWM (CCP2)
    • 1 - Habilita la interrupción del CCP2.
    • 0 - Deshabilita la interrupción del CCP2.
Vamos a hacerlo en mikroBasic...
' El comparador C2 se configura para utilizar los pines RA0 y RA2 como entradas. Al producirse
' un cambio en la salida del comparador, el pin de salida PORTB.1 cambia el estado lógico en   
' la rutina de interrupción. 

sub procedure interrupt      ' Inicio de la rutina de interrupción
PORTB.F1 = not PORTB.F1      ' La interrupción invertirá el estado lógico del                    
                             ' pin PORTB.1
PIR2.C2IF = 0                ' Bit de bandera de interrupción C2IF se pone a cero
                             ' Final de la rutina de interrupción 
end sub                      ' Todos los pines del puerto PORTB se configuran 
main:
TRISB = 0                    ' Bit de bandera de interrupción C2IF se pone a cero
                             ' como salidas
PORTB.1 = 1                  ' El pin PORTB.1 se pone a uno
ANSEL = %00000101            ' Los pines RA0/C12IN0- y RA2/C2IN+ son las 
                             ' entradas analógicas 
ANSELH = 0                   ' Todos los pines de E/S se configuran como digitales
CM2CON0.C2CH0 = 0            ' El pin RA0 se selecciona para ser una entrada                     
                             ' invertida del C2
CM2CON0.C2CH1 = 0
PIE2.C2IE = 1                ' Habilita la interrupción del comparador C2
INTCON.GIE = 1               ' Interrupción global está habilitada
CM2CON0.C2ON = 1             ' Comparador C2 está habilitado
...
...

Registro PIR1

El registro PIE2 también contiene varios bits de habilitación de interrupciones. al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-29
Leyenda: (-) Bit no implementado, (R/W) - Bit de lectura/escritura, (R) - Bit de lectura (0), Después del reinicio, el bit se pone a cero
  • ADIF - A/D Converter Interrupt Flag bit (bit de bandera de la interrupción del convertidor A/D)
    • 1 - Se ha completado una conversión A/D (el bit debe volverse a 0 por software).
    • 0 - No se ha completado una conversión A/D o no ha empezado.
  • RCIF - EUSART Receive Interrupt Flag bit (bit de bandera de la interrupción de recepción del EUSART)
    • 1 - El búfer de recepción del EUSART está lleno. El bit se pone a cero al leer el registro RCREG.
    • 0 - El búfer de recepción del EUSART no está lleno.
  • TXIF - EUSART Transmit Interrupt Flag bit (bit de la interrupción de transmisión del EUSART)
    • 1 - El búfer de transmisión del EUSART está vacío. El bit se pone a cero al esribir un dato en el registro TXREG
    • 0 - El búfer de transmisión del EUSART está lleno.
  • SSPIF - Master Synchronous Serial Port (MSSP) Interrupt Flag bit (bit de bandera de la interrupción de puerto serie síncrono maestro)
    • 1 - Se ha cumplido la condición de ocurrir una interrupción del MSSP al transmitir/recibir los datos. Difieren dependiendo del modo de operación del MSSP (SPI o I2C). El bit debe ponerse a cero por software antes de volver de la rutina de servicio de interrupciones)
    • 0 - No se ha cumplido ninguna condición de ocurrir una interrupción del MSSP.
  • CCP1IF - CCP1 Interrupt Flag bit (bit de bandera de la interrupción del módulo 1 de Comparación/Captura/PWM (CCP1)
    • 1 - Se ha cumplido la condición de la interrupción del CCP1 (CCP1 es una unidad para captar, comparar y generar una señal PWM). Dependiendo del modo de operación (modo captura o modo comparación), se produce una captura o la igualdad en la comparación. En ambos casos, el bit debe volverse a cero por software. El bit no se utiliza en el modo PWM.
    • 0 - No se ha cumplido la condición de la interrupción del CCP1
  • TMR2IF - Timer2 to PR2 Interrupt Flag bit (bit de bandera de la interrupción de igualdad entre el temporizador Timer2 y el registro PR2)
    • 1 - Se ha producido igualdad con el valor del TMR2 (registro de 8 bits del temporizador) y el valor del PR2. El bit debe ponerse a cero por software antes de volver de la rutina de servicio de interrupciones)
    • 0 - No se ha producido igualdad con el valor del TMR2 y el valor del PR2.
  • TMR1IF - Timer1 Overflow Interrupt Flag bit (bit de bandera de la interrupción de desbordamiento del temporizador Timer1)
    • 1 - Se ha producido desbordamiento en el registro TMR1. El bit debe ponerse a cero por software.
    • 0 - No se ha producido desbordamiento en el registro TMR1.

Registro PIR2

El registro PIR2 contiene los bits de banderas da la interrupción. al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-30
Leyenda: (-) Bit no implementado, (R/W) - Bit de lectura/escritura, (0) Después del reinicio, el bit se pone a cero
  • OSFIF - Oscillator Fail Interrupt Flag bit (bit de bandera de la interrupción de fallo en el oscilador)
    • 1 - Se ha producido un fallo en el oscilador del sistema. La entrada de reloj ha sido conmutada al oscilador interno INTOSC. El bit debe ponerse a cero por software.
    • 0 - El oscilador del sistema funciona correctamente.
  • C2IF - Comparator C2 Interrupt Flag bit (bit de bandera de la interrupción del comparador C2)
    • 1 - La salida del comparador analógico C2 ha sido cambiada (el bit C2OUT). El bit debe ponerse a cero por software.
    • 0 - La salida del comparador analógico C2 no ha sido cambiada.
  • C1IF - Comparator C1 Interrupt Flag bit (bit de bandera de la interrupción del comparador C1)
    • 1 - La salida del comparador analógico C1 ha sido cambiada (el bit C1OUT). El bit debe ponerse a cero por software.
    • 0 - La salida del comparador analógico C1 no ha sido cambiada
  • EEIF - EE Write Operation Interrupt Flag bit (bit de bandera de la interrupción de la operación de escritura en la memoria EEPROM)
    • 1 - La operación de escritura en la memoria EEPROM se ha completado. El bit debe ponerse a cero por software.
    • 0 - La operación de escritura en la memoria EEPROM no se ha completado o todavía no se ha iniciado.
  • BCLIF - Bus Collision Interrupt Flag bit (bit de bandera de la interrupción de colisión de bus en el MSSP)
    • 1 - Se ha producido una colisión de bus en el MSSP al ser configurado para el modo maestro I2C. El bit debe ponerse a cero por software.
    • 0 - No se ha producido colisión de bus en el MSSP.
  • ULPWUIF - Ultra Low-power Wake-up Interrupt Flag bit (bit de bandera de la interrupción para salir del modo de ultra bajo consumo - la reactivación)
    • 1 - Se ha cumplido la condición de salir del modo de ultra bajo consumo. El bit debe ponerse a cero por software.
    • 0 - No se ha cumplido la condición de salir del modo de ultra bajo consumo.
  • CCP2IF - CCP2 Interrupt Flag bit (bit de la interrupción del módulo 2 de Comparación/Captura/PWM - CCP2)
    • 1 - Se ha cumplido la condición de la interrupción del CCP2 (CCP2 es una unidad para captar, comparar y generar una señal PWM). Dependiendo del modo de operación (modo captura o modo comparación), se produce una captura o la igualdad en la comparación. En ambos casos, el bit debe volverse a cero por software. El bit no se utiliza en el modo PWM.
    • 0 -No se ha cumplido la condición de la interrupción del CCP2.
Vamos a hacerlo en mikroBasic...
' Secuencia de activación del módulo ULPWU
main:
PORTA.0 = 1      ' Pin PORTA.0 se pone a uno
ANSEL,ANSELH = 0 ' Todos los pines de E/S se configuran como digitales
TRISA = 0        ' Los pines del puerto PORTA se configuran como salidas
Delay_ms(1)      ' Cargar el capacitor
PIR2.ULPWUIF = 0 ' Bandera ULPWUIF se pone a cero
PCON.ULPWUE = 1  ' Habilitar el funcionamiento del módulo ULPWU
TRISA.0 = 1      ' PORTA.0 se configura como entrada 
PIE2.ULPWUIE = 1 ' Habilitar la interrupción por el módulo ULPWU
INTCON.GIE = 1   ' Habilitar todas las interrupciones no enmascaradas
INTCON.PEIE = 1  ' Habilitar las interrupciones de los periféricos
asm              ' Instrucción Asm 
SLEEP            ' Pasar al modo de bajo consumo
...

Registro PCON

El registro PCON contiene solamente dos bits de banderas utilizados para diferenciar entre un Power-on reset (POR), un Brown-out reset (BOR), un reinicio por el temporizador perro guardián (WDT) y un reinicio externo por el pin MCLR. al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-31
Leyenda: (-) Bit no implementado, (R/W) - Bit de lectura/escritura, (1) - Después del reinicio, el bit se pone a uno, (0) Después del reinicio, el bit se pone a cero
  • ULPWUE - Ultra Low-Power Wake-up Enable bit (bit de habilitación para salir del modo de ultra bajo consumo - la reactivación)
    • 1 - Se habilita salir del modo de ultra bajo consumo.
    • 0 - No se habilita salir del modo de ultra bajo consumo.
  • SBOREN - Software BOR Enable bit (bit de habilitación del BOR por software)
    • 1 - Se habilita Brown-out reset.
    • 0 - Se deshabilita Brown-out reset.
  • POR - Power-on Reset Status bit (bit de estado Power - on reset)
    • 1 - No se ha producido Power - on reset
    • 0 - Se ha producido Power - on reset. El bit debe ponerse a uno por software después de que se haya producido un Power - on reset.
  • BOR - Brown-out Reset Status bit (bit de estado Brown - out reset)
    • 1 - No se ha producido Brown - out reset.
    • 0 - Se ha producido Brown - out reset. El bit debe ponerse a uno por software después de que se haya producido Brown - out reset.

Registros PCL y PCLATH

La memoria de programa del PIC16F887 es de 8K y tiene 8192 localidades para el almace-namiento de programa. Por esta razón, el contador de programa (PC) debe de ser de 13 bits de anchura (213 = 8192). Para habilitar el acceso a una localidad de memoria de programa durante el funcionamiento del microcontrolador, es necesario acceder a su dirección por medio de los registros SFR. Como todos los registros SFR son de 8 bits de anchura, este registro de direccionamiento es creado al combinar dos registros independientes: el byte bajo (de 8 bits) del contador de programa ocupa el registro PCL, mientras que el byte alto (5 bits) ocupa el registro PCLATH. Si la ejecución de programa no afecta al contador de programa, el valor de este registro (PCL y PCLATH) va incrementándose automática y constantemente: +1, +1, +1, +1... De esta manera, el programa se ejecuta como está escrito - instrucción a instrucción, seguido por un incremento de dirección constante.
al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-32
Si el contador de programa ha sido cambiado por software, debe tomar en cuenta lo siguiente:
  • Los ocho bits inferiores (el byte inferior) del registro PCL son de lectura/escritura, mientras que los cinco bits superiores del registro PCLATH son de sólo escritura.
  • El registro PCLATH se borra con cada reinicio.
  • En el lenguaje ensamblador, el valor del contador de programa está marcado con PCL y se refiere sólo a los ocho bits más bajos. Usted debe tener cuidado al utilizar la instrucción en ensamblador “ADDWF PCL”. Esto es una instrucción de salto que especifica la localidad destino al añadir un número a la dirección actual. Se utiliza con frecuencia para saltar a la tabla de búsqueda o a la tabla de ramificación de programa y leerlas. Un problema surge si el registro PCLATH ha sido cambiado al añadir un número a la dirección actual. La ejecución de una instrucción sobre el registro PCL causa simultáneamente la sustitución de los bits del contador de programa por los contenidos de los dos registros, PCLATH y PCL. De todos modos, el registro PCL puede acceder sólo a 8 bits inferiores del resultado de la instrucción, pues el siguiente salto será completamente incorrecto. La solución a este problema es poner estas instrucciones en las direcciones que terminan en xx00h. De esta manera se habilitan los saltos de programa hasta 255 localidades. Si se ejecutan los saltos más largos por medio de esta instrucción, el registro PCLATH debe ser incrementado por 1 cada vez que se produce desbordamiento en el registro PCL.
  • Al llamar una subrutina o al ejecutarse un salto (instrucciones CALL y GOTO), el microcontrolador es capaz de proporcionar solamente direccionamiento de 11 bits. Similar a la RAM que está dividida en “bancos”, la ROM está dividida en las cuatro “páginas” de 2K cada una. Las instrucciones dentro de estas páginas se ejecutan regularmente. Dicho de manera sencilla, como el procesador está proporcionado con una dirección de 11 bits del programa, es capaz de direccionar cualquier localidad dentro de 2KB.
La siguiente figura muestra el salto a la dirección del subprograma PP1. Sin embargo, si una subrutina o una dirección de salto no está en la misma página que la localidad de salto, se deben proporcionar dos bits superiores que faltan al escribir en el registro PCLATH. La siguiente figura muestra el salto a la dirección de la subrutina PP2.
al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-33
En ambos casos, cuando la subrutina llega a las instrucciones RETURN, RETLW o RETFIE (vuelta al programa principal), el microcontrolador continuará con la ejecución de programa desde donde se interrumpió, ya que la dirección de retorno se empuja y se guarda en la pila que consiste en registros de 13 bits, como hemos mencionado.

DIRECCIONAMIENTO INDIRECTO

Además del direccionamiento directo, que es lógico y claro (basta con especificar la dirección de un registro para leer su contenido), este microcontrolador es capaz de realizar el direccionamiento indirecto por los registros INDF y FSR. A veces esto facilita el proceso de escribir un programa. El procedimiento entero está habilitado ya que el registro INDF no es real (no existe físicamente), sino que solamente especifica el registro cuya dirección está situada en el registro FSR. Por esta razón, escribir o leer los datos del registro INDF realmente significa escribir o leer del registro cuya dirección está situada en el registro FSR. En otras palabras, direcciones de registros se especifican en el registro FSR, y su contenido se almacena en el registro INDF. La diferencia entre el direccionamiento directo e indirecto se muestra en la siguiente figura:
al-mundo-de-los-microcontroladores-basic-chapter-03-fig3-34
Como hemos visto, el problema con “los bits de direccionamiento que faltan” se soluciona con un “préstamo” del otro registro. Esta vez, es el séptimo bit, denominado bit IRP del registro STATUS.

MIKROE

MIKROE is a development tools company dedicated to standardization and time-saving in the embedded industry.

  • About us
  • Success story
  • Contact
  • PressKit
  • Timeline
  • Partners
  • Legal
  • Distributors
  • Legacy Products

SOLUTIONS

  • Click boards™
  • Development boards
  • Mikromedia
  • CODEGRIP
  • NECTO Studio
  • Planet Debug
  • ClickID
  • Click Snap
  • EmbeddedWiki

SUPPORT

  • Helpdesk
  • Forum
  • Libstock
  • Learn
  • Let's Make
  • eBooks
  • Premium TS
  • Design service
  • Product Customization
  • Contract Manufacturing

STANDARD

  • mikroBUS™
  • mikroSDK
  • SiBRAIN
  • DISCON

Prodavnica za inostrano tržište

Nalazite se na prodavnici za inostrano tržište. Da li želite da Vas odvedemo na prodavnicu koja je namenjena za Srbiju?

Prodavnica za inostrano tržište

Nalazite se na prodavnici za inostrano tržište. Da li želite da Vas odvedemo na prodavnicu koja je namenjena za Srbiju?

Daily product releases, special offers, and more

  • FOLLOW US:

  • instagram
  • linkedin
  • facebook
  • github
  • newsletter
  • youtube
  • twitter twitter

Join us

Pridruži nam se

Careers
Internship
Posao
Napravi Click
Praksa
Copyright© 2025 MikroElektronika d.o.o.

Privacy