找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2668|回复: 17
打印 上一主题 下一主题
收起左侧

是不是所有stc单片机都可以运行51的程序?比如一个最简单的89c52流水灯程序,8g1k08...

  [复制链接]
跳转到指定楼层
楼主
ID:283883 发表于 2021-9-15 06:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
是不是所有stc单片机都可以运行reg51的程序?谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:143767 发表于 2021-9-15 10:41 | 只看该作者
可以运行的,STC系列都兼容51单片机
回复

使用道具 举报

板凳
ID:419909 发表于 2021-9-15 10:58 | 只看该作者
基础功能是一样的。流水灯这些,基本控制引脚的。一般可以直接使用。但是外设使用的话,不版本会有少少不同。使用前要参考一下数据手册,需要小改才可以。比如最常用的EEPROM写入。不同版本就会有不同的寄存器,
回复

使用道具 举报

地板
ID:401564 发表于 2021-9-15 11:59 | 只看该作者
STC单片机是指令完全兼容,意思是STC指令兼容而已,功能并不一定相同(其实是绝大多娄不相同),特别是在软件延时方面
反正就是传统8051有的,STC都有
STC有的,传统的8051不一定有
回复

使用道具 举报

5#
ID:3212 发表于 2021-9-15 12:17 | 只看该作者
不是的哦!STC大部分单片机,特别是新式的单片机,都没有P0口。所以虽然逻辑上都可以运行,至少不会报错,但是有些程序会得不到想要的结果……
回复

使用道具 举报

6#
ID:277550 发表于 2021-9-15 13:20 | 只看该作者
只能说是程序兼容,端口或时钟有关的,都要修改
回复

使用道具 举报

7#
ID:57657 发表于 2021-9-15 13:42 | 只看该作者
devcang 发表于 2021-9-15 13:20
只能说是程序兼容,端口或时钟有关的,都要修改

最新STC单片机缩短了执行1条指令的时钟周期,所以软件延时可能要改,相同晶振频率,定时器初值不用改。
回复

使用道具 举报

8#
ID:748788 发表于 2021-9-15 16:04 | 只看该作者
8g1k08首先要设置io,否则...
回复

使用道具 举报

9#
ID:592807 发表于 2021-9-15 19:48 | 只看该作者
不是啊,有些有双串口,有些只有一个串口,有些内部存储器。代码兼容但是硬件不一定兼容
回复

使用道具 举报

10#
ID:283883 发表于 2021-9-15 22:25 | 只看该作者
哦哦,好的,谢谢大家!会继续研究选型的😀
回复

使用道具 举报

11#
ID:57657 发表于 2021-9-16 00:13 | 只看该作者
dj3365191 发表于 2021-9-15 10:41
可以运行的,STC系列都兼容51单片机

现在新出的STC16为251单片机,其余为51单片机。
要换编译器、而且寻址范围、指令集也不同,无法兼容。
回复

使用道具 举报

12#
ID:964308 发表于 2021-9-16 07:37 | 只看该作者
都是8051的内核,程序上可以兼容,但是io口可能要换,时钟频率也可能会改变,改了的话也得换
回复

使用道具 举报

13#
ID:964308 发表于 2021-9-16 07:37 | 只看该作者
还有头文件有的不一样
回复

使用道具 举报

14#
ID:514901 发表于 2021-9-16 09:02 | 只看该作者
51的流水灯放到STC15或者STC8上运行的话,速度会快12倍
回复

使用道具 举报

15#
ID:624769 发表于 2021-9-16 10:10 | 只看该作者
郑汉松 发表于 2021-9-16 09:02
51的流水灯放到STC15或者STC8上运行的话,速度会快12倍

如果没有延时程序(delay子函数),STC8 上 快12倍没错, STC15 上 只会快7倍
如果有延时程序,那么,放到STC8 是快8倍, 放到 STC15上 只快6倍
回复

使用道具 举报

16#
ID:57657 发表于 2021-9-16 13:30 | 只看该作者
188610329 发表于 2021-9-16 10:10
如果没有延时程序(delay子函数),STC8 上 快12倍没错, STC15 上 只会快7倍
如果有延时程序,那么,放 ...

要具体看使用定时器中断延时,还是软件延时。
循环语句属于软件延时,具体快多少倍不好计算,需要测量才知道。

STC8、15、89等型号,使用相同的12T的定时器中断,速度不变。
可以配置AUXR寄存器为1T定时器,速度快12倍(89/90系列不支持)。
回复

使用道具 举报

17#
ID:624769 发表于 2021-9-16 13:58 | 只看该作者
npn 发表于 2021-9-16 13:30
要具体看使用定时器中断延时,还是软件延时。
循环语句属于软件延时,具体快多少倍不好计算,需要测量才 ...

指令速度是变得,而且流水灯,真有人用定时器写么?如果有人用定时器写,直接搬到STC15 系列,也不会去改AUXR 吧? 那么也不会 12倍吧?
回复

使用道具 举报

18#
ID:57657 发表于 2021-9-16 15:28 | 只看该作者
188610329 发表于 2021-9-16 13:58
指令速度是变得,而且流水灯,真有人用定时器写么?如果有人用定时器写,直接搬到STC15 系列,也不会去改 ...

不改就不会有影响, 1T更高精度,12T更长时间。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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