89C51编程器介绍 #include "at89x52.h" sbit rdy=P3^2; void init_serial() void init_pro() void sendbyte(unsigned char da) /*send a byte*/ unsigned int getadr() /*get 5 diti DEC adr*/ unsigned char getdata() /*get 2 diti HEX data*/ unsigned int test(unsigned int nn) unsigned char erase(unsigned int nn,unsigned int p)
#include "stdio.h"
#include "intrins.h"
#include "ctype.h"《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》
sbit vpp=P3^3;
sbit p26=P3^4;
sbit p27=P3^5;
sbit p36=P3^6;
sbit p37=P3^7;
sbit prog=P2^7;《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》
{
SCON=0x50; /*mode 1*/
TMOD=0x20;
TH1=0xfd;
PCON=0x80; /*38400bps*/
TR1=1; /*load tmr1*/
TI=1;
ES=1;}《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》
{
p26=0;
p27=0;
p36=0;
p37=0;
vpp=1;
prog=1;
}《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》
{
while(!TI);
TI=0;
SBUF=da;}
unsigned char IntToAscii(unsigned char a) /*change DEC to ASCII HEX code*/
{
if(a<10) return a+48;
if(a>9) return a+55;}《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》
{
unsigned char i,a[5];
for(i=0;i<5;i++)
{
while(!RI);
RI=0;
a[i]=SBUF-48;
}
return a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4];}《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》
{
unsigned char d1,d2;
while(!RI);
RI=0;
d1=toint(SBUF);
while(!RI);
RI=0;
d2=toint(SBUF);
return d1*16+d2;}
unsigned int detchip(int adr)
{
P0=0xff;
P1=adr%256;P2=adr/256;
init_pro();
_nop_();_nop_();_nop_();_nop_();_nop_(); /*delay 10 us*/
_nop_();_nop_();_nop_();_nop_();_nop_();
return P0;}
void read()
{
unsigned int adr,maxadr;
unsigned char h,l;
P0=0xff;
maxadr=getadr();
for(adr=0;adr<maxadr;adr++)
{
P1=adr%256;P2=adr/256;
p26=0;
p27=0;
p36=1;
p37=1;
vpp=1;
prog=1;
h=IntToAscii(P0/16);
sendbyte(h);
l=IntToAscii(P0%16);
sendbyte(l);}
init_pro();}《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》
{
unsigned int adr,counter=0;
P0=0xff;
for(adr=0;adr<nn;adr++)
{
P1=adr%256;P2=adr/256;
p26=0;
p27=0;
p36=1;
p37=1;
vpp=1;
prog=1;
_nop_();_nop_();_nop_();_nop_();_nop_(); /*delay 10 us*/
_nop_();_nop_();_nop_();_nop_();_nop_();
if(P0!=0xff) counter++;}
init_pro();
return counter;}《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》
{
unsigned int i;
P0=0xff;
p26=1;
p27=0;
p36=0;
p37=0;
vpp=0;
prog=1;
for(i=0;i<50000;i++) _nop_();
switch(p)
{
case 0 : prog=0;
prog=1;
break;
case 1 : prog=0;
_nop_();
prog=1;
break;
case 2 : prog=0;
_nop_();_nop_();
prog=1;
break;
case 3 : prog=0;
_nop_();_nop_();_nop_();
prog=1;
break;
case 4 : prog=0;
_nop_();_nop_();_nop_();_nop_();
prog=1;
break;
case 5 : prog=0;
_nop_();_nop_();_nop_();_nop_();_nop_(); 《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》
本文地址:http://www.dziuu.com/dz/22/201159211802.shtml







