No.42345 作者:sanmaoljh 邮件:sanmaoljh@163.com ID:100382 登陆:3次 文章数:5篇 最后登陆IP:124.114.203.6 最后登陆:2008/9/26 11:44:31 注册:2008/7/25 9:48:08 财富:102 发帖时间:2008/12/13 15:14:08 发贴者IP:124.114.203.6 标题:sanmaoljh:[讨论]关于x5045读取一个字(16bit)可以吗? 摘要:No.42345[讨论]关于x5045读取一个字(16bit)可以吗? #include <reg52.h> #include <stdio.h> #include"x5045.h" //下面是我正在用的没有问题。 sbit SO=P2^1; sbit SI=P2^2; sbit SCK=P2^3; sbit CS=P2^0; //25045可编程看门狗监控EEPROM指令集 #define WREN 0x06; 00000110 //设置写使能锁存器(允许写操作) #define WRDI 0x04; 00000100 //复位写使能锁存器(禁止写操作) #define RDSR 0x05; 00000101 //读状态寄存器 #define WRSR 0x01; 00000001 //写状态寄存器(块锁定) #define READ 0x03; 00000011 //从开始于所选地址的存储器列阵中读出数据 #define WRTE 0x02; 00000010 //把数据写入开始于所选地址的存储器阵列中(1至4字 //定义两个数组 unsigned char rda[8]; unsigned char cs_rda[8]; //void in_byte(unsigned char byt); //看门狗写使能子程序 void wren_dog(void) { // unsigned char com; // com=0x06;//WREN; SCK=0; CS=0; in_byte(0x06); //设置写使能锁存器(允许写操作) SCK=0; CS=1; } //看门狗写禁止子程序 void wrdi_dog(void) { //unsigned char com; //com=0x04;//WRDI; SCK=0; CS=0; in_byte(0x04); //复位写使能锁存器(禁止写操作) SCK=0; CS=1; } //写状态寄存器 void wrsr_dog(unsigned char status_reg) { // unsigned char com=0x01;//WRSR; SCK=0; CS=0; in_byte(0x01); //写状态寄存器(块锁定) in_byte(status_reg); SCK=0; CS=1; wip_poll(); } //读状态寄存器 unsigned char rdsr_dog(void) { // unsigned char com=0x05;//RDSR; SCK=0; CS=0; in_byte(0x05); return(out_byte()); //从5045中读出一个字节 SCK=0; CS=1; } //字节读 /********************************************************************************** 函数名称:byte_read 参 数: L表示要读取数据的地址 返回值:data_dog 函数功能: **********************************************************************************/ unsigned char byte_read(unsigned char L) { unsigned char data_dog,add; SCK=0; CS=0; SO=1; SI=1; in_byte(0x03); add=L; in_byte(add); data_dog=out_byte(); SCK=0; CS= ......
>>返回讨论的主题
|