pic微控制器eeprom定義的c語言描述

2022-02-21 08:10:47 字數 4983 閱讀 9408

1樓:佛凌文

預處理控制行又稱預處理命令,是c編譯系統的乙個組成部分。c語言提供的預處理功能主要有以下三種: (1) 巨集定義; (2) 檔案包含; (3) 條件編譯。

它們分別用巨集定義命令、檔案包含命令和條件編譯命令來實現。為了與一般c語句相區別,這些命令以符號"#"開頭,並且在其行的末尾不用分號。詳見c編譯器手冊或較詳細的c語言程式設計教材。

8. 問:eeprom、flash和其它儲存器有何不同? 答:

最初的儲存器有隨機訪問的(ram)和唯讀的(rom),現每一種都有亞型,甚至有混合型的第三類儲存器。ram系列中有靜態的(sram)和動態的(dram)。rom從掩膜rom演化到prom(可程式設計的rom)和eprom(可擦寫可程式設計rom)。

混合型的儲存器有eeprom、flash和nvram。eeprom和flash儲存器是rom的子代,而nvram是sram的改版。 eeprom是電可擦除的、可程式設計的rom。

flash儲存器是儲存器技術最新的發展。flash和eeprom技術十分類似,是eeprom的變種。它們主要的差別是:

flash一次只能擦除乙個塊,而不是一位元組一位元組地擦除。典型的塊大小在256b~16kb範圍。flash容量可以做得很大,且**適中。

flash比eeprom要流行得多,並且還迅速地取代了很多rom、prom和eprom。 nvram通常只是乙個帶有後備電池的sram,**昂貴。它的使用次數沒有限制,而eprom、eeprom和flash都有擦寫次數的限制。

9. 問:嵌入式系統應用領域有哪些? 答:

現有的嵌入式系統的數量之大、種類之多,使人不可能不捲入嵌入式系統的發展潮流。電腦微波爐是乙個嵌入式應用系統;錄影機是乙個嵌入式應用系統;電視遙控板是乙個嵌入式應用系統。如果電視帶電腦,那它也是乙個嵌入式應用系統。

依據motorora公司發布的資訊:2023年的汽車平均含14個微控制器,到2023年則達到35個。 機頂盒、路由器、數據機,一句話,internet的基礎設施都是嵌入式應用系統,它使得嵌入式系統的應用變得越來越流行。

嵌入式市場的增長主要是由於嵌入式系統的新應用和新發展。處理器的速度、匯流排寬度的增加,以及製造商能整合到乙個晶元上的外設數量的加大都增加了嵌入式系統可用晶元的種類,以及其對應用的適應能力。risc(精簡指令集計算機)晶元在高階嵌入式應用中現已是常見的了,甚至在不算很高擋的應用中也是如此。

例如,sega公司的一種遊戲機就有3個32位hitachi sh risc 處理器。小型、可嵌入、完全基於pc的板卡是中等規模系統中常見的;而超小型的微控制器則統治低端系統,如philips的8051系列和microchip公司的pic系列。嵌入式系統無處不在,它滲透於我們生活的各個角落——電器、玩具、汽車、醫療儀器、飛機等。

2樓:匿名使用者

直接利用picc c編譯器的巨集:變數=eeprom_read(位址);這個是讀eeprom。eeprom_write(位址,資料);寫eeprom。

這樣讀寫很方便。如果不這麼用也可以自己寫。函式如下:

// 對eeprom寫資料程式**

void eepromwrite(uchar eeaddr,uchar cmd)

// 對eeprom讀資料程式**

uchar eepromread(uchar eeaddr)

以上就是對eeprom的讀寫兩種方式。我覺得直接用巨集方便省事。

pic微控制器eeprom怎麼編寫程式啊??

3樓:匿名使用者

底層的話要根據使用的eeprom介面時序來編寫,應用層就大致都一樣的讀寫功能函式了。根據需要編寫或者參考標準的功能模組化編寫,通用的。

4樓:匿名使用者

eeprom_write(unsigned char addr, unsigned char value);

eeprom_read(unsigned char addr);

在標頭檔案pic.h裡,直接呼叫就行了,不用編寫你要寫的話可以參考此標頭檔案裡的寫法

pic微控制器eeprom怎麼編寫程式?

pic微控制器eeprom怎麼編寫程式

5樓:依善枋

在你的c檔案裡引用eeprom函式的標頭檔案,eeprom_routines.h

然後在程式中使用

void eeprom_write(unsigned char addr, unsigned char value);

unsigned char eeprom_read(unsigned char addr);

這兩個函式了。

這兩個函式乙個讀乙個寫。比如你想寫0x10到位址為0x55的eeprom,

就寫:eeprom_write(0x55,0x10);

pic微控制器怎麼在mplab設定初始eeprom

6樓:匿名使用者

//初始化eeprom的資料,它們是8個一組合(如果不夠8個將它補全8個位元組,),

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0xf2,0x7f,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0xf2,0x7f,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);

__eeprom_data(0x00,0x00,0x00,0x00,0x4f,0xfe,0x03,0x00);

__eeprom_data(0xdd,0xdd,0x13,0x00,0xe0,0x4c,0x00,0x00);

__eeprom_data(0x68,0x5b,0x00,0x00,0x18,0x60,0x00,0x00);

__eeprom_data(0x55,0x5a,0xbe,0xff,0x65,0xc8,0x21,0x00);

__eeprom_data(0x03,0x50,0xff,0xff,0xff,0xff,0xff,0xff);

__eeprom_data(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff);

__eeprom_data(0xff,0xff,0xff,0xff,0x01,0xff,0x00,0xff);

__eeprom_data(0x02,0xff,0xc5,0xff,0x06,0xff,0x01,0xff);

__eeprom_data(0x0f,0xff,0x14,0xff,0xff,0xff,0xff,0xff);

7樓:愛微控制器生活

你是不是想燒寫eeprom的初始值上去?在燒寫程式時先選擇view-eeporm.就可以修改燒進去的值了。

8樓:匿名使用者

用de偽指令

舉例:org 0x2100 ;這是pic16f628a的eeprom虛擬位址,當然

;不同的晶元是不同的

de 0x00, 0x01, 0x02, 0x03 ;初始化eeprom資料

picc編譯器

eeprom 資料

有些pic微控制器支援用外部程式設計器對內部的eeprom進行程式設計。

__eeprom_data()可以將用於初始化的資料放入hex檔案中,如:

__eeprom_data(0, 1, 2, 3, 4, 5, 6, 7)

可將0-7八個數放入hex檔案中,在用外部的程式設計器進行程式設計時將 這八個數寫入pic微控制器中。

__eeprom_data不是用於執行時寫入eeprom資料的,在執行時請用 eeprom_read(), eeprom_write()。

基於pic微控制器對eeprom讀寫的一種方法

9樓:匿名使用者

是需要讀寫程式嗎?

從指定位址下讀取乙個位元組:

uchar readeeprom(uchar ee_addr)將乙個位元組的資料寫入指定位址裡:

bool writeeeprom(uchar ee_data,uchar ee_addr)

return false;}

pic微控制器c程式的問題,PIC微控制器C程式的問題

學微控制器一定要先看微控制器的記憶體表,即map,知道微控制器內部的暫存器設定,及每個暫存器位址。上面的程式就是直接對暫存器操作,這是微控制器學習較高的境界。adr 8其實是對adr進行移位操作,8是2的三次方。即是把adr的位址左移三位。可以看成是 基位址 偏移位址的方式來取位址。bit應該是3位...

微控制器的管腳定義,怎麼給微控制器定義管腳

位域 表示結構體成員在8位位元組中,只佔一位 gpio是什麼?和微控制器 arm上的引腳是乙個概念麼 gpio這個問題很多人都混淆。本身的概念 gpio是general purpose input output。到了微控制器上,微控制器有很多管 腳 pin pin除了一些特殊的,比如電源,比如地線,...

微控制器擴充套件外存EEPROM和RAM的問題

什麼微控制器,程式盡量不用擴充套件的 eeprom有擦次數限制的 資料現在用外擴快閃儲存器串列埠的多 eeprom的擦寫次數很少,並且在寫eeprom時需要的時間很長。如果按照你說的要求,最好就是使用nvram,擦寫次數無限並且斷電之後資料不丟失。首先要認識一下eeprom,它是電可擦出的rom,雖...