tianyukobe 发表于 2011-2-14 23:03:17

菜鸟提问, STC89C52和AT89S52有什么区别?程序可以直接混用吗?

我是一个新手,原来一直用的是STC89C52的单片机,可是最近在坛子里看很到很多帖子说STC不是很好的,就买了一块AT89S52和一个usbisp,可是回来不知道这两个单片机到底能不能通用,要不要在程序里改点什么? 比如头文件什么的?谢谢各位!

比如说这样的简答程序在STC单片机的时候正常
#include"reg52.h"
sbit led1=P1^0;

void main()
{
        led1=0;
}
换成这样用AT89S52的时候就不正常了
#include"AT89X52.h"
sbit led1=P1^0;

void main()
{
        led1=0;
}

iwtnui44 发表于 2011-2-14 23:16:27

虽然没用过STC单片机,看了一下程序,应该是可以直接用的.头文件名不用改

tianyukobe 发表于 2011-2-14 23:23:40

回复【1楼】iwtnui44
-----------------------------------------------------------------------

可是结果就是不一样,在STC正常AT 就不正常,用AT有什么注意事项吗?

xinliang 发表于 2011-2-14 23:29:13

通用的,头不要改。c52须并行烧写,s52可在线串行烧写,ISP。

eefans 发表于 2011-2-15 00:05:46

都用12T的时钟模式就没问题的。

tianyukobe 发表于 2011-2-15 00:19:30

回复【4楼】eefans
-----------------------------------------------------------------------

怎么样才能看出时钟是不是一样呢?谢谢

hepday 发表于 2011-2-15 00:26:08

回复【5楼】tianyukobe
-----------------------------------------------------------------------

看晶振

tianyukobe 发表于 2011-2-15 00:55:02

回复【6楼】hepday
-----------------------------------------------------------------------

晶振都是一样的 因为我是插在单片机开发板上的:

hongjie0216 发表于 2011-2-15 08:14:41

换成这样用AT89S52的时候就不正常了
#include"AT89X52.h"
sbit led1=P1^0;

void main()
{
led1=0;
}

#include"AT89X52.h" 改成#include"reg52.h"
或者sbit led1=P1^0;改成sbit led1=P1_0;
因为AT89X52.h 不支持P1^0运算

xiaobendan 发表于 2011-2-15 08:29:35

回复【8楼】hongjie0216
换成这样用at89s52的时候就不正常了
#include"at89x52.h"
sbit led1=p1^0;
void main()
{
led1=0;
}
#include"at89x52.h" 改成#include"reg52.h"
或者sbit led1=p1^0;改成sbit led1=p1_0;
因为at89x52.h 不支持p1^0运算
-----------------------------------------------------------------------

有这种说法?P1^0是在头文件中定义的?我怎么记得是KEIL的sbit数据类型的扩展?

LM1876 发表于 2011-2-15 08:35:45

回复【3楼】xinliang
通用的,头不要改。c52并行须烧写,s52可在线串行烧写,isp。

-----------------------------------------------------------------------

你有没有用过STC的片啊?并行烧写?什么年代的了.现在都是串口直写的了.STC用在低端还可以啊

pulan 发表于 2011-2-15 09:35:05

看ea

vtte 发表于 2011-2-15 09:45:49

同意楼上,楼主看一下EA引脚, STC的片子不用管EA的,AT的要拉高

xiaobendan 发表于 2011-2-15 13:23:42

同样楼上

tianyukobe 发表于 2011-2-15 13:50:59

回复【12楼】vtte
-----------------------------------------------------------------------

EA拉高是不是接VCC就可以了?

tianyukobe 发表于 2011-2-15 13:51:26

回复【13楼】xiaobendan 仲跻东
-----------------------------------------------------------------------

EA拉高是不是 接VCC就ok了?

bh7mtz 发表于 2011-2-16 03:30:13

有没有结果?

myqq286477745 发表于 2011-7-24 14:55:19

回复【14楼】tianyukobe
-----------------------------------------------------------------------

1021477601 发表于 2011-7-24 15:45:51

STC跟AT89x52的头文件应该是一样的吧,另外想问一个问题#include<reg52.h>和#include"reg52.h"这两个有什么不一样吗?

openEdv 发表于 2011-7-25 15:39:15

回复【8楼】hongjie0216
-----------------------------------------------------------------------

AT89X52.h 不支持P1^0运算 ?为什么我用这个是可以的。。。。

lycn81 发表于 2011-7-28 14:46:28

回复【楼主位】tianyukobe
-----------------------------------------------------------------------

头文件不用改,两块单片机只是生产厂家不一样,烧录器不能共用。

wlxtx 发表于 2011-7-29 11:08:35

什么都不用改直接就能用,对楼主很无语,你学习板上用STC有什么不好?在使用中发现什么问题?说实话学习板用STC比AT好,至少下载器省了。


修改:加一句,STC89C52的烧写次数比AT89S52多得多,AT官方给的数据是1000次,STC号称10万次以上,再吹牛应该都不会差太多。

lyi619 发表于 2011-7-29 12:43:21

回复【18楼】1021477601
-----------------------------------------------------------------------

这涉及文件编译时库的查找,没有什么区别,但是如果自己写的,会有区别。

lyi619 发表于 2011-7-29 12:44:32

toLz
只是功耗问题,没有什么大的区别。

mzbhy 发表于 2011-7-29 13:05:36

估计问题就在这里了……

liao1989 发表于 2011-7-29 20:37:31

回复【18楼】1021477601
-----------------------------------------------------------------------

<>这个是直接在你安装的库文件中寻找,而""这个是先在你建立系统文件夹当中寻找,找不到然后再安装的库文件夹寻找

hellozzq 发表于 2011-7-29 20:52:53

回复【楼主位】tianyukobe
-----------------------------------------------------------------------

头文件的问题,不要更改头文件,只要晶振一样,程序是可以移植的,你可以直接把stc89c52单片机烧录的.hex文件,直接烧录到at89s52中。

surexuwu 发表于 2011-7-30 10:03:55

回复【18楼】1021477601
-----------------------------------------------------------------------
#include<reg52.h>是在lib中寻找reg52.h
#include“reg52.h”是在你c文件当前目录下寻找reg52.h

fangzenglin 发表于 2011-7-31 19:22:36

应该好用的啊

zx696696 发表于 2011-12-14 17:06:53

是你的EA脚没有拉高吧,让他接电源就可以啦。我就看到过这个情况。

likaijing 发表于 2011-12-14 18:39:03

C是CMOS的意思

junjielala 发表于 2011-12-15 11:35:15

程序可以混用, STC的只支持串口下载, AT89S52可以用ISP和串口下载

wscf123 发表于 2011-12-15 13:21:17

我使用的时候也有类似的问题,试试EA看什么效果再说

cqugjw 发表于 2011-12-21 10:53:59

楼主怎么也不来结贴~问题解决了么
页: [1]
查看完整版本: 菜鸟提问, STC89C52和AT89S52有什么区别?程序可以直接混用吗?