欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

eprom芯片,一次存储40个数字有关问题

更新时间: 2014-01-05 03:14:05 责任编辑: Author_N1

 

eprom芯片,一次存储40个数字问题

现在做的就是,使用eprom芯片,让数码管从0~99显示,工作原理就是,从单片机里写一个数字给eprom芯片,然后再从eprom芯片里读刚才单片机给的数字,把这数字在数码管显示出来。如此循环下去,就能看到数码管从0~99显示了。     
  现在我就想一次传输10个数字给eprom,然后再从eprom里读出数据来显示在数码管里,这样是没问题的。但现在我要传输多一点数字,比如40个,按照这样就会出现乱码了,读不了40个那么多数字,读到第13个就开始乱了。请问,这怎么解决,谢谢啦
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SCL=P2^0;
sbit SDA=P2^1;
sbit  shi=P2^6;
sbit  ge=P2^7;
uchar num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

uchar table[]={         0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
                                10,11,12,13,14,15,16,17,18,19,
                            20,21,22,23,24,25,26,27,28,29,
                            30,31,32,33,34,35,36,37,38,39};
uchar x=13;                //一次读取多少个数字
                                
uchar  temp[40]; 


void delay(uchar w)        //delay
{
   uchar j;
   for(;w>0;w--)
     for(j=0;j<125;j--);
}
void delay_nop(void)        //机器周期延时函数
{
   _nop_();_nop_();_nop_();_nop_();
   _nop_();_nop_();_nop_();_nop_();
}
void init()//总线初始化
{
   SDA=1;
   delay_nop();
   SCL=1;
   delay_nop();
}
void start()        //总线起始信号
{
   SDA=1;
   SCL=1;
   delay_nop();
   SDA=0;
   delay_nop();
   SCL=0;
}
void  stop()   //总线停止信号
{
    SDA=0;
        SCL=1;
        delay_nop();
        SDA=1;
        delay_nop();
        SCL=0;
}
void ack()     //总线应答信号
{
  SDA=0;
  SCL=1;
  delay_nop();
  SCL=0;
  SDA=1;

}
void noack()  //总线非应答信号
{
   SDA=1;
    SCL=1;
        delay_nop();
        SCL=0;
        SDA=0;
}
bit detectack()    //检测ACK信号
{
   bit b_ack;
   SDA=1;
   SCL=1;
   delay_nop();
   b_ack=SDA;
   SCL=0;
   return b_ack;
}
void write(uchar input)         //向IC总线发送一个字节数据
{
     uchar i;
         for(i=0;i<8;i++)
           {
               if(input & 0x80)
                       SDA=1;
                        else
                            SDA=0;
                         SCL=1;
                         delay_nop();
                         SCL=0;
                          delay_nop();
                          input=input<<1;
           }

}
uchar read(void)        //向IC总线接收一个字节数据
{
           uchar tempdata=0,i;
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:14:05
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19829/
本文WWW.DOC100.NET DOC100.NET版权所有。