找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

AT89C51单片机简易在线编程实现

查看数: 7414 | 评论数: 7 | 收藏 6
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-4-14 21:12

正文摘要:

AT89C51简易在线编程 问题:AT89C51一般只能在专业编程器上烧录,每次改动程序,要从目标板上撬下芯片,烧录后再插上运行。我的烧录器TOP851软件只能在XP上运行,还要再开一个电脑,实在是很麻烦。怎样实现在线编程 ...

回复

ID:137736 发表于 2020-5-17 21:49
可行,转换开关最好用门电咯
ID:716413 发表于 2020-4-18 22:28
一定要按住复位键,拨动编程运行切换开关。切换时,有不确定因素,可能改写了数据,先按住复位键,就不会改动了,松开就运行。
ID:716413 发表于 2020-4-17 21:22
今天发现传送程序不稳定,字节忽多忽少。
多方查找不是波特率高了的问题,原因在于超级终端只管发,有时前后字节搞串了。
把超级终端设为2个停止位就好了。
ID:716413 发表于 2020-4-16 15:26
这个适合于编程实验,很方便,我现在就用这个。
应用当然烧录好。
ID:716103 发表于 2020-4-16 10:34
其实原来ATMEL,现在MicroChip的AT89S52是支持PC串口或并口编程的。是真正的烧录到AT89S52中,掉电不失的那种。
ID:716103 发表于 2020-4-16 10:32
这种一断电,SRAM中的程序就没有了。当然可以采用外部电池来保持SRAM中的内容。
ID:716413 发表于 2020-4-16 06:58
写入片外数据存储器起始地址为0X0000是一样的。
HEX文件处理太麻烦,用HEX2BIN.EXE转换为BIN文件(程序内存映像文件,什么附加也没有),用超级终端发送,每写一个字节,又读出发送回来。
试验完成!

#include<AT892051.H>

//UART init
void initUart(void)
{
TMOD|=0x20;
SCON=0x50;
PCON|=0x80;
TH1=0xfa;
TL1=0xfa;
TR1=1;
ES=1;                  //串口中断许可
}
//////////////////////////////////////uart interrupt////////////

unsigned  char  xdata  *xpi; //写外存地址

//uart interrupt
void uart(void) interrupt 4
{
        if(RI)
        {
    RI=0;
        //add your code here.
        *xpi = SBUF;                //接收到数据
        SBUF=*xpi;                 // 数据发送回PC
        xpi++;
}
else
    TI=0;
}
////////////////////////the main fun/////////
void main(void)
{
        initUart();
        xpi=0x0000;                    //写外存地址
        EA=1;                         //总中断许可

          while(1){;}
}



小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表