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

📄 45db041.c

📁 该程序是远程电话控制系统程序
💻 C
字号:
#include <stc89c54rd+.h>
#include <stdio.h>
#include <string.h>
#include <intrins.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include "main.h"
#include <absacc.h>
#include "45db041.h"
unsigned char read_byte(void)
{
	unsigned char i;
	unsigned char data999=0;
//	f_io=1;                        //SET_45IO();
    for (i=0;i<8;i++)
    {
	    f_clk=1;                  //SET_45SCK();
		data999<<=1;
		data999|=f_io;
		f_clk=0;                 //CLEAR_45SCK();
    }
    return data999; 
}

void write_byte(unsigned char data1)
{
	unsigned char i;
	for(i=0;i<8;i++)
	{
     if (data1&0x80)	 
     f_io=1;                        //SET_45IO();    	  
     else 
     f_io=0;                        //CLEAR_45IO();
	 f_clk=1;
	 f_clk=0;
	 data1<<=1;
     }
}
unsigned char read_mainmemory(unsigned int pagenum,unsigned int bits)
{
	 unsigned char i;
	 unsigned char byte11,temp11;
	 f_cs=0;                          //CLEAR_45CS();
	 write_byte(0x52);
	 i=pagenum>>6;
	 write_byte((unsigned char)i);
	 i=pagenum<<2;
	 byte11=bits>>8;
	 i=(unsigned char)i+(unsigned char)byte11;
	 write_byte((unsigned char)i);
	 write_byte((unsigned char)bits);
	 write_byte(0x00);
	 write_byte(0x00);
	 write_byte(0x00);
	 write_byte(0x00);
	 CLOCK1();

	 temp11=read_byte();
	 f_cs=1;                             //SET_45CS();
	 return temp11;
}
unsigned char read_status(void)
{
 	 unsigned char temp2;
	 f_cs=0;                          //CLEAR_45CS();
	 f_clk=0;                         //CLEAR_45SCK();
	 f_io=1;                          //SET_45IO();
	 write_byte(0x57);
	 CLOCK1();
//	 NOP();
	 temp2=read_byte();
	 f_cs=1;                          //SET_45CS();
	 return temp2;
}

/*void write_buffer1(unsigned int bitnum,unsigned char *pt)
{
 	 unsigned int i;
	 f_cs=0;
	 f_clk=0;
	 f_io=1;
	 write_byte(0x84);
	 write_byte(0x00);
	 i=bitnum>>8;
	 write_byte((unsigned char)i);
	 write_byte((unsigned char)bitnum);
	 for(i=0;i<264;i++)
	 write_byte(*pt++);
//	 DELAY();
	 f_cs=1;
}*/
void write_mainmemory(unsigned int pagenum,unsigned char *pt)
{
 	 unsigned int i;
	 f_cs=0;
	 f_io=1;
	 f_clk=0;
	 write_byte(0x82);
	 i=pagenum>>6;
	 write_byte((unsigned char)i);
	 i=pagenum<<2;
	 write_byte((unsigned char)i);
	 write_byte(0x00);
	 for(i=0;i<264;i++)
	 write_byte(*pt++);
//	 NOP();
	 f_io=1;
	 f_clk=0;
	 f_cs=1;
	 for(i=0;i<10000;i++);
}
void write_buffer2(unsigned int bitnum,unsigned char *pt)
{
 	 unsigned int i;
	 f_cs=0;
	 DELAY();
	 write_byte(0x87);
	 write_byte(0x00);
	 i=bitnum>>8;
	 write_byte((unsigned char)i);
	 write_byte((unsigned char)bitnum);
	 for(i=0;i<264;i++)
	 write_byte(*pt++);
	 f_cs=1;
}
void write_buffer1mainmemory(unsigned int pagenum)
{
 	 unsigned int i;
 	 unsigned char flag;
//	 write_buffer1(chip_cs,0,yyj02);
	 while(1)
	 {
	 flag=read_status();
	 if((flag&0x80)==0x80)
	 break;
	 }
	 f_cs=0;
	 f_clk=0;
	 f_io=1;
	 DELAY();
	 write_byte(0x83);
	 i=pagenum>>6;
	 write_byte((unsigned char)i);
	 i=pagenum<<2;
	 write_byte((unsigned char)i);
	 write_byte(0x00);
//	 DELAY();
	 f_cs=1;
}	 
/*void write_buffer2mainmemory(unsigned int pagenum)
{
 	 unsigned int i;
 	 unsigned char flag;
//	 write_buffer2(chip_cs,0,yyj02);
	 while(1)
	 {
	 flag=read_status();
	 if((flag&0x80)==0x80)
	 break;
	 }
	 f_cs=0;
	 f_clk=0;
	 f_io=1;
	 DELAY();
	 write_byte(0x86);
	 i=pagenum>>6;
	 write_byte((unsigned char)i);
	 i=pagenum<<2;
	 write_byte((unsigned char)i);
	 write_byte(0x00);
//	 DELAY();
	 f_cs=1;
}	 

void read_startarry(unsigned int pagenum,unsigned int bitnum,
                    unsigned char *pt,unsigned int len)
{
 	unsigned int i;
	unsigned char flag;
	while(1)
	 {
	 flag=read_status();
	 if(flag&0x80)
	 break;
	 }
	 f_cs=0;
	 f_io=1;
	 f_clk=0;
	 DELAY();
	 write_byte(0x68);
	 i=pagenum>>6;
	 write_byte((unsigned char)i);
	 i=pagenum<<2+bitnum>>8;
	 write_byte((unsigned char)i);
	 write_byte((unsigned char)bitnum);
	 write_byte(0x00);
	 write_byte(0x00);
	 write_byte(0x00);
	 write_byte(0x00);
	 CLOCK1();
	 for(i=0;i<len;i++)
	 *pt++=read_byte();
	 f_cs=1;
}	
void compare_buffer1page(unsigned int pagenum)
{
 	 unsigned int i;
 	 unsigned char flag;
	 while(1)
	 {
	 flag=read_status();
	 if(flag&0x80)
	 break;
	 }
	 f_cs=0;
	 f_io=1;
	 f_clk=0;
	 DELAY();
	 write_byte(0x60);
	 i=pagenum>>6;
	 write_byte((unsigned char)i);
	 i=pagenum<<2;
	 write_byte((unsigned char)i);
	 write_byte(0x00);
	 f_cs=1;
}	*/			
void CLOCK1(void)
{ 
     f_clk=1;
     DELAY();
     f_clk=0;
}
void DELAY(void)
{
     unsigned char i;
     for (i=0;i<2;i++);
}

⌨️ 快捷键说明

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