Recent Changes - Search:
<^< Types of Memory | Course index | Programming >^>

Introduction to Microcontroller Programming * Course Index * Introduction * About the Author * About this Course * Feedback * Course Navigation * Quick Course Navigation * How to use this Course * Acronyms Used and Course Conventions

About PICmicro Chips * What is a PICmicro? * Microcontrollers * Digital versus Analogue * Inputs and Outputs * Memory ## Storing Data ## Types of Memory ##

PICmicro Memory * Programming * 16F1937 Architecture

Clocking Your PICmicro Devices * Introduction * The Clock Circuit * Clock Settings * Clock Confusion

E-Blocks * Introduction to E-blocks * Using E-blocks * E-blocks Boards

Flowcode Step By Step * Introduction to Flowcode * Basic Flowcode Functions * Digital Outputs * Digital Inputs * Basic Loops * The LCD Display * Binary Numbers * Decisions * Goto (Connection Point) * 7-Segment Displays * Software Macro * Strings and Memory * A Simple Hi-Fi

PICmicro Projects * Introduction to PICmicro Projects * Construction Methods * Choosing a Power Source * Adding Inputs * Input Conditioning * Adding Outputs * Adding Drivers

Labs * Introduction and Lesson Plan * 1. Output * 2. Delay * 3. Connection Point * 4. Calculations * 5. Loop * 6. Input * 7. Decision * 8. LCD * 9. Keypad * 10. Analogue + EEPROM * 11. Software Macro * 12. External Interrupt * 13. Timer Interrupt

(:Summary:Contains the 'action' links (like Browse, Edit, History, etc.), placed at the top of the page, see site page actions:) (:comment This page can be somewhat complex to figure out the first time you see it. Its contents are documented at PmWiki.SitePageActions if you need help. :) * Print (:comment (:if group Site,SiteAdmin,Cookbook,Profiles,PmWiki*:) (:comment delete if and ifend to enable backlinks:) * %item rel=nofollow class=backlinks accesskey='$[ak_backlinks]'% [[{*$Name}?action=search&q=link={*$FullName} | $[Backlinks] ]] (:ifend:) :) * Login

PICmicro Memory

<^< Types of Memory | Course Index | Programming >^>(:nl:)

PICmicro chips have three separate areas of memory - program memory (Flash), user variable memory (RAM), and EEPROM. These names give strong hints as to the purpose of the areas! For the 18 pin 16F84 the following graphic illustrates the organisation of the memory:

The program memory is used to store the program! In most PICmicro chips, such as the 16F1937, this memory uses 'Flash' technology. This means that it can be programmed and cleared many times. Older PICmicro's use PROM for the program memory and many of these can be programmed only once.

The data memory is used to store data! Part of this uses RAM and part uses EEPROM. The EEPROM allows us to preserve important data even if the power supply to the system is switched off. For example, suppose that the PICmicro is part of a temperature controller that keeps an incubator at a set temperature. It might make sense to store the required temperature value in EEPROM so that we do not have to enter it into the system every time we switch the incubator on.

The 16F84 illustrated is a relatively small device. In the 16F1937 there are 8192 words of program memory (each word has 13 bits), 512 bytes of user RAM and 256 bytes of EEPROM. (:nl:)(:table style="clear:both":)

(:Summary: Website page footer:)

Print - (:comment (:if group Site,SiteAdmin,Cookbook,Profiles,PmWiki*:) (:comment delete if and ifend to enable backlinks:) %item rel=nofollow class=backlinks accesskey='$[ak_backlinks]'% [[{*$Name}?action=search&q=link={*$FullName} | $[Backlinks] ]] (:ifend:) :) Search - Login

Page last modified on May 13, 2013, at 02:24 PM