機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
AT29C040讀寫C51程序
AT29C040讀寫C51程序
 更新時間:2008-7-27 16:03:19  點擊數(shù):2
【字體: 字體顏色

給大家介紹一個51單片機讀寫AT29C040的c51程序

#include <reg51.h>
#include <intrins.h>

unsigned char time;
void int_t0(void) interrupt 1 {
 time++;
}

unsigned char d; //rec data

bit rec(void) {
 TH0=0;time=0;
 while (!RI) {if (time>1) return(1);}
 RI=0;
 d=SBUF;
 return(0);
}
void sen(unsigned char dd) {
 SBUF=dd;
 while (!TI) {}
 TI=0;
}

void wait(void) {
 time=0;while (time<10) {}
}

void wait10ms(void) {
 TH0=150;time=0;
 while (!time) {}
}

sbit ce=P3^5;
sbit oe=P3^6;
sbit we=P3^7;
sbit a16=P3^2;
sbit a17=P3^3;
sbit a18=P3^4;

 

void pro_to_card(void) {
 unsigned char no,i,j;
 sen(0xaa);
 if (rec()) {wait();return;}
 no=d;
 sen(d);
 
 no<<=2;
 no|=0xe3;
 P3=0xff;
 P3&=no;
 
 i=0;
 do {
  P0=i;
  j=0;
  do {
   if (rec()) {wait();ce=1;return;}
   TI=0;SBUF=d;
   P1=j;
   P2=d;
   ce=0;
   we=0;
   we=1;
   ce=1;
   j++;
  } while (j);
  wait10ms();
  i++;
 } while (i);
 ce=1;
}

void card_to_pro(void) {
 unsigned char no,i,j;
 sen(0x55);
 if (rec()) {wait();return;}
 no=d;
 sen(d);

 no<<=2;
 no|=0xe3;
 P3=0xff;
 P3&=no;
 P2=0xff;

 i=0;
 do {
  P0=i;
  j=0;
  do {
   P1=j;
   ce=0;oe=0;
   no=P2;
   oe=1;ce=1;
   j++;
   sen(no);
   if (rec()) {wait();return;}
   if (no!=d) {wait();return;}
  } while (j);
  i++;
 } while (i);
}

 


/*
void load(unsigned int as,unsigned char dd) {
 P0=as/256;P1=as;P2=dd;
 ce=0;we=0;we=1;ce=1;
}
void erase(void) {
 a16=a17=a18=0;
 load(0x5555,0xaa);
 load(0x2aaa,0x55);
 load(0x5555,0x80);
 load(0x5555,0xaa);
 load(0x2aaa,0x55);
 load(0x5555,0x10);
 wait10ms();
 wait10ms();
}

void unlock(void) {
 unsigned char i;
 a16=a17=a18=0;
 load(0x5555,0xaa);
 load(0x2aaa,0x55);
 load(0x5555,0x80);
 load(0x5555,0xaa);
 load(0x2aaa,0x55);
 load(0x5555,0x20);
 i=0;
 do {
  P1=i;
  ce=0;we=0;we=1;ce=1;
  i++;
 } while (i);
}
*/

//AT29C040讀寫主程序開始

void main(void) {
 SCON=0x80;
 TMOD=0x21;
 ET0=TR0=1;EA=1;
 
 
 
 wait10ms();
// erase();
// unlock();
 REN=1;
 while (1) {
  REN=1;RI=0;
  while (!RI) {} RI=0;
  switch (SBUF) {
  case 0x55:card_to_pro();break;
  case 0xaa:pro_to_card();break;
  case 0xa5:
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   sen(0xaa);
   break;
  }
 }
}

  • 上一篇: 1602LCM液晶顯示屏的驅(qū)動函數(shù)和實例
  • 下一篇: “嘀、嘀、……”報警聲
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

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

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

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