⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x5045.c

📁 LPC213x系列启动代码,支持ADS1.2编译器,已成功运行
💻 C
字号:
#include "config.h"

UCHAR ReceByte(void)
{
	UCHAR i,n;
	
	SET_READ_X5045;
	
	n = 0;
	for(i = 0; i < 8; i++)
	{
		n = n << 1;
		SET_X5045CLK_LOW;
		if(READ_X5045DATA) n |= 1;
		SET_X5045CLK_HIGH;
	}

	return n;
}//UCHAR ReceByte(void)

void SendByte(UCHAR n)
{
	unsigned char i;

	SET_WRITE_X5045;
	
	for(i = 0; i < 8; i++)
	{
		SET_X5045CLK_LOW;
		if(n & 0x80) SET_X5045DATA_HIGH; else SET_X5045DATA_LOW;
		n = n << 1;
		SET_X5045CLK_HIGH;
	}
}//void SendByte(UCHAR n)

void WaitWriteEnd(void)
{
	UCHAR n;
	long wait;
    
	wait = 0x600000;
    
	do
	{       
		wait--;
                
		SET_X5045CLK_LOW;
		SET_X5045CS_LOW;
		SendByte(0x05);
		n = 0x01 & ReceByte();
		SET_X5045CS_HIGH;
	}while((n == 1) && (wait > 0));
}//void WaitWriteEnd(void)

UCHAR ReadUchar(WORD addr)
{
	UCHAR dat;

	SET_X5045WP_HIGH;
	
	SET_X5045CLK_LOW;
	SET_X5045CS_LOW;
	if(addr < 256) SendByte(0x03); else SendByte(0x0b);
	SendByte(addr);
	dat = ReceByte();
	SET_X5045CS_HIGH;

	SET_X5045WP_LOW;
	
	return dat;
}//UCHAR ReadUchar(WORD addr)

WORD ReadWord(WORD addr)
{
	WORD dat;

	SET_X5045WP_HIGH;
	
	SET_X5045CLK_LOW;
	SET_X5045CS_LOW;
	if(addr < 256) SendByte(0x03); else SendByte(0x0b);
	SendByte(addr);
	dat = ReceByte();
	dat += (ReceByte() << 8);
	SET_X5045CS_HIGH;

	SET_X5045WP_LOW;
	
	return dat;
}//WORD ReadWord(WORD addr, UCHAR page)

void WriteUchar(WORD addr, UCHAR dat)
{
	SET_X5045WP_HIGH;
	
	SET_X5045CLK_LOW;
	SET_X5045CS_LOW;
	SendByte(0x06);
	SET_X5045CS_HIGH;

	SET_X5045CLK_LOW;
	SET_X5045CS_LOW;
	if(addr < 256) SendByte(0x02); else SendByte(0x0a);
	SendByte(addr & 0xff);
 	SendByte(dat);
	SET_X5045CS_HIGH;

	WaitWriteEnd();
	
	SET_X5045WP_LOW;
}//void WriteUchar(WORD addr, UCHAR dat)

void WriteWord(WORD addr, WORD dat)
{
	SET_X5045WP_HIGH;
	
	SET_X5045CLK_LOW;
	SET_X5045CS_LOW;
	SendByte(0x06);
	SET_X5045CS_HIGH;

	SET_X5045CLK_LOW;
	SET_X5045CS_LOW;
	if(addr < 256) SendByte(0x02); else SendByte(0x0a);
	SendByte(addr & 0xff);
 	SendByte(dat & 0xff);
 	SendByte((dat >> 8) & 0xff);
	SET_X5045CS_HIGH;

	WaitWriteEnd();
	
	SET_X5045WP_LOW;
}//void WriteWord(WORD addr, WORD dat)

void WriteStatReg(UCHAR dat)
{
	SET_X5045WP_HIGH;
	
	SET_X5045CLK_LOW;
	SET_X5045CS_LOW;
	SendByte(0x06);
	SET_X5045CS_HIGH;

	SET_X5045CLK_LOW;
	SET_X5045CS_LOW;
	SendByte(0x01);
	SendByte(dat);
	SET_X5045CS_HIGH;

	WaitWriteEnd();
	
	SET_X5045WP_LOW;
}//void WriteStatReg(UCHAR dat)

void WatchDog(void)
{
	SET_X5045CS_LOW;
	SET_X5045CS_HIGH;
}//void WatchDog(void)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -