1 / 76
文档名称:

C8051第3章幻灯-课件PPT(精).ppt

格式:ppt   大小:331KB   页数:76页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C8051第3章幻灯-课件PPT(精).ppt

上传人:3239657963 2018/5/26 文件大小:331 KB

下载得到文件列表

C8051第3章幻灯-课件PPT(精).ppt

相关文档

文档介绍

文档介绍:第3章 C51程序设计
使用C语言实现单片机编程是单片机系统开发的发展方向,C语言是通用计算机程序设计语言,现在也广泛用于单片机系统开发。
 
C51程序与汇编程序的不同之处
 
对于51单片机来说,C51编写程序比汇编语言程序具有如下优缺点。
1. 优点
(1)采用C语言编程,以行为方式描述单片机实现的任务,开发效率高、时间短。
(2)将单片机实现的任务分别用程序模块实现,
(3)可移植性好
(4)提供数学函数并支持浮点运算,
(5)不用深入了解单片机的指令系统,仅需要了解51单片机存储器结构。
1
2. 缺点
实时性比汇编语言差,因为编写汇编的时候可以清楚的知道每一条指令究竟要多少个机器周期,而C51语句与执行时间没有确切关系。
一般来说,C51程序代码量较汇编程序代码量大,但随着C编译器编译效率的提高和存储器容量的增加,已经不是大问题。
3. 使用助记符
与汇编程序一样,采用C51语言还是需要了解如何初始化单片机中众多特殊功能寄存器,因为这些寄存器是控制硬件功能的,因此需要了解单片机内部各个模块的工作原理,这也是初学单片机遇到的最大困难。
C51程序中,也是采用助记符代表寄存器地址,助记符与寄存器地址之间的对应关系保存在“头文件”中,由于每种单片机的助记符、助记符对应的寄存器地址不相同,因此每种单片机都有自己的头文件。为方便记忆,助记符常与手册中给出的特殊寄存器名相同。例如对于AT89S51单片机,就有头文件“”,其内容为特殊功能寄存器的定义。
在头文件的支持下,写C51程序时可以直接用助记符代替地址,容易记忆,并增加可读性。
2
4. 存储类型
C51中变量的存储类型与51单片机存储空间的对应关系如下。
data 直接存取51单片机内部RAM(128B空间)。
idata 以MOV ***@Rn间接存取52单片机內部RAM(256B空间)。
bdata 以位寻址方式存取单片机内部数据RAM中的位寻址区(16B)。
xdata 以MOVX ***@DPTR存取外部扩展RAM(64KB空间)。
pdata 以******@Rn分页存取外部扩展RAM(256B,外部扩展RAM的第一个页面)。
code 以******@A+DPTR指令存取Flash存储器(64KB空间)。
在C51中定义变量时,可以定义变量的存储类型,例如,
unsigned char code sm[ ]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90
,0x88,0x83,0xc6,0xA1,0x86,0x8e};
3
5. 需要启动文件
在51单片机中运行用户所编制的C51程序时,在执行main()程序时,,该汇编程序的工作是把idata、xdata、pdata存储区清0,初始化堆栈。。
6. Keil软件编译C51程序
在Keil软件中的文本编辑器编辑完成C51程序(.c )后,经过C51编译器编译后,生成浮动目标文件(.obj)和列表文件(.lst);在库文件的支持下,经过L51链接器后,得到绝对定位目标文件(.hex)。
Keil软件开发C51的过程与开发汇编程序的过程基本相同,但需要注意如下两点。
在使用Keil软件时,,而C51程序需要该启动程序;,。
4
C语言基础知识
 
C语言的标识符和关键字
 
C语言中的部分保留字如下:
atuo break case const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union void volatile while
在C保留字的基础上,C51的关键字如下:
bit sbit sfr sfr16 data bdata idata pdata xdata code interrupt reentrant using
5
数据类型
分类
数据类型
字节数
值域
说明
字符(char)
unsigned char
1
0~255
signed char
1
-128~+127
默认
整型(int)
unsigned int
2
0~65535
signed int
2
-32768~+32767
默认
长整型(long)
u