89C51编程器介绍

  89C51编程器介绍

#include "at89x52.h"
#include "stdio.h"
#include "intrins.h"
#include "ctype.h"《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

sbit rdy=P3^2;
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整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

void init_serial()
{
 SCON=0x50; /*mode 1*/
 TMOD=0x20;
 TH1=0xfd;
 PCON=0x80;  /*38400bps*/
 TR1=1;   /*load tmr1*/
 TI=1;
 ES=1;}《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

void init_pro()
{
 p26=0;
 p27=0;
 p36=0;
 p37=0;
 vpp=1;
 prog=1;
 }《版权声明:本文由www.dziuu.com整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

void sendbyte(unsigned char da)        /*send a byte*/
{
 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 int getadr()                        /*get 5 diti  DEC adr*/
{
 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 getdata()                     /*get 2 diti  HEX data*/
{
 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 test(unsigned int nn)
{
 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 char erase(unsigned int nn,unsigned int p)
{
 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整理提供,部分内容来源于网络,如有侵犯到你的权利请与我们联系更正。》

<<容~源~电~子~网~版权声明:本站内容部分来源于网络,如侵犯到你的权利请及时与我们联系更正,联系QQ:316520686。

本文地址:http://www.dziuu.com/dz/22/201159211802.shtml

  • 89C51编程器介绍已关闭评论
    A+
发布日期:2019年07月13日  所属分类:参考设计