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

📄 93cxx.c

📁 强联单片机W804开发板C源码 可在强联的多种开发板上运行
💻 C
字号:
/*-----------------------------------------------------
SPI93cXX系列时序函数调用(PDIP普通封装)八位 
//-----------------------------------------------------*/
#include<reg51.h>
#include<intrins.h>
#include<stdio.h>
#include<string.h>

#define UN  unsigned char

void csf();
UN  d10[4];
 
void delay();
 
void high46(void);
void low46(void);
void wd46(unsigned char dd);
unsigned char rd46(void);
void ewen46(void);
unsigned char read93c46_word(unsigned char address);
write93c46_word(unsigned char address,unsigned char dat);
void earal(void);
////#define di_93 dip3
//#define sk_93 dip2
//#define cs_93 dip1
//#define do_93 dip4
//#define gnd_93 dip5
//#define org_93 dip6
sbit di_93=P2^5;
sbit do_93=P2^4;
sbit sk_93=P2^6;
sbit cs_93=P3^5;
 

sbit    lsledcs =P3^7;
 
 
sfr16 DPTR=0x82;

sbit    ACC0=ACC^0;
sbit    ACC1=ACC^1;
sbit    ACC2=ACC^2;
sbit    ACC3=ACC^3;
sbit    ACC4=ACC^4;
sbit    ACC5=ACC^5;
sbit    ACC6=ACC^6;
sbit    ACC7=ACC^7;

UN code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,//0-9
                   0x88,0x83,0xa7,0xa1,0x86,0x8e};//数码字型表
void main()

{   unsigned int i,j;

	csf();
  while(1)
       {


         P0=0xff;
         lsledcs=1;
      j=0;
      while(j!=30)
      {
         i=0;
         do{
         P0=ledcode[0];
         P1=0xfe;
         delay();
         P0=ledcode[1];
         P1=0xfd;
         delay();
         P0=ledcode[2];
         P1=0xfb;
         delay();
         P0=ledcode[3];
         P1=0xf7;
         delay();
          i++;}
          while(i!=10);
        j++;
       }

       P1=0xff;
       delay();delay();delay();delay();delay();delay();delay();delay();

        }

}

void csf()
{        P0=ledcode[0];
         P1=0xfe;
         cs_93=0;sk_93=0;
         ewen46();
         TMOD=0x20;TH1=0xfd;TL1=0xfd;SCON=0x50;PCON|=0x80;TR1=1;

         EA=1;
         delay();
         ES=0;
   
 }


/*################################串口*/
  void surt() interrupt 4
   {UN surti; unsigned int cc1;
        surti=0;
        RI=0;ES=0;
        P0=~P0;
        d10[surti]=SBUF;
       do
        {cc1=0xfff;
         surti++;
         while(RI==0){cc1--;if(cc1==0){;goto out;}}
         RI=0;d10[surti]=SBUF;}
       while(1);
  out:     
  if(d10[0]==0x55&&surti>2){write93c46_word(d10[1],d10[2]);}
  else if(d10[0]==0xaa&&surti>1){SBUF=read93c46_word(d10[1]);while(TI==0){;}TI=0;}
 
  else if(d10[0]==0xff){earal();}
  ES=1;

}
 

void delay()
 { UN a, b;
   for (a=0;a<=15;a++)
   {
     for (b=0;b<0x7f;b++)
         {;}
   }
 }
  

//发送高电平1涵数
//-----------------------------------------------------
void high46(void)
{
di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
}
//-----------------------------------------------------
//发送低电平0涵数
//-----------------------------------------------------
void low46(void)
{
di_93=0;sk_93=1;_nop_();sk_93=0;_nop_();
}
//----------------------------------------------------- 
//写操作允许涵数
//-----------------------------------------------------
void ewen46(void)
{
 cs_93=1;_nop_(); 
 high46();low46();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_(); 
cs_93=0;
}

//-----------------------------------------------------
//从指定的地址中读出一个字节数据(八位)涵数
//-----------------------------------------------------
unsigned char read93c46_word(unsigned char address)
{
	
 cs_93=1;_nop_(); 
 ACC=address;
 high46();high46();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC6;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC5;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC4;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC3;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC2;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC1;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC0;sk_93=1; _nop_();sk_93=0;_nop_(); 
 
   
 sk_93=1; _nop_(); ACC7=do_93;sk_93=0;_nop_(); 
 sk_93=1; _nop_(); ACC6=do_93;sk_93=0;_nop_(); 
 sk_93=1; _nop_(); ACC5=do_93;sk_93=0;_nop_(); 
 sk_93=1; _nop_(); ACC4=do_93;sk_93=0;_nop_(); 
 sk_93=1; _nop_(); ACC3=do_93;sk_93=0;_nop_(); 
 sk_93=1; _nop_(); ACC2=do_93;sk_93=0;_nop_(); 
 sk_93=1; _nop_(); ACC1=do_93;sk_93=0;_nop_(); 
 sk_93=1; _nop_(); ACC0=do_93;sk_93=0;_nop_(); 
 cs_93=0;   
return(ACC);
}
//-----------------------------------------------------
//向指定的地址中写入一个字节数据(八位)涵数
//-----------------------------------------------------
write93c46_word(unsigned char address,unsigned char dat)
{cs_93=1;_nop_(); 
 ACC=address;
 high46();low46();
 di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC6;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC5;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC4;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC3;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC2;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC1;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=ACC0;sk_93=1; _nop_();sk_93=0;_nop_(); 
 ACC=dat; 
 di_93=ACC7;sk_93=1;_nop_();sk_93=0;_nop_(); 
 di_93=ACC6;sk_93=1;_nop_();sk_93=0;_nop_();  
 di_93=ACC5;sk_93=1;_nop_();sk_93=0;_nop_();  
 di_93=ACC4;sk_93=1;_nop_();sk_93=0;_nop_();  
 di_93=ACC3;sk_93=1;_nop_();sk_93=0;_nop_();  
 di_93=ACC2;sk_93=1;_nop_();sk_93=0;_nop_();  
 di_93=ACC1;sk_93=1;_nop_();sk_93=0;_nop_();  
 di_93=ACC0;sk_93=1;_nop_();sk_93=0;_nop_();  
 while(do_93==0){;}
 cs_93=0;   
 
}
//-----------------------------------------------------
//擦除所有单元涵数
//-----------------------------------------------------
void earal(void){  	
cs_93=1;_nop_();  
 high46();low46();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
 di_93=1;sk_93=1; _nop_();sk_93=0;_nop_(); 	
	
 while(do_93==0){;}
 cs_93=0;  		
	
	}

⌨️ 快捷键说明

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