8051硬件结构 8051的片内主要包含以下的资源: #1个8位的CPU(8位是指它一次性可进行8位数据的操作) #4KB的内部ROM(在8051中,程序和一些表格数据是存放在...8051的引脚图,图中没有40引脚和20引脚,默认已经接好了电源和地。 ?...#RST信号位于9号引脚(复位信号),是8051的主复位信号。此引脚维持至少两个机器周期的高电平,8051将会被复位。使得系统重新启动。 VCC在40号引脚上,需要一个5V的电源。...因为我们对8051的操作,实质是对寄存器的操作。我们也只能是去操作寄存器。 从上面我们也都看出了8051的存储器的地址有大量的重合,那么我们该怎么去区分到底访问哪个空间。...8051对于地址重合区域的访问方案是通过指令的不同来解决的。不同的指令表示了访问的空间是哪一个。
跑题了,回到8051微控制器。 1976年,Intel推出了8748,这是MCS—48系列的第一款产品。...1980年Intel推出了MCS-51系列的第一款产品8051。由此,微控制器在功耗,尺寸和复杂度上都提升了一个数量级。...8051包括了4KB的ROM,128B的RAM,32个I/O引脚,1个串行口,2个16位定时器。关于计算机的硬件体系再次不做说明,只想强调的是CPU只能直接访问内存(RAM和ROM)。...8051被称作微控制器,而不是微处理器。下面说明一下两者的区别。 1.微处理器是一个单芯片的CPU,而微控制器则是包含了CPU在内的外围电路一起构成了一个芯片。...但是8051并未被时代所淘汰,它也有它的优势,价格低廉,稳定性好,适用于便携式的设备和工业控制领域。
头文件的展开 此时生成test.i,我们用vim进入test.i,在利用底行模式vs test.c: 同时,在预处理阶段完成了宏替换、去注释以及条件编译: 条件编译的生效(宏的命令行定义) 可以向编译器传参来保证宏在命令行中定义...**这个库的位置: Linux下默认形成可执行程序,默认使用的是动态库 /lib64/libc-2.17.so静态库 生成静态链接 生成可执行程序后面要加上-static 但是我们仔细看一下体积的差距太大了
今日更新了Linux的编译器gcc、g++的内容 欢迎大家关注点赞收藏⭐️留言 编译器-gcc/g++ 我们直接用自带的gcc编译器会编译不了,因为当前版本太低了,有些语法不支持。...3种常见c++后缀 .cc和.cpp都是指c++,需要用g++编译器,如果用gcc编译器就会报错。如果想支持更高的语法特性,可以加上 -std=c++11 的选项。g++也可以编译c语言程序。...-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 -w 不生成任何警告信息。 -Wall 生成所有警告信息。
前言 gcc/g++是Linux中的编译器,vim是Linux中的编辑器。要想将代码运行起来还需要编译才可实现。 本篇文章,主要通过预处理、编译、汇编、链接来介绍gcc/g++。...Linux系统下,gcc/g++头文件默认路径: /usr/include/,去查看它即可 条件编译 有一个很深刻的印象,在下载安装pycharm时,需要选择安装社区版还是专业版。...编译 在VS中,编译器会检查语法是否有错误,如果没有错误,才会编译成汇编语言。Linux下的gcc/g++也是一样。...-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 -w 不生成任何警告信息。 -Wall 生成所有警告信息。
gcc test.c -E -o test.i /usr/include/stdio.h //linux下的头文件路径 C:\Program Files\Microsoft Visual Studio\...2022\Community\SDK\ScopeCppSDK\vc15\SDK\include\ucrt\stdio.h //我的windows下的头文件路径 预处理之后的文件中多出来的一大堆代码其实是从linux...劣势:形成的可执行程序体积太大,网络、磁盘、内存的资源占用量大, 2.动态链接 通过编译器内部的链接器,来链接标准函数库,值得注意的是,动态链接的时期是在程序运行的时候,如果程序需要链接,链接器就会链接标准函数库...windows下动态库后缀为.dll静态库后缀为.lib 在安装vs2022时,我们安装的不仅仅是编译器本身,还要安装标准库的.h文件,以及标准动静态库等 5.Linux的大部分命令就是用C语言写的...大家需要有这个认识,Linux中大部分指令都是用C语言写的。
前言 在之前已经分享了 【Linux】vim的使用,这次来看看在云服务器上的编译器gcc。 2....这个是因为编译器版本的问题: 查看编译器的版本:gcc -v 版本不是最新的,不支持在for里面定义变量。...mv test.cxx test.txt 这里是不行的,Linux是不关心文件后缀的,但是编译器是关系。这里编译器就是把.txt当成文本文件了。...在Linux里面有,同样在windows里面也有。 在在Linux中库的真正的名字是把前缀lib去掉,去掉“.”后面的后缀。 所以这个就是c标准库。...因为Linux存在这两种库,就决定了,在链接时,有两种方式:动态链接和静态链接。
我们还可以通过给编译器传递不同的宏值来进行代码的动态裁剪。
Weilun Fong | wlf@zhishan-iot.tk * \date * \brief a example which shows how to use HML_FwLib_8051
并行通信:我们以8位(一个字节)的数据为例,在并行通信下,8位数据是同时传输的,同时发送,同时接受。所以通信的双方需要一个公共的时钟信号。并行传输速度快,效率高...
前面介绍了linux的常用命令和对文本的操作,接下来我将对大家领略一下vi编译器的强大功能。 希望大家觉得写的还不错的话可以点个“推荐”哦!...一、vim/vi编译器简介 Vim/Vi是一个功能强大的全屏幕文本编译器(Full Screen Text Editor),是Linux平台上最常用的文本编译器 用于建立、编辑、显示文本文件(linux...三、vim/vi编译器的简单使用 3.1、vi启动 输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。...四、Vi编译器常用的命令 3.1、在文件中移动光标 h:向左移动一个字符 l:向右移动一个字符 k:向上移动一行 j:向下移动一行 ^(即Shift+6):移动到当前行的开头处
当然其中有些数据类型是不一样的,我们知道8051支持强大的位寻址能力,因此8051的C语言编程增加了一些新的数据类型,为了不使的8051的能力被浪费。下面给出新增的数据类型。...例如:sfr16 DPTR = 0x82; 通过上面引入的数据类型,使得8051的C语言编程变得和普通的C语言编程基本一致。也充分利用了8051的特点。...还有一点很重要,C语言的数据类型在8051中占据的大小。 ? ? ? ? ?...以上的结果表明: char类型在8051中占据了1个字节 int类型在8051中占据了2个字节 float类型在8051中占据了4个字节 double类型在8051中占据了4字节 指针是最有意思的一个。...从上面的结果来看,如果没有指定指针所指向的数据存储在哪块儿,则指针在8051中占据3字节。
(Proteus) ;==================================================================== $NOMOD51 $INCLUDE (8051
首先,我们必须知道外扩ROM的地址,因为8051单片机采用了统一编址,无论是什么样的外部设备,都有一个地址。在这里外扩一片2764(8KB的ROM)。具体的电路图按照如下方式连接。...(Proteus) ;==================================================================== $NOMOD51 $INCLUDE (8051
它是许多操作系统的默认编译器,也是许多开源项目的首选编译工具。 在GCC中,gcc和g++分别是用于编译C和C++代码的编译器。 gcc: 功能:gcc是GCC套件中用于编译C语言代码的编译器。...g++: 功能:g++是GCC套件中用于编译C++代码的编译器。它是gcc的C++编译器前端,通过调用GCC的后端来生成目标代码。...⭐gcc/g++的编译指令(以gcc为例) 首先可以查看一下自己的Linux上gcc的版本,确认是否有gcc编译器。...静态库的文件扩展名通常为.lib(Windows)或.a(Unix/Linux)。...动态库的文件扩展名通常为.dll(Windows)或.so(Unix/Linux)。
转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/80113950 特殊功能寄存器 8051...和F0位差不多 P:奇偶校验位,8051进行的是偶校验。即当累加器ACC的内容中1的个数是奇数个,那么P就被置1,否则清零。 寄存器B:在乘除法运算中与累加器A配合使用。...累加器A:8051的大多数指令都需要使用累加器A,他是使用频率最高的寄存器。外部存储器的读写必须使用A。 堆栈指针sp:堆栈指针存放当前栈的栈顶指针。...对于8051来说,栈是被放在内部的RAM中,因此栈的最大地址是7FH。在系统复位后SP的初始值是07H。 数据指针DPTR:数据指针是一个16位的寄存器。可分为DPL和DPH两个8位的寄存器。...中断允许寄存器:(IE)8051拥有中断系统,他可以触发5个中断源,以及两个中断优先级(即就是最多允许两层的中断嵌套)。 ? EA:控制中断的总开关,EA置1时中断总允许打开。
动态库: .so (linux).dll(windows) 静态库: .a (linux).lib 最后的答案是:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时...linux-vdso.so.1: 这是一个虚拟动态共享对象(VDSO),用于提供一些内核功能的用户空间接口。它通常用于提高系统调用的效率。.../lib64/ld-linux-x86-64.so.2: 这是动态链接器(或加载器),负责在程序运行时加载所需的共享库并进行链接。它的加载地址是 0x00007f11a5540000。...O0 O1 O2 O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高 w 不生成任何警告信息。 Wall 生成所有警告信息。...总结 gcc 和 g++ 是 GNU Compiler Collection (GCC) 中的两个编译器,分别用于编译 C 和 C++ 语言的源代码。
通过apt-get方式下载的Qt5.9的gcc编译器版本只是4.8.3,无法打开一些Qt5的库头文件,所以准备在Llinux下再安装一个gcc5.3.0。...参考: DamonXu-博客园-linux编译安装gcc5.3.0 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167411.html原文链接:https://javaforall.cn
📷 1、点击[命令行窗口] 📷 2、按<Enter>键 📷 3、点击[命令行窗口] 📷 4、按<Enter>键 📷
1602的速度对于8051而言是较慢的(12MHZ)。属于慢速设备,因此对于它的读写需要等待一会时间才可以进行。
领取专属 10元无门槛券
手把手带您无忧上云