-
1 学习要点
-
2 本章PPT
引言
单片机应用系统日趋复杂,对程序的可读性、升级与维护以及模块化要求越来越高,对软件编程要求也越来越高,要求编程人员在短时间内编写出执行效率高、运行可靠的程序代码。同时,也要方便多个编程人员来进行协同开发。
C51语言是近年来在8051单片机开发中,普遍使用的程序设计语言,能直接对8051单片机硬件进行操作,既有高级语言特点,又有汇编语言特点,因此在8051单片机程序设计中,得到广泛使用。
3.1 C51编程语言简介
用于8051单片机编程的C语言,在标准C基础上针对8051硬件特点进行扩展,并向8051上移植,经多年努力,C51已成为公认的高效、简洁的8051单片机的实用高级编程语言。与8051汇编语言相比,C51语言在功能上、结构性、可读性、可维护性上有明显优势,易学易用。
3.1.1 C51语言与汇编语言的比较
与8051汇编语言相比, C51有如下优点。
(1)可读性好。
(2)模块化开发与资源共享。
(3)可移植性好。
(4)生成的代码效率高。
3.1.2 C51语言与标准C语言的比较
(1)库函数不同。
(2)数据类型有一定区别。
(3)C51语言变量存储模式与标准C语言中变量存储模式数据不一样。
(4)数据存储类型不同。
(5)标准C语言没有处理单片机中断的定义。
(6)C51语言与标准C的输入/输出处理不一样。
(7)头文件不同。
(8)程序结构的差异。
3.2 C51语言程序设计基础
3.2.1 C51语言中的数据类型与存储类型
1.数据类型
2.C51的扩展数据类型 特别注意sbit bit
3.数据存储类型
4.数据存储模式
3.2.2 C51语言的特殊功能寄存器及位变量定义
1.特殊功能寄存器的C51定义
2.位变量的C51定义
3.2.3 C51语言的绝对地址访问
1.绝对宏
2. _at_ 关键字
3.2.4 C51的基本运算
1.算术运算符
2.逻辑运算符
3.关系运算符
4.位运算
5.指针和取地址运算符
3.2.5 C51的分支与循环程序结构
C51程序按结构可分为3类,即顺序、分支和循环结构。
1.分支控制语句
分支控制语句有:if语句和switch语句。
2.循环控制语句
实现循环结构的语句有以下3种:while语句、do-while语句和for语句。
3.2.6 C51的数组
1.数组简介
C51语言中常用的一维、二维数组和字符数组。
2.数组的应用
在C51的编程中,数组一个非常有用的功能是查表。
3.数组与存储空间
3.2.7 C51的指针
3.3 C51语言的函数
3.3.1 函数的分类
1. 标准库函数
2. 用户自定义函数
3.3.2 函数的参数与返回值
3.3.3 函数的调用
3.3.4 中断服务函数
中断服务函数的一般形式为:
函数类型 函数名(形式参数表)interrupt n using m
关键字interrupt n中的n是中断号,对于51系列单片机,n取值为0~4。
关键字using后的 m是所选择的寄存器组,m取值为0~3。using m是一个可选项,可省略。如果没有使用using关键字指明寄存器组,中断函数中的所有工作寄存器的内容将被保存到堆栈中。
3.3.5 变量及存储方式
3.3.6 宏定义与文件包含
3.3.7 库函数
几类重要的库函数。
(1) 特殊功能寄存器包含文件reg51.h或reg52.h。reg51.h中包含所有的8051的sfr及其位定义。reg52.h中包含所有8052的sfr及其位定义,一般系统都包含reg51.h或reg52.h。
(2) 绝对地址包含文件absacc.h:该文件定义了几个宏,以确定各类存储空间的绝对地址。
(3) 输入/输出流函数位于stadio.h文件中。
(4) 动态内存分配函数,位于stdlib.h中。
(5) 能够对方便地对缓冲区进行处理的缓冲区处理函数位于string.h中。
3.4 Keil µVision3环境下的C51程序开发:掌握实际操作

