首 页
FTF博客群
热点活动
精彩视频
文 章
博 客
下 载
论 坛
提问墙
个人中心
飞思卡尔社区论坛
  • MQX
  • 8位MCU
  • 16位MCU
  • 32位MCU
  • 飞思卡尔传感器
  • 2009年第四届智
    • 资料共享
  • 2008年第三届智
    • 资源共享
  • 2010年第五届智
  • 安飞东专栏
  • 飞思卡尔在线翻
首页»飞思卡尔社区论坛 >> 16位MCU >> 论坛规则 | 收藏本版
110 1/5 共5页 1 2 3 4 5 >|
  • 发布新帖
  • 发布投票
  •        
 
龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
龙丘
精华:
0
积分:
379
等级:
工程员
登陆次数:
2147483647 
发表帖子:
110  
注册时间:
2008-06-07 
最后登陆:
2010-07-28 
状态:
离线

查看详细资料

积分:379
帖子:110
精华:0
等级:工程员
注册时间:2008-06-07
最后登录:2010-07-28
我的博客 发短消息
我的相册 当前离线
发表于2009-11-20 20:23
1#
龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序

下面是一个完整的MC9S12DG128 EEPROM读写程序,程序来源于网络,反馈于网络,对大家肯定有用!下面仅贴出部分主文件和主函数,完整工程可以下载附件,开发板用户可以直接操作演示程序。

/********************************************************
龙丘MC9S12DG128 多功能开发板
Designed by Chiu Sir
E-mail:chiusir@163.com
软件版本:V1.2
最后更新:2009年8月25日
相关信息参考下列地址:
网站:  http://www.lqist.cn
论坛:  http://smartcar.5d6d.com
淘宝店:http://shop36265907.taobao.com
------------------------------------
Code Warrior 5.0
Target : MC9S12dg128b
Crystal: 16.000Mhz
busclock:16.000MHz
pllclock:32.000MHz 
------------------------------------
【程序使用说明】:
【重要修改】
在Start12.c文件最前面加入:#define _HCS12_SERIALMON
在Project.prm中:
    添加下面的代码:
      EEPROM        = READ_ONLY     0x0800 TO   0x0FFB;
    修改下面的代码:
      RAM           = READ_WRITE    0x2000 TO   0x3FFF;
     
【串口波特率】:9600,n,8,1
【按UP】    修改欲写入的数据
【按OK】    对块的读操作
【按ESC】   对块的重新写入数据

【使用步骤】:
1.插上电源和串口线,并打开串口调试工具
2.按ESC读取原始数据
3.按UP/DOWN修改欲写入的数据
4.按OK写入新数据
5.复位单片机然后按ESC读取上次写入的数据,比对保存结果.  
*****************************************************************************************/
#i nclude <hidef.h>    
#i nclude "derivative.h"
#i nclude "LQprintp.h"
#i nclude "LQEEPROM.h"

volatile word testnumber=0;
/**************************************************
复杂测试操作:
1.按ESC读取原始数据
2.按UP/DOWN修改欲写入的数据
3.按OK写入新数据
4.复位单片机然后按ESC读取上次写入的数据,比对保存结果.
***************************************************/
void Test_EE_WriteRead(void)
{
    word cnt;
   
    if(PTIH_PTIH7==0)       //OK
    {
       printp("write and read data:\n");
       for(cnt=0;cnt<10;cnt+=2)         
       {          
          EEP_Wt_Word(EEPROM_ADDR_BASE+cnt,0xffff,EEP_Word_Erase);   
          EEP_Wt_Word(EEPROM_ADDR_BASE+cnt  ,0x1200+cnt+testnumber  ,EEP_Word_Prog);
          EEP_Wt_Word(EEPROM_ADDR_BASE+cnt+1,0x1200+cnt+testnumber+1,EEP_Word_Prog);
          u16ata=EEP_Rd_Word(EEPROM_ADDR_BASE+cnt);
          printp("%04x,",u16ata);
          u16ata=EEP_Rd_Word(EEPROM_ADDR_BASE+cnt+1);
          printp("%04x,",u16ata);         
       }
       printp("\n");
    }
    else if(PTIH_PTIH6==0)  //ESC
    {
       printp("read data:\n");
       for(cnt=0;cnt<10;cnt+=2)         
       {
         u16ata=EEP_Rd_Word(EEPROM_ADDR_BASE+cnt);
         printp("%04x,",u16ata);
         u16ata=EEP_Rd_Word(EEPROM_ADDR_BASE+cnt+1);
         printp("%04x,",u16ata);          
       }
       printp("\n"); 
    }
    else if(PTIH_PTIH2==0)  //UP
    {      
      printp("cnt:%04x \n",++testnumber);
    }
    else if(PTIH_PTIH5==0)  //DOWN
    {      
      printp("cnt:%04x \n",--testnumber);
    }
}
/**************************************************
总线时钟初始化函数:16MHz=晶振频率
编写:龙丘
最后修改:2009.11.18
***************************************************/
static void Set_Bus_16M(void)
{  
    CLKSEL=0X00;    //disengage PLL to system
    PLLCTL_PLLON=1;   //turn on PLL
    SYNR=1;          
    REFDV=1;          //pllclock=2*osc*(1+SYNR)/(1+REFDV)=32MHz;
    _asm(nop);          //BUS CLOCK=16M
    _asm(nop);
    while(!(CRGFLG_LOCK==1));   //when pll is steady ,then use it;
    CLKSEL_PLLSEL =1;          //engage PLL to system;
}

/**************************************************
main()
编写:龙丘
最后修改:2009.11.18
***************************************************/
void main(void)
{ 
  Set_Bus_16M();
  SCI_Init();
  printp("started!\n");
  DDRB =0xff;
  PORTB=0x00;
  EEPROM_init();   
  DisableInterrupts;
  PORTB=0xFF;
  for(;;)
  { 
      //Simple_Test();
      Test_EE_WriteRead();
      Dly_ms(500); 
      PORTB_BIT0=~ PORTB_BIT0;
  } /* wait forever */
  /* please make sure that you never leave this */
}

 

/**************************************************
延时函数:ms个毫秒
编写:龙丘
最后修改:2009.11.18
***************************************************/
void Dly_ms(int ms)  //x取值1~65536;
{
  int ii,jj;
   if (ms<1) ms=1;
   for(ii=0;ii<ms;ii++)
     for(jj=0;jj<1335;jj++);    //16MHz--1ms    
}
/**************************************************
延时函数:ms个毫秒
编写:龙丘
最后修改:2009.11.18
***************************************************/
void Dly_10us(int ms)  //x取值1~65536;
{
  int ii,jj;
   if (ms<1) ms=1;
   for(ii=0;ii<ms;ii++)
     for(jj=0;jj<13;jj++);    //16MHz--10us    
}

/*************************************************                 
EEPROM模块初始化程序  
编写:龙丘
最后修改:2009.11.18        
*************************************************/
void EEPROM_init(void)
{
    ECLKDIV=0x4A;                   // 采用8分频,因为OSCLK=16M,又为了使ECLK
                                    // 达到190KHZ,所以EDIV=21,即ECLK=16M/8/11=190.5KHZ
    ECNFG=0x00;                     // 禁止EEPROM相关操作的中断
    while(ECLKDIV_EDIVLD == 0);     // 等待时钟设置成功
    EPROT_EPOPEN=1;                 // EEPROM没有保护,可以进行编程与擦除 
    EPROT_EPDIS=1;                  // EEPROM保护禁止
}

/*************************************************               
写EEPROM程序       
Addr:  要操作的EEPROM偏移地址
Data:  要操作的EEPROM数据
OpType:操作命令类型  
编写:龙丘                   
*************************************************/
void EEP_Wt_Word(word * Addr,word Data,byte OpType)
{
    DisableInterrupts;
    while(ESTAT_CBEIF == 0);        // 等待EEPROM命令缓冲区为空
    *Addr=Data;                     // 设置EEPROM的偏移地址
    ECMD=OpType;                    // 指令的类型
    ESTAT |= 0x80;                  // 清命令缓冲标志,开始执行命令
    while(ESTAT_CCIF == 0);         // 等待命令完成
    EnableInterrupts;
}

/*************************************************               
读EEPROM程序                 
Addr:  要操作的EEPROM偏移地址
返回值:读到的结果数据  
编写:龙丘
最后修改:2009.11.18               
*************************************************/
word EEP_Rd_Word(word * Addr)
{
    word TempData;
    DisableInterrupts;
    TempData=*Addr;                 // 读EEPROM的偏移地址的数据
    return(TempData);    
}

/*************************************************         
简单测试操作
编写:龙丘
最后修改:2009.11.18                   
*************************************************/
void Simple_Test(void)
{
   word cnt;   
    
   printp("write and read data:\n");
   for(cnt=0;cnt<1024;cnt+=2)         
   {          
      EEP_Wt_Word(EEPROM_ADDR_BASE+cnt,0xffff,EEP_Word_Erase);   
      EEP_Wt_Word(EEPROM_ADDR_BASE+cnt  ,0x1200+cnt,EEP_Word_Prog);
      EEP_Wt_Word(EEPROM_ADDR_BASE+cnt+1,0x1200+cnt+1,EEP_Word_Prog);
      u16ata=EEP_Rd_Word(EEPROM_ADDR_BASE+cnt);
      printp("%04x,",u16ata);
      u16ata=EEP_Rd_Word(EEPROM_ADDR_BASE+cnt+1);
      printp("%04x,",u16ata);       
      if(cnt%16==0) printp("\n");         
   } }

完整工程可以下载附件(密码:longqiu):

 

[最后修改于2009-11-20 20:27:26]
附件:请先登陆查看附件!
 
相关主题
  • 智能小车
  • 智能车综合资料
  • 求救
  • 高手 帮忙 来看看
  • mc9s12dg128的资料(freescale)
  • MC9S12DG128/DP256/DG256最小系统原理图
  • 飞思卡尔S12 系列单片机系统硬件设计
  • 部分飞思卡尔芯片供应信息(供参考)
龙丘智能科技飞思卡尔专业开发板ODM:网站:http://www.lqist.cn淘宝店:http://shop36265907.taobao.com
回复 链接 收藏
 
knexplorer
精华:
0
积分:
29
等级:
学徒
登陆次数:
2147483647 
发表帖子:
15  
注册时间:
2008-07-26 
最后登陆:
2009-09-16 
状态:
离线

查看详细资料

积分:29
帖子:15
精华:0
等级:学徒
注册时间:2008-07-26
最后登录:2009-09-16
我的博客 发短消息
我的相册 当前离线
发表于2009-11-22 16:50
2#
回复:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序

我想看看!

 
...
回复 链接 收藏
 
dengdingchun
精华:
0
积分:
23
等级:
学徒
登陆次数:
7 
发表帖子:
4  
注册时间:
2009-02-12 
最后登陆:
2009-12-03 
状态:
离线

查看详细资料

积分:23
帖子:4
精华:0
等级:学徒
注册时间:2009-02-12
最后登录:2009-12-03
我的博客 发短消息
我的相册 当前离线
发表于2009-12-03 21:29
3#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
在哪儿?????????????
 
...
回复 链接 收藏
 
龙丘
精华:
0
积分:
379
等级:
工程员
登陆次数:
2147483647 
发表帖子:
110  
注册时间:
2008-06-07 
最后登陆:
2010-07-28 
状态:
离线

查看详细资料

积分:379
帖子:110
精华:0
等级:工程员
注册时间:2008-06-07
最后登录:2010-07-28
我的博客 发短消息
我的相册 当前离线
发表于2009-12-03 23:04
4#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
不会没有贴上附件吧?
 
龙丘智能科技飞思卡尔专业开发板ODM:网站:http://www.lqist.cn淘宝店:http://shop36265907.taobao.com
回复 链接 收藏
 
jincanlong
精华:
0
积分:
4
等级:
学徒
登陆次数:
0 
发表帖子:
2  
注册时间:
2009-12-04 
最后登陆:
2009-12-04 
状态:
离线

查看详细资料

积分:4
帖子:2
精华:0
等级:学徒
注册时间:2009-12-04
最后登录:2009-12-04
我的博客 发短消息
我的相册 当前离线
发表于2009-12-04 22:35
5#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
太棒了,找了很久了,谢谢了
 
...
回复 链接 收藏
 
vdakulav
精华:
0
积分:
35
等级:
学徒
登陆次数:
12 
发表帖子:
15  
注册时间:
2008-03-10 
最后登陆:
2009-10-26 
状态:
离线

查看详细资料

积分:35
帖子:15
精华:0
等级:学徒
注册时间:2008-03-10
最后登录:2009-10-26
我的博客 发短消息
我的相册 当前离线
发表于2009-12-08 09:04
6#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序

多谢分享
 
...
回复 链接 收藏
 
gaozishuonew
精华:
0
积分:
2
等级:
学徒
登陆次数:
1 
发表帖子:
1  
注册时间:
2009-12-09 
最后登陆:
2009-12-10 
状态:
离线

查看详细资料

积分:2
帖子:1
精华:0
等级:学徒
注册时间:2009-12-09
最后登录:2009-12-10
我的博客 发短消息
我的相册 当前离线
发表于2009-12-09 16:53
7#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
不错不错不错不错不错不错不错不错不错不错不错
 
...
回复 链接 收藏
 
freescale_zlg
精华:
0
积分:
6
等级:
学徒
登陆次数:
11 
发表帖子:
4  
注册时间:
2009-03-30 
最后登陆:
2009-12-13 
状态:
离线

查看详细资料

积分:6
帖子:4
精华:0
等级:学徒
注册时间:2009-03-30
最后登录:2009-12-13
我的博客 发短消息
我的相册 当前离线
发表于2009-12-13 17:30
8#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
很好的的内容!!
 
...
回复 链接 收藏
 
Fei_Fly
精华:
0
积分:
2
等级:
学徒
登陆次数:
41 
发表帖子:
19  
注册时间:
2008-10-30 
最后登陆:
2010-04-24 
状态:
离线

查看详细资料

积分:2
帖子:19
精华:0
等级:学徒
注册时间:2008-10-30
最后登录:2010-04-24
我的博客 发短消息
我的相册 当前离线
发表于2009-12-14 12:38
9#
回复:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序

下来看看!

 
...
回复 链接 收藏
 
wearemft
精华:
0
积分:
7
等级:
学徒
登陆次数:
16 
发表帖子:
10  
注册时间:
2008-12-31 
最后登陆:
2010-03-15 
状态:
离线

查看详细资料

积分:7
帖子:10
精华:0
等级:学徒
注册时间:2008-12-31
最后登录:2010-03-15
我的博客 发短消息
我的相册 当前离线
发表于2009-12-16 10:19
10#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
顶
 
...
回复 链接 收藏
 
crossni
精华:
0
积分:
2
等级:
学徒
登陆次数:
0 
发表帖子:
1  
注册时间:
2009-12-16 
最后登陆:
2009-12-16 
状态:
离线

查看详细资料

积分:2
帖子:1
精华:0
等级:学徒
注册时间:2009-12-16
最后登录:2009-12-16
我的博客 发短消息
我的相册 当前离线
发表于2009-12-16 22:02
11#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
看看~
 
...
回复 链接 收藏
 
renchunle
精华:
0
积分:
1
等级:
学徒
登陆次数:
2 
发表帖子:
1  
注册时间:
2009-12-30 
最后登陆:
2010-01-14 
状态:
离线

查看详细资料

积分:1
帖子:1
精华:0
等级:学徒
注册时间:2009-12-30
最后登录:2010-01-14
我的博客 发短消息
我的相册 当前离线
发表于2009-12-30 22:35
12#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
太好了啊!呵呵呵额呵呵呵呵呵
 
...
回复 链接 收藏
 
lmmarkham001
精华:
0
积分:
15
等级:
学徒
登陆次数:
5 
发表帖子:
8  
注册时间:
2009-03-16 
最后登陆:
2010-03-07 
状态:
离线

查看详细资料

积分:15
帖子:8
精华:0
等级:学徒
注册时间:2009-03-16
最后登录:2010-03-07
我的博客 发短消息
我的相册 当前离线
发表于2009-12-31 13:33
13#
回复:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序

顶个  我来学习下!

 
...
回复 链接 收藏
 
lyp2060
精华:
0
积分:
11
等级:
学徒
登陆次数:
9 
发表帖子:
6  
注册时间:
2007-08-24 
最后登陆:
2010-06-24 
状态:
离线

查看详细资料

积分:11
帖子:6
精华:0
等级:学徒
注册时间:2007-08-24
最后登录:2010-06-24
我的博客 发短消息
我的相册 当前离线
发表于2010-01-05 11:17
14#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
谢谢你,正好买了你的开发板,可以试一试
 
...
回复 链接 收藏
 
lyp2060
精华:
0
积分:
11
等级:
学徒
登陆次数:
9 
发表帖子:
6  
注册时间:
2007-08-24 
最后登陆:
2010-06-24 
状态:
离线

查看详细资料

积分:11
帖子:6
精华:0
等级:学徒
注册时间:2007-08-24
最后登录:2010-06-24
我的博客 发短消息
我的相册 当前离线
发表于2010-01-05 16:59
15#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
不知道为什么,我把它修改了下,用在xdt256上好像不行
 
...
回复 链接 收藏
 
lyp2060
精华:
0
积分:
11
等级:
学徒
登陆次数:
9 
发表帖子:
6  
注册时间:
2007-08-24 
最后登陆:
2010-06-24 
状态:
离线

查看详细资料

积分:11
帖子:6
精华:0
等级:学徒
注册时间:2007-08-24
最后登录:2010-06-24
我的博客 发短消息
我的相册 当前离线
发表于2010-01-05 17:05
16#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
还有,prm文件里面对于地址
EEPROM = READ_ONLY 0x0800 TO 0x0FFB;
设置了read only还能写的近去吗?
 
...
回复 链接 收藏
 
sfgreat
精华:
0
积分:
1
等级:
学徒
登陆次数:
2 
发表帖子:
5  
注册时间:
2010-01-06 
最后登陆:
2010-01-06 
状态:
离线

查看详细资料

积分:1
帖子:5
精华:0
等级:学徒
注册时间:2010-01-06
最后登录:2010-01-06
我的博客 发短消息
我的相册 当前离线
发表于2010-01-06 16:28
17#
回复:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序

cxvxcv

 
...
回复 链接 收藏
 
sfgreat
精华:
0
积分:
1
等级:
学徒
登陆次数:
2 
发表帖子:
5  
注册时间:
2010-01-06 
最后登陆:
2010-01-06 
状态:
离线

查看详细资料

积分:1
帖子:5
精华:0
等级:学徒
注册时间:2010-01-06
最后登录:2010-01-06
我的博客 发短消息
我的相册 当前离线
发表于2010-01-06 16:52
18#
回复:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序

cxvxcv

 
...
回复 链接 收藏
 
xjmjack5
精华:
0
积分:
32
等级:
学徒
登陆次数:
65 
发表帖子:
22  
注册时间:
2010-01-04 
最后登陆:
2010-07-25 
状态:
离线

查看详细资料

积分:32
帖子:22
精华:0
等级:学徒
注册时间:2010-01-04
最后登录:2010-07-25
我的博客 发短消息
我的相册 当前离线
发表于2010-01-07 11:04
19#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
可以 参考下
 
...
回复 链接 收藏
 
lightlove
精华:
0
积分:
7
等级:
学徒
登陆次数:
8 
发表帖子:
4  
注册时间:
2009-12-04 
最后登陆:
2010-03-04 
状态:
离线

查看详细资料

积分:7
帖子:4
精华:0
等级:学徒
注册时间:2009-12-04
最后登录:2010-03-04
我的博客 发短消息
我的相册 当前离线
发表于2010-01-20 17:47
20#
回复:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序

看看

 
...
回复 链接 收藏
 
shuyingfengdong
精华:
0
积分:
13
等级:
学徒
登陆次数:
8 
发表帖子:
7  
注册时间:
2010-01-19 
最后登陆:
2010-05-06 
状态:
离线

查看详细资料

积分:13
帖子:7
精华:0
等级:学徒
注册时间:2010-01-19
最后登录:2010-05-06
我的博客 发短消息
我的相册 当前离线
发表于2010-01-24 20:35
21#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
学习学习
 
...
回复 链接 收藏
 
liyuyao001
精华:
0
积分:
5
等级:
学徒
登陆次数:
5 
发表帖子:
4  
注册时间:
2009-05-12 
最后登陆:
2010-04-20 
状态:
离线

查看详细资料

积分:5
帖子:4
精华:0
等级:学徒
注册时间:2009-05-12
最后登录:2010-04-20
我的博客 发短消息
我的相册 当前离线
发表于2010-01-25 21:25
22#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
很有用的东西,下来看看
 
...
回复 链接 收藏
 
huguo
精华:
0
积分:
3
等级:
学徒
登陆次数:
3 
发表帖子:
2  
注册时间:
2009-12-17 
最后登陆:
2010-01-27 
状态:
离线

查看详细资料

积分:3
帖子:2
精华:0
等级:学徒
注册时间:2009-12-17
最后登录:2010-01-27
我的博客 发短消息
我的相册 当前离线
发表于2010-01-27 09:59
23#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
很有用的东西,下来看看
 
...
回复 链接 收藏
 
crackest
精华:
0
积分:
6
等级:
学徒
登陆次数:
5 
发表帖子:
3  
注册时间:
2010-01-27 
最后登陆:
2010-02-08 
状态:
离线

查看详细资料

积分:6
帖子:3
精华:0
等级:学徒
注册时间:2010-01-27
最后登录:2010-02-08
我的博客 发短消息
我的相册 当前离线
发表于2010-01-27 17:14
24#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
longqiuasdf
 
...
回复 链接 收藏
 
hxjjmj
精华:
0
积分:
3
等级:
学徒
登陆次数:
4 
发表帖子:
6  
注册时间:
2009-11-12 
最后登陆:
2010-04-29 
状态:
离线

查看详细资料

积分:3
帖子:6
精华:0
等级:学徒
注册时间:2009-11-12
最后登录:2010-04-29
我的博客 发短消息
我的相册 当前离线
发表于2010-02-01 11:59
25#
RE:龙丘智能科技贡献:MC9S12DG128 EEPROM完美版读写程序
看看~~
 
...
回复 链接 收藏
 
110 1/5 共5页 1 2 3 4 5 >|
  • 发布新帖
  • 发布投票
  •        
您尚未 登录 | 注册

关于freescale技术社区 | freescale技术社区使用说明 | FAQ | 法律及版权声明 | 网站地图

联系邮件:tingting@eefocus.com 联系电话: 010-58859035-8018
Powered by eefocus.com