单片机常用11.pdf
需积分: 0 87 浏览量
更新于2009-02-05
收藏 175KB PDF 举报
### 单片机C51编程基础知识点解析
#### C51编程语言概述
C51是一种专门为8位单片机设计的高级编程语言,它基于标准C语言,并增加了对单片机硬件特性直接访问的支持。C51编程语言不仅保留了C语言的强大功能和灵活性,还针对单片机的特点进行了优化,使其更易于编写高效、可靠的嵌入式系统程序。
#### 数据类型
在C51编程中,理解不同类型的数据及其存储方式至关重要。以下是一些常用的C51数据类型:
1. **Unsigned Char (单字节)**:无符号字符型,占用1字节空间,值域为0到255。
2. **Signed Char (单字节)**:有符号字符型,同样占用1字节空间,但值域为-128到+127。
3. **Unsigned Int (双字节)**:无符号整型,占用2字节空间,值域为0到65535。
4. **Signed Int (双字节)**:有符号整型,同样占用2字节空间,值域为-32768到+32767。
5. **Unsigned Long (四字节)**:无符号长整型,占用4字节空间,值域为0到4294967295。
6. **Signed Long (四字节)**:有符号长整型,占用4字节空间,值域为-2147483648到+2147483647。
7. **Float (四字节)**:单精度浮点型,占用4字节空间,值域通常为±1.175494E-38到±3.402823E+38。
8. **Bit (位)**:位类型,仅能表示0或1。
9. **Sfr (单字节)**:特殊功能寄存器,占用1字节空间,值域为0到255。
10. **Sfr16 (双字节)**:16位特殊功能寄存器,占用2字节空间,值域为0到65535。
11. **Sbit (位)**:可位寻址的变量,仅能表示0或1。
#### C51中的关键字
C51编程语言中包含一系列关键字,用于定义变量、控制流程等。以下是一些常用的关键字及其用途:
- **Auto**:用于声明自动变量,即局部变量。
- **Break**:用于提前结束循环。
- **Case**:与`switch`语句配合使用,定义不同的情况分支。
- **Char**:声明单字节整型或字符型变量。
- **Const**:声明常量,其值在程序运行期间不能更改。
- **Continue**:跳过当前循环中的剩余部分并继续执行下一次迭代。
- **Default**:用于`switch`语句中处理未匹配任何`case`的情况。
- **Do**:与`while`一起构成循环结构。
- **Double**:声明双精度浮点型变量。
- **Else**:用于与`if`语句配合,定义条件不成立时的代码块。
- **Enum**:用于定义枚举类型。
- **Extern**:声明在其他文件中定义的变量或函数。
- **Float**:声明单精度浮点型变量。
- **For**:定义循环结构。
- **Goto**:实现非正常的流程控制,应谨慎使用。
- **If**:定义条件判断。
- **Int**:声明整型变量。
- **Long**:声明长整型变量。
- **Register**:声明使用CPU寄存器的变量。
- **Return**:用于从函数返回值。
- **Short**:声明短整型变量。
- **Signed**:声明有符号数。
- **Sizeof**:计算表达式的大小。
- **Static**:声明静态变量。
- **Struct**:定义结构体类型。
- **Switch**:定义多分支选择结构。
- **Typedef**:用于创建新的类型名。
- **Union**:定义共用体类型。
- **Unsigned**:声明无符号数。
- **Void**:声明无类型数据。
- **Volatile**:声明变量在程序执行过程中可能被隐式修改。
- **While**:定义循环结构。
#### C51编译器的扩展ANSIC关键字
除了标准的C语言关键字之外,C51编译器还提供了一些额外的关键字来支持单片机的编程:
- **Bit**:用于声明位标量或位类型的函数。
- **Sbit**:声明可位寻址的变量。
- **Sfr**:声明特殊功能寄存器。
- **Sfr16**:声明16位特殊功能寄存器。
- **Data**:声明直接寻址的内部数据存储器。
- **Bdata**:声明可位寻址的内部数据存储器。
- **Idata**:声明间接寻址的内部数据存储器。
- **Pdata**:声明分页寻址的外部数据存储器。
- **Xdata**:声明外部数据存储器。
- **Code**:声明程序存储器。
- **Interrupt**:定义中断函数。
- **Reentrant**:定义再入函数。
- **Using**:定义工作寄存器组。
#### 特殊功能寄存器
特殊功能寄存器是单片机内部用于控制各种功能的重要组成部分。以下是一些常见的特殊功能寄存器:
- **Acc**:累加器。
- **B**:乘法寄存器。
- **PSW**:程序状态字。
- **SP**:堆栈指针。
- **DPL/DPH**:数据存储器指针。
- **IE/IP**:中断允许/优先级控制器。
- **P0-P3**:端口0至端口3。
- **SCON/SBUF**:串行口控制器和串行数据缓冲器。
- **TCON/TMOD/TL0/TH0/TL1/TH1**:定时器控制及相关寄存器。
#### 字符串定时时常用转义字符表
在C51编程中,使用字符串时经常需要用到一些特殊的转义字符来实现特定的功能:
- **\o**:空字符(NULL)。
- **\n**:换行符。
- **\r**:回车符。
- **\t**:水平制表符。
- **\b**:退格符。
- **\f**:换页符。
- **\'**:单引号。
- **\"**:双引号。
- **\\**:反斜杠。
通过以上介绍,我们了解了C51编程的基础知识点,包括数据类型、关键字以及特殊功能寄存器等。这些知识点对于掌握C51编程至关重要,能够帮助开发者更好地利用单片机的功能,开发出高效稳定的嵌入式系统。

deng158158
- 粉丝: 0
最新资源
- 网络环境下教育教学的探索与实施.docx
- Ahdqyln计算机专业大学本科方案设计书(网络).doc
- 数据库课程设计(实例-).doc
- 单片机万年历电子钟方案设计书报告含电路图和源程序.doc
- 2010年9月全国计算机等级测验二级笔试试卷C语言程序设计.docx
- workerman-PHP资源
- 计算机软件应用与发展分析.docx
- 麻村砂石加工系统安全渡汛措施.doc
- 论网络环境中的图书馆藏书发展.docx
- 一级分类食品饮料、家居用品、个人用品、IT与电子商务、耐用品.doc
- 工作任务8-网站宣传与推广.ppt
- 基于大学城空间的动态网页课程信息化教学设计.docx
- ATS单片机的数字温度测量及显示系统设计方案.doc
- 贫困地区的教育信息化发展障碍及对策.docx
- 论大数据对高校教育的推动作用.docx
- Freescale单片机电池管理系统设计方案.doc