0

关于投票
pic18f2480的eeprom读写
关于PIC自带的内部的eeprom的读写,其实只要是pic系列的原理都是一样的,控制两个寄存器,注意操作顺序即可。

         这里是几个测试通过的读写小函数:

char EEPROM_READ(char adresa)     // read from EEPROM

 eeadr = adresa;
 clear_bit( eecon1, EEPGD);     
 clear_bit( eecon1, CFGS);     
    set_bit( eecon1, RD);      // start reading
    return eedata;
}
void EEPROM_READ_LEN(char adresa, char len, char *string)
{
 char i = 0;
 while(i < len)
 {
  *(string+i) = EEPROM_READ(adresa + i);
  i++;
  delay_us(20);
 }
}
void EEPROM_WRITE(char adresa,char data)  //write to EEPROM

   eeadr="adresa";
   eedata="data";
   set_bit(eecon1,WREN);
   eecon2=0x55;
   eecon2=0xAA;
   set_bit( eecon1, WR );       // start writing
   while(eecon1&2);          // cycle until WR reg. eecon1 = 1 (writing..)
   clear_bit( eecon1, WREN );
}
void EEPROM_WRITE_LEN(char adresa, char len, char *string)
{
 char i = 0;
 while(i < len)
 {
  EEPROM_WRITE(adresa + i, *(string+i));
  i++;
  delay_us(20);
 }
}

系统分类: 单片机
用户分类: pic
标签: PIC
来源: 原创
发表评论 阅读全文(151) | 回复(0)

0

关于投票
关于PIC中16位定时器的操作
         在定时器上面pic和51的原理都差不多。可以做为脉冲计数,可以作为时间定时。原理都是数脉冲。

        但是在部分pic的16位定时器操作的时候需要注意的是高八位的字节的读写。

        以pic18f2480为例,该芯片的16位定时器的高八位tmrnh,并不是直接映射到计数器的高八位的。只有在读或者写低8位的操作之后tmrnh的内容才会被“更新”到实际的计数器中。

         所以如果是写操作,应该是先写高8位再写低8位。如果是读操作应该是读低八位再读高8位。

系统分类: 单片机
用户分类: pic
标签: PIC
来源: 原创
发表评论 阅读全文(138) | 回复(0)
总共 , 当前 /