/************************************************** *描述:eeprom寫一個字節數據 *參數:address-地址(十六進制) data-數據 **************************************************/ void eeprom_write(uchar address,uchar data) { //等待上一次寫操作結束 while(EECR & (1 << EEPE)); //設置編程模式 EECR = (0 << EEPM1) | (0 << EEPM0); //設置地址和數據寄存器 EEARL = address; EEDR = data; //置位EEMPE EECR |= (1 << EEMPE); //置位EEPE,啟動寫操作 EECR |= (1 << EEPE); }
/************************************************** *描述:eeprom讀一個字節數據 *參數:address-地址(十六進制) data-數據 **************************************************/ uchar eeprom_read(uchar address) { //等待上一次寫操作結束 while(EECR & (1 << EEPE)); //設置地址寄存器 EEARL = address; //設置EERE啟動讀操作 EECR |= (1 << EERE); return(EEDR); }
|