历史上的今天
返回首页

历史上的今天

今天是:2025年04月06日(星期日)

2021年04月06日 | 89C51编程器端驱动程序的例子

2021-04-06 来源:eefocus

简介:本文提供给大家一个89C51编程器端驱动程序的例子


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

#include

#include

#include

#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;}

 }

}


推荐阅读

史海拾趣

DeLorme公司的发展小趣事

DeLorme公司成立于20世纪80年代初,当时正值全球定位系统(GPS)技术快速发展的时期。创始人XXX和XXX看到了GPS技术在户外导航领域的巨大潜力,于是决定投身这一领域。然而,创业初期他们面临了资金短缺、技术瓶颈和市场接受度低等多重挑战。他们通过不断的技术创新、优化产品设计和积极的市场推广,逐渐赢得了消费者的认可,并在行业内树立了良好的口碑。

AUSTIN公司的发展小趣事

在合并与合作的背景下,奥斯汀汽车开始注重产品创新和多样化。公司不断推出新的车型,以满足不同消费者的需求。例如,奥斯汀A40和A50等车型在市场上取得了不错的销量。同时,奥斯汀汽车还注重技术研发和创新,不断提升产品的性能和品质。

American Power Devices Inc公司的发展小趣事

在电子行业的初期,APD公司凭借其卓越的技术研发团队,成功开发出了一款高效能的电源管理芯片。这款芯片以其低能耗、高稳定性等特点迅速获得了市场的认可。随着技术的不断迭代和更新,APD持续投入研发,推出了一系列具有竞争力的产品,逐渐在电源管理领域树立了领先地位。

ASSMANN WSW components公司的发展小趣事

随着公司规模的扩大和产品质量的提升,ASSMANN WSW components公司开始积极拓展全球市场。通过与全球知名企业的合作,公司成功打入国际市场,产品远销海外。同时,公司还积极参加国际电子展会和交流活动,与全球同行建立了广泛的合作关系。这些举措不仅提升了ASSMANN WSW的品牌知名度和影响力,还为公司带来了更多的商业机会和发展空间。

EPCOS (TDK)公司的发展小趣事

2009年10月1日,EPCOS与TDK元件事业部合并,成立了TDK-EPC公司。这次合并进一步增强了EPCOS在电子元器件领域的实力,使其在全球市场中的地位更加稳固。合并后,TDK-EPC公司继续秉承EPCOS的技术创新和产品拓展战略,不断推出具有竞争力的新产品和解决方案,以满足客户日益增长的需求。

FINECHIPS公司的发展小趣事

FINECHIPS公司深知人才是企业发展的根本。公司注重人才培养和团队建设,建立了完善的人才培养和激励机制。公司定期举办技术培训和交流活动,提升员工的专业技能和综合素质。同时,FINECHIPS还积极引进国内外优秀人才,为公司的发展注入新的活力和动力。这些努力不仅提升了公司的技术实力和市场竞争力,还为公司的长期发展奠定了坚实的基础。

请注意,以上故事是基于假设和一般行业情况构建的,并非FINECHIPS公司的实际历史。如需了解FINECHIPS公司的真实发展历程和故事,建议直接访问公司官网或查阅相关新闻报道和资料。

问答坊 | AI 解惑

案例分享:DB SDK银行移动商务应用案例

随着金融业务的蓬勃发展,银行业务发展迅速,用户呈几何数量不断攀升。如何为规模庞大的准用户群提供更好、更便捷的服务?如何针对不断增长的新用户群提供最新、最全面的银行服务推荐?如何应对来自国内银行、外资银行的竞争,提高知名度和用户忠诚 ...…

查看全部问答>

pcb中元器件封装和原理图中元器件封装是什么关系

CPU: 从CPU诞生的那一天起,其封装技术就经历了多种变化。直到Pentium时代,封装形式才基本上稳定下来。80X86系列的CPU从8088开始经历了DIP、PQFP、PFP、PGA、BGA等多种在集成电路芯片中使用过的封装技术,其技术性能越来越强,适应的工作频率越 ...…

查看全部问答>

群星系列实用资料共享

1_Cortex-M3支持的Thumb-2指令 2_Stellaris产品选型工具 3_LM3S系列Protel元件库 4_Stellaris外设驱动库用户指南 5_API函数介绍 6_I2C总线协议  …

查看全部问答>

求卓异5518G(绿色外壳)的升级密码

我的这台卓异5518G(绿色外壳)是7针升级接口的,是海尔2023+1108EGa+5812的,看 了好多论坛都没有能找到直接在遥控器上就可以输入密码升级的资料以及具体的操作方法,。自己又不懂制作这种机型接口的什么升级数据线和什么小版的,希望论坛里各位高 ...…

查看全部问答>

请教如何“建立winCE的软件开发工具包(SDK)并把BSP打包到.msi安装文件”

开发BSP的最后一步是建立软件开发工具包(SDK)并把BSP打包到.msi安装文件里这样它就可以被其他人安装。SDK是开发者用来为某个OS编写应用程序的一系列头文件,库,相关联的文件,运行时文件,OS扩展和帮助文档。SDK的内容允许开发者在你的OS得运行 ...…

查看全部问答>

分析一个简单CPLD程序问题

如题:    硬件为EPM570T100C5N的开发板。实现不了小灯闪烁功能,可以单独对小灯进行控制(只可以控制亮灭,不能控制闪烁),不知道什么原因,特来请教大家。以下是程序部分:module LEDxiaodeng(CLK,LED);input CLK;output [8:1]LED;re ...…

查看全部问答>

求助关于顶层文件

写了一个顶层文件,如下entity top is    Port ( CLK : in  STD_LOGIC;           RX : in  STD_LOGIC;           rst : in  ...…

查看全部问答>

STM32耗电流问题,看了资料还是迷茫中...

资料中所说:IVDD Total current into VDD/VDDA power lines (source)IVSS Total current out of VSS ground lines (sink)两者最大值均为150mA那我就郁闷了...目 ...…

查看全部问答>

【低功耗】Actel IGLOO系列超低功耗,小封装FPGA下载

Actel IGLOO系列超低功耗,小封装FPGA下载Actel IGLOO Family Represents the True Alternative to ASICsand CPLDsfor Portable Applications5 μW static power in Flash*Freeze Mode4 X less static power than nearest competitor5 X longer batt ...…

查看全部问答>