您的位置:首页技术文栏单片机C51
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

AT93C46的C51源程序

[日期:2008-05-08 ] [来源:网络 作者:佚名] [字体: (投递新闻)

/*-----------------------------------------------------
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
/*file://#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;    
 
 }

阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
站长推荐