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

📄 9202_mini.c

📁 K0S模拟EEPROM多字节数据分组方法例程
💻 C
字号:
/*********************** (C) COPYRIGHT 2008 GETSOON************************
* File Name					: 9202_mini.c
* Author						: Tsinming
* Date First Issued	: 12/03/2008
* Description				: EEPROM_EMULATE_78K0S_MAIN
* Web								:	www.getsoon.com.cn
* BBS								: www.getsoon.com.cn/bbs
**************************************************************************/
#include "9202_mini.h"

void main()
{
	Init_CPU();
	Wait2s();

	EEPROM();

	while(1)
	{
		WDTE=0xAC;
		NOP();
		NOP();
		if(Flg_10ms)
		{
			Flg_10ms=0;
			Flash_CNT++;
			if(Flash_CNT>=50)
			{
				Flash_CNT=0;
				LED1=~LED1;
				LED2=~LED2;
			}
		}
	}
}

void Init_CPU()
{
	DI();
	//
	PCC=0;                  //CPU Clock selection
	PPCC=0;                 //Hardware Clock selection
	//
	LVIM=0x82;              //Start LVI
	LVIS=0x08;              //2.6V
	//
	PMC2=0;
	PM2=0xFF;
	PU2=0x0F;
	//
	PM3=0xFF;
	PU3=0x04;
	//
	PM4=0;
	P4=0xFF;
	//
	TMHMD1=0x50;
	CMP01=19;
	TMIFH1=0;
	TMMKH1=0;
	TMHE1=1;
	//
	Flash_CNT=0;
	Flg_10ms=0;
	LED2=0;
	LED1=1;
	//
	PM3.2=1;
	PMK1=0;
	INTM0=0x10;
	PIF1=0; 
	//
	EI();
}

void TM2ms()
{
	Flg_10ms=1;
}

void Wait2s()
{
	register char i;
	register int j;
	for(i=0;i<2;i++)
	{
		WDTE=0xAC;
		for(j=0;j<0xffff;j++)
		{
			NOP();
			WDTE=0xAC;
		}
	}
}
//==================================================================================
void EEPROM(void)
{
	unsigned char iii;
	
	for(iii = 0; iii < 6; iii++)
	{
		eeprom_data[iii] = 0;
	}
/////////////////////////////////
	#asm
	EXTRN _EEPROMWrite 
	EXTRN _EEPROMRead 
	#endasm
	
	eeptemp1 = 0;
	eeptemp2 = 1;
	#asm
	MOVW	AX,#_eeptemp1;
	MOVW  DE,AX
	MOV  X,#0
	CALL  !_EEPROMWrite
	#endasm
	
	eeptemp1 = 2;
	eeptemp2 = 3;
	#asm
	MOVW	AX,#_eeptemp1;
	MOVW  DE,AX
	MOV  X,#1
	CALL  !_EEPROMWrite
	#endasm
	
	eeptemp1 = 4;
	eeptemp2 = 5;
	#asm
	MOVW	AX,#_eeptemp1;
	MOVW  DE,AX
	MOV  X,#2
	CALL  !_EEPROMWrite
	#endasm
/////////////////////////////////
	NOP();

	#asm
	MOVW	AX,#_eeptemp1;
	MOVW  DE,AX
	MOV  X,#0
	CALL  !_EEPROMRead
	#endasm
	eeprom_data[0] = eeptemp1;
	eeprom_data[1] = eeptemp2;
	
	#asm
	MOVW	AX,#_eeptemp1;
	MOVW  DE,AX
	MOV  X,#1
	CALL  !_EEPROMRead
	#endasm
	eeprom_data[2] = eeptemp1;
	eeprom_data[3] = eeptemp2;
	
	#asm
	MOVW	AX,#_eeptemp1;
	MOVW  DE,AX
	MOV  X,#2
	CALL  !_EEPROMRead
	#endasm
	eeprom_data[4] = eeptemp1;
	eeprom_data[5] = eeptemp2;
	
	NOP();
}
//==================================================================================

⌨️ 快捷键说明

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