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

📄 main.c

📁 mc51单片机与isd1700芯片的通信程序
💻 C
字号:
#include <reg51.h>
#include "address.h"


void maii( );
void rec( );
void play( );
void checkfull( );
void mrest( );
unsigned char chesr1( );
void waitrdy( );
void rdstatus( );
unsigned char chesr0( );
void clrint( );
void powerup( );
void stopp( );
void chk_mem( );
void fwd( );
void dstop( );
void gerase( );
void rest( );
void wr_apc(unsigned char a1,unsigned char a2);
void delay10ms( );
void delayms(unsigned char ts);
unsigned char SPOI(unsigned char instr);

void main( )
{
 SP=0x70;
 P1=0xff;
 P2=0xff;
 P3=0xff;
 P0=0xff;
 EA=0;
 maii( );
}

void maii( )
{
 unsigned char apc1,apc2;  
 rest( );
 dstop( );
 LED=1;
 if(STOP==0)
 {
 	mrest( ); 
 }
 do{}while(AN==1);
 delay10ms( );
 if(AN==0)
 { 
  powerup( );
  if(MORA==1)
  {
   apc1=0x40;
   apc2=0x04;
  }
  else
  {
   apc1=0x80;
   apc2=0x04;
  }
  wr_apc(apc1,apc2);
  waitrdy( );  	                   
  while(1)
  {
   clrint( );
   waitrdy( );
   chk_mem( );
   if(PR==1)
   {
     rec( );
    }
   else
   {
    play( );     
   }
  } 
 }
}


void rec( )
{
 bdata unsigned char resta;
 unsigned char i;
 delayms(50);
 do
 {
  resta=SPOI(0x41);
  resta=SPOI(0x00);
  SS=1;
  resta=chesr1( );
 }while(resta^3==0);
 LED=0;
 for(i=0;i<200;i++)
 {
  while(AN==0)
  {
 	 checkfull( );
  }
 }
 LED=1;
 clrint( );
 stopp( );
 do
 {
 	 if(STOP==0) mrest( );
 }while(AN==1);
 clrint( );
 stopp( );
}

void play( )
{
 bdata unsigned char resr;
 do{ }while(AN==0);
 do
 {
 resr=SPOI(0x40);
 resr=SPOI(0x00);
 SS=1;
 resr=chesr0( );
 }while(resr^0==1);
 LED=0;
 do
 {
 	if(STOP==0) mrest( );
 	resr=chesr1( );
 }while(resr^0==0);
 LED=1;
 stopp( );
 do
 {
 	if(STOP==0) mrest( );
 }while(AN==1);
 fwd( );
}


void checkfull( )
{
 bdata unsigned char i;
 unsigned char j;
 rdstatus( );
 i=SPOI(05);
 if(i^1==1)
 {
 	while(1)
 	{
 	 LED=1;
 	 for(j=0;j<10;j++)
 	 {
 	 	delayms(5);
 	 	if(AN==0) mrest( );   	 	
   } 
 	 LED=0;
 	 for(j=0;j<10;j++)
 	 {
 	 	delayms(5);
 	 	if(AN==0) mrest( ); 
 	 } 
 	}
 }	
}

void mrest( )
{
 unsigned char i,j;
 for(i=0;i<60;i++)
 {
 	if(STOP==1) break;
 	if(i==59)
 	{
 	 gerase( );
   for(j=0;j<3;j++)
   {
 	  LED=0;
 	  delayms(40);
 	  LED=1;
 	  delayms(40);
   }
  }
 }
 stopp( );
 clrint( );
 maii( );				
}

⌨️ 快捷键说明

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