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

📄 stciap.c

📁 HT1621液晶控制测试
💻 C
字号:
/**********************************************
*   文件名:STCIAP.C
/**********************************************/
#include "REG51STC.H"
#include "CMD16887.H"
#include "externxy.h"
//-----------------------------------------------------
#define DATA_FLASH_START_ADDRESS  0x8000  //STC89C58RD+

#define ENABLE_ISP   0x81   //等待时间
/************************************************
*  功能:IAP字节读
*************************************************/
uchar byte_verify(uint add)
{
	ISP_CMD=1;
	set_isp_add(add);
	trigger_isp();
	return(ISP_DATA);
}
/***********************************************
* 功能:字节编程
************************************************/
void byte_program(uint add,uchar *ptr)
{
	ISP_CMD=2;
	set_isp_add(add);
	
	ISP_DATA=*ptr;
	trigger_isp();
	if(*ptr!=byte_verify(add)) isp_err=1; //只要有1个字节写入不正确则出错
}
/**********************************************
*   功能:扇区擦除
***********************************************/
void sector_erase(uint add)
{
	ISP_CONTR=ENABLE_ISP;//等待时间
	ISP_CMD=0x03;
	set_isp_add(add);
	trigger_isp();
	iap_disable();   //关闭IAP功能
}
/**********************************************
*   功能:触发ISP
***********************************************/
void trigger_isp(void)
{
	EA=0;
	ISP_TRIG=0x46;
	ISP_TRIG=0xb9;
	;
	EA=1;
}
/***********************************************
*  功能:送地址
************************************************/
void set_isp_add(uint add)
{
	ISP_ADDRH=add/256;
   ISP_ADDRL=add%256;
}
/***********************************************
*  功能:关闭IAP功能
************************************************/
void iap_disable(void)
{
	ISP_CONTR=0;
   ISP_CMD=0;
   ISP_TRIG=0;
}
/*************************************************
*  功能:保存IAP系统参数
*************************************************/
void iap_sys_save(uint add,uchar *pi,uchar amount)
{	uchar i;
	sector_erase(add);  //扇区擦除
	ISP_CONTR=ENABLE_ISP;//等待时间
	for(i=0;i<amount;i++)
	{
		byte_program(add+i,pi+i);
	}
	iap_disable();   //关闭IAP功能
}
/*************************************************
*  功能:读IAP系统参数
*************************************************/
void iap_sys_read(uint add,uchar *pi,uchar amount)
{	uchar i;
   ISP_CONTR=ENABLE_ISP;//等待时间
	for(i=0;i<amount;i++)
	{
		*(pi+i)=byte_verify(add+i);
	}
	iap_disable();   //关闭IAP功能
}
/*************************************************
*  功能:恢复系统参数
**************************************************/
void renew_sysdata(void)
{   void  *pt;
	pt=&residue_a;
	iap_sys_read(DATA_FLASH_START_ADDRESS,pt,20);
}
/*************************************************
*  功能:系统参数备份
**************************************************/
void backup_sysdata(void)
{   void  *pt;
	pt=&residue_a;
	iap_sys_save(DATA_FLASH_START_ADDRESS,pt,20);
	pt=&invoice_number;   //发票编号   
    writebyteseq(506,pt,4);
}
/*************************************************
*  功能:打印格式数据备份
**************************************************/
void backup_printer_format(void)
{   void  *pt;
	pt=&print_format;
	iap_sys_save(DATA_FLASH_START_ADDRESS+512,pt,150);	
}
/*************************************************
*  功能:恢复打印格式
**************************************************/
void renew_printer_format(void)
{   void  *pt;
	pt=&print_format;
	iap_sys_read(DATA_FLASH_START_ADDRESS+512,pt,150);
}

⌨️ 快捷键说明

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