91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

51單片機讀寫華邦串行FLASH W25X40 程序范例,C語言編程。適用于華邦W25X系列,比較完整。

資源截圖

代碼片段和文件信息

//W25X40??51單片機讀寫程序??
//華邦串行FLASH?W25X40?讀寫程序范例
//適用于華邦W25X系列,單通道模式;


#include?
#include?
#define?uint8?unsigned?char
#define?uint16?unsigned?int
#define?uchar?unsigned?char
#define?uint?unsigned?int
#define?uint32?unsigned?long

sbit?_cs=?P1^2;
sbit?_do=?P1^3;
sbit?_wp=?P1^4;
//sbit?_hold=?P1^5;
sbit?_clk=?P1^6;
sbit?_di=?P1^7;

#define?W25P_WriteEnable?0x06
#define?W25P_WriteDisable?0x04
#define?W25P_ReadStatusReg?0x05
#define?W25P_WriteStatusReg?0x01
#define?W25P_ReadData??0x03
#define?W25P_FastReadData?0x0B
#define?W25P_PageProgram?0x02
#define?W25P_SectorErase?0xD8?//?64KB
#define?W25P_ChipErase??0xC7
#define?W25P_PowerDown??0xB9
#define?W25P_ReleasePowerDown?0xAB
#define?W25P_DeviceID??0xAB
#define?W25P_ManufactDeviceID?0x90
?
void?init_cpu(void);
void?IO_Send_Byte(uchar?out);
uchar?IO_Get_Byte();
void?delay(uchar?tt);
void?IO_Wait_Busy();
void?IO_init();
uchar?IO_Read_StatusReg();
void?IO_Write_StatusReg(byte);
void?IO_Write_Enable();
void?IO_PowerDown();
void?IO_ReleasePowerDown();
uchar?IO_Read_ID1();
uint?IO_Read_ID2(uchar?ID_Addr);
uchar?IO_Read_Byte(uint32?Dst_Addr);
void?IO_Read_nBytes(uint32?Dst_Addr?uchar?nBytes_128);
uchar?IO_FastRead_Byte(uint32?Dst_Addr);
void?IO_FastRead_nBytes(uint32?Dst_Addr?uchar?nBytes_128);
void?IO_Write_Byte(uint32?Dst_Addr?uchar?byte);
void?IO_Write_nBytes(uint32?Dst_Addr?uchar?nBytes_128);
void?IO_Erase_Chip();
void?IO_Erase_Sector(uint32?Dst_Addr);
void?Verify(uchar?byte?uchar?cor_byte);
void?IO_Write_Disable();
void?trace(uchar?*struchar?len);
uint?IO_Read_ID3();

uint8?Rxtemp;
bit?MYTI;
uint8?tx_buff[16];
uint8?upper_128[16];
bit?rx_ok;
#define?nop()?_nop_()

void?main(void)
{?
?uint?i;
?
?init_cpu();?
?IO_init();
?for(;;)
?{???
??if(rx_ok?==?1)
??{
???rx_ok?=?0;
???switch(Rxtemp)
???{
????case?0x01:
?????Rxtemp?=?0;
?????tx_buff[0]?=?IO_Read_ID1();
?????trace(tx_buff1);
?????break;
????case?0x02:
????i?=?IO_Read_ID2(0x00);
????tx_buff[1]?=?(uchar)i;
????tx_buff[0]?=?(uchar)(i>>8);
????trace(tx_buff2);
????
????break;
????case?0x03:
????i?=?IO_Read_ID3();
????tx_buff[1]?=?(uchar)i;
????tx_buff[0]?=?(uchar)(i>>8);
????trace(tx_buff3);
????break;
????case?0x04:
????tx_buff[0]?=?IO_Read_Byte(0x00000000);
????trace(tx_buff1);
????break;
????case?0x05:
????tx_buff[0]?=?0x55;
????IO_Write_Byte(0x000000000xa5);
????trace(tx_buff1);
????break;
????case?0x06:
????tx_buff[0]?=?IO_Read_StatusReg();
????trace(tx_buff1);
????break;
????case?0x07:
????IO_Write_Enable();?
????break;
????case?0x08:
????upper_128[0]=0x01;upper_128[1]=0x02;upper_128[2]=0x03;upper_128[3]=0x04;
????IO_Write_nBytes(0x000000004);
????
????break;
????case?0x09:
????IO_Erase_Chip();
????break;
????case?0x0a:
????IO_Erase_Sector(0x00000000);
????break;
????default:
????break;
???}
???
??}
??
???
?}
}

void?init_cpu(void)
{??
?TMOD?=?0x21;???
?PCON?=?PCON?|?0x80;??//波特率加

評論

共有 條評論