這程序針對的是M16的內部EEPROM 它的大小只有512個字節 對它的操作 是要注意它的操作時序 首先是先等待對EEPROM的操作(讀或寫)禁止 即是控制寄存器中的EEWE/EERE為0 然后寫入地址 接著就寫入數據到數據寄存器EEDR或讀出數據 下面的實現的功能是這樣的 PC通過串口發送字符串給EEPROM 發送@R 讀EEPROM中的內容 并通過串口發送給PC
代碼如下:
#include #include #define uchar unsigned char uchar RecvFlag = 0; //串口接收到的數據 //EEPROM的寫程序 void EepromWrite ( uint addr, uchar val) //向EEPROM寫操作 //EEPROM讀程序 void EepromRead (uchar num, uint addr, uchar *val) //向EEPROM讀操作 //串口初始化 void Uart0Init(void) // AVR中串口的初始化程序 //串口中斷服務函數 #pragma interrupt_handler UartRecvData:12 //發送字符串 void UartTransmitData(uchar *SendData, uint len) //初始化各種信息 void InitDevices(void) //主函數 void main ( void ) { uchar EepromData[255] ; }
uchar Flag = 0; //為1時表示接收到了@,如果緊接著收到R則發送EEPROM中的數據
uint EEpromAdd = 0; //存儲在EEPROM中的地址
uchar temp[255],tempcnt = 0; //暫存數據
uchar temp1; //暫存串口接收到的數據
{
while ( EECR&0x02 ); //判斷EEWE是否為0
EEAR = addr;
EEDR = val;
CLI();
EECR = EECR|0x04; //置EEMWE為1
EECR = EECR|0x02; //置EEWE為1
SEI();
}
{
while (num)
{
while ( EECR&0x01 ); //判斷EEWE是否為0
EEAR = addr;
EECR = EECR|0x01; //置EERE為1
*val = EEDR;
addr++;
val++;
num--;
}
}
{
UCSRB = 0x00; //關串口
UCSRA = 0x02; //倍速模式 M16中文P151
UCSRC = BIT(URSEL) | 0x06; //寫UCSRC寄存器,設定8個bit
UBRR = 206; //設定串口波特率為600
UCSRB = 0x98; //開串口
}
void UartRecvData(void)
{
temp1 = UDR;
RecvFlag = 1;
}
{
uint i;
for( i = 0; i < len; i++)
{
while(!(UCSRA&0x20)); //判斷數據寄存器是否為空
UDR = SendData[i];
}
}
{
CLI(); //關全部中斷
Uart0Init();
SEI(); //開全中斷
}
uint j;
InitDevices();
while(j++);
EepromRead (255, 0, EepromData); //讀取上次斷電前程序存儲的數據
UartTransmitData(EepromData, 255); //通過串口顯示
while(1)11
{
if ( Flag == 2 )
{
Flag = 0;
EepromRead (EEpromAdd, 0, EepromData);//讀取本次存儲的數據,串口輸出
UartTransmitData(EepromData, EEpromAdd);
}
if ( RecvFlag )
{
RecvFlag = 0;
if( temp1 == '@')
Flag = 1;
else if(((temp1 == 'R')||(temp1 == 'r'))&&( Flag == 1))//連續接收到@R
{
Flag = 2;
}
else
{
Flag = 0;
EepromWrite ( EEpromAdd++, temp1);
if ( EEpromAdd >= 255)
EEpromAdd = 0;
}
}
}
上一篇:AVR之簡單的ADC程序
下一篇:AVR 下載時 ISP 怎樣設置關斷JTAG功能
推薦閱讀
史海拾趣
隨著市場需求的不斷變化,Cooper Industries不斷通過收購來擴大其業務范圍和提升技術實力。例如,在2008年,公司宣布收購了三家公司:Sure Power Industries、OMNEX Control Systems和Roam Secure。這三家公司在各自的領域都有著豐富的經驗和卓越的技術,收購后極大地增強了Cooper在電力系統管理、無線電遠程控制以及文字報警、區域警示系統等領域的能力。這些收購不僅使公司的產品線更加豐富,也為其在全球市場的競爭提供了有力武器。
隨著技術的不斷積累和創新,上海超致在功率半導體領域取得了重大突破。公司成功推出了全球首款量產SJ-IGBT產品,這一產品具有電流密度大、綜合器件性能優的特點,在硅基成本下實現了性能的顯著提升。此外,上海超致還不斷拓寬產品線,產品廣泛應用于太陽能微逆變器、車載OBC、充電樁、UPS電源等多個領域。這些產品的推出不僅滿足了市場的需求,也進一步提升了公司的市場競爭力。
為了滿足全球客戶的需求,Eska公司實施了市場拓展和國際化戰略。公司在歐洲各大主要城市及美國設立了服務中心,以便為當地客戶提供快速可靠的服務。此外,Eska還利用先進的分切設備,為當地客戶集中快速地提供載切大小格式灰板的服務。同時,Eska的產品也通過全球代理商、經銷商及存貨商網絡,覆蓋到更廣泛的市場。
隨著電子產品的日益小型化和復雜化,對緊固件的要求也越來越高。B&F Fastener Supply公司緊跟行業趨勢,投入大量資源進行技術創新。公司成功研發出一系列適用于微型電子設備的緊固件產品,不僅滿足了市場的迫切需求,還憑借出色的性能和穩定的品質贏得了客戶的廣泛認可。
根據尾槳試驗臺拖動系統的特點及技術要求 , 采用 S72300 PLC作為中央控制器 , PⅡ工控機作為監控計算機 , SIMOVERTMD 工程型變頻器作為 DP從站 , 構成了一個基于 PROFIBUS2DP現場總線的控制網絡。… 查看全部問答∨ |
摘要:闡述了基于ARM的嵌入式智能小車系統中的直流電機調速子系統,此調速系統主要由S3C44B0X處理器和L298N電機驅動芯片構成,主要功能是驅動小車的兩個車輪,調節小車的行駛速度和方向。文中詳細介紹了S3C44B0X處理器中的相關寄存器設置及工作方式 ...… 查看全部問答∨ |
小弟最近需要在嵌入式環境下對3G上網模塊進行調試,采用的模塊是華為的EM775。以前是有對GPRS進行調試的一些經驗,但是對于3G上網模塊,又是USB驅動,又是模塊驅動的,有點摸不到頭腦了。請問論壇里的各位前輩,有誰有這方面的經驗,順便指點下?? ...… 查看全部問答∨ |
{ ...... // 啟動線程,開始播放聲音, 并將線程的優先權設置為最高,希望它立即去執行 HANDLE m_hThread = CreateThread(NULL, 0, TOPlaySoundThread, NULL, 0, NULL); SetThreadPriority( m_hThread,THREAD_PRIORITY_TIME_CRITICAL); Sleep( ...… 查看全部問答∨ |
如果我要win ce dll驅動程序動態加載,是不是要改掉*.reg文件 我一個wince的鍵盤驅動程序的*.reg參數文件是這樣寫的: [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\HGPIOs] \"Index\"=dword:1 \"Prefix\"=\"HGP\" \"Dll\"=\"H ...… 查看全部問答∨ |
|
一般來說只要到屏幕底端有足夠空間,就下拉. 如果沒有足夠空間就上拉. 那么應該存在的上拉這個功能. 我想讓它自動默認的為上拉,該怎么做? 如果不行,也可以這樣,讓下拉菜單不要長出我的對話框的底端也可以… 查看全部問答∨ |
最近又看了一下LPC1114的數據寄存器的內容。數據寄存器允許從被設置為輸入的引腳上讀取數據,往被設置輸出的引腳寫值。每個端口數據寄存器占用地址空間的0-0X3FFC,地址位13:2用于屏蔽。如圖1: 原先一直對這個數據屏蔽作用搞不太懂,現在 ...… 查看全部問答∨ |
邦華330改進版、 最新功能:數字收音,USB、SD讀卡功能,數字顯示屏,卡座功能 技術參數: 1.電源:AC220V 內置DC12V/1.2AH 蓄電池,外接VDC 2.頻率范圍:VHF165-265MHz 3.振 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 半導體品牌知名度問卷調查
- 上演你的“ADI實驗室電路”DIY!
- 下載有禮|是德科技電子書 《通過了解測試精度的基礎知識, 提高良率并降低風險》,不做“差不多先生”
- 下載《Altera SoC深度體驗》,打分評論贏好禮
- 【已結束】 Qorvo、村田、NI直播【UWB最新技術、方案、市場、應用解析】(13:30開始入場)
- TI 最新CapTIvate™ 觸控微控制器技術直播開始報名嘍!報名參與有禮呦!
- 老T叔的藏書閣——一位老工程師多年的資料積累
- 有獎直播【Keysight World Tech Day 2023分論壇——汽車自動駕駛與新能源】
- #最能打國產芯#能打入汽車電子這片地的國產芯,有多少啦?
- 新年新挑戰:ST藍牙開發板免費申請評測+挑戰賽(littleshrimp帶隊)