C51单片机符号作用

合集下载

最详细C51单片机简介

最详细C51单片机简介

数组与指针可说是数据管理的好搭挡。
华中科技大学文华学院
一、数组
数组也是一种变量,将一堆相同数据形态的 变量,以一个相同的变量名称来表示。既然是一 种变量,使用之前就得声明,其格式如下:
• 字符串数组范例: char LCM[9]; 这个数组包括LCM[0]~LCM[8]等9个字符 • 声明数组的时候,也可以给它初始值 ,如下: char LCM[9]=“Testing.”;
华中科技大学文华学院
4.1 C51程序结构
• #include 包括式注释:以“/*”为注释开始、以 是一个预处理命令,其功能是将 “头文件 */”为注释结束 (*.h)包含到程序里。 ,其间注释文字可以包括 几个字或几行文字,例如: • #include <xxx.h>:以<xxx.h>所包括的头 #include“my.h” /*=包含 my.h头文件=*/ 文件,编译程序将从 (C:\KEIL\C51\INC) • 里查找所指定的头文件。 单列式注释:以“//”为注释的开始符 号,而其右边整行都是注释。例如: • #include “xxx.h”:以“xxx.h”所包括的头 //===== 主程序 ===== 文件,编译程序将从源程序所在文件夹里 查找所指定的头文件。
华中科技大学文华学院
4.2 C51的数据类型
在C语言里,常数(constant)与变量(variables)都 是为某个数据指定存储器空间,其中常数是固定不变 的,而变量是可变的。声明常数或变量的格式如下:
int x=50 ;
int x ;
int x,y,z ;
符号型常量需用宏定义指令(#define)对其进行 定义,如下: #define PI 3.1415

C51单片机引脚功能与特殊功能寄存器详解

C51单片机引脚功能与特殊功能寄存器详解

80C51单片机引脚图及引脚功能介绍首先我们来介绍一下单片机的引脚图及引脚功能 介绍单片机的40个引脚大致可分为 4类:电源、时钟、控制和 I/O 弓|脚。

1. 电源:⑴VCC -芯片电源,接+5V; ⑵VSS -接地端;2. 时钟:XTAL1、XTAL2 -晶体振荡电路反相输入端和输出端。

3. 控制线:控制线共有4根,⑴ALE/PROG 地址锁存允许 /片内EPRO 陶程脉冲 ① ALE 功能:用来锁存 P0 口送出的低8位地址② PROG 功能:片内有 EPROM 勺芯片,在EPRO 嘲程期间,此引脚输入编程脉冲。

fl. 0 — Fl. 1 — P1 2 — P1.3 — FL 4 — FL5 — FL6 —FL7 — EST/Vm — RXD/F3. 0 — TXD/F3, 1 — IFT0/F3. 2 — IKTT/F3. 3 —T0/F3. 4 — T1/F3 5 — 阀F3. S — 而 P3 T —XTAL1 —JITALE —焰一 —Vm —FO.O —F0 1一F0 7—P0.3 —F0.4 —F。

S—F0 6 —FO T —EA/VfT —AU/PBDG —FSEN —F2T—F2 6—F2 S一E2 4 —F2.3—P22—F2 1 —F2 0Vce — ViS ____ XT AMXTAL2EST/Vn^EA/V IF +*FSEM^— ALE/P ROG +—二二二二r i — L口F51口 口口 扣P2F3地址数催总皴 地址德鳗双噬口 fTHTTH 克习(如下图所示 ),引脚的具体功能将在下面详细⑵PSEN:夕卜RO皿选通信号。

⑶RST/VPD:复位/备用电源。

①RST (Reset)功能:复位信号输入端。

②VPD功能:在Vcc掉电情况下,接备用电源。

⑷EA/Vpp:内外RO曜择/片内EPRO陶程电源。

①EA功能:内外ROM先择端。

②Vpp功能:片内有EPROM勺芯片,在EPRO惭程期间,施加编程电源Vpp。

C51常用数据类型

C51常用数据类型

C51常用数据类型在C51单片机编程中,常用的数据类型是指用于存储不同类型数据的变量类型。

了解和正确使用这些数据类型是编写高效、可靠的程序的基础。

本文将介绍C51常用的数据类型,包括整数类型、字符类型、浮点数类型和布尔类型。

1. 整数类型在C51中,整数类型用于存储整数值。

常用的整数类型有:- char:用于存储字符型数据,占用1个字节,范围为-128到127。

- unsigned char:无符号字符型数据,占用1个字节,范围为0到255。

- int:用于存储整型数据,占用2个字节,范围为-32768到32767。

- unsigned int:无符号整型数据,占用2个字节,范围为0到65535。

- long:长整型数据,占用4个字节,范围为-2147483648到2147483647。

- unsigned long:无符号长整型数据,占用4个字节,范围为0到4294967295。

这些整数类型可以用于存储不同范围的整数值,根据实际需求选择合适的类型。

2. 字符类型C51中的字符类型用于存储单个字符。

常用的字符类型有:- char:用于存储ASCII字符,占用1个字节,范围为-128到127。

字符类型可以用于存储字符、字符串等数据。

3. 浮点数类型C51中的浮点数类型用于存储带小数的数值。

常用的浮点数类型有:- float:单精度浮点数,占用4个字节,范围为3.4E-38到3.4E38。

- double:双精度浮点数,占用8个字节,范围为1.7E-308到1.7E308。

浮点数类型适用于需要高精度计算的场景,如科学计算、工程计算等。

4. 布尔类型C51中的布尔类型用于存储真假值。

常用的布尔类型有:- bit:位类型,占用1位,取值为0或1。

布尔类型主要用于逻辑判断和控制流程。

总结:在C51单片机编程中,常用的数据类型包括整数类型、字符类型、浮点数类型和布尔类型。

根据实际需求选择合适的数据类型可以提高程序的效率和可靠性。

51单片机位操作

51单片机位操作

C51单片机位操作方法[日期:2010-10-21 ] [来源:本站原创作者:佚名] [字体:大中小] (投递新闻)C51对位的操控能力是非常强大的。

从这一点上,就可以看出C不光具有高级语言的灵活性,又有低级语言贴近硬件的特点。

这也是在各个领域中都可以看到C的重要原因。

在这一节中将详细讲解C51中的位操作及其应用。

1、位运算符C51提供了几种位操作符,如下表所示:运算符含义运算符含义&按位与~取反|按位或<<左移^按位异或>>右移1)“按位与”运算符(&)参加运算的两个数据,按二进位进行“与”运算。

原则是全1为1,有0为0,即:0&0=0; 0&1=0; 1&0=0; 1&1=1;如下例:a=5&3; //a=(0b 0101) & (0b 0011) =0b 0001 =1那么如果参加运算的两个数为负数,又该如何算呢?会以其补码形式表示的二进制数来进行与运算。

a=-5&-3; //a=(0b 1011) & (0b1101) =0b 1001 =-7在实际的应用中与操作经常被用于实现特定的功能:1.清零“按位与”通常被用来使变量中的某一位清零。

如下例:a=0xfe; //a=0b 11111110a=a&0x55;//使变量a的第1位、第3位、第5位、第7位清零a= 0b 01010100 2.检测位要知道一个变量中某一位是‘1’还是‘0’,可以使用与操作来实现。

a=0xf5; //a=0b 11110101result=a&0x08; //检测a的第三位,result=03.保留变量的某一位要屏蔽某一个变量的其它位,而保留某些位,也可以使用与操作来实现。

a=0x55; //a=0b 01010101a=a&0x0f; //将高四位清零,而保留低四位a=0x052)“按位或”运算符(|)参与或操作的两个位,只要有一个为‘1’,则结果为‘1’。

第四章 单片机C51简介

第四章 单片机C51简介

五、C51常用运算符

赋值运算符、算数运算符、关系运算符、 逻辑运算符、位运算符、条件运算符….
位运算符 位运算是按位对变量进行运算的,但并不改变参与 运算的变量的值。 C51 中位运算符只能对整数进行操作,不能对浮点 数进行操作。C51中的位运算符有: & 按位与 ︱ 按位或 ∧ 按位异或 ~ 按位取反 << 左移 >> 右移
//声明单个位
2. C51数据存储类型
存储类型 data 与存储空间的对应关系 直接寻址片内数据存储区,访问速度快(128字节) 可位寻址片内数据存储区,允许位与字节混合访问(16字 节) 间接寻址片内数据存储区,可访问片内全部RAM地址空 间(256字节) 分页寻址片外数据存储区(低256字节) 寻址片外数据存储区(64K字节) 寻址代码存储区(64K字节)
bit bdata flags;
float idata x,y,z;
unsigned int pdata dimension; unsigned char xdata vector[10][4][4];
unsigned char code a[]={0x00,0x01};
P78 例4-2、4-3(自行看书)
•sfr16 16位特殊功能寄存器
sfr16占用两个内存单元,值域为 0~65535。sfr16和sfr 一样用于操作特殊功能寄存 器,不同的是它用于操作占两 个字节的寄存器,如定时器T2。 sfr16 T2=0xCC; //定义8052定时器2,低8位地址为
// T2L=CCH,高8位T2H=CDH
指针
当定义一个指针变量时,若未指定它所指向的 对象的存储类型,则该指针变量被认为是一般 指针; 指定了它所指对象的存储类型,则该指针被认 为是基于存储器的指针。

单片机原理及应用A-题库

单片机原理及应用A-题库

单片机原理及应用A-题库1、单片机就是把(CPU)、( 输入输出)、和( 存储器 )等部件都集成在一个电路芯片上,并具备一套功能完善的( 指令系统 ),有的型号同时还具备( AD )和( DA )等功能部件,其简称为( 微处理器 )或(微控制器)。

2、当扩展外部存储器或I/O口时,P2口用作(地址线的高8位)。

3、MCS-51单片机内部RAM区有(4)个工作寄存器区。

4、MCS-51单片机内部RAM区有128个位地址5、若不使用89C51片内的程序存储器,引脚()需要接地。

6、当MCS-51引脚(ALE)信号有效时,表示从P0口稳定地送出了低8位地址.7、在单片机的RESET端出现(2)个机器周期以上的高电平时,便可以可靠复位8、MCS-51系列单片机有:(外部中断0), (外部中断1), (定时/计数器T0溢出中断),(定时/计数器T1溢出中断), (串行口)等5个中断请求源。

9、C51中“!”运算符的作用是(取反)10、所谓的单片机,就是将CPU、存储器、定时计数器、中断功能以及I/O设备等主要功能部件都集成在一块超大规模集成电路的微型计算机。

(正确)11、8051单片机,程序存储器数和数据存储器扩展的最大范围都是一样的。

(正确)12、8位二进制数构成一个字节,一个字节所能表达的无符号数的范围是0-255。

(正确)13、8051中的工作寄存器就是内部RAM中的一部份。

(正确)14、使用89C51且 =0时,可外扩64KB的程序存储器。

(错误)15、因为MCS-51 可上电复位,因此,MCS-51系统也可以不需要复位电路。

(错误)16、一个函数利用return可同时返回多个值。

(错误)17、89C51每个中断源相应地在芯片上都有其中断请求输入引脚。

(错误)18、中断初始化时,对中断控制器的状态设置,只可使用位操作指令,而不能使用字节操作指令。

(错误)19、89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。

C51常用数据类型

C51常用数据类型在C51单片机编程中,常用数据类型是编写程序时必不可少的基本元素。

了解和正确使用这些数据类型是编程的基础。

本文将详细介绍C51常用的数据类型及其使用方法。

1. 位数据类型(bit):位数据类型是最基本的数据类型之一,用于表示一个二进制位。

在C51中,位数据类型使用关键字bit进行声明。

位数据类型只能取0或者1的值。

例如:bit flag; //声明一个位变量flag2. 逻辑数据类型(bit):逻辑数据类型是C51中的另一种位数据类型,用于表示逻辑值。

逻辑数据类型可以取0或者1的值,分别表示假和真。

例如:bit isTrue = 1; //声明一个逻辑变量isTrue,并将其赋值为真3. 字符数据类型(char):字符数据类型用于表示一个字符,它是由ASCII码表中的字符集合组成的。

在C51中,字符数据类型使用关键字char进行声明。

例如:char ch = 'A'; //声明一个字符变量ch,并将其赋值为字符'A'4. 无符号整数数据类型(unsigned char、unsigned int、unsigned long):无符号整数数据类型用于表示正整数,不包含负数。

在C51中,无符号整数数据类型分为无符号字符(unsigned char)、无符号整数(unsigned int)和无符号长整数(unsigned long)。

例如:unsigned char num1 = 255; //声明一个无符号字符变量num1,并将其赋值为255unsigned int num2 = 65535; //声明一个无符号整数变量num2,并将其赋值为65535unsigned long num3 = 4294967295; //声明一个无符号长整数变量num3,并将其赋值为42949672955. 有符号整数数据类型(signed char、signed int、signed long):有符号整数数据类型用于表示正整数和负整数。

c51单片机变量类型

c51单片机变量类型C51单片机是一种非常常见的嵌入式系统开发平台,它广泛应用于各种电子设备和自动化控制系统中。

在C51单片机的编程中,变量类型是一个非常重要的概念,它决定了变量所占用的内存空间和能够表示的数值范围。

C51单片机提供了多种变量类型,包括整型、字符型和浮点型。

下面将详细介绍这些变量类型及其使用方法。

1. 整型变量整型变量用于表示整数值,C51单片机提供了多种整型变量类型,包括有符号和无符号的。

有符号整型变量可以表示正负整数,而无符号整型变量只能表示非负整数。

C51单片机的整型变量类型包括:- signed char:有符号字符型变量,占用1个字节,表示范围为-128到127。

- unsigned char:无符号字符型变量,占用1个字节,表示范围为0到255。

- signed int:有符号整型变量,占用2个字节,表示范围为-32768到32767。

- unsigned int:无符号整型变量,占用2个字节,表示范围为0到65535。

- signed long:有符号长整型变量,占用4个字节,表示范围为-2147483648到2147483647。

- unsigned long:无符号长整型变量,占用4个字节,表示范围为0到4294967295。

在使用整型变量时,可以使用赋值运算符将数值赋给变量,并且可以使用算术运算符对变量进行加减乘除等操作。

2. 字符型变量字符型变量用于表示字符,C51单片机的字符型变量类型为char,占用1个字节。

字符型变量可以用于存储ASCII码值,也可以用于表示字符常量。

在使用字符型变量时,可以使用赋值运算符将字符值赋给变量,并且可以使用算术运算符对变量进行加减等操作。

3. 浮点型变量浮点型变量用于表示浮点数,C51单片机的浮点型变量类型为float,占用4个字节。

浮点型变量可以表示较大范围的数值,并且可以进行浮点数的运算。

在使用浮点型变量时,可以使用赋值运算符将浮点数赋给变量,并且可以使用算术运算符对变量进行加减乘除等操作。

单片机C51头文件reg51.h及reg52.h解析

单片机中用c编程时头文件reg51.h及reg52.h解析我们在用c语言编程是往往第一行就是reg51.h或者其他的自定义头文件,我们怎么样来理解呢?1)“文件包含”处理。

程序的第一行是一个“文件包含”处理。

所谓“文件包含”是指一个文件将另外一个文件的内容全部包含进来。

程序中包含REG51.h文件的目的是为了要使用P1 (还有其他更多的符号)这个符号,即通知C 编译器,程序中所写的P1 是指80C51 单片机的P1 端口而不是其它变量。

这是如何做到的呢?打开reg51.h 可以看到这样的一些内容:(此文件一般在C:\KEIL\C51\INC下,INC文件夹根目录里有不少头文件,并且里面还有很多以公司分类的文件夹,里面也都是相关产品的头文件。

如果我们要使用自己写的头文件,使用的时候只需把对应头文件拷贝到INC文件夹里就可以了。

)#ifndef __REG51_H__#define __REG51_H__sfr P0 = 0x80;sfr P1 = 0x90;sfr P2 = 0xA0;sfr P3 = 0xB0;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;sfr SP = 0x81;sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D; sfr IE = 0xA8;sfr IP = 0xB8;sfr SCON = 0x98; sfr SBUF = 0x99;sbit CY = 0xD7; sbit AC = 0xD6; sbit F0 = 0xD5; sbit RS1 = 0xD4; sbit RS0 = 0xD3; sbit OV = 0xD2; sbit P = 0xD0;sbit TF1 = 0x8F;sbit TF0 = 0x8D; sbit TR0 = 0x8C; sbit IE1 = 0x8B; sbit IT1 = 0x8A; sbit IE0 = 0x89; sbit IT0 = 0x88;sbit EA = 0xAF; sbit ES = 0xAC; sbit ET1 = 0xAB; sbit EX1 = 0xAA; sbit ET0 = 0xA9; sbit EX0 = 0xA8;sbit PS = 0xBC; sbit PT1 = 0xBB; sbit PX1 = 0xBA; sbit PT0 = 0xB9; sbit PX0 = 0xB8;sbit RD = 0xB7; sbit WR = 0xB6; sbit T1 = 0xB5;sbit INT1 = 0xB3;sbit INT0 = 0xB2;sbit TXD = 0xB1;sbit RXD = 0xB0;sbit SM0 = 0x9F;sbit SM1 = 0x9E;sbit SM2 = 0x9D;sbit REN = 0x9C;sbit TB8 = 0x9B;sbit RB8 = 0x9A;sbit TI = 0x99;sbit RI = 0x98;#endif熟悉80C51 内部结构的读者不难看出,这里都是一些符号的定义,即规定符号名与地址的对应关系。

C51的数据类型

C51的数据类型引言:C51是一种常用的单片机系列,它具有丰富的数据类型,这些数据类型在嵌入式系统中起着至关重要的作用。

本文将详细介绍C51的数据类型,包括整数类型、浮点数类型、字符类型和指针类型。

一、整数类型1.1 无符号整数类型:C51提供了多种无符号整数类型,如unsigned char、unsigned int和unsigned long等。

这些类型的取值范围分别是0到255、0到65535和0到4294967295,用于表示非负整数。

1.2 有符号整数类型:C51也提供了有符号整数类型,如signed char、signed int 和signed long等。

这些类型的取值范围分别是-128到127、-32768到32767和-2147483648到2147483647,用于表示正负整数。

1.3 位域类型:C51还支持位域类型,用于在一个字节中定义多个字段。

通过位域类型,可以有效地利用存储空间,提高程序的效率。

二、浮点数类型2.1 单精度浮点数类型:C51提供了float类型,用于表示单精度浮点数。

float类型占用4个字节,可以表示大约6到7位有效数字的浮点数。

2.2 双精度浮点数类型:C51还提供了double类型,用于表示双精度浮点数。

double类型占用8个字节,可以表示大约15到16位有效数字的浮点数。

三、字符类型3.1 字符类型:C51使用char类型来表示字符。

char类型占用1个字节,可以表示ASCII码字符或扩展字符。

3.2 字符串类型:C51中的字符串是由一系列字符组成的,以null字符'\0'结尾。

字符串常常用于存储文本信息,如显示在LCD屏幕上的文字。

四、指针类型4.1 指针类型:C51支持指针类型,用于存储变量的地址。

指针可以指向任何类型的数据,包括整数、浮点数、字符和结构体等。

4.2 空指针类型:C51还提供了空指针类型void*,用于表示一个不指向任何具体类型的指针。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机符号作用
编程中常用符号的意义
一、注释符:单行注释“//” 、多行注释“” 程序不执行注释,注释内容仅供阅读或保留不用的语句在 MQ 语言编辑器中,注释内容以灰色显示
二、分号“ ;” 表示一个语句结束
三、逗号“ ,” 表示一个语句内部间隔,不结束语句。

四、等于号“=” 赋值语句,把等号后面的值赋给等号前的变量中
五、加号“+” 整数或小数,则表示值相加;字符串,则表示前后连接。

六、加加“++” 表示把符号前的变量值加 1 ,例如:“i++;” 这实际上就是:“i=i+1;” 的简写,表示 i 的值加 1
七、加等于“+=” 表示把符号后的值加到符号前的变量中。

例如“i+=2;” ,实际上就是“i=i+2;” 的简写,表示 i 的值加 2
八、双等号“==” 等于号。

用于逻辑判断,双等号前后值相等,则返回逻辑值“ 真true” ;双等号前后值不相等,则返回逻辑值“ 假false” 九、叹号等号“!=” 不等于号。

用于逻辑判断,不等号前后值不相等,则返回逻辑值“真true”;不等号前后值相等,则返回逻辑值“假false”
十、“&&” 逻辑符“并且”
十一、“||” 逻辑符“或者”
十二、大括号“{}” 表示函数体。

VCC 是电路的供电电压: C=circuit 表示电路的意思,即接入电路的电压,VDD 是芯片的工作电压; D=device 表示器件的意思,即器件内部的工作电压,在普通的电子电路中,一般 Vcc>Vdd
VSS : S=series 表示公共连接的意思,也就是负极。

VEE :负电压供电;场效应管的源极( S ), VEE 和 VSS 为电源负正或者地
一、&是取地址符,这同*是相对应的,*是取地址中的内容,而&是去该内容的地址;
二、&是按位取与,1&1=1;1&0=0;0&0=0;
这与是相对应的,是按位取或:1
C语言符号全集合——运算符的种类
C语言的运算符可分为以下几类:
1.算术运算符
用于各类数值运算。

包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2.关系运算符
用于比较运算。

包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符
用于逻辑运算。

包括与(&&)、或(||)、非(!)三种。

4.位操作运算符
参与运算的量,按二进制位进行运算。

包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5.赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

6.条件运算符
这是一个三目运算符,用于条件求值(?:)。

7.逗号运算符
用于把若干表达式组合成一个表达式(,)。

8.指针运算符
用于取内容(*)和取地址(&)二种运算。

9.求字节数运算符
用于计算数据类型所占的字节数(sizeof)。

10.特殊运算符
有括号(),下标[],成员(→,.)等几种。

在8051系列单片机中,数据存储区可以分为内部数据存储区以及外部数据存储区。

内部数据存储区又有几个区别:data、idata、bdata;
外部数据存储区又有:xdata、pdata;
data: RAM的低128字节,可在一个周期直接寻址(89C51里面的128字节RAM 就是data);
bdata: Data区可字节、位混合寻址的16字节区;
Idata: RAM区的高128字节,必须采用间接寻址,注意89C51是没有idata区的,89C52就有,倘若你的程序用到的内存超过了128字节,那么你需要将某些变量声明在idata区,否则将会报错。

自由口编程数据通讯格式
数据通讯格式:
遥测:主站发:7E、81、00、站号、255-站号、AA。

从站答:7E、81、00、站号、255-站号、B1、B2、、、Bn、55、AA。

(其中B1到Bn为N个Byte数据,顺序为模拟量、开关量、数字量。

每个模拟量占两个字节,每个开关量占一位、每个数字量占两个字节。

注意原码的高低Byte的位置安排)。

遥控:主发:7E、81、88、站号、255-站号、原码、255-原码。

从不答。

7E 81 88 01 FE 08 F7
原码=(遥控路号-1)+1开(或0停)*8;遥控路号自1到8.
51单片机串口通讯如何发送格式为AA 55 02 F3 00 F5的命令
//c语言
void senddat(){ unsigned char dat[6]={0xaa,0x55,0x02,0xf3,0x00,0xf5}; unsigned char i;
for(i=0;i<6;i++) { TI=0; SBUF=dat[i]; while(!TI); TI=0; }
}。

相关文档
最新文档