① c51语言头文件包括的内容有8051单片机
3章C51编程语言基础
【内容概要】本章介绍有关C51语言编程的基础知识,对C51语言与8051汇编语言编程进行比较,了解C51语言与标准C语言的差别,并对C51语言的数据类型与存储类型,C51语言的基本运算,分支与循环结构,数组、指针、函数等也做以介绍。
随着单片机应用系统的日趋复杂,对程序的可读性、升级与维护以及模块化的要求越来越高,对软件编程的要求也越来越高,这就要求编程人员在短时间内编写出执行效率高、运行可靠的程序代码。同时,也要方便多个编程人员来进行协同开发。
C51语言是目前的8051单片机应用开发中,普遍使用的程序设计语言。C51语言能直接对8051单片机硬件进行操作,它既有高级语言的特点,又有汇编语言的特点,因此在8051单片机程序设计中,C51语言得到非常广泛的使用。
3.1C51编程语言简介
C51语言是在标准C语言的基础上针对8051单片机的硬件特点进行了扩展,并向8051单片机上移植,经过多年努力,C51语言已成为公认的高效、简洁的8051单片机的实用高级编程语言。与8051汇编语言相比,C51语言在功能上、结构性、可读性、可维护性上有明显优势,且易学易用。
3.1.1C51语言与8051汇编语言的比较
与8051单片机汇编语言相比, C51语言具有如下优点。
(1)可读性好。C51语言程序比汇编语言程序的可读性好,编程效率高,程序便于修改、维护以及升级。
(2)模块化开发与资源共享。用C51语言开发的程序模块可以不经修改,直接被其他工程所用,使得开发者能够很好地利用已有的大量标准C程序资源与丰富的库函数,从而减少重复劳动,同时也有利于多个程序设计者协同开发。
(3)可移植性好。为某种型号单片机开发的C语言程序,只需将与硬件相关的头文件和编译链接的参数进行适当修改,就可方便地移植到其他型号的单片机上。例如,为8051单片机编写的程序通过改写头文件以及少量的程序行,就可方便地移植到PIC单片机上。
(4)生成的代码效率高。当前较好的C51语言编译系统编译出来的代码,效率只比直接使用汇编语言低20%左右,如果使用优化编译选项,最高效率可达到90%。
3.1.2C51语言与标准C语言的比较
C51语言与标准C语言有许多相同之处,但也有其自身的一些特点。不同的嵌入式C语言编译系统之所以与标准C语言有不同的地方,主要是由于它们所针对的硬件系统不同。对于8051单片机,目前广泛使用的是C51语言。
C51语言的基本语法与标准C语言相同,只是在标准C语言的基础上进行了适合于8051内核单片机硬件的扩展。深入理解C51语言对标准C语言的扩展部分以及它们的不同之处,是掌握C51语言的关键之一。
C51语言与标准C语言的一些差别如下。
(1)库函数的不同。标准C语言中的,不适合于嵌入式控制器系统的库函数,被排除在C51语言之外,如字符屏幕和图形函数,而有些库函数必须针对8051单片机的硬件特点来做出相应的开发。例如,库函数printf和scanf,在标准C语言中,这两个函数通常用于屏幕打印和接收字符,而在C51语言中,主要用于串行口数据的收发。
(2)数据类型有一定区别。在C51语言中增加了几种针对8051单片机特有的数据类型,在标准C语言的基础上又扩展了4种类型。例如,8051单片机包含位操作空间和丰富的位操作指令,因此,C51语言与标准C语言相比增加了位类型。
(3)C51语言的变量存储模式与标准C语言中的变量存储模式数据不一样。标准C语言最初是为通用计算机设计的,在通用计算机中只有一个程序和数据统一寻址的内存空间,而C51语言中变量的存储模式与8051单片机的各种存储器区紧密相关。
(4)数据存储类型的不同。8051单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。内部数据存储区可分为3个不同的C51存储类型:data、idata和bdata。外部数据存储区分为2个不同的C51存储类型:xdata和pdata。程序存储区只能读不能写,可能在8051单片机片内或在片外,C51语言提供的code存储类型用来访问程序存储区。
② 8051的内部数据存储器分为哪三个部分
咨询记录 · 回答于2021-10-18
③ 8051单片机片内数据存储器的三个存储区域是如何划分的
8051内部数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。
(1)00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。
(2)20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~7FH。
(3)30H~7FH为堆栈、数据缓冲区。
④ 、MCS 51单片机的存储器从物理结构上和逻辑上分别可划分几个空间
MCS-51单片机在物理结构上有四个存储空间:
1、片内程序存储器
2、片外程序存储器
3、片内数据存储器
4、片外数据存储器
但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:
1、片内外统一编址的64K的程序存储器地址空间(MOVC)
2、256B的片内数据存储器的地址空间(MOV)
3、以及64K片外数据存储器的地址空间(MOVX)
(4)8051系列单片机3种存储模式扩展阅读:
MCS-51系列单片机程序存储器分为系统使用区和用户使用区。其中0000H~002AH为系统使用区,其余为用户使用区。系统使用区固定6个地址为特定程序的入口地址,如下:
ROM地址 功能分配
0000H 系统复位后的入口
0003H 外部中断0服务入口
000BH 定时器/计数器0中断服务程序入口
0013H 外部中断1服务程序入口
001BH 定时器/计数器1中断服务程序入口
0023H 串口中断服务程序入口
数据存储区也称为随机存取存储器(RAM),MCS-51单片机的数据存储器分为两个地址空间:内部数据存储器、外部数据存储器。
内部数据存储器共有256B存储空间,但只有低128B(地址为00H~7FH)是真正的数据存储空间,可供用户进行读或写操作,高128B(地址为80H~FFH)是单片机的特殊功能寄存器区(SFR)。
⑤ 8051单片机内部RAM低128单元划分为哪三个部分各有什么特点
0x00~0x1f 4组通用工作寄存器0x20~0x2f 128位的位寻址0x30~0x7f 用户RAM区
(1)工作寄存器组(00H——1FH)
这是一个用寄存器直接寻址的区域,内部数据RAM区的0—31,共32个单元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0——R7。
(2)可位寻址RAM区(20H——2FH)
16个字节单元,共包含128位,这16个字节单元既可以进行字节寻址,又可以实现位寻址。主要用于位寻址。
(3)通用的RAM区(30H——7FH)
用于设置堆栈、存储数据。
(5)8051系列单片机3种存储模式扩展阅读:
PC 机的CPU 是基于冯诺伊曼的体系结构,然而MCU(单片机)、Dsp(数字信号处理器)都是基于哈佛结构的体系结构。哈佛结构与冯诺伊曼结构有很大的不同,在冯诺伊曼体系结构下只有一个地址空间,ROM 和RAM 可以随意安排在这一地址范围内的不同空间,即ROM 和RAM 地址统一分配。
CPU 访问存储器时,一个地址对应唯一的存储单元,可能是ROM,也可能是RAM。而哈佛结构下ROM 和RAM 是分开编址,即程序和数据分开保存,访问时用不同的指令加以区分,并可同时访问,在这样的体系结构下有利于提高指令的执行速度。在后面的章节我们将详细介绍单片机的存储器配置。
⑥ MCS-51系列单片机的存储器可划分为几个空间,地址范围以及容量是多少在使用上有何不同
MCS-51单片机在物理的角度上有四个存储空间:
1、片内程序存储器
2、片外程序存储器
3、片内数据存储器
4、片外数据存储器
但在逻辑上,从用户的角度上,单片机有三个存储空间:
1、片内外统一编址的64K的程序存储器地址空间(MOVC)
2、256B的片内数据存储器的地址空间(MOV)
3、以及64K片外数据存储器的地址空间(MOVX)
⑦ 8051单片机存储器分为哪两大部分指令格式由什么和什么两部分组成
8051单片机存储器分为数据存储器空间和程序存储器空间两大部分。
而不是(外部数据存储器空间和程序存储器空间,两大部分外部数据存储器空)
指令格式并不一定有两部分组成,应该分什么指令格式。
如:汇编语言指令格式,是有五部分组成。
1,
标号
2,助记符
3,目的操作数
4,源操作数
5,注解·
⑧ 8051单片机的主要存储空间是什么
8051的通用寄存器(r0-r7)通过PSW映射在IRAM的0x00开始到0x20结束,共4组,每组8字节。
至于累加器(ACC),辅助寄存器(B)和数据指针寄存器(DPTR)是编址在IRAM中的。8051其实类似堆栈机模型,而且CPU和IRAM的关联度非常高,不像现代的计算机结构一样容易分离。不过如果将IRAM看待为一个大型REGISTER FILE,就更好分析8051系统了。你可以认为IRAM就是个巨大的寄存器组,CPU直接访问IRAM的效率和寄存器的效率差别不大。
并且8051背负的历史包袱太严重。原本IRAM的0x00-0x7f作为RAM使用,0x80-0xff作为SFR使用。而后8052这款芯片将0x80-0xff这段IRAM的作用增多:指针访问做RAM,直接访问做SFR。这样直接导致了8051访存效率的降低以及初学者经常拎不清楚的问题出现。同样,外部的XRAM和ROM的访问必须依赖DPTR等指针访问,这迫使不少增强型8051单片机生产商推出了双DPTR的设计。
这样的比较混乱,略微复杂,靠着专利过期成功商业化的单片机结构即将迎来它的末日。建议题主改学ARMv7/LC2K/MIPS/RISC-V/AVR这类简洁而高效的架构
⑨ 单片机牛人请进!!8051 ,80C51 ,MCS-51这三者的区别是什么
8051,80C51,MCS-51区别为:包含不同、存储格式不同、组成不同。
一、包含不同
1、8051:8051属于MCS-51系列单片机,由Intel公司开发,是8048的延伸。
2、80C51:80C51属于MCS-51系列单片机,由Intel公司开发,是8051的延伸。
3、MCS-51:MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括8031,8051,80C51,8751,8032,8052,8752等。
二、存储格式不同
1、8051:8051的存储格式为4KB ROM、128BRAM。
2、80C51:80C51的存储格式为4KB EEPROM、128BRAM。
3、MCS-51:MCS-51的存储格式为把4kROM换为EEPROM就是51系列的结构,如去掉ROM/EEPROM部分即为31系列,如果将ROM置换为Flash存贮器或EEPROM,或再省去某些I/O,即可得到51系列的派生品种。
三、组成不同
1、8051:8051包括运算器和控制器两部分。
2、80C51:80C51包括运算器、控制器、工作寄存器及特殊功能寄存器(SFR)。
3、MCS-51:MCS-51包括运算器、控制器、片内振荡器、特殊功能寄存器、定时器、计数器位处理器等。
⑩ 简述8051单片机存储器结构
8051单片机存储器结构包含内部存储器,外部扩展存储器。
1、内部存储器包括:
00H~1FH,工作寄存器区域
20H~2FH,位址寄存器区域
30H~7FH,用户寄存器区域
80H~FFH,特殊功能寄存器区域
2、扩展存储区包括
0000H~FFFFH的数据存储器和程序存储器,地址重叠。