找回密码
 注册
关于网站域名变更的通知
查看: 199|回复: 2
打印 上一主题 下一主题

PIC单片机读内部EEPROM的读写操作子程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-21 10:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
//********************************************************************************
( [0 c% w6 P+ |$ A& q1 ? //********************************************************************************
  ?$ s1 l& V0 w5 w9 d //     pic16f917
6 M* L3 ~' X( T$ _4 E //********************************************************************************
; H3 M. N' Q5 \# w, U- M unsigned char read_eeprom(unsigned char);( L: z' ]% z/ l* F% v, P& J0 R
void write_eeprom(unsigned char,unsigned char);; I+ E# f; D5 k  x1 F" P7 H2 e
void write_work();
# n+ A" o9 L$ B3 @7 Z& `9 G //********************************************************************************5 u! y1 w8 o# [/ t

# n/ u0 ^6 F' ]2 I0 u //********************************************************************************- E4 g" d. e5 e/ k! m
unsigned char read_eeprom(unsigned char addr)
+ v2 z4 S- f3 w5 w3 z9 y% [6 g {/ ^# d$ j/ }- t. F0 f# b
      unsigned char num;: x: N4 U% G% A. G: j3 e; ^
      do{;}
1 u% P% v+ R" `      while(RD==1);                        //上一次读操作是否完成7 V( m6 y3 J! Y7 b
      EEADR=addr;                            //EEPROM地址为00H" I  g4 D9 ^" h; M- r9 f5 {
      EEPGD=0;                            //指向EEPROM数据储存器! y5 H& m8 Z) ]& T+ _! W
      RD=1;                                //开始读6 f- h7 e/ M2 D, {0 j
      do{;}
) U0 \3 \6 A; C2 m      while(RD==1);                        //等待读操作完成
( t- d' u% B* G      num=EEDATA;                            //读出
  [3 P7 X! j( I  ?6 |9 D/ B      return(num);                        //返回读出的数
' P! g1 v) c* v$ K' T }, b+ ]# m, n9 |* W
//********************************************************************************: p( Y; o( J5 z" d' f4 ^
void write_work(), o8 F" k) u" B$ Y
{0 u7 g3 s  Y! `& Q3 a1 Y
      IF((write_dt&0x1) == 0x1)
. w7 `7 [6 l& J5 K' K  i9 `      {. @& D" l' g! ~1 O  B
           write_eeprom(0,sdy_dt);) j! U2 G+ _7 F8 H
      }6 \: {& f# R* ]2 W- f
      if((write_dt&0x2) == 0x2)0 w# M- ^+ ^8 s
      {
/ a2 s/ k1 _- w' `# H           write_eeprom(1,sdy_set);: G1 d3 \$ E% A! w, `; o+ I
      }) S; L# A' x! {6 M
      if((write_dt&0x4) == 0x4)
7 e3 z" B* p3 c7 z      {: s4 M0 ^$ r, w, b! I9 Z' ^
           write_eeprom(2,power_dt);7 ^$ G( U8 U3 M4 ^% U, i
      }  B9 s6 s# t5 C+ J
      write_dt=0;. ~1 B, N( `" K  q: y
}
' N3 ?5 B& x5 X  k4 q: s& \ //********************************************************************************: I# @) O- b* C9 z
void write_eeprom(unsigned char addr,unsigned char data)
9 X' k6 ?. N2 S( ~; h {. I. I) @8 c# z) B% `- n5 K& z: V/ W
      do{;}
9 ]2 t% G4 z) d# n      while(WR==1);                        //上一次写操作是否完成
% g5 _/ B. d! e9 s: l2 t' G0 G      EEADR=addr;                            //EEPROM地址
0 t' S& p, V5 f1 n      EEDATA=data;                        //准备写入EEPROM的数据
; E, M9 |% j% f( n$ d      EEPGD=0;                            //指向EEPROM数据储存器
7 I" I8 t9 O; \      WREN=1;                                //使能写操作
+ `3 ]9 h) m$ |- w      EECON2=0x55;                        //设置通用参数
& P9 w. ~# i/ |- g      EECON2=0xAA;                        //设置通用参数
3 M# Z! U0 s1 c* r. F3 P      WR=1;                                //开始写: s3 `4 T. ?9 }/ k) b% q- k+ m
      do{;}" ~/ E4 |4 r; A  e/ N
      while(WR==1);                        //等待写操作完成6 O7 \1 v. a" Z1 X: ^
      WREN=0;                                //禁止写操作) ?' O5 ~  T! p0 r
}
/ r- H$ f! {# @0 R1 p) v) c //********************************************************************************
& x; b: e7 `6 K  ]$ q7 T //********************************************************************************
+ h1 V* i" G( G" i; N# B

该用户从未签到

2#
发表于 2022-7-21 11:26 | 只看该作者
大佬发表的帖子,感觉很厉害,很棒,

该用户从未签到

3#
发表于 2022-7-21 13:45 | 只看该作者
学习的道路上遇到的困难还有前辈大佬帮忙解决,真心感动
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-8 18:29 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表