0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个1T模式和12T模式的区别?

单片机技术宅 ? 来源:单片机技术宅 ? 2020-05-14 11:26 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

如图,问题大概就是说初学单片机,用软件仿真出来的程序,在开发板上运行的效果比仿真的快,晶振都是一样的12M。还问到一个1T模式和12T模式的区别?

今天,我们就来说说这个问题,一看问出这样的问题就知道学单片机没几天,还不算是入门吧,还走了软件仿真的道路。

要说清这个问题,我们分几步来慢慢叨叨。

传统单片机和增强单片机

传统单片机,也就是之前的Atmel公司的51单片机,现在好多高校也都还在用的芯片,最有代表的芯片就是AT89S51/52单片机。这个单片机内部资源不多,不带ADC/DAC ,不带PWM,供电电压范围4.5V-5.2V,最主要的是运行速度的问题,12M的晶振频率,但是执行最快的 一条指令也需要12个晶振周期才能完成,这也就是所谓的12分频。这样一来12M的晶振频率,到了指令周期就只有1MHz。这也就是在12M晶振下,传统51单片机的定时器每加1所需要的时间是1us(1MHz频率对应的周期是1us),在计算定时器初值时的依据就是出自这里啦。

所谓的增强型单片机,其实就是STC的51单片机,在STC最开始的芯片中,比如STC89C51,这些芯片和AT的芯片没多少区别,运行速度和资源情况都差不多。到了STC12系列以后,STC公司连命名都改了,内部资源和运行速度都有了很大的提升,另一个很大的改动就是引脚的排列方式,之前的STC芯片的引脚排列都是兼容传统的51单机的,到时STC12系列以后,引脚不再兼容传统单片机,而是有了自己独特的排列,特别是后续的STC15、STC8等系列单片机。

>>>>

1T和12T

1T和12T只有在STC12系列以后的单片机里才出现的。前面我们已经说到了,传统的单片机其实就是12T单片机,也就是晶振频率会被12分频后才是指令运行的频率。到时STC12系列以后的STC单片机出现1T模式,也就是有些指令的执行时只需要两个晶振周期就能执行完。理论上来说,这样的运行速度会比传统单片机快6倍,为什么加“理论”,因为不是所有的指令都快6倍,只是一部分,还有些是快4倍,快3倍的。具体的需要看STC官方数据手册,如下图。

仔细的小伙伴会看到在第5列的第一行里有个小括号(采用STC-Y2 CPU内核指令集),STC12用的就是这个内核,而到了STC15系列芯片用的是STC-Y5内核,STC8系列用的是STC-Y6内核,Y后面的数字越大,指令优化的越厉害,表现出来的就是运行的更快,STC-Y5内核的指令集里,大部分的汇编指令到时一个晶振周期就执行完成的了,也就是比传统单片机快12倍。 现在我在做单片机开发的时候,绝大部分都是采用的C语言开发,你还在用汇编,那我只能是膜拜你了。C语言编程的程序方便移植,好理解,容易入门,不需要去记住那些复杂的寄存器,但是确定也明显,就是效率不高,运行速度我们没办法准确的计算出来。编译器在把C语言代码转化为汇编语言的过程我们是没法控制的,这样编译出来的机器代码我们就没办法去计算时间的指令运行时间。 >>>>

软件仿真和实际开发板

仿真软件,外国老表开发的,STC国产(好吧,内核还是人家的)。不知道什么原因,我们不知道,也不敢问,在仿真软件里就是没有STC的单片机芯片可以选择,没有STC的单片机,我们只能选择传统51单片机,这样一来,仿真的时候,程序运行的速度是传统的12T模式,也就是晶振频率12分频后才是执行的实际频率。 单片机开发板运行时,因为提问小伙伴用的单片机是STC12系列的芯片,就算他运行在12T模式下,指令系统还是有优化,速度肯定比传统的指令集要快。更何况呢,他连1T和12T都分不清,运行在1T模式下也是有可能的,所以,今天的问题就来了。实际开发板运行速度肯定会比软件仿真快。 写在最后 在很久之前,我就写过一篇文字,就说了不建议初学单片机的菜鸟从软件仿真开始。现在还有多少高校的单片机课程还在是以仿真运行的呢,希望是没有了,但我想,仅仅是我想想。 其实,小代觉得,学单片机的最终是要自己设计属于自己的东西,比如自己的毕设,更或是亲手做一个小礼物俘获女神的芳心。但是自己写的代码永远都运行在软件里,没有实际电路,你又怎么可能会自己设计电路呢。你不自己看见过电阻,又怎么可能会知道一个长得很像电阻的电子元件它其实是二极管。 最最后,回到今天的问题上,当我们把软件仿真运行完美的代码移植到实际开发板上运行时,代码是需要做单片机的适配的,比如,采用代码方式实现的延时函数,比如IO端口的配置,比如某些中断的入口,比如某些寄存器的定义等等。在移植之前,还是得拿目标芯片的数据手册来看看。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    460

    文章

    52757

    浏览量

    444578
  • 单片机
    +关注

    关注

    6069

    文章

    45107

    浏览量

    654232

原文标题:问题:单片机软件仿真和实际运行速度不一样?

文章出处:【微信号:chuxue_MCU,微信公众号:单片机技术宅】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    用于载波聚合的 0.7 至 3.0 GHz DP21T (SP12T/SP9T) MIPI 主天线开关 skyworksinc

    电子发烧友网为你提供()用于载波聚合的 0.7 至 3.0 GHz DP21T (SP12T/SP9T) MIPI 主天线开关相关产品参数、数据手册,更有用于载波聚合的 0.7 至 3.0 GHz
    发表于 08-19 18:33
    用于载波聚合的 0.7 至 3.0 GHz DP21<b class='flag-5'>T</b> (SP<b class='flag-5'>12T</b>/SP9<b class='flag-5'>T</b>) MIPI 主天线开关 skyworksinc

    0.6-2.7 GHz DP12T (SP7T/SP5T) 接收分集开关,带 MIPI RFFE 接口,用于载波聚合 skyworksinc

    电子发烧友网为你提供()0.6-2.7 GHz DP12T (SP7T/SP5T) 接收分集开关,带 MIPI RFFE 接口,用于载波聚合相关产品参数、数据手册,更有0.6-2.7 GHz
    发表于 08-12 18:32
    0.6-2.7 GHz DP<b class='flag-5'>12T</b> (SP7<b class='flag-5'>T</b>/SP5<b class='flag-5'>T</b>) 接收分集开关,带 MIPI RFFE 接口,用于载波聚合 skyworksinc

    T?V南德授予深圳吉瓦特ISO 15118 EIM模式功能测试D证书

    广州?2025年7月1日?/美通社/ --?近日,T?V南德意志集团(以下简称"T?V?南德")为深圳市吉瓦特科技有限公司(以下简称"吉瓦特")HDP986_E充电通信控制器(SECC)颁发符合性
    的头像 发表于 07-02 09:38 ?191次阅读
    <b class='flag-5'>T</b>?V南德授予深圳吉瓦特ISO 15118 EIM<b class='flag-5'>模式</b>功能测试D证书

    超声波T-SAM与C-SAM模式区别

    本文介绍了超声波的T-SAM与C-SAM两种模式区别
    的头像 发表于 05-21 15:26 ?528次阅读
    超声波<b class='flag-5'>T</b>-SAM与C-SAM<b class='flag-5'>模式</b>的<b class='flag-5'>区别</b>

    THA1024T具有待机模式的高速CAN收发器英文手册

    电子发烧友网站提供《THA1024T具有待机模式的高速CAN收发器英文手册.rar》资料免费下载
    发表于 04-02 15:50 ?0次下载

    是德示波器滚动模式设置指南

    持续捕获并显示波形,适用于观察低频信号、周期性变化或需要长时间监测的场景。例如,在电源纹波测试、音频信号分析或通信系统调试中,滚动模式能直观展现信号的实时演变过程。 ? 二、滚动模式设置步骤(以DSOX3024T为例)
    的头像 发表于 04-02 11:52 ?774次阅读
    是德示波器滚动<b class='flag-5'>模式</b>设置指南

    爆款推荐 |?迅为RK3568开发板4核处理器+1T算力NPU+好用到爆的配套资料和视频!

    爆款推荐 | 迅为RK3568开发板4核处理器+1T算力NPU+好用到爆的配套资料和视频!
    的头像 发表于 03-19 13:41 ?842次阅读
    爆款推荐 |?迅为RK3568开发板4核处理器+<b class='flag-5'>1T</b>算力NPU+好用到爆的配套资料和视频!

    LIS2DW12使用单次触发模式时还能进入唤醒触发模式吗?

    单词触发模式的配置是这样的: void LIS2DW12_InitForSingleConversion(void) {uint8_t config; // 0. 软件复位,寄存器默认值config
    发表于 03-12 07:31

    请问Nuclei用户模式如何切换回机器模式

    ;uint32_t mepc = ((uint32_t *)saved_regs)[12];printf(\"ECALL Exception Triggerrn\"
    发表于 03-07 16:14

    DLP中video模式与pattern模式有什么区别

    你好,请问,在DLP相关文档中,有提到video模式与 pattern模式,请问这两种模式有什么区别
    发表于 03-03 08:32

    DLPC3479图像模式和光控制模式区别是什么?

    请问下, 问题:在dlpc3479中的 显示模式(display mode)和光控制模式(Light Control mode)之间有什么区别
    发表于 02-24 08:27

    ADS1274低速模式和高速模式区别是什么?

    高速模式和低速模式接同样的参考电压,低速模式下,转换完成后的信号电压差不多减少半, 所以想问下,高速和低速接同样的时钟clk,除了采样频率不
    发表于 02-12 07:48

    ADS1241E在1T单片机不能读出数据是怎么回事?

    在使用ADS1241E时用STC90系列单片机采集数据时工作状态时读取数据是正常的,采用STC12系列(1T),不能读取数据,有哪位大神指教下,谢谢!
    发表于 12-23 08:36

    TAS5611有M1,M2,M3模式设置脚,TAS5611的AD模式 BD模式有什么区别

    TAS5611有M1,M2,M3模式设置脚,请教下芯片的AD模式BD模式有何区别
    发表于 10-16 07:55

    usb主机模式和设备模式区别

    USB(通用串行总线)是种广泛使用的接口技术,用于连接计算机和外部设备。USB主机模式和设备模式是USB通信中的两种不同角色,它们定义了设备和计算机之间的通信方式。以下是对这两种模式
    的头像 发表于 09-25 09:06 ?2634次阅读