機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
AT93C46的C51源程序
AT93C46的C51源程序
 更新時(shí)間:2010-1-28 13:09:32  點(diǎn)擊數(shù):0
【字體: 字體顏色

/*-----------------------------------------------------
SPI93cXX系列時(shí)序函數(shù)調(diào)用(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};//數(shù)碼字型表
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++)
         {;}
   }
 }
 

//發(fā)送高電平1涵數(shù)
//-----------------------------------------------------
void high46(void)
{
di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
}
/*-----------------------------------------------------
發(fā)送低電平0涵數(shù)
------------------------------------------------*/
void low46(void)
{
di_93=0;sk_93=1;_nop_();sk_93=0;_nop_();
}
/*-----------------------------------------------------
寫操作允許涵數(shù)
-------------------------------------------------*/
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;
}

/*-----------------------------------------------------
從指定的地址中讀出一個(gè)字節(jié)數(shù)據(jù)(八位)涵數(shù)
-----------------------------------------------------*/
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);
}
/*-----------------------------------------------------
向指定的地址中寫入一個(gè)字節(jié)數(shù)據(jù)(八位)涵數(shù)
-------------------------------------------------*/
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;  
 
}
//-----------------------------------------------------
//擦除所有單元涵數(shù)
//-----------------------------------------------------
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;   
 
 }


 

  • 上一篇: AT89C51與1602字符型液晶模塊C語言源程序
  • 下一篇: 沒有了
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1