|
#include <reg51.h>
#include <intrins.h>
#include <config.h>
/**************************
//x5045接口定义
sbit x5045_cs=P1^4;
sbit x5045_so=P0^2;
sbit x5045_sck=P0^1;
sbit x5045_si=P0^0;
//x5045命令
#define WREN 0x06 //写允许
#define WRDI 0x04 //写禁止
#define RSDR 0x05 //读状态寄存器
#define WRSR 0x01 //写状态寄存器,看门狗和块保护定义
#define READ_ADDERS_H 0x0b //从128~511地址读,可以连续写
#define READ_ADDERS_L 0x03 //从0~127地址读,可以连续写
#define WRITE_ADDERS_H 0x0a //从128~511地址写,可以连续写
#define WRITE_ADDERS_L 0x02 //从0~127地址写,可以连续写
**************************/
void x5045_write_onebyte(unsigned char writedata){
unsigned char i;
for(i=0;i<8;i++){
x5045_sck=0;
x5045_si=(bit)(writedata&0x80);
x5045_sck=1;
writedata<<=1;
}
x5045_si=0;
}
unsigned char x5045_read_onebyte(void){
unsigned char j,r_data;
for(j=0;j<8;j++){
x5045_sck=1;
r_data<<=1;
x5045_sck=0;
r_data|=x5045_so;
}
return (r_data);
}
unsigned char x5045_read_status(void){
unsigned char temp;
x5045_cs=0;
x5045_write_onebyte(RSDR);
temp=x5045_read_onebyte();
x5045_cs=1;
return (temp);
}
void x5045_write_status(unsigned char reg){
x5045_cs=0;
x5045_write_onebyte(WREN);
x5045_cs=1;
x5045_cs=0;
x5045_write_onebyte(WRSR);
x5045_write_onebyte(reg);
x5045_cs=1;
while(x5045_read_status()&0x01);
}
void x5045_write_data(unsigned int addr,unsigned char wdata){
x5045_cs=0;
x5045_write_onebyte(WREN);
x5045_cs=1;
x5045_cs=0;
x5045_write_onebyte((addr>255)? WRITE_ADDERS_H : WRITE_ADDERS_L);
x5045_write_onebyte(addr);
x5045_write_onebyte(wdata);
x5045_cs=1;
while(x5045_read_status()&0x01);
}
unsigned char x5045_read_data(unsigned int addr1){
unsigned char rdata;
x5045_cs=0;
x5045_write_onebyte((addr1>255)? READ_ADDERS_H : READ_ADDERS_L);
x5045_write_onebyte(addr1);
rdata=x5045_read_onebyte();
x5045_cs=1;
return(rdata);
}
void x5045_write_lendata(unsigned int address ,unsigned char *str){
unsigned char i;
for(i=0;*str!=0;i++){
x5045_write_data(address+i,*str);
str++;
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|