登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

谁有可以用的x5045的驱动程序?

作者:yangtse 栏目:单片机
谁有可以用的X5045的驱动程序?
谢谢先?

2楼: >>参与讨论
luhuaren
RE
/*四个串口:sck5045,cs5045,so5045,si504;*
/*========向EEPROM写字节数==========*/
void outbyt(_data)
{
    unsigned CHAR i;
    for(i=0;i<8;i++)
    {
        sck5045=0;
        si5045=_data&0x80;     //数据送入si5045数据线
        _data=_data<<1;
        sck5045=1;
    }
    si5045=0;
}
/*从EEPROM读字节数据*/
inbyt(void)
{
       unsigned CHAR i,_data;
       for(i=0;i<8;i++)
    {
        sck5045=1; sck5045=0;
        _data=(_data<<1)|so5045;
    }
    return(_data);
}
/*读状态寄存器*/
rdsr_cmd(void)
{
    unsigned CHAR _data;
    sck5045=0;
    cs5045=0;
    
    outbyt(0x05);
    _data=inbyt();
    sck5045=0;
     
    cs5045=1;
    return(_data);
}
/*初始化EEPROM操作程序*/
void wip_poll(void)
{
    unsigned CHAR i=100;
    unsigned CHAR bdata _data;
    
    _data=rdsr_cmd();
    while((_data&0x01)&&i!=0)
    {
        i--;
         _data=rdsr_cmd();
    }
}
/* 写状态寄存器*/
void wrsr_cmd(unsigned CHAR _data)
{
    sck5045=0;

    cs5045=0;
    outbyt(0x01);
    outbyt(_data);
    sck5045=0;

    cs5045=1;
    wip_poll();
}
/*设置(0x06)复位(0x04)写使能锁存器*/
void wren_cmd(_data)
{
    sck5045=0;
    cs5045=0;
    outbyt(_data);
    sck5045=0;
    cs5045=1;
}
/*从EEPROM中读数据*/
sequ_read(unsigned int count)     //count为地址
{
    unsigned CHAR i,_data;
    sck5045=0;
    cs5045=0;
    i=count&0x00ff;
    count=(count>>8)&0x01;
    count=(count<<3)|0x03;
    outbyt(count);                 //写高位地址
    outbyt(i);                     //写低位地址
    _data=inbyt();                 //写数据
    sck5045=0;
    cs5045=1;
    return(_data);
}
/*在EEPROM中写数据*/
void page_write(unsigned int count,unsigned CHAR _data)
{
    unsigned CHAR i;
    sck5045=0;
    cs5045=0;
    i=count&0x00ff;
    count=(count>>8)&0x01;
    count=(count<<3)|0x02;
    outbyt(count);                 //写高位地址
    outbyt(i);                     //写低位地址
    outbyt(_data);                 //读数据
    sck5045=0; cs5045=1;
    wip_poll();
}

3楼: >>参与讨论
yangtse
luhuaren ,谢谢了。
 
4楼: >>参与讨论
superman77
关于XICOR产品的问题,我能免费解答各位同行的各种问题
关于XICOR产品的问题,我能免费解答各位同行的各种问题,如果在深圳免费提供技术支持,FREE
mcurd@163.com
希望有用XICOR 的朋友多多交流,如X5045, X1226, X5325等等

5楼: >>参与讨论
yangtse
郁闷,这个管脚电平为什么读不了。
代码如下:

if((P2&0x80)==0x80)                    
     level_cnt3=(level_cnt3<<1)|0x01;
else
     level_cnt3<<=1;

说明,89c51cpu,p2口外上拉10k电阻。
很奇怪,当p27电平有变化时(有意为之),levle_cnt3却没有变化。
如果将程序改为用p07,即

if((P0&0x80)==0x80)                    
     level_cnt3=(level_cnt3<<1)|0x01;
else
     level_cnt3<<=1;
却有效。

各位帮我分析一哈问题在哪里?谢谢先。




参与讨论
昵称:
讨论内容:
 
 
相关帖子
伟福8X5X仿真好用,为什么写片不好用?
求助南方的老樹
熟悉C语言宏定义的请进!
真不明白,这种设计还能如此可靠?
C51和汇编怎样混编?
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号