写出STC89c52、AT89c51、STM32这三类型单片机的区别

写出STC89c52、AT89c51、STM32这三类型单片机的区别,第1张

STC89c52、AT89c51和STM32是三种不同类型的单片机,具有不同的规格和功能。

STC89c52:

基于8051单片机架构

内置8 KB闪存,可以存储程序代码

具有32 I/O管脚,用于与外部设备进行通信

支持基本的外设,如串口、定时器/计数器、中断等

AT89c51:

同样基于8051单片机架构

内置32 KB闪存,比STC89c52多4倍

同样具有32 I/O管脚

功能与STC89c52类似,但有更多的内存空间,可以实现更复杂的应用

STM32:

基于ARM Cortex-M内核

内置多达1 MB闪存,比8051基础的单片机多数倍

具有大量的I/O管脚和外设,如ADC、DAC、PWM、定时器/计数器、串口等

支持高级功能,如DMA、乱搞处理、实时时钟等,可以实现复杂的控制和数据处理应用。

这三种单片机各有优缺点,具体应用取决于所需要的功能和性能要求。

1、架构不同:麦克纳姆单片机采用的是哈佛架构,程序存储和数据存储分开,可以同时进行,更加高效;而PIC单片机采用的是冯诺依曼架构,程序存储和数据存储在同一存储器中,不能同时进行。

2、取指方式不同:麦克纳姆单片机采用的是指令缓冲区,每次取指令时都会预取一定数量的指令,使得CPU不必等待指令的到来,提高了执行效率;而PIC单片机则采用的是直接取指方式。

3、性能不同:麦克纳姆单片机的性能相对较高,主频可达几百MHz或以上,同时具有较大的存储容量和更多的外设接口;而PIC单片机的性能相对较低,主频一般在几十MHz左右,存储容量和外设接口也相对较少。

4、适用范围不同:麦克纳姆单片机适用于对性能要求较高、需要进行大量数据处理和复杂算法运算的场合,如图像处理、音频处理、无线通信等;而PIC单片机适用于对性能要求不高、需要进行简单控制和数据处理的场合,如家电控制、机器人控制、传感器控制等。

C语言源程序----->C编译器----->汇编代码----->汇编器----->机器代码

所谓的单片机C语言的意思是拿C语言来编写单片机程序,没有什么C语言控制单片机这回说法。具体过程是:C语言源程序通过特定的C编译器编译为针对某种单片机的汇编代码,再由汇编器将汇编代码汇编为单片机可执行的机器代码,然后下载到单片机的存储器运行。当前一般的集成开发环境(如Keil C)可以一次搞定生成机器代码。

需要补充一点的是,单片机也是一种计算机,不要以为只有在PC机上才可以用C语言编程,C语言可以用作为任何计算机的编程语言,当然包括单片机,但有一个条件就是,你必需要有针对某种架构的计算机的C编译器。目前来讲,C语言的编译器种类非常多,有用于各种单片机以及微处理器架构的编译器版本,所以可以用C来做为单片机的编程语言。不同的是,你用TC或者VC编译得到的是X86(如Intel,AMD)的目标代码,只能在PC机上运行,而如果用单片机C编译器(比如Keil C)编译的代码是单片机代码,只能在特定的单片机上运行。目前C/C++是最流行的单片机/微处理器编程语言。

1.程序存储器

设计人员编写的程序存放在微处理器的程序存储器中。

at89s52具有64kb程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息,程序存储器的结构如图1所示。

图1 at89s52程序存储器的结构

at89s52片内片外的程序存储器在统一逻辑空间中,地址从0000h~ffffh,共有64k字节范围。引脚接高电平时,程序从片内程序存储器0000h开始执行,即访问片内存储器。当pc值超出片内rom容量时,会自动转向片外程序存储器空间执行。引脚接低电平时,迫使系统全部执行片外程序存储器0000h开始存放的程序。

2.数据存储器

at89s52 有256 字节片内数据存储器。地址为00h~ffh。这256个单元共分为两部分。其一是地址从00h~7fh单元(共128个字节)为用户数据ram。从80h~ffh地址单元(也是128个字节)为特殊寄存器(sfr)单元。高128 字节与特殊功能寄存器重叠,也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。

在00h~1fh共32个单元中被均匀地分为四块,每块包含八个8位寄存器,均以r0~r7来命名,称这些寄存器为通用寄存器。这四块中的寄存器都称为r0~r7,利用psw的第3和第4位(rs0和rs1),即可选中这四组通用寄存器。

内部数据存储器的20h—2fh单元为位寻址区,可作为一般单元用字节寻址,也可对它们的位进行寻址,位寻址区地址如表1所示

表1 ram位寻址区地址表

3 中断服务程序的入口地址

在程序存储区中,为中断服务程序保存了一段中断服务程序的入口地址:其中一组特殊单元是0003h—0032h,各个单元各有用途,它们被分为六段,每个段8个字节,专门留给中断服务程序使用,被称为中断矢量区。at89s52共有8个中断源,6个中断矢量,它们的定义如下表2所,

表2 中断服务程序的入口地址

4.特殊功能寄存器sfr(special function register)

特殊功能寄存器是指有特殊用途的寄存器集合,也称为专用寄存器,本质上是一些具有特殊功能的片内ram单元,反映单片机的运行状态,很多功能也通过特殊功能寄存器来定义和控制程序的执行。

at89s52单片机内部高128(80~ffh)地址分配给特殊功能寄存器。这个地址空间和芯片内数据存储器的高128字节地址完全重叠,但两者在物理硬件上是完全独立的,用寻址方式来区分这个完全重叠的地址空间。使用直接寻址方式访问这个地址空间时,访问的是特殊功能寄存器;使用间接寻址方式访问这个地址空间时,访问的是数据存储器。

at89s52有32个特殊功能寄存器,它们被离散地分布在内部ram的80h~ffh地址中,这些寄存的功能已作了专门的规定,用户不能修改其结构。

5.几个注意问题

(1)地址的重叠性

单片机中的所有存储器都必须分配地址,可以寻址的地址范围为64kb,数据存储器与程序存储器都占用相同的地址。

程序存储器中片内片外0000h~0ffffh低4kb地址完全重叠,但是我们使用引脚进行区分:=0时,选择片外,=1时,选择片内,这样就完全区分开来了。

数据存储器中片内外0000h~00ffh的256个单元地址完全重叠,片内外数据的访问采用不同指令来区分:mov指令访问片内数据存储器,movx指令访问片外数据存储器。

(2)程序存储器(rom)与数据存储器(ram)的区分

程序存储器(rom)与数据存储器(ram)的区分在使用上是严格区分的,程序存储器只能放置程序指令及常数表格,对程序存储器中数据的访问只可以使用movc指令。而数据存储器则存放数据,片内外的 *** 作指令分别用mov,movx进行 *** 作。

(3)位地址空间的区域划分

片内ram中的20h~2fh的128位,以及sfr中的位地址,这些位寻址单元与位指令集构成了位处理器系统

1、库函数不同。由ST厂商推出的STM32系列单片机,ST厂商给了丰富的函数库,可以直接使用库函数,所以比起普通的51单片机在程序编写方面要更加的省时。

2、运行速度不同。普通的51单片机运行速度较慢,特别是双数据指针,而STM32系列单片机最高工作频率可达72MHz。

3、便利程度不同。51单片机的任何器件只需要配置寄存器打开就可以进行编程,而STM32系列单片机则需要先打开对应的时钟,包括开启后打开外部时钟(晶振)才开始工作。

4、资源不同。STM32的内部资源(寄存器和外设功能)较普通的51单片机都要多,基本上接近于计算机的CPU了,所以在程序编写上能有更多的选择。

5、编程语言选择不同。STM32基本不会选择汇编语言了,因为工程量巨大,寄存器太多了,位数也多,而51单片机则多使用汇编语言。至于C语言编程方面的区别就不大了。

参考资料来源:百度百科-stm32

参考资料来源:百度百科-51单片机

以上就是关于写出STC89c52、AT89c51、STM32这三类型单片机的区别全部的内容,包括:写出STC89c52、AT89c51、STM32这三类型单片机的区别、麦肯单片机与pic单片机的区别、C语言控制单片机的详细原理是怎样的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9461115.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存