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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
//********************************************************************************
2 |; c7 U8 q% `7 X* [ //********************************************************************************
2 ]1 W9 `' U  V. \( q) K: _! d5 F //     pic16f917
0 t" Y' l/ P# @" ~+ P //********************************************************************************
2 r4 d' }; \3 ~- i% v unsigned char read_eeprom(unsigned char);" q8 f# _& ?3 n: D
void write_eeprom(unsigned char,unsigned char);
0 s( i, z  Z5 |9 B3 x, ~ void write_work();- Y9 V! s8 a" b! C# j/ \
//********************************************************************************' A( U0 [& b- ^# ^& N

. b0 o! ?3 q+ `& `+ P, m/ ~5 a* t //********************************************************************************" W( A4 e# D- x- d( y4 n
unsigned char read_eeprom(unsigned char addr)" g8 n- ?/ i5 c. ^+ }* B: d
{
2 j9 _1 w+ V  h" m9 z/ `      unsigned char num;& V; G% U' G9 j2 x% G
      do{;}
( Q+ e; C7 V" ~3 q  ?      while(RD==1);                        //上一次读操作是否完成
( D: Z3 o) Q2 ]' j      EEADR=addr;                            //EEPROM地址为00H
, b) F% D, }, h0 L- `/ S2 d      EEPGD=0;                            //指向EEPROM数据储存器
4 Q9 r. q2 h8 M" j      RD=1;                                //开始读
) {1 }1 I4 ?" }/ n1 p' k5 k9 f      do{;}
0 \1 I; ?: o: d  I; r7 t      while(RD==1);                        //等待读操作完成
" |/ n2 _. k8 L. ~      num=EEDATA;                            //读出
5 f# H, H1 k- W. Z+ D      return(num);                        //返回读出的数9 o7 p8 ]) q. ^
}
& R$ t9 M; y6 N& A! l //********************************************************************************
: ?, Y/ F( _2 ]- C- @% i void write_work()) V  _% M2 Z, ^' X4 k! P
{- j" u5 f" s$ F
      IF((write_dt&0x1) == 0x1)$ u7 Y$ e* i) @% U- h5 o
      {
0 W* r8 {4 g( ?0 b* B- W           write_eeprom(0,sdy_dt);
$ D7 }, u( W& j3 ^9 A, a9 V  R9 u$ s      }) }- d% i4 I0 ~8 O" p
      if((write_dt&0x2) == 0x2)2 \- V! u0 p: {" {, ]6 U( n
      {8 W- A& U7 u& c8 I
           write_eeprom(1,sdy_set);
, I- @9 j. C3 m1 I+ Y5 n      }
( [2 t& c. p& y6 @- U      if((write_dt&0x4) == 0x4)
: N9 {( A& z$ {- R; k. N      {
+ h! c& w, a6 i& B& O2 @           write_eeprom(2,power_dt);" ^; g, R' S- E6 B( t7 R
      }
7 n# E& Z" D4 J7 F% K) _, S      write_dt=0;
3 S3 Y; Q- x" U }
3 Z7 i$ n7 E) [* R, u //********************************************************************************
/ U  G; c" W/ M7 p% K void write_eeprom(unsigned char addr,unsigned char data)
7 W7 u3 ^0 N" J6 o {$ |( V- Z# q" X, L
      do{;}/ i5 S" z5 C- v4 `/ `; z4 |
      while(WR==1);                        //上一次写操作是否完成+ e; |( v8 k+ T3 `) d
      EEADR=addr;                            //EEPROM地址0 h, N- O+ K/ J# i( Q! Y) A. T/ Y
      EEDATA=data;                        //准备写入EEPROM的数据
5 O. n- T6 A& [& D( k      EEPGD=0;                            //指向EEPROM数据储存器1 ~+ D6 ?# u- Q3 T; S+ N
      WREN=1;                                //使能写操作
" \6 y& T- |& J1 t* V+ @4 |      EECON2=0x55;                        //设置通用参数* B/ ]( G: z' p( s
      EECON2=0xAA;                        //设置通用参数
3 {# B& J' Q8 \; X$ ?) W# c6 j      WR=1;                                //开始写
$ s7 P" t1 S6 o* O      do{;}
& l9 f% \5 r3 J, B3 x  x  j      while(WR==1);                        //等待写操作完成
& Q  w. l' \/ l2 Y" f: M( |      WREN=0;                                //禁止写操作. O- A4 [3 c" {! D
}/ G$ U  v1 t* h  L  m0 a; E$ C
//********************************************************************************
% A$ U$ ~, g! y2 K //********************************************************************************4 p0 l# l! \  {1 e" O

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-7 11:32 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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