<いまさらPIC16F688 EEPROMデータ表示4>
書き込みと、読み出しをスイッチ操作で行います。0番地にA,1番地にB,2番地にC
読込みの設定にも、書き込みのときに使ったWRと同じ機能を持ったRDがあるので
このRDを使います。(読出す前はRD=1;にしておく、読出しが終わると0になる)
書き込み
読み出し
プログラム
-----------------------------------------------------------------------------------------
#include <htc.h>
__CONFIG(FCMDIS & IESODIS & BOREN & UNPROTECT & MCLREN & PWRTEN & WDTDIS & INTIO);
__IDLOC(0001);
//__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);
#define _XTAL_FREQ 31000 //31k
#define JIKAN 200
func_rc4a();
func_rc4b();
func_ra5a();
func_ra5b();
func_rc5a();
func_rc5b();
func_read();
func_write();
func_add_reset();
add_cnt=0;
f_rc4a=0;
f_rc4b=0;
f_ra5a=0;
f_rc5a=0;
f_cnt=0;
char moji;
main()
{
OSCCON=0x00; //31k
ANSEL=0x00;
CMCON0=0x07;
TRISA=0b11111111; //RORTAを入力に設定
TRISC=0b00110000; //RORTCを出力に設定
PORTC=0b00000000; //RORTCをL(0)にする
EEPGD=0; //EEPROM読み書きするには0
WREN=1; //EEPROM書き込みを出来るようにするには1
while(1){
if(f_ra5a==0 && RA5==0) func_ra5a(); //eeprom_write
if(f_ra5a==1 && RA5==1) func_ra5b(); //eeprom_write
if(f_rc5a==0 && RC5==0) func_rc5a(); //add_cnt
if(f_rc5a==1 && RC5==1) func_rc5b(); //add_cnt
if(f_rc4a==0 && RC4==0) func_rc4a(); //eeprom_read
if(f_rc4a==1 && RC4==1) func_rc4b(); //eeprom_read
if(RC5==0 && RC4==0) func_add_reset(); //add_addリセット
}
}
func_add_reset()
{
__delay_ms(200);
add_cnt=-1;
PORTC=0x00;
}
func_read()
{
RD=1;
PORTC=eeprom_read(add_cnt);
while(RD); //読込み終わって0になると抜ける
}
func_write()
{
RC0=RA0;
RC1=RA1;
RC2=RA2;
RC3=RA4;
moji=0x0F&PORTC;
moji=0x40|moji;
WR=1; //書き込む前に1、終わると0になる
eeprom_write(add_cnt,moji);
while(WR); //書き込み終わって0になると抜ける
}
func_ra5a()
{
__delay_ms(200);
f_ra5a=1;
}
func_rc4a()
{
__delay_ms(200);
f_rc4a=1;
}
func_rc4b()
{
__delay_ms(200);
f_rc4a=0;
func_read();
//RC0=1;
}
func_ra5b()
{
__delay_ms(200);
f_ra5a=1;
func_write();
f_ra5a=0;
}
func_rc5a()
{
__delay_ms(200);
f_rc5a=1;
}
func_rc5b()
{
__delay_ms(200);
f_rc5a=0;
add_cnt+=1;
}
-----------------------------------------------------------------------------------------
回路図
基板に組み立てました