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端口的配置,比如某些中断的入口,比如某些寄存器的定义等等。在移植之前,还是得拿目标芯片的数据手册来看看。

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

    关注

    446

    文章

    47691

    浏览量

    408832
  • 单片机
    +关注

    关注

    5997

    文章

    43947

    浏览量

    620542

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

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

收藏 人收藏

    评论

    相关推荐

    555集成芯片的三种工作模式区别

    555集成芯片是一个功能强大的模拟电路和数字电路结合的中规模集成电路,它主要有三种工作模式:单稳态模式、双稳态模式和无稳态模式。这三种模式
    的头像 发表于 03-26 14:46 187次阅读

    开关电源的突发模式和脉冲跳跃模式的原理及区别是什么?

    想弄懂开关电源的突发模式和脉冲跳跃模式的原理及区别,以BOOST拓扑为例,希望能够有对应的电感、开关以及输出的波形,谢谢。。
    发表于 01-08 07:25

    示波器滚动模式与标准模式区别

    示波器滚动模式与标准模式区别  示波器是一种电子测试仪器,它用于显示电压随时间变化的波形图。示波器可以设置为两种显示模式:滚动模式和标准
    的头像 发表于 11-07 10:13 1404次阅读

    示波器慢扫描模式和ROLL模式的共性和区别

    示波器是一种电子仪器,用于观察和测量电信号的波形、幅度、频率等参数。示波器有多种工作模式,其中慢扫描模式和ROLL模式是两种常见的工作模式
    的头像 发表于 11-06 14:48 492次阅读

    Chroma电子负载的CCH模式与CCL模式有什么区别

    Chroma电子负载的CCH模式与CCL模式有什么区别? Chroma电子负载是一种专业的测试设备,常用于电源、太阳能电池板等的负载测试中。其中,CCH模式和CCL
    的头像 发表于 10-25 11:11 1517次阅读

    STM8L的等待模式和HALT模式有什么区别

    STM8L的等待模式和HALT模式有什么区别
    发表于 10-13 08:26

    pcie模式和soc模式区别是什么?

    pcie模式和soc模式区别是什么?看教程里很多都把这两区分开来
    发表于 09-18 06:24

    使用Device Chain的SVF for SPI加载模式时bg模式和rf模式区别是什么?

    使用Device Chain的SVF for SPI加载模式时,bg模式和rf模式有什么区别
    发表于 08-11 08:45

    MCU模式和RGB模式区别在哪

    LCD的接口有多种,分类很细。主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI
    的头像 发表于 08-07 16:25 1318次阅读

    使用CubeMX配置STM32010C6T6的LPUART1外设时RX引脚模式如何修改?

    如题,STM32010C6T6串口1配置完成后,Cube界面接收引脚模式默认为推挽输出,并且没有其它选项可以更改,(其它系列MCU默认是输入模式)生成的工程调用串口发送和接收函数均不能
    发表于 08-07 11:13

    ML51TC0AE,运行了段自己编的ADC函数后,单片机就降级了是为什么?

    常是IO口方波频率是正常时的5倍的,有比率是5.5倍的,正符合12T单片机和1T单片机(当然也不是所有指令都是1T)同频处理指令速度之比。请问这个是新唐ML51系列单片机的BUG吗?
    发表于 06-27 07:40

    ML51TC0AE运行段自己编的ADC函数后,单片机变成12T运行模式了延时时间长到7倍是为什么?

    常是IO口方波频率是正常时的5倍的,有比率是5.5倍的,正符合12T单片机和1T单片机(当然也不是所有指令都是1T)同频处理指令速度之比。请问这个是新唐ML51系列单片机的BUG吗?
    发表于 06-21 08:58

    1T 8051 Flash MCU,48MHz外设运行,24MHz内核运行——CMS8S6990

    CMS8S69xx是增强型1T 8051 Flash MCU,最快支持48MHz外设运行,24MHz内核运行,工作电压2.1V-5.5V,GPIO最多可达22,内置2路模拟比较器,2路运算放大器
    发表于 05-26 10:53

    中微CMS8S6990增强型1T 8051,16KB Flash无线充方案MCU

    UART, 1SPI, 1I2C。工业级标准设计,可工作在-40℃至105℃,并提供SSOP20、TSSOP20,QFN20,SSOP24及QFN24封装。 产品特性 增强型
    发表于 05-18 09:26

    2.1V-5.5V、增强型1T 8051 Flash MCU

    ,支持触摸模块,提供6通道带死区控制的互补型PWM输出,最多达30路12位ADC,2UART, UART1可任意映射I/O口,1SPI,
    发表于 05-06 09:28