导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→我要跳楼了!!!25045的问题!急死我了!!!!!

* 59150: 我要跳楼了!!!25045的问题!急死我了!!!!!

   longxiuwei 
longxiuwei发表的帖子 

 我要跳楼了!!!25045的问题!急死我了!!!!!
我在写25045的问题!!用C语言写的!现在可以写进去了!可读出来就不一样啊!写入“0X00”时读出来是对的!可写其他的数据读出来是“0XCC”!不知道什么原因!我也延时了!可读出来不对!那位大虾看看!程序在下面!!谢谢了!
#include  <reg52.h>  
#include  <intrins.h>  

#define Nop() _nop_()
#define WREN 0x06
#define WRDI 0x04
#define RDRS 0x05
#define WRSR 0x01
#define READ0 0x03
#define READ1 0x0B
#define WRITE0 0x02
#define WRITE1 0x0a
sbit cs=P1^0;
sbit so=P1^1;
sbit sck=P1^2;
sbit si=P1^3;
sbit com=P1^7;
unsigned char dd;
void delay(unsigned int x)
 {
   while(x--)
    {
    }
  }
/************读8位数据*************/
unsigned char Read8()
 {
 
  unsigned char cloop;
  unsigned char cData=0;
  for(cloop=0;cloop  <8;cloop++)
   {
    sck=1;
    Nop();
 Nop();
 Nop();
 Nop();
 Nop();
 sck=0;
  Nop();
 Nop();
 Nop();
 Nop();
 Nop();
 cData  <  <=1;
     if(so==1)
      {
       cData=cData+1;
      }
        }
    sck=0;
   
    return cData;
 }
/***********写8位数据*****************/
void Write8(unsigned char cData)
 {
  unsigned char cloop;
  for(cloop=0;cloop  <8;cloop++)
   {
     if((cData&0x80)==0)
      {
       si=0;
      }
     else 
      {
       si=1;
      }
  sck=0;
  sck=1;
  cData  <  <=1;
  }
 sck=0;

 }
  /***************读寄存器状态**************/
unsigned char ReadSR()
  {
   unsigned char cData;
   cs=0;
   Write8(RDRS);
   cData=Read8();
   sck=0;
   cs=1;
   return cData;
 }
 /************写寄存器状态*************/
void WriteSR(unsigned char cData)
  {
   unsigned char cTemp;
   cTemp=ReadSR();
   while((cTemp&0x01)==1)
 {com=1;}
   cs=0;
   Write8(WREN);
   cs=1;
   cs=0;
   Write8(WRSR);
   cs=0;
   Write8(cData);
   sck=0;
   cs=1;
  
   }
/******************写1个字节*****************/
void write1b(unsigned char address,unsigned char cData)
  {cs=0;
  while(ReadSR()&0x01)
  {com=1;}
  cs=0;
   Write8(WREN);
   cs=1;
   cs=0; 
  Write8(WRITE0);
  Write8(address);
  Write8(cData);
  sck=0;
  cs=1;
 }
 /**************************页写入数据函数***************/
void writepage(unsigned char address,unsigned char bb[],unsigned char k )
  {
   unsigned char i;
   cs=0;
   while(ReadSR()&0x01)
  {com=1;}
  cs=0;
  Write8(WREN);
   cs=1;
   cs=0;
   Write8(WRITE0);
   Write8(address);
   for(i=0;i  <k;i++)
   Write8(bb[i]);
   cs=1;
   sck=0;
  }
 
 /*********************读一个字节*****************/
unsigned char read1b(unsigned char address)
  {
   //unsigned char cData=0;
   while(ReadSR()&0x01)
    {
    com=1;}
    cs=0;
    Write8(READ0);
   Write8(address);
    dd=Read8();
    sck=0;
    cs=1;
   return dd;
  }
main()
 {unsigned char xx[4]={0xff,0xff,0x0f,0xf0};
  WriteSR(0x30);
  write1b(0x40,0x00);
  delay(3000);
  writepage(0x50,xx,4);
  read1b(0x40);
  delay(100); 
  if(dd==0x00)
  //write1b(0x70,dd);
   while(1)
   {
    com=0;
  }
else
   while(1)
  {com=1;}
    }


发表时间:2004年7月27日15:44:34

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:这样的工作应该很好找的,很多工控类的公司都需要的,注意是工控类的,找通讯类的可能你的经历会有局限。
[下一篇帖子]:能否借鉴一下?或者请你指点,应该注意些什么?为什么我的接到一起就不行了?