导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[ajaxyynuaa]我的W29C040的读写程序是这样设计的



No.80989
作者:ajaxyynuaa
邮件:yuyuenuaa@tom.com
ID:36839
登陆:2次
文章数:4篇
最后登陆IP:221.6.29.66
最后登陆:2005/7/11 18:34:41
注册:2005/7/5 17:14:38
财富:121
发帖时间:2005/7/8 14:49:10
发贴者IP:221.6.29.66
标题:ajaxyynuaa:我的W29C040的读写程序是这样设计的~!老古帮忙拉[原创]
摘要:No.80989我的W29C040的读写程序是这样设计的~!老古帮忙拉[原创] 主程序
main()
{
   
   WDTCN = 0xde;     // 禁止软件看门狗定时器
   WDTCN = 0xad;     //不禁止看门狗,定时器1将工作不正常。
   
   
   //SYSCLK_Internal();
   SYSCLK_External();

   PORT_Init();

   Timer1_Init();     //定时器1,2,3初始化 
   Timer2_Init (SYSCLK_OUT/BAUDRATE/32);

   UART0_Init (); 

   EIE2 |= 0x02;     //允许ADC中断
   IE|=0x10;         //允许UART中断
   EA = 1;           //允许全局中断

   TR1=1;            //启动定时器1,LED动态显示
   TR2=1;            //启动定时器2,波特率发生器
    flash_init();
    flash_erase();
    addl_flash=0;
    count_page=0;
    tempf=0x5A;
    do{loopw();
    }while(1);       

}

延时函数,用的是11.0592M的晶振
void delayms(char ticks)
{
unsigned char count;
for (ticks=ticks; ticks>  =0; ticks--)
 {
   for (count = 0; count  <=13; count++)
    {
     }
  }
}
flash初始化函数
void flash_init(void)
{
 PRT1CF=0x00;
 P1=0xff;           //P1口输入总线

 PRT2CF=0xff;
 P2=0xff;           //允许P2口输出
 
 PRT3CF=0xff;       //允许P3口输出
 P3 &=0x7f;         //LE=0
 P3 |=0x78;         //CE1,CE2,WE,OE=1
}


void select_sec(void)
{
     switch(count_sec) //选择flash存储的段
       { 

       case 0: P3 &=0xf8; break; /* 29c040 a18a17a16= 000 00000-0ffff */ 

       case 1: P3 &=0xf9;P3 |=0x01; break; /* 29c040 a18a17a16= 001 10000-1ffff */ 

       case 2: P3 &=0xfa;P3 |=0x02; break; /* 29c040 a18a17a16= 010 20000-2ffff */ 

       case 3: P3 &=0xfb;P3 |=0x03; break; /* 29c040 a18a17a16= 011 30000-3ffff */ 

       case 4: P3 &=0xfc;P3 |=0x04; break; /* 29c040 a18a17a16= 100 40000-4ffff */ 

       case 5: P3 &=0xfd;P3 |=0x05; break; /* 29c040 a18a17a16= 101 50000-5ffff */ 

       case 6: P3 &=0xfe;P3 |=0x06; break; /* 29c040 a18a17a16= 110 60000-6ffff */ 

       case 7: P3 |=0x07; break; /* 29c040 a18a17a16= 111 70000-7ffff */ 

       } 
}

flash的察除函数
void flash_erase(void)
{
  
  count_page=0x55;
  addl_flash=0x55;            //A0-A7低地址
  tempf=0xAA;
  flash1_w();

  count_page=0x2A;
  addl_flash=0xAA;            //A0-A7低地址
  tempf=0x55;
  flash1_w();
  

  count_page=0x55;
  addl_flash=0x55;       ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:7276毫秒 查询6次