如何向单片机STC89C58RD+ 烧写程序
用的是RS232还是ISP,新手求解。。这两者是什么关系还有是不是可以直接将芯片插到机器上进行烧写程序STC89C58RD+支持这种方法吗...
用的是RS232 还是ISP,新手求解。。 这两者是什么关系
还有是不是可以直接将芯片插到机器上进行烧写程序 STC89C58RD+支持这种方法吗 展开
还有是不是可以直接将芯片插到机器上进行烧写程序 STC89C58RD+支持这种方法吗 展开
4个回答
展开全部
我就精简的说吧,RS232是串口下载;ISP的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
,不得他传)
如果你实验不成功的话就问你的指导老师,将程序中的uchar dis[]=;这六个数码管显示的接口进行修改。
如有问题可以问我。预祝成功!
//数字钟实验源代码
#include<reg51.h>
#include<absacc.h>
#define ZX XBYTE[0xffDC]
#define XW XBYTE[0xffDD]
#define uchar unsigned char
uchar count=10;
uchar data num[6];
uchar disptab[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90}; /*0-9 */
uchar dis[]=;
uchar hour=0,minute=0,second=0,i,j;
void time0(); /*定时程序*/
void bcchange(); /*十位个位转换 */
void disp(); /*显示程序 */
void time0() interrupt 1 using 3 /*定时程序 */
{
TL0=0XB7;
TH0=0X3C;
count--;
if(count==0)
{
count=10;
second++;
}
if(second==60)
{
minute++;
second=0;
}
if(minute==60)
{
hour++;
minute=0;
}
if(hour==24)
{
hour=0;
}
}
void bcchange() /*十位个位转换 */
{
num[5]=second%10 ;
num[4]=second/10;
num[3]=minute%10 ;
num[2]=minute/10;
num[1]=hour%10 ;
num[0]=hour/10;
}
void disp() /*显示程序*/
{
for(i=0;i<6;i++)
{
ZX=disptab[num[i]];
XW=dis[i];
for(j=120;j>0;j--);
}
}
void main() /*主程序 */
{
TMOD=0x01;
TL0=0XB7;
TH0=0X3C;
EA=1;
ET0=1;
TR0=1;
while(1)
{
bcchange();
disp();
}
}
如果你实验不成功的话就问你的指导老师,将程序中的uchar dis[]=;这六个数码管显示的接口进行修改。
如有问题可以问我。预祝成功!
//数字钟实验源代码
#include<reg51.h>
#include<absacc.h>
#define ZX XBYTE[0xffDC]
#define XW XBYTE[0xffDD]
#define uchar unsigned char
uchar count=10;
uchar data num[6];
uchar disptab[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90}; /*0-9 */
uchar dis[]=;
uchar hour=0,minute=0,second=0,i,j;
void time0(); /*定时程序*/
void bcchange(); /*十位个位转换 */
void disp(); /*显示程序 */
void time0() interrupt 1 using 3 /*定时程序 */
{
TL0=0XB7;
TH0=0X3C;
count--;
if(count==0)
{
count=10;
second++;
}
if(second==60)
{
minute++;
second=0;
}
if(minute==60)
{
hour++;
minute=0;
}
if(hour==24)
{
hour=0;
}
}
void bcchange() /*十位个位转换 */
{
num[5]=second%10 ;
num[4]=second/10;
num[3]=minute%10 ;
num[2]=minute/10;
num[1]=hour%10 ;
num[0]=hour/10;
}
void disp() /*显示程序*/
{
for(i=0;i<6;i++)
{
ZX=disptab[num[i]];
XW=dis[i];
for(j=120;j>0;j--);
}
}
void main() /*主程序 */
{
TMOD=0x01;
TL0=0XB7;
TH0=0X3C;
EA=1;
ET0=1;
TR0=1;
while(1)
{
bcchange();
disp();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.两个都可以 一般用ISP
2.你说的是编程器吧 这个也是支持的
2.你说的是编程器吧 这个也是支持的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询