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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
//********************************************************************************
" F  Y) w- h* U2 Q, W# ] //********************************************************************************
  [' z' d8 M  j8 M //     pic16f917
, I- H6 |/ m4 m- o/ F3 p( x. S, ? //********************************************************************************; y% w% Z) I8 p, U! ]6 I
unsigned char read_eeprom(unsigned char);$ s8 ]7 J) k' H5 d* _
void write_eeprom(unsigned char,unsigned char);
, J# x% i- m; ? void write_work();, E9 S0 q3 c) A. ^" o
//********************************************************************************5 M2 m1 x  |' N) O3 B( A# y2 W! z
% B; F( q5 U, `9 d+ ^
//********************************************************************************! a/ e' V, {. d* N, Y. |0 K* J
unsigned char read_eeprom(unsigned char addr)
* q) G2 r2 K7 Z: B- a8 ^* K {
# p" C  d' u! j6 }3 \& b      unsigned char num;9 _# O- f( K8 @; y0 N
      do{;}3 ^+ r$ ]: E3 U2 ^& L/ r; l/ O
      while(RD==1);                        //上一次读操作是否完成
4 g# U% ]) d2 E- ^& ]      EEADR=addr;                            //EEPROM地址为00H, A: Z6 b" @) w8 G  q
      EEPGD=0;                            //指向EEPROM数据储存器
: g0 K: _0 I, H/ N      RD=1;                                //开始读0 U! I5 T" {+ J* [! X
      do{;}
8 O; h% l5 I- _$ a! N      while(RD==1);                        //等待读操作完成
3 x: C3 D3 ?2 q, D& w9 r# a4 w      num=EEDATA;                            //读出
2 q* P0 c; g6 I+ w3 I! ]% I0 `2 f      return(num);                        //返回读出的数, ^% F" \( G5 Z3 @& ~
}  q- O0 g1 r5 g7 U, w
//********************************************************************************
2 p% d1 {2 Z/ R void write_work()
0 [& p% E3 P% g& X$ j+ C {% L* X1 ^! ]/ A; g
      IF((write_dt&0x1) == 0x1)  h* ]  Z& W( H( M
      {9 H" W8 g+ r4 k2 K& @
           write_eeprom(0,sdy_dt);8 A4 r  N0 R8 @3 C6 D. i
      }. x  T5 e, R8 d2 q
      if((write_dt&0x2) == 0x2)
( ?% W: z! {* y+ L2 ]- b+ E7 o2 E      {
) W3 _6 g. ?1 E& I/ a" R( |           write_eeprom(1,sdy_set);, s: R" P* Z( Q  o5 \2 }! G
      }
% h. a! o0 b% `5 q) E) k      if((write_dt&0x4) == 0x4)
+ O; L0 Z) h0 y. W' T1 V      {  ?) Q; V% r7 g2 T  b5 [- s
           write_eeprom(2,power_dt);$ o3 ~6 l! Y1 l0 j1 t
      }4 d0 l! _1 q( G. O0 X
      write_dt=0;, H, h, H% M* S1 P/ F
}
# n- T/ y) \0 _! }- B- c# ` //********************************************************************************
& i- M5 `* A* ^, G, F; Y; O void write_eeprom(unsigned char addr,unsigned char data)1 @3 q6 C: i! z2 C  p
{
+ a- U: j2 b3 s7 A) F( f      do{;}
1 @" K7 ^( s0 E' v      while(WR==1);                        //上一次写操作是否完成
  ^/ l* p  D% [5 t9 G8 \      EEADR=addr;                            //EEPROM地址
6 E7 v& _$ C& F3 w, ^, r' ?      EEDATA=data;                        //准备写入EEPROM的数据1 S3 Z0 K# W; b$ N; u+ Q
      EEPGD=0;                            //指向EEPROM数据储存器
. O. [$ K4 m3 H2 f, I      WREN=1;                                //使能写操作
1 h* p/ b, Y# P- [7 K( E: Y, s      EECON2=0x55;                        //设置通用参数0 H* Q& |" l# a) I9 p( P
      EECON2=0xAA;                        //设置通用参数
! I7 V( W- G* h. r7 r, J      WR=1;                                //开始写
  g. d5 i, N+ s& o6 f; D' g) p, _      do{;}
* f2 s$ K+ Q  `3 [1 @9 v: O      while(WR==1);                        //等待写操作完成" r! e: {- l3 t3 F5 N4 N$ z
      WREN=0;                                //禁止写操作
  \7 H' e5 f) l, b9 T( J7 T }4 q, J. k+ `/ T% u- I
//********************************************************************************5 E5 D& k7 `, p- i  F
//********************************************************************************
4 `. Q1 A! r4 h8 Y# K' p4 y& C0 e( G

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-11 08:14 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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