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

/* 89C51系列CPU編程器接收CPU程序*/

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

#define e 8
#define p 9
#define l 10

sbit led=P3^2;
sbit p27=P2^7;
sbit p26=P2^6;
sbit p36=P3^6;
sbit p37=P3^7;
sbit rst=P3^3;
sbit ale=P3^5;
sbit vpp=P3^4;

bit b_break;
unsigned int adds;

//

// 13.8mS
void int_t0(void) interrupt 1 {
 TH0=-100;
 b_break=1;
}

void wait(unsigned char w) {
 unsigned int t=w*184;
 b_break=0;
 TL0=-t%256-1;TH0=-t/256;
 while (b_break==0) {}
}

void nop(void) {
 _nop_();_nop_();_nop_();_nop_();
 _nop_();_nop_();_nop_();_nop_();
 _nop_();_nop_();_nop_();_nop_();
 _nop_();_nop_();_nop_();_nop_();
 _nop_();_nop_();_nop_();_nop_();
}

unsigned char command(void) {
 TH0=-100;b_break=0;
 while (RI==0) {if (b_break==1) return(0);}
 RI=0;
 return(SBUF);
}

void earsure(unsigned char cpu) {
 switch (cpu) {
 case 1:  //89C51
 case 2:rst=p26=1;p27=p36=p37=0;nop();vpp=1;nop();
  ale=0;wait(110);ale=1;nop();
  break;
 case 3:
 case 4:break;
 case 5:
 case 6:break;
 }
}

void program(unsigned char cpu) {
 unsigned int bdata adds=0;
 unsigned char d;
 switch (cpu) {
 case 1: //89C51
 case 2:
  p36=p37=1;rst=1;
  while (1) {
   TH0=-100;b_break=0;
   while (RI==0) {if (b_break==1) return;}
   RI=0;
   d=SBUF;
   //address
   P0=adds%256;
   P2=adds/256;
   p27=1;
   //data
   P1=d;
   nop(); //48clcl
   //vpp
   vpp=1;
   nop(); //48clcl
   //ale
   ale=0;
   wait(1);//100uS
   ale=1;
   nop(); //10uS
   vpp=0;
   nop(); //48clcl
   p27=0;
   nop(); //48clcl
   P1=0xff;
   TH0=-100;b_break=0;
   while (d!=P1) {if (b_break==1) return;} //data polling
   SBUF=d;
   adds++;
  }
  break;
 case 3:
 case 4:
 case 5:
 case 6:break;
 }
}

void lock(unsigned char cpu) {
 unsigned char i;
 switch (cpu) {
 case 1: //89c51
 case 2:
  //lock 1
  rst=p26=p36=p27=p37=1;nop();
  vpp=1;
  nop();
  ale=0;
 // for (i=0;i<6;i++) wait(100);
  wait(1);
  ale=1;
  nop();
  vpp=0;
  nop();
 
  //lock 2
  rst=p26=p27=1;p36=p37=0;nop();
  vpp=1;
  nop();
  ale=0;
 // for (i=0;i<6;i++) wait(100);
  wait(1);
  ale=1;
  nop();
  vpp=0;
  nop();
 
  //lock 3
  rst=p26=p36=1;p27=p37=0;nop();
  vpp=1;
  nop();
  ale=0;
 // for (i=0;i<6;i++) wait(100);
  wait(1);
  ale=1;
  nop();
  vpp=0;
  nop();
  break;
 case 3:
 case 4:
 case 5:
 case 6:break;
 }
}

void main(void) {
 unsigned char disp,flash,temp,cpu;
 EA=1;
 SCON=0xd8;PCON=0x80;
 TMOD=0x21;
 TL1=TH1=0xff;TR1=1;
 TH0=-100;ET0=TR0=1;

 flash=0x80;

 


 while (1) {
  temp=command();
  switch (temp) {
  case 0:
  case 1:  //89c51
  case 2:  //89C52
  case 3:  //80f51
  case 4:  //80F52
  case 5:  //87F51
  case 6:cpu=temp;SBUF=temp;break;//87f52
  case e:SBUF=temp;earsure(cpu);break; //erasure
  case p:SBUF=temp;program(cpu);break; //program
  case l:lock(cpu);SBUF=temp;break; //lock
  default:SBUF=temp;break;
  }
  b_break=0;
  if ((++disp)>flash) {disp=0;led=!led;}
 }
}

  • 上一篇: DOS下為單片機(jī)漢字字模提取源代碼
  • 下一篇: 沒(méi)有了
  • 發(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