设计与开发

单片机比较大小 只有8个引脚的单片机,片上资源丰富,性价比高,只有不到一块钱

小编 2024-10-12 设计与开发 23 0

只有8个引脚的单片机,片上资源丰富、性价比高、只有不到一块钱

说起单片机,大家都想到的是引脚数众多,体积较大,如48引脚的LQFP48、100引脚的LQFP100,40引脚的DIP40等。但是在做一些小项目的时候,需求简单功能不复杂,用多引脚单片机比较浪费,这时候该怎么办?有没有一些不需要太多的片上资源、引脚较少、价格便宜的单片机?

1- 8引脚单片机

ST的8引脚单片机

半导体巨头ST就推出了只有8个引脚的单片机。之前提到8引脚的单片机,大家马上就联想到Microchip,该公司推出的8引脚单片机较早。但是PIC系列的单片机编译器众多,不同系列的单片机需要安装不同的编译器,而且下载器不通用,比较昂贵,如ICD3系列市场价在800-1000左右,这就让很多用户望而却步了。

2-多引脚单片机

ST所推出的8引脚单片机为STM8S001,属于STM8S系列,该单片机将以极高的性价比服务于广大用户。全新的 STM8S001 采用小型工业标准的 SOP8 封装,在内核处理速度、系统控制、存储器大小、通信外设及模拟功能方面实现最佳配置与优化。

单片机的基本参数和参数

该单片机的基本参数如下:

内核和片上资源

内核为STM8,主频16MHz,,三级指令流水线,工作电压2.95-5.5V,5个IO口,有两个定时器,有三种低功耗模式:wait,active-halt,halt。

存储空间

具有8KB的Flash, 1KB的RAM, 128字节 EEPROM。

通信接口和片上资源

具有UART, SPI, I2C各一路,3通道10位ADC,具有5个可配置的外部中断,下载接口为SWIM方式。

3-片上资源

单片机最小系统的搭建

单片机的最小系统包括电源电路、晶振电路、下载电路、复位电路等。STM8S001具有三个可选择的时钟源:1)HSE;2)HSI;3)LSI,如果对时钟频率的精度要求不高可以选择内置时钟。下载接口为SWIM单总线方式可以使用STLINK来实现。其最小系统原理图如下图所示。

4-最小系统电路图

编程环境和下载方式介绍

该芯片的内核为STM8,所以可以使用IAR for STM8,该编程环境专门用于STM8系列单片机,界面清爽,易于操作。

5-IAR Workbench

下载工具使用STLINK-V2即可,只需要和单片机连接SWIM和GND即可,连线简单,还可以实现在线仿真,大大提高代码的调试效率。

6-STM8S001电路板

STM8S001是一款性价比极高的单片机,适用于需求简单、功能不复杂的产品开发,批量价格不到1元钱,大大节省了产品成本。

单片机的程序有多大?

之前一直很奇怪一个问题,每次写好单片机程序之后,用烧录软件进行烧录时,能看到烧录文件也就是 hex 的文件大小:

我用的单片机芯片是 STM32F103C8T6,程序储存器(flash)只有 64K。

从上图可以看出,hex 有 128K。

我有两点疑问,

1. 只是一个很简单的平衡小车程序而已,有 128K,这么大吗?

2. 就算有 128K,能下载到只有 64K 容量的单片机中去?

这可能是一道送命题!

下面开始我们的探索之旅,以 STM32 开发为例。在 keil 中进行程序编译之后,在界面部分:

很多朋友估计看到这界面,也只关心 2 个点:

第一、自己编写的程序是否正确生成了 hex!第二、自己编写的程序有没有错误,有没有警告!

在图中红线部分:

有 4 个:Code、RO-data、RW-data、ZI-data。

Code:表示所要执行的代码,程序中所有的函数都位于此处。

RO-data:表示只读数据,程序中所定义的全局常量数据和字符串都位于此处。

RW-data:表示已初始化的读写数据,程序中定义并且初始化的全局变量和静态变量位于此处。

ZI-data:表示未初始化的读写数据,程序中定义了但没有初始化的全局变量和静态变量位于此处。

从描述中可以得出:

1. 下载到单片机 FLASH 的程序是:Code+RO-data+RW-data(上图中数据为字节数,kb=byte/1024);

hex=(39546+5862+12428)/1024=56.48

2. 运行在 RAM 中的数据是:RW-data+ZI-data;

原来 window 下显示的 hex 大小,并非是我们下载到单片机中的 hex 大小。

关于为什么显示不同,这又是一个十分有趣的问题,有兴趣的朋友可以一起探讨下。

最后,貌似 C8T6 这个芯片的资源差不多被榨干了,要考虑换芯片了。

相关问答

单片机 指令中JNC能 比较 数的 大小 ?

单片机比较大小可以用减法指令来实现,比如比较两个数A与B的大小,步骤如下:1、先将借位清0。2、执行指令SUBB,也就是A-B。3、判断,借位C的状态,如果C等...

在MCS-51 单片机 中怎么用CJNE指令 比较 两数 大小 - honeyjar 的...

比如比较30H和31H寄存器中数据大小:MOVA,30HCJNEA,31H,NXT.......;两数相等NXT:JCSMALL.......;30H大于31HRETSMALL:........

单片机 汇编语言 两数 比较大小

[最佳回答]单片机有比较指令CMP的吗,请回答者再看看书吧。可以用CJNE指令,它有比较功能,如CJNEA,#DATA,LABEL当A<#data时,进位位置一,就可以判断了。程序如...

单片机 ,两个有符号数分别在50H和51H里面, 比较 他们的 大小 ,最后把大的放入60H单元?

COMPAR:CLRC;进位标志清零MOVA,50H;50H值送ACJNEA,51H,COMP;比较A与51H值大小COMP:JCCOMP1;如果50H<51H转COMP1JBACC.7,COM...

单片机 程序空间 大小 是什么意思?

单片机的存储器在物理结构上分为程序存储空间和数据存储空间,共有四个:片内和片外程序存储空间以及片内和片外数据存储空间,这种在物理结构上把程序存储器和数...

单片机 可以承受的最大电流?

常见的51单片机不同的厂家生产的单片机,I/O口承受的电流大小是不同的,而且通常是灌电流比较大,就是I/O脚输出低电平时电流是流入I/O脚的,而拉电流比较小,即...

单片机 的波特率是怎么计算的?它的 大小 单片机 有何影响?本人...

[最佳回答]单片机与计算机在串口通信时的速率就是波特率单位是bps1bps=1位/秒例如每秒传240个字符每个字符10位波特率就是2400bps串行口通信有四种方式...

51 单片机 文件 大小 超出程序区怎么解决?

首先要确定下载文件的大小是否真的超出程序空间。程序编译后生成的下载文件通常是hex文件,而真正下载到单片机程序存储器的是与此对应的bin文件。一般hex文件...

51和52的 单片机 有什么不同?

52多个定时器,RAM51是128,52是256。最后一个数字表示E2prom的大小,E2prom=最后一个数字*4K,c51就是4K,c52就是8k。另外ram也不同,52多了一个定时......

单片机 C语言中不同数组能用同一个变量来代表其中的数组 大小 吗?

但在单片机c语言程序中,实际上还是有限制的,原因在于单片机的存储空间是有限的,数组最多能有几个元素取决于单片机型号。你定义了一个全局的数组,unsigned...

猜你喜欢