单片机C语言基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.sfr 特殊功能寄存器。这也是C 51编译器的一种扩充数据类型, 利用它可以访问8051单片机的所有内部特殊功能寄存器。sfr型数 据占用一个内存单元,其取值范围0~255。
2.sfr16 16位特殊功能寄存器。它占用两个内存单元,取值范围 是0~65535。
3.sbit 可寻址位。这也是C51编译器的一种扩充数据类型,利用 它可以访8051单片机内部RAM中的可寻址位或特殊功能寄存器中 的可寻址位。
double e,f; //双精度
char g ;//有符号字符型
Unsigned char h;无符号字符
型a=12; a=0xff; a=0x00;
b=0;
b=08 ; b=03;
C=0.214; c=-0.36 ;
赋值
d=12e3;
4.bit 位标量。这是C 51编译器的一种扩充数据类型,利用它可定义 一个位标量,但不能定义位指针,也不能定义位数组 。
例:sfr SCON = 0X98; sfr16 T2 = 0xCC; sbit OV = PSW^2
4、数据类型修饰词
1)、data:固定指前面0x00-0x7f的128个RAM,可以 用acc直接读写的,速度最快,生成的代码也最小
例如: char data a; //a 变量存在上述RAM 中 int data disp ; //disp 变量存在上述RAM 中
2)、code定义的数据要放在ROM(程序存储区)里面, 写入后就不能再更改,对应的还有data是存入RAM的意思。
例如:
uchar code yima[]=
// 把数码管位数据(因为不变)写入
C-51的特点
C语言作为一种非常方便的语言而得到广泛 的支持,很多硬件开发都用C语言编程,如: 各种单片机、DSP、ARM 等.
C语言程序本身不依赖于机器硬件系统,基 本上不作修改就可将程序从不同的单片机中 移植过来。
C提供了很多数学函数并支持浮点运算,开 发效率高,故可缩短开发时间,增加程序可 读性和可维护性。
ROM
{0xeb,0x88,0xb3,0xba,0xd8,0x7a,0x7b,0xa8,0xfb,
0xfa};
4、数据类型修饰词
3)、
4、数据类型修饰词
4)、
5、变量的赋值
int a,b; //定义a,b为整型变量
long sheng1,sheng2;//长整 型
定义
float c,d; //浮点(有小数)
注:1、C程序模块都是以“{”开头
[ “}”结尾,程序为函数 主函数、子
函数] 2、每一行必须有结束号“;” 3、养成注释程序的习惯 “//”注释该行 “ /* ---段落---*/”注解
一段 二、头文件(编程预处理)
#include <REG51.h> 注:定义一些通用引脚及函数
三、自定义函数(子函数)
C-51与ASM-51相比,有如下优点: 1. 对单片机的指令系统不要求了解,仅 要求对8051 的存贮器结构有初步了解; 2. 寄存器分配、不同存贮器的寻址及数 据类型等细节可由编译器管理; 3. 程序有规范的结构,可分成不同的函 数,这种方式可使程序结构化; 4. 提供的库包含许多标准子程序,具有 较强的数据处理能力; 5. 由于具有方便的模块化编程技术,使 已编好程序可容易地移植;
16
-32768~32767
16
-32768~32767
32
-2147483648~2147483647
16
0~65535
16
0~65535
32
0~4294967295
32
3.4e-38~3.4e38
64ቤተ መጻሕፍቲ ባይዱ
1.7e-308~1.7e308
8
-128~127
8
0~255
2 、变量类型的定义
格式 : 变量类型 + 变量名
例如:
int a,b; //定义a,b为整型变更 long sheng1,sheng2;//长整型 Float c,d; //浮点(有小数) Double e,f; //双精度 char a ;//有符号字符型 Unsigned char b;无符号字符型
注:变量类型为规定的 类型;变量的名称自由 起,但通常要通俗,并
常用、重复引用的功能集成
其值可以改变的量称为变量。
一个变量应该有一个名字,在内存中占据 一定的存储单元。变量应该先定义后使用。 要区分变量名和变量值是两个不同的概念。
a=3
变量
3 0x40
存储值
存储单元地址 [a]
注:变量名a代表地址,编译系统自动分配,用户不可见
一、C-51的变量类型
1、基本数据类型
要遵守如下规则
c语言变量命名: 数字、字母、下划线,都可以为变量命名。 做为变量名的开头不能为数字,如 3a_是错的,而a_3或_a3是正确 变量名不能为关键字,像if'else'printf 等等都不能
标准C表1
标准C表2
C51扩展
3、C-51的数据类型扩充定义
sfr:特殊功能寄存器声明 sfr16:sfr 的16位数据声明 sbit:特殊功能位声明 bit: 位变量声明
第二章 C51知识
? C语言是一种编译型程序设计语言,它兼顾 了多种高级语言的特点,并具备汇编语言 的功能。目前,使用C语言进行程序设计已 经成为软件开发的一个主流。用C语言开发 系统可以大大缩短开发周期,明显增强程 序的可读性,便于改进、扩充和移植。而 针对8051的C语言日趋成熟,成为了专业 化的实用高级语言。
类型 符号
关键字
有
整 型
无
实有 型有
字有
符 型
无
(signed) int (signed) short (signed) long
unsigned int unsigned short int unsigned long int
float double char unsigned char
所占位数
数的表示范围
例子认识C程序
#include <REG51.h>
sbit A5=P1^0x04;
int main(void) {
//用户代码 void delay_1s();
return 0;
}
void delay_1s() {
// 代码 }
可用任何文本编辑 软件编写,最后保 存扩展名为.C的程
序源文件
一、主程序(程序入口) int main(void) { //用户代码 return 0; }