电子发烧友网 > 控制/MCU > 正文

Keil C51单片机变量的使用方法详细介绍

2018年11月24日 10:20 次阅读

引言

8051内核单片机是一种通用单片机,在国内占有较大的市场份额。在将C语言用于51内核单片机的研究方面,Keil公司做得最为成功。由于51内核单片机的存储结构的特殊性,Keil C51中变量的使用与标准C有所不同。正确地使用变量,有利于获得高效的目标代码。下面详细介绍Keil C51中变量的使用方法。

1 CPU存储结构与变量的关系

变量都需要有存储空间,存储空间的不同使得变量使用时的工作效率也不同。

标准C的典型运行环境是8086(含IA-32系列)内核,其存储结构是CPU内部有寄存器,外部有存储器,寄存器的访问速度大大高于存储器的访问速度。在标准C中,不加特别定义的变量是放在存储器中的,使用register可以强制变量存储在寄存器中,对于使用特别频繁且数量不多的变量可以选用这种存储模式,以获得更高的工作效率。

相比之下,51内核单片机的存储结构则显得有些怪异,它的存储空间有3个:程序存储器空间(64 KB含片内、片外)、片外数据存储器空间(64KB)、片内数据存储器及特殊功能寄存器空间。它没有真正意义上的寄存器,它的寄存器其实是片内数据存储器(如R0~R7)和特殊功能寄存器(如A、B等)中的一部分。因此,在Keil C51中使用变量就和标准C有很大不同。

2 Keil C51变量分析

Keil C51支持标准C原有的大多数变量类型,但为这些变量新增了多种存储类型,也新增了一些标准C没有的变量。

2.1 Keil C51新增的变量存储类型

Keil C51中定义变量的格式如下:

[存储种类]数据类型[存储类型]变量名表;

其中,[存储类型]是标准C中没有的,[存储类型]共有6种,分别介绍如下:

①data。将变量存储在片内可直接寻址的数据存储器中。使用这种存储模式,目标代码中对变量的访问速度最快。

②bdata。将变量存储在片内可位寻址的数据存储器中。在目标代码中变量可以方便地进行位处理,在不进行位处理时与data相同。

③idata。将变量存储在片内间接寻址的数据存储器中。在52内核中,当片内直接寻址数据存储器不够用时,可以使用128字节间接寻址数据存储器,访问速度一般较data要慢一些,但具有最大的片内数据存储器空间;在51内核中因无单独的间接寻址数据存储器区,idata与data无区别。

④xdata。将变量存储在片外数据存储器中。目标代码中只能使用“MOVX A,@DPTR”和“MOVX@DPTR,A”指令访问变量,访问速度最慢,但存储空间最大(64KB)。

⑤pdata。将变量存储在片外数据存储器中的第一页(00H~FFH)中。目标代码中可以使用“MOVX A,@Ri”和“MOVX@Ri,A”指令访问变量,访问速度与xdata相同,存储空间为256字节。

⑥code。将变量存储在程序存储器中。目标代码中只能使用MOVC指令访问变量,因变量存储在程序存储器中,具有非易失性且为只读。

2.2 Keil C51新增的指针变量存储类型

Keil C51中的指针变量形式如下:

数据类型[数据存储类型]*[指针存储类型]标识符;

其中,[数据存储类型]和[指针存储类型]都是标准C中没有的。[数据存储类型]定义数据(即寻址对象)存储的空间,[指针存储类型]定义指针自身存储的空间。若不使用[数据存储类型],则指针为一般指针,占用3个字节;若使用[数据存储类型]则指针为基于存储器的指针,占用1~2个字节。

2.3 Keil C51新增的变量类型

bit:位变量。存储在片内数据存储器的可位寻址字节(20H~2FH)的某个位上,这个变量在实时控制中具有很高的实用价值。

sfr:特殊功能寄存器变量。存储在片内特殊功能寄存器中,用来对特殊功能寄存器进行读写操作。

sbit:特殊功能寄存器位变量。存储在片内特殊功能寄存器的可位寻址字节(地址可以被8整除者)的某个位上,用来对特殊功能寄存器的可位寻址位进行读写操作。

sbitl6:16位特殊功能寄存器变量。存储在片内特殊功能寄存器的连续2个字节的低地址上,这个变量类型很少使用。

以上这些Keil C51中新增的变量类型,不支持数组和指针操作。

3 Keil C51中使用变量存储模式的必要性

在Keil C51中,变量的存储模式是一个可选项,如果不使用这个选项,则Keil C51在编译时自动进行优选分配。但这种处理方法有以下缺点:

①系统不知道各种变量的使用频度,有可能对使用频度高的变量使用了访问速度慢的片外存储方式,而对使用频高的变量使用了片内存储方式,使得程序的运行效率降低;

②在使用指针寻址时,由于不知道寻址对象的存储方式,只好使用一般指针,在Keil C51中一般指针要多占用1~2个字节,并且使用时还要对存储方式进行判断,增加了寻址操作时间。

如果能够在定义变量的同时定义其存储类型,可以高效地使用51内核单片机的存储空间,获得高质量的目标代码。

4 Keil C51变量的使用方法

4.1 全局变量和静态局部变量

全局变量一般会在多个函数中被使用,并在整个程序运行期间内有效,静态局部变量虽然只在一个函数中使用,但也是在整个程序运行期间有效。对于这些变量,应尽量选择data型,这样在目标代码中就可以用直接寻址指令访问,获得最高的访问速度,提高程序的工作效率。例如一个保存人数的全局变量n_g,在多个函数中都被经常用到,可以这样定义:

unsigned int data n_g;//对n_g赋值时使用“MOV XXH,……”指令

4.2 数组(包括全局和局部)

定义数组一般用idata存储类型,在目标代码中使用“MOV@Ri”指令进行间接寻址。如果因数组元素过多而在编译时报错,可以改用pdata和xdata存储类型。

数组定义为data存储类型意义不大,因为既然使用数组,就是希望能够根据某一自变量访问数组元素。如定义X[100],一般都是为了能够使用X(i是一个变量)来访问,这样在目标代码中就必须使用问接寻址,所以数组没有必要使用data存储类型,即便使用了data存储类型,在目标代码中也仍然要用间接寻址指令。数组定义成idata存储类型,在使用52内核且片内数据存储器不够时,会使用只能间接寻址的片内数据存储空间。这样,既不能降低处理速度,又扩大了可使用的存储空间。

4.3 供查表用的数据

这类数据的特点是需要始终保持不变,且使用时只读,因此应定义为code型。例如一个字形表:

Keil C51单片机变量的使用方法详细介绍

全局或局部code型变量在存储时无区别。

4.4 非静态局部变量

非静态局部变量仅在某一函数内使用,退出该函数时变量也被释放。

若系统使用small存储模式,对于这些变量可以不加存储说明,由编译软件自行按最优原则决定,因为仅在函数内使用的非静态局部变量,有可能使用工作寄存器R0~R7,这样会更快速和更节省存储空间。例如:

unsigned char i,j; //系统尽可能会用R0~R7存储i和j

若系统使用了compact或large存储模式,则应将这些变量定义为data存储模式,以防系统自行决定时被定义为pdagta或xdata模式而降低工作效率。

4.5 指针

如前所述,定义指针变量时有2个存储类型:数据存储类型,说明被寻址对象的存储类型;指针存储类型,说明指针自身的存储类型。当数据存储类型为xdata时,指针自身占用2个字节;当数据存储类型为pdata以及idata等片内存储类型时,指针自身占用1个字节;若不说明数据存储类型,指针自身就要占用3个字节。因此,在KeilC51中使用指针时,应尽量定义数据存储类型,但要特别注意指针中的数据存储类型与被寻址对象的存储类型必须一致。指针都是频繁使用的,它要不断被设置、修改和使用,因此它自身的存储类型应选择data型。例如定义一个数组时就同时定义其存储类型,以后用指针对其寻址时就将数组的存储类型添加到指针的数据类型中。方法如下:

Keil C51单片机变量的使用方法详细介绍

4.6 二义性变量

在标准C中如果要使用一个二义性变量,只能用枚举类型。如:

Keil C51单片机变量的使用方法详细介绍

以上程序在Keil C51中使用时,变量t虽然仅有0和1两种状态,但在目标代码中仍占用一个字节。此处理方法既浪费存储资源,又延长了处理时间,这对于8086内核算不上多大问题,但在资源有限、运行速度不高的51内核中就不能不考虑了。在Keil C51中可使用以下方法:

Keil C51单片机变量的使用方法详细介绍

这两种方式效果是完全相同的,但在目标代码中变量t仅占用1位(即1/8字节),而且因为51内核单片机指令系统中有位处理指令,生成的目标代码占用内存少、运行速度快。

4.7 特殊功能寄存器变量(包括位变量)

特殊功能寄存器中,累加器A、寄存器B、堆栈指针SP和数据指针DPTR是归系统使用的,在C51中不提供给用户。其他的特殊功能寄存器都可以用sfr定义成变量,其中地址可以被8整除者的各位,还可以用bsfr定义成位变量。访问这些变量,就可以对特殊功能寄存器及其可以位寻址的各位进行读写,达到操作单片机内部各硬件的目的。对于标准的51内核单片机,头文件reg51.h、reg52.h或其他头文件中已对这些特殊功能寄存器变量作了定义,用户可以用#include将此头文件包含进来,然后就可以使用了。现在很多51内核兼容型单片机扩展了更多的特殊功能寄存器,这些就需要用户自行定义,具体方法可参考器件的使用说明。

4.8 外部数据存储器变量

若设置成pdata和xdata存储类型,将把变量存储在片外数据存储器中。这两种存储类型的访问速度最慢,非迫不得已不要使用。在使用这两种存储类型时,注意尽量只用它保存原始数据或最终结果,尽量减少对其访问的次数,需要频繁访问的中间结果不要用它。

4.9 用外部数据存储器地址扩展的其他硬件

在单片机外部扩展的其他硬件,一般都借用外部数据存储器地址,表现为外部数据存储器单元形式。对于这些硬件,可以用指针进行读写操作。例如:

Keil C51单片机变量的使用方法详细介绍

结语

Keil C51中的变量增加了存储类型,在使用时而显得比标准C稍微复杂。在Keil C51中,变量的存储类型不同,访问变量所需要的时间也不同,由于C51内核单片机资源少、速度慢,变量存储类型对系统工作速度的影响不可忽视。在了解变量与单片机存储结构关系的基础上,根据程序对变量的使用要求,合理地选择变量的存储类型,可以在相同的硬件上获得更高的工作效率。

技术专区

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

电动旋转牙刷单片机芯片方案——专注电子产品方案开发

发表于 2018-11-23 16:32 14次阅读
电动旋转牙刷单片机芯片方案——专注电子产品方案开发

STM32F103VET6开发板全部原理图篇

发表于 2018-11-23 16:26 68次阅读
STM32F103VET6开发板全部原理图篇

单片机系统的复位方式有:手动按钮复位和上电复位

常用的上电或开关复位电路如图3所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的...

发表于 2018-11-23 16:18 107次阅读
单片机系统的复位方式有:手动按钮复位和上电复位

枚举常量在单片机编程中有何好处

当变量的数值在几个范围之间,如一个week变量取值只有Monday,Tuesday,Wednesda...

发表于 2018-11-23 16:03 52次阅读
枚举常量在单片机编程中有何好处

如何利用单片机向PC发送一个字节数据

//流水灯控制码,该数组被定义为全局变量 /*************************...

发表于 2018-11-23 15:53 37次阅读
如何利用单片机向PC发送一个字节数据

基于CPLD的单片机与PCI接口设计方案

发表于 2018-11-23 11:31 83次阅读
基于CPLD的单片机与PCI接口设计方案

什么是u16/u8等?

发表于 2018-11-23 10:31 7次阅读
什么是u16/u8等?

急求交直流转换电路

发表于 2018-11-23 09:27 22次阅读
急求交直流转换电路

请问为什么单片机12c2052冷启动后还是烧不进程序

发表于 2018-11-22 17:32 113次阅读
请问为什么单片机12c2052冷启动后还是烧不进程序

ARM芯片要替代传统单片机芯片?

近10年来,随着ARM公司的CORTEX系列芯片的强势崛起,现在越来越多人都在谈论ARM,并且COR...

发表于 2018-11-22 16:39 720次阅读
ARM芯片要替代传统单片机芯片?

单片机与PC之间串行通信设计

源程序: #include sbit button=P3^5; void init...

发表于 2018-11-22 16:27 96次阅读
单片机与PC之间串行通信设计

开发单片机应掌握的几个技巧

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着工程师。为帮助工程师解决...

发表于 2018-11-22 16:21 182次阅读
开发单片机应掌握的几个技巧

单片机芯片三大发展方向

单片机分类比较多,可以根据不用的应用需求情况进行相应的选型设计。而且随着内核的不断增强、主频不断的提...

发表于 2018-11-22 16:15 668次阅读
单片机芯片三大发展方向

stm32的学习路线及学习思路和注意事项

发表于 2018-11-22 16:14 214次阅读
stm32的学习路线及学习思路和注意事项

如何用用C语言编写的单片机来控制流水灯

电路的核心部分是AT89C2051单片机,前面提到它有Pl和P3两组I/O口,我们这里只用到Pl口,...

发表于 2018-11-22 16:01 88次阅读
如何用用C语言编写的单片机来控制流水灯

单片机对28BYJ-48步进电机的控制设计

如果要使用电机的话,需要把4个跳线帽都调到跳线组的左侧(开发板上的实际位置),即左侧针和中间针连通(...

发表于 2018-11-22 15:46 46次阅读
单片机对28BYJ-48步进电机的控制设计

iPhone苹果手机充电插头带呼吸灯单片机方案——深圳单片机开发方案公司

发表于 2018-11-22 15:23 47次阅读
iPhone苹果手机充电插头带呼吸灯单片机方案——深圳单片机开发方案公司

单片机多机通信的设计

写寄存器的时候,如果我们要把01写到一个地址是0000的寄存器地址里,点一下“写入”,就会出现发送指...

发表于 2018-11-22 15:20 72次阅读
单片机多机通信的设计

基于C51单片机的MP3播放器设计与实现

发表于 2018-11-22 11:17 83次阅读
基于C51单片机的MP3播放器设计与实现

一文了解磁电编码器的工作原理及适用领域

磁编码器是一种新型的角度或者位移测量装置,其原理是采用磁阻或元件对变化的磁性材料的角度或者位移值进行...

发表于 2018-11-22 10:35 66次阅读
一文了解磁电编码器的工作原理及适用领域

为什么单片机不能直接驱动继电器和电磁阀?

比如我这个继电器线圈的电阻,大概是71.7欧姆,加5V电压的话,电流就是5除以71.7约等于0.07...

发表于 2018-11-22 10:33 228次阅读
为什么单片机不能直接驱动继电器和电磁阀?

请问有KEIL软件汉化版本吗,最好是能用FO系列芯片的

发表于 2018-11-22 08:44 92次阅读
请问有KEIL软件汉化版本吗,最好是能用FO系列芯片的

单片机C语言双向通信程序设计

甲机向乙机发送控制命令字符,甲机同时接收乙机发送的数字,并显示在数码管上。

发表于 2018-11-21 16:33 197次阅读
单片机C语言双向通信程序设计

单片机与ARM谁更实用

一般在8位单片机与ARM方面的嵌入式系统是有层次上的差别,ARM适用于系统复杂度较大的高级产品,如P...

发表于 2018-11-21 15:33 109次阅读
单片机与ARM谁更实用

如何破解单片机解密芯片

单片机加解密可划分为两大类,一类是硬件加解密,一类是软件加解密。硬件加密,对于单片机来说,一般是单片...

发表于 2018-11-21 15:06 90次阅读
如何破解单片机解密芯片

基于PIC12C508单片机对灯光系统的控制

以下程序使用PIC12C508 单片机 ,内部4MHz时钟,4脚输入50HZ脉冲信号,7,6,3脚(...

发表于 2018-11-20 15:37 56次阅读
基于PIC12C508单片机对灯光系统的控制

如何使用SAM4E单片机点亮LCD并显示出文字

在Atmel Studio 6中,集成了Atmel Software Framework(ASF框架...

发表于 2018-11-20 15:20 54次阅读
如何使用SAM4E单片机点亮LCD并显示出文字

单片机的空闲和掉电模式的应用

单片机进入空闲模式的时候,除了cpu处于休眠状态外,其余的硬件全部处于活动状态,芯片中未涉及的数据存...

发表于 2018-11-20 15:00 64次阅读
单片机的空闲和掉电模式的应用

单片机中的拉电流和灌电流是什么意思

单片机的拉电流和灌电流都是对单片机的输出而言的,是单片机驱动能力的具体体现。

发表于 2018-11-19 16:22 87次阅读
单片机中的拉电流和灌电流是什么意思

STM32F4的FPU性能的设置及要点

浮点运算一直是定点CPU的难题,比如一个简单的1.1+1.1,定点CPU必须要按照IEEE-754标...

发表于 2018-11-19 15:47 78次阅读
STM32F4的FPU性能的设置及要点

PIC16C5X系列单片机的四种振荡方式解析

PIC16C5X系列可以使用4种类型振荡方式:标准晶体/陶瓷振荡XT、高速晶体振荡HS(4MHz以上...

发表于 2018-11-19 15:43 38次阅读
PIC16C5X系列单片机的四种振荡方式解析

单片机调试有那些常见问题如何解决

error: #18: 6.error: #18: expected a ")" 如果是出现在c...

发表于 2018-11-17 11:50 520次阅读
单片机调试有那些常见问题如何解决

浅谈智能仪表未来发展趋势

智能仪表是以微型计算机(单片机)为主体,将计算机技术和检测技术有机结合,组成新一代“智能化仪表”。微...

发表于 2018-11-16 15:04 66次阅读
浅谈智能仪表未来发展趋势

浅析单片机数码管的8个段显示效果

数码管的 8 个段,我们直接当成 8 个 LED 小灯来控制,那就是 a、b、c、d、e、f、g、d...

发表于 2018-11-15 16:21 217次阅读
浅析单片机数码管的8个段显示效果

深度解析单片机复位电路

射频干扰,它是以空间电磁场的形式传递 在机器内部的导体(引线或零件引脚)感生出相应的干扰,可通过电磁...

发表于 2018-11-15 11:32 308次阅读
深度解析单片机复位电路

PIC12F675单片机用于热释红外传感器中的应...

现在用于检测人员进出的探测器主要采用热释红外传感器。人体能够发射10μm左右的红外线,热释红外传感器...

发表于 2018-11-14 16:38 85次阅读
PIC12F675单片机用于热释红外传感器中的应...

探讨STC单片机烧写时出现的情况

MAX232转换板出口接三条线到STC单片机RXD,TXD和GND,单片机未通电,但这时RXD上有电...

发表于 2018-11-14 16:34 208次阅读
探讨STC单片机烧写时出现的情况

单片机最小系统的组成及其原理解析

单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成。

发表于 2018-11-14 16:06 163次阅读
单片机最小系统的组成及其原理解析

GD32330C-START开发板试用体验:软件...

上次测试的时候参考GD-LinkAdapterUserManualV1.0.pdf文件中前3节的烧写...

发表于 2018-11-13 14:14 105次阅读
GD32330C-START开发板试用体验:软件...

GD32330C-START开发板试用体验:GD...

GD32F330支持用KEIL或IAR为开发工具,出于习惯本人以KEIL为开发工具,其版本为V5.1...

发表于 2018-11-13 14:07 92次阅读
GD32330C-START开发板试用体验:GD...

单片机采用串行方式对LCD12864的驱动

#i nclude #i nclude sbit SCLK =P1^3 //E s...

发表于 2018-11-12 15:19 100次阅读
单片机采用串行方式对LCD12864的驱动

如何测试单片机的数据类型字节数

i = sizeof(char);//char是一字节的变量 if(i == 1) { ...

发表于 2018-11-12 15:13 85次阅读
如何测试单片机的数据类型字节数

单片机中断源情况大汇总 嵌入式时代已经到来

嵌入式时代已经来了,不要纠结要不要踏入嵌入式的领域了,

发表于 2018-11-12 10:44 259次阅读
单片机中断源情况大汇总 嵌入式时代已经到来

如何提高单片机系统的可靠性

提高单片机系统可靠性的方法与措施很多。一般地,应根据系统所面临的具体的可靠性问题,针对引起或影响系统...

发表于 2018-11-09 15:20 115次阅读
如何提高单片机系统的可靠性

单片机中如何实现多线程

整个项目需要控制16台步进电机,21个电磁阀,3个泵,1个直流电机,系统要求全部执行时间为6秒钟,系...

发表于 2018-11-08 16:21 178次阅读
单片机中如何实现多线程

STM32F103试用体验:水共震准备材料中的过...

我这次要做的东东是一个水共震系统,说明:水共震系统是指在一个水盆里,有一个执行单元,通过电机和皮带,...

发表于 2018-11-08 10:38 300次阅读
STM32F103试用体验:水共震准备材料中的过...

一文了解逻辑分析仪当中的高级参数

对于快速高效的调试,选择逻辑分析仪解决方案时,需要重点评估仪器各方面参数,逻辑分析仪在数字电路的前期...

发表于 2018-11-08 09:07 67次阅读
一文了解逻辑分析仪当中的高级参数

比较逻辑分析仪与示波器之间的区别

目前电路的发展从抽象类似向着数字化发展,因此这些测量仪器的开发也正在朝着这种条件方法迈进。 现在,在...

发表于 2018-11-08 08:55 117次阅读
比较逻辑分析仪与示波器之间的区别

浅析单片机、ARM、FPGA 、嵌入式的特点

自带廉价的程序存储器(FLASH)和非易失的数据存储器(EEPROM)。这些存储器可多次电擦写,使程...

发表于 2018-11-07 09:54 507次阅读
浅析单片机、ARM、FPGA 、嵌入式的特点

如何系统地入门学习stm32?老司机筒子们有自己...

arm 官方也开始推这种通用库了。而此时st发现一剑走天涯的方法的确有很多弊端,开始了stmcube...

发表于 2018-11-06 17:07 585次阅读
如何系统地入门学习stm32?老司机筒子们有自己...

单片机无线传输系统的设计及nRF905无线收发模...

nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器、功率放大器等模块,曼彻斯特编码...

发表于 2018-11-06 16:00 95次阅读
单片机无线传输系统的设计及nRF905无线收发模...

五花八门的关于单片机的开发经验

AT89C51我认为是一个非常标准的51单片机了,4个P口,1个串口,RAM只有标准的128Byte...

发表于 2018-11-06 15:58 430次阅读
五花八门的关于单片机的开发经验

浅析单片机中断处理过程

中断处理过程可分为中断响应、中断处理和中断返回三个阶段。

发表于 2018-11-06 14:31 260次阅读
浅析单片机中断处理过程

如何使用可编程斜坡发生器外设创建参考信号和时序源

可编程斜坡发生器(PRG)(在Microchip最近推出的几款8位PIC 单片机上提供)是一种高度灵...

发表于 2018-11-06 09:15 190次阅读
如何使用可编程斜坡发生器外设创建参考信号和时序源

单片机中的定时计数器的四种工作方式解析

在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。,TMOD和TCON是名称...

发表于 2018-11-05 16:11 158次阅读
单片机中的定时计数器的四种工作方式解析

借助Vivado来学习FPGA的各种配置模式

单片机是基于FLASH结构的,所以单片机上电直接从本地FLASH中运行。但SRAM 架构的FPGA是...

发表于 2018-11-05 15:12 413次阅读
借助Vivado来学习FPGA的各种配置模式

单片机IO口另外三种状态

标准 51 单片机的P0 口默认就是开漏输出,如果要用的时候外部需要加上拉电阻。而强推挽输出就是有比...

发表于 2018-11-05 11:40 592次阅读
单片机IO口另外三种状态

上拉电阻应用很多,都可以起到什么作用呢?

加大普通 IO 口的驱动能力。标准 51 单片机的内部 IO 口的上拉电阻,一般都是在几十 K 欧,...

发表于 2018-11-05 11:35 490次阅读
上拉电阻应用很多,都可以起到什么作用呢?

为何不在单片机上实现PLC的逻辑呢?

内存规划,包括堆栈区的设置,定时器,计数器的累加值和预设值地址等等,目前初步定义8个计数器的当前计数...

发表于 2018-11-05 11:31 535次阅读
为何不在单片机上实现PLC的逻辑呢?

开发单片机时需掌握的四个基本技巧

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应...

发表于 2018-11-05 11:21 403次阅读
开发单片机时需掌握的四个基本技巧

准备学习单片机,该做哪些准备呢?

这估计是争论最大的一个问题了,有些人坚持学单片机软件一定要用汇编,也有人坚持选择高级语言。C51刚推...

发表于 2018-11-05 11:00 476次阅读
准备学习单片机,该做哪些准备呢?

单片机为什么需要晶振?外接晶体的值可以随意选择呢...

获取稳定的脉冲!那只要有合适的方法生成稳定的脉冲,那就可以去掉外接的晶体。举例,AVR单片机,它在单...

发表于 2018-11-05 10:40 401次阅读
单片机为什么需要晶振?外接晶体的值可以随意选择呢...

51单片机知识概述

1)h文件作用1 方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明2 提供接口...

发表于 2018-11-03 10:32 388次阅读
51单片机知识概述

单片机、ARM、DSP与CPU之间的关系大揭秘

你知道单片机、ARM、DSP都是CPU吗,它们之间又有什么不同,小编进行了整理和编辑。

发表于 2018-11-02 17:38 652次阅读
单片机、ARM、DSP与CPU之间的关系大揭秘

单片机中的上下拉电阻有什么作用

上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻也起到一个限流作用,下拉就是下拉到低电平...

发表于 2018-11-02 16:22 179次阅读
单片机中的上下拉电阻有什么作用

单片机中的CY与OV详细解析

CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位...

发表于 2018-11-02 16:15 161次阅读
单片机中的CY与OV详细解析

基于STM32单片机的64Mbit单对单通信

简单的一种应用,ARM芯片作为master,flash为slaver,实现单对单通信。

发表于 2018-11-02 14:19 275次阅读
基于STM32单片机的64Mbit单对单通信

AVR系列单片机的主要特性及选型

AVR单片机是1997年由ATMEL公司研发 出的增强型内置Flash的RISC(Reduced I...

发表于 2018-11-02 09:20 353次阅读
AVR系列单片机的主要特性及选型

单片机中的冷复位和热复位是什么意思

冷复位用英文来表示是Restart,热复位用英文来表示是Reset。

发表于 2018-11-01 16:25 194次阅读
单片机中的冷复位和热复位是什么意思

单片机存储器的工作原理及选片与总线的概念解析

存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低...

发表于 2018-11-01 16:15 120次阅读
单片机存储器的工作原理及选片与总线的概念解析