【电子资讯】汇编代码例程:
EEPROM_write:
;等待上一次写操作结束
sbic EECR,EEWE
rjmp RRPRON._write
;设置地址寄存器(r18:rl7)
out EEARH,rl8
out RV.ARL,rl7
;写数据到数据寄存器(r16)
out RF.DR,rl6
;置位F.F.MWE
sbi EECR.EEMWE
;置位EEWE以启动写操作
sbi EECR,EEWE
ret
C代码例程:
void EEPROM_write(unsigned int uiAddress,unsigned char ucData)
{
/*等待上一次写操作结束*/
while(EECR&(I<
;
/*设置地址和数据寄存器*/
EEAR=uiAddress;
EEDR=ucData
|*位置RRMWE*|
EECR l=(1<
/*置位EEWE以启动写操作E*/
EECR I=(1<
)
下一个代码实例说明如何用汇编和C来读取EEPROM在此假设中断不会在执行这些函数
的过程当中发生。
汇编代码例程: ,
RRPROM_read:
;等待上一次写操作结束
sbic EECR.EEWE
rj mp RRPROM_read
;设置地址寄存器(r18:rl7)
out RR.ARH,rl8
out RRARL。rl7
;设置RRRE以启动读操作
sbi EECR,EERE
;自数据寄存器读取数据
in rl6,RRDR
ret
C代码例程:
unsigned char EEPROM read(unsigned int uiAddress)
(
/*等待上一次写操作结束*/
while(EECR&(1<
;
/*设置地址寄存器*/
EEAR=uiAddress;
/*设置EERE以启动读操作*/
EECR l=(1<
/*自数据寄存器返回数据*/
return EEDR;
)
更多推荐