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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
//********************************************************************************
# _+ C5 g# W4 c, D, v; u4 } //********************************************************************************
' i. [% k( z5 a //     pic16f917
" _# q' e( R: S9 g8 w  _ //********************************************************************************
0 G6 Y1 k' E0 z. i' T5 `( {" [9 B unsigned char read_eeprom(unsigned char);( F8 Z' Y1 i" z+ W
void write_eeprom(unsigned char,unsigned char);
3 S8 y; V- S1 o6 O! R void write_work();% s) a4 g' }6 B9 ~& T3 R, t
//********************************************************************************: k' n' ?. F6 k" T

; I% c& i9 y- y$ I- g# b //********************************************************************************
5 M& q: ]# Y6 F8 r& q unsigned char read_eeprom(unsigned char addr)" F1 n2 C8 u4 p; t
{+ n6 J  ?/ T0 U0 _: ^/ N: \6 |
      unsigned char num;
, h, w4 o0 W1 e7 L1 _' Q2 G      do{;}6 ~" W2 f* \* ^" o, q, Y- r3 D1 E
      while(RD==1);                        //上一次读操作是否完成
; H+ z' Q( Z, F" z      EEADR=addr;                            //EEPROM地址为00H) ~4 F$ L, {% b' d3 [/ W
      EEPGD=0;                            //指向EEPROM数据储存器
, x# y; g: e# w+ I' y      RD=1;                                //开始读8 r! u' w" x; z: q
      do{;}% t6 z' M% N- y* ], |
      while(RD==1);                        //等待读操作完成
/ J, N9 ^+ k; a. a; s$ r  P- K      num=EEDATA;                            //读出
3 d! O$ q0 U1 b8 {# l      return(num);                        //返回读出的数
3 A7 [2 Z9 Y6 d: w; I9 r }7 B1 e  [1 l' t9 M
//********************************************************************************
% J: E6 P7 _7 [8 ?# J: Y9 c% T void write_work()
2 s0 ^. g! \4 t  _+ p {6 R) h3 j$ e2 q
      IF((write_dt&0x1) == 0x1)) ~" O' L6 W( Q, ]1 @1 k  S2 W
      {) \5 n9 E. Q$ ^' |; }5 J& M( ?) m
           write_eeprom(0,sdy_dt);
# b' I; B) M5 J( E- W3 _! `: q      }0 _4 Z3 r3 P  S  u- E
      if((write_dt&0x2) == 0x2)
" ]# G' [% B! a! _0 _2 J      {: M2 K. \7 c; A4 }8 V3 ~1 o2 W
           write_eeprom(1,sdy_set);
4 O* Z1 j/ s9 N1 X% S      }
5 d5 |- {5 l& J* u* S. X% g( b      if((write_dt&0x4) == 0x4)! _; \( a7 v6 u
      {
  U$ v5 i. M, L% S           write_eeprom(2,power_dt);
$ Q6 F8 W6 O; M3 y      }
8 [/ f5 d% i; ]% A( w1 d, ~      write_dt=0;
5 b* u4 Y" t3 q. c }" Y' @6 N- z/ b* q$ J
//********************************************************************************9 q+ R# j) Z4 z! ?9 d
void write_eeprom(unsigned char addr,unsigned char data)8 o8 d) A: F; b  }
{
7 ]( y9 g1 C( h9 P% u/ [/ _5 Y' n      do{;}
0 O" H) Z3 ?$ K! H; r. `; ]      while(WR==1);                        //上一次写操作是否完成  ~. C% e2 [) G& a
      EEADR=addr;                            //EEPROM地址
+ m! m4 M" X0 _) W) H9 ?5 p      EEDATA=data;                        //准备写入EEPROM的数据
. C) @: w/ A) s; `  g      EEPGD=0;                            //指向EEPROM数据储存器4 I0 w7 A) H( {1 T% e# j2 Z0 B
      WREN=1;                                //使能写操作3 l) |' r) K0 ~9 y& i" h* l
      EECON2=0x55;                        //设置通用参数
/ h* |: N, ?* B$ A6 }3 ?      EECON2=0xAA;                        //设置通用参数! }. s- s- b; M* [% Q2 Z& m
      WR=1;                                //开始写3 [4 f2 x0 y0 K, k. V  c; x2 c$ j' a  y
      do{;}! t, H9 D* j: w) ~( s( x% ?
      while(WR==1);                        //等待写操作完成5 \& Q, c) r; n& S2 o; x
      WREN=0;                                //禁止写操作$ J/ Y/ G1 x+ w
}
) C% B- u$ O9 ^4 N2 D //********************************************************************************
6 C' l/ b# c; x9 a! I9 i //********************************************************************************
" m  e4 p2 v# R( r! J6 a' g" E2 _

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-24 09:12 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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