【经验】8位MCU EFM8中插入NOP空指令的三种方法:RC-51编译器、SDCC编译器、Keil C51编译器


EFM8系列是SILICON LABS公司的8位MCU,由于其高性价比被广泛的应用于各种行业。并且EFM8系列资源丰富,能满足不同场景需求。对于单片机开发通常需要延时,对于简单的延时NOP空指令不失为一种最优的办法。
插入NOP空指令有以下三种写法:
一、对于Raisonance RC-51编译器可以加入intrins.h头文件后调用_nop_ ()即可。
二、对于SDCC编译器可以使用内联汇编来插入NOP指令,
_asm
nop
_endasm;
三、对于Keil C51编译器一种方法是类似于RC-51编译器,另一种是使用如下方法:
#pragma asm
NOP;
#pragma endasm
- |
- +1 赞 0
- 收藏
- 评论 1
本文由NKJ提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
SILICON LABS 8-bit Microcontroller选型表
SILICON LABS 8位MCU选型,MCU Core 8051,频率20MHz~100MHz,Flash存储2kB~120kB,RAM存储0.25kB~8kB。
产品型号
|
品类
|
系列
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Dig I/O Pins
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
DAC
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
EMIF
|
CAN
|
LIN
|
VREF
|
Debug Interface
|
C8051F392-A-GM
|
8位MCU
|
C8051F39x Small Form Factor
|
50
|
16
|
1
|
1.8
|
3.6
|
QFN20
|
4x4
|
±2
|
17
|
10-bit, 16-ch., 500 ksps
|
Temp Sensor
|
6
|
3
|
10-bit, 2-ch.
|
1
|
1
|
1
|
2
|
0
|
0
|
0
|
0
|
VREF
|
C2
|
Silicon Labs的8位MCU EFM8SB10F8G下载程序方式有哪些?
Silicon Labs的8位MCU EFM8SB10F8G可以通过C2接口和串口(在确定片上已含bootloader的情况下)下载程序。
SILICON LABS EFM8 Sleepy Bee 8-bit Microcontrollers选型表
SILICON LABS 8位MCU选型,基于25MHz Frequency,2~64kB Flash,0.25~4kB RAM等参数进行选型
产品型号
|
品类
|
MCU Core
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
Comparators
|
UART
|
SPI
|
I2C
|
HS I2C Slave
|
I2S
|
EMIF
|
CAN
|
LIN
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
VREF
|
Debug Interface
|
Temperature Range (ºC)
|
EFM8SB10F8G-QFN20
|
Microcontroller
|
8051
|
25
|
8
|
0.5
|
16
|
12-bit, 9-ch.
|
Temp Sensor
|
4
|
3
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
1.8
|
3.6
|
QFN20
|
3x3
|
±2
|
VREF
|
C2
|
-40 to 85
|
关于Silicon Labs EFM8系列8位MCU,bootloader烧录/升级最新固件的问题。
需要注意的是I2C接口的硬件连接,连接的线不要过长,可以考虑在线的两端都加上拉电阻。另外,C2接口是芯片的调试接口,可以直接对芯片的FLASH进行烧录,者的烧录原理不一样,但同样的,C2接口的连接线也不能过长。
Silicon Labs EFM8BB1系列8位MCU的量产软件有哪些?
Silicon Labs EFM8BB1系列8位MCU的量产软件可以采用Silicon Labs 原厂提供的MCU Production Programmer 和 Flash Programming Utility软件,建议采用前者,下载效率更高;
SILICON LABS EFM8 Universal Bee 8-bit Microcontrollers选型表
SILICON LABS 8位MCU选型,基于48MHz Frequency,8~64kB Flash,2~4kB RAM等参数进行选型
产品型号
|
品类
|
MCU Core
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
5 Volt Tolerant
|
ADC 1
|
USB
|
Temp Sensor
|
Timers (16-bit)
|
PCA Channels
|
Comparators
|
UART
|
SPI
|
I2C
|
EMIF
|
CAN
|
LIN
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
VREF
|
Debug Interface
|
Temperature Range (ºC)
|
EFM8UB20F64G-QFP48
|
Microcontroller
|
8051
|
48
|
64
|
4
|
40
|
5 Volt Tolerant
|
10-bit, 32-ch.
|
USB
|
Temp Sensor
|
6
|
5
|
2
|
2
|
1
|
2
|
1
|
0
|
0
|
2.7
|
5.25
|
QFP48
|
7x7
|
±1.5
|
VREF
|
C2
|
-40 to 85
|
Silicon Labs的8位MCU EFM8LB10的出厂默认bootloader被擦除了,如何恢复?
可以在平台搜索AN945SW,在这个文件里面包含所有EFM8LB系列的出厂默认bootloader的.HEX文件,找到对应型号,烧录进去就可以恢复了。
Silicon Labs中的8位MCU的EFM8系列中UID与UUID什么区别?
Silicon Labs中的8位MCU的EFM8系列中 UID是芯片中新加的全球唯一ID,即每个芯片的ID都是不一样的,EFM8系列的MCU上都包含此ID,。Silicon Labs公司推出的EFM8UB系列8位微控制芯片,具有内部Flash加密功能,防止非法读取内部程序,并提供128位universally unique identifier (UUID);
Silicon Labs 8位MCU系统是否需要外部VDD监视器?
在大多数情况下,内部VDD监视器就足够了,并且不需要外部VDD监视器,除非应用程序有特殊要求要求使用外部VDD监视器。每当使用内部VDD监视器时,都应注意使用8位MCU,以确保始终将监视器用作复位源,并且不会因写入RSTSRC而被意外禁用。在高于50 MHz的频率下运行的C8051F12x或C8051F36x器件的最低电源电压规格为3.0V。但是,内部VDD监视器的校准值通常为2.7V。在这种情况下,可能需要一个外部VDD监视器。
Silicon Labs的EFM8LB1系列8位MCU的BOOTLOADER I2C硬件引脚是哪个?
Silicon Labs的EFM8LB1系列8位MCU的BOOTLOADER I2C硬件引脚如下; ES1版本的EFM8LB系列BOOTLOADER的I2C硬件引脚是P0.2(SDA),P0.4(SCL),而ES0版本的是P0.2(SDA), P0.3(SCL);
Silicon Labs EFM8SB1系列8位MCU的外部中断INT0/1是否可以配置为上升沿和下降沿同时中断?
Silicon Labs EFM8SB1系列8位MCU的外部中断INT0/1是否可以配置为上升沿中断或下降沿中断或低电平中断或高电平中断, 不能配置为上升沿和下降沿同时中断。
Silicon Labs 8位MCU EFM8LB1 比较器的参考电平DACLVL是如何计算的呢?
silicon labs 的 EFM8LB1 8位MCU的比较器的参考电平DACLVL 是由公式DAC Output = CMPREF * (DACLVL / 64)计算出来的,CMPREF是由INSL位配置得出,例如,将INSL设置为0x3,就是将CMP-输入连接到内部DAC输出,CMXP选择CMP+。内部DAC使用CMXN指定的信号作为全面的参考。那么再将CMP0MX设置为0XB1,也就是CMPREF的值为VDD,正端设置为P0.2,此外,如果DAC Output也就是比较器的负端输入为0.5倍的VDD,那么通过上面的公式可以得出,(DACLVL / 64)= 0.5,所以DACLVL= 32即0x20。
Silicon Labs的8位MCU EFM8BB2是否带SMBUS Bootloader?
Silicon Labs的8位MCU EFM8BB2出厂不带SMBUS bootloader,如果需要SMBUS Bootloader,需要自己写.
如何设置Silicon Labs 8位MCU EFM8SB1的外部中断为边沿触发方式?
Silicon Labs 8位MCU EFM8SB1的外部中断可设置为高低电平触发和边沿触发,在外部中断寄存器中只是设置高低电平有效的,设置电平触发或是边沿触发需要在timer控制寄存器中设置。
在Silicon Labs 8位MCU上使用灌封料时,我需要考虑什么?
需要确保灌封料具有一些共同的特性,例如低内应力,低水平的离子污染物,低Tg等,还需要确保灌封材料的热膨胀系数离PCB板不太远,否则焊点可能会从板上脱落。除此之外,没有任何特殊要求或问题。
电子商城
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务市场

可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量:1000 提交需求>

可定制单位/双位/三位/四位LED数码管的尺寸/位数/发光颜色等性能参数,每段亮度0.8~30mcd,主波长470~640nm,电压2~10.2V。
最小起订量:1000 提交需求>
登录 | 立即注册
提交评论