|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
谁有可以用的x5045的驱动程序? |
作者:yangtse 栏目:单片机 |
谢谢先? |
2楼: | >>参与讨论 |
作者: luhuaren 于 2005/4/30 17:30:00 发布:
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 于 2005/5/17 15:25:00 发布:
luhuaren ,谢谢了。 |
4楼: | >>参与讨论 |
作者: superman77 于 2005/5/18 21:38:00 发布:
关于XICOR产品的问题,我能免费解答各位同行的各种问题 关于XICOR产品的问题,我能免费解答各位同行的各种问题,如果在深圳免费提供技术支持,FREE mcurd@163.com 希望有用XICOR 的朋友多多交流,如X5045, X1226, X5325等等 |
5楼: | >>参与讨论 |
作者: yangtse 于 2005/5/20 11:23:00 发布:
郁闷,这个管脚电平为什么读不了。 代码如下: “ 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; 却有效。 各位帮我分析一哈问题在哪里?谢谢先。 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |