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

📄 feedis_flash.c

📁 AVR系列单片机ATMEGA64开发的LED显示屏程序 内容包括ATMEGA64大部分资源的初始化程序
💻 C
字号:
#include <include.h>
uchar hantemp[32];
void flash_read(uchar column,uint page,uint length,uchar fors)  //fors 表示是第一或者第二区段
{
	uchar temp,temp1;
    	uint num;
	DDRA  = 0xff;  //PORTA 变成输出口
	//	P1.4    ;RB置高
	SETBIT(PORTF, RW_4245_1);
	//RW_4245_1 = 1;	//设置第一个4245方向为写
	CLEARBIT(PORTF, OE_4245_1);
	//OE_4245_1 = 0;  //第一个4245使能输出
	SETBIT(PORTF, RW_4245_2 );
	//RW_4245_2 = 1;	//设置第二个4245方向为写
	CLEARBIT(PORTF, OE_4245_2);
	//OE_4245_2 = 0;	//第二个4245使能输出
	SETBIT(PORTE, RE_4245);
	//RE_4245 = 1;	//RE置高
	CLEARBIT(PORTE, ALE_4245);
	//ALE_4245 = 0;	//ALE置低
	CLEARBIT(PORTE, WE_4245);
	//WE_4245 = 0;	//WE置低
	SETBIT(PORTE, CLE_4245);
	//CLE_4245 = 1;	//CLE置高
	PORTA = fors;
	//P0 = fors;		//命令字,'00'从前面为读 '01'从后面读
	SETBIT(PORTE, WE_4245);
	//WE_4245 = 1;	//WE置高
	CLEARBIT(PORTE, CLE_4245);
	//CLE_4245 = 0;	//CLE置低
	SETBIT(PORTE, ALE_4245);
	//ALE_4245 = 1;	//ALE置高
	CLEARBIT(PORTE, WE_4245);
	//WE_4245 = 0;	//WE置低
	PORTA = column;
	//P0 = column;		//地址0-7位
	SETBIT(PORTE, WE_4245);
	//WE_4245 = 1;	//WE置高
	CLEARBIT(PORTE, WE_4245);
	//WE_4245 = 0;	//WE置低
	temp = (uchar)((page>>1) & 0x00ff);
	PORTA = temp;
	//P0 = temp;		//地址8-15位
	SETBIT(PORTE, WE_4245);
	//WE_4245 = 1;	//WE置高
	CLEARBIT(PORTE, WE_4245);
	//WE_4245 = 0;	//WE置低
	temp = (uchar)((page>>9) & 0x00ff); 
	PORTA = temp;
	//P0 = temp;		//地址16-23位
	SETBIT(PORTE, WE_4245);
	//WE_4245 = 1;	//WE置高
	CLEARBIT(PORTE, ALE_4245);
	//ALE_4245 = 0;	//ALE置低
	for(temp = 0;temp < 20;temp++)
		NOP();
	/*
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();*/
	 
	CLEARBIT(PORTF, RW_4245_1);
	//RW_4245_1 = 0;		//设置第一个4245方向为读l
	PORTA = 0XFF;
	DDRA  = 0x00;  //PORTA 变成输入口
	//P0 = 0xff;          //清理P0口
    for(num = 1;num <= length; num++)
    {
		CLEARBIT(PORTE, RE_4245);
		//RE_4245 = 0;
		SETBIT(PORTE, RE_4245);
		//RE_4245 = 1;
        	temp = PINA;
	hantemp[num-1] = temp;
//        ramadd++;
		WDR();
		//WDOG;
		if((num % 512) == 0)
        	{
	            for(temp1 = 0;temp1 <16;temp1++ )
	            {
				//WDOG;
		             WDR();
				CLEARBIT(PORTE, RE_4245);
				//RE_4245 = 0;
				SETBIT(PORTE, RE_4245);
				//RE_4245 = 1;
	            }
		//		page +=2;
		//		column = 0x00;
				PORTA = 0XFF;
				//P0 = 0xff;
			            
        	}	 
        
    	}
    }
	

⌨️ 快捷键说明

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