零基础学单片机C语言程序设计

副标题:无

作   者:赵建领,薛园园等编著

分类号:

ISBN:9787111373483

微信扫一扫,移动浏览光盘

简介

所属分类:计算机网络 > 程序设计> c c++ c# vc vc++ > 单片机c51语言是目前最流行的单片机 程序设计语言。本书由浅入深、循序渐进地讲解了c51语言的方方面面。本书知识点覆盖全面、结构安排紧凑、讲解详细、通俗易懂、实例丰富。内容包括51系列单片机开发环境和流程、 程序设计基础以及编程指南,并给出了一些常用的典型案例。全书分为四篇,共21章,全面详细地讲述了单片机的 程序设计基础、编程指南及应用案例。首先介绍了51系列单片机的基本结构以及单片机的开发概述,其次详细介绍了单片机 程序设计的c51语言,随后结合单片机的硬件资源细致讲解了如何应用c51语言进行编程操作,最后结合实际应用,重点分析了在各个领域中常用到的一些典型案例,使读者更加融会贯通地掌握c51语言,以供读者在学习和工作中进行参考。在第21章中还介绍了部分常见的面试题及解答,方便读者做好入职前的准备工作。   本书适合广大单片机程序开发人员、电子设计爱好者、工程师和大专院校师生阅读,尤其是适用于单片机及其编程语言的初学者。 前言 第一篇  单片机c51概述  第1章  单片机开发概述   1.1  单片机介绍   1.1.1  单片机简介   1.1.2  单片机的主要组成部分   1.1.3  单片机引脚及功能   1.1.4  单片机的应用领域   1.2  单片机开发流程   1.2.1  系统分析   1.2.2  单片机选型   1.2.3  程序设计   1.2.4  仿真测试   1.2.5  程序下载   1.3  单片机开发语言概述   1.3.1  单片机汇编语言   1.3.2  单片机c51语言   1.4  小结   1.5  习题与上机实践  第2章  构建c51集成开发环境   2.1  51系列单片机的最小硬件系统   2.1.1  时钟振荡电路   2.1.2  单片机的复位电路   2.2  keil m vision3集成开发环境   2.2.1  keil m vision3简介   2.2.2  keil m vision3安装   2.2.3  keil m vision3界面概览   2.2.4  keil m vision3的各种常用窗口   2.3  keil m vision3中c51的开发流程   2.3.1  创建项目   2.3.2  创建源文件   2.3.3  编译项目   2.3.4  仿真调试   2.3.5  程序下载   2.4  小结   2.5  习题与上机实践 第二篇  c51语言 程序设计指南  第3章  c51语言 程序设计基础   3.1  c51程序的基本结构   3.2  c51编程规范及注意事项   3.2.1  注释   3.2.2  命名   3.2.3  格式   3.3  c51的标识符与关键字   3.3.1  标识符   3.3.2  关键字   3.4  c51的变量类型   3.4.1  c51的数据类型   3.4.2  整型变量   3.4.3  浮点型变量   3.4.4  字符型变量   3.4.5  指针型变量   3.4.6  无值型变量   3.5  c51的常量类型   3.5.1  整型常量   3.5.2  浮点型常量   3.5.3  字符型常量   3.5.4  转义字符   3.6  变量作用域   3.6.1  变量作用域的基本规则   3.6.2  自动变量   3.6.3  全局变量   3.6.4  静态变量   3.6.5  寄存器变量   3.7  分隔符与const修饰符   3.7.1  c51分隔符   3.7.2  const修饰符   3.8  c51的运算符   3.8.1  算术运算符   3.8.2  逻辑运算符   3.8.3  关系运算符   3.8.4  位运算符   3.8.5  “,”运算符   3.8.6  “?”运算符   3.8.7  “sizeof”运算符   3.8.8  地址操作运算符   3.8.9  联合操作运算符   3.8.10  类型转换运算符   3.8.11  运算符优先级和结合性   3.9  c51的表达式   3.9.1  算术表达式   3.9.2  赋值表达式   3.9.3  逗号表达式   3.9.4  关系表达式   3.9.5  逻辑表达式   3.10  小结   3.11  上机实践  第4章  c51语句和流程   4.1  c51语句   4.1.1  变量声明语句   4.1.2  表达式语句   4.1.3  复合语句   4.1.4  循环语句   4.1.5  条件语句   4.1.6  开关语句   4.1.7  程序跳转语句   4.1.8  函数调用语句   4.1.9  函数返回语句   4.1.10  空语句   4.2  c51的流程控制结构及程序示例   4.2.1  顺序结构   4.2.2  选择结构   4.2.3  循环结构   4.2.4  流程控制结构程序示例   4.3  小结   4.4  上机实践  第5章  c51的数据结构   5.1  c51的数组   5.1.1  数组定义及数组元素   5.1.2  一维数组   5.1.3  一维字符串数组   5.1.4  二维数组   5.1.5  二维字符串数组   5.1.6  多维数组   5.2  c51的指针   5.2.1  指针及相关概念   5.2.2  指针变量的定义及赋值   5.2.3  取址运算符和取值运算符   5.2.4  指针变量的运算   5.2.5  c51的字符指针   5.2.6  c51的数组指针   5.2.7  c51的指针数组   5.3  c51的结构   5.3.1  结构的声明   5.3.2  结构变量的声明   5.3.3  结构变量的初始化   5.3.4  结构变量的使用   5.3.5  c51的结构数组   5.3.6  c51的结构指针   5.3.7  c51的嵌套式结构   5.3.8  c51的位结构   5.4  c51的联合   5.4.1  联合的声明和使用   5.4.2  结构和联合的区别   5.5  c51的枚举   5.5.1  枚举和枚举变量的声明   5.5.2  枚举变量的赋值和使用   5.6  c51的位域   5.6.1  位域和位域变量的声明   5.6.2  位域变量的使用   5.7  c51的自定义类型   5.7.1  自定义类型的声明   5.7.2  自定义类型的使用   5.8  小结   5.9  上机实践  第6章  c51的函数   6.1  函数   6.1.1  函数的概述   6.1.2  函数的分类   6.1.3  函数的定义   6.1.4  函数的参数   6.1.5  函数的返回值   6.2  函数的作用域   6.2.1  函数的作用范围   6.2.2  函数变量的作用域   6.3  函数的调用   6.3.1  赋值调用   6.3.2  引用调用   6.3.3  递归调用   6.3.4  嵌套调用   6.4  c51的main函数   6.4.1  无参main函数   6.4.2  有参main函数   6.5  c51的库函数   6.5.1  i/o函数库   6.5.2  标准函数库   6.5.3  字符函数库   6.5.4  字符串函数库   6.5.5  内部函数库   6.5.6  数学函数库   6.5.7  绝对地址访问函数库   6.5.8  变量参数表函数库   6.5.9  全程跳转函数库   6.5.10  偏移量函数库   6.6  小结   6.7  上机实践  第7章  c51的存储结构   7.1  单片机的存储器结构   7.1.1  51系列单片机的存储区域   7.1.2  片内ram的存储器结构   7.2  c51的存储类型   7.2.1  code存储类型   7.2.2  data存储类型   7.2.3  bdata存储类型   7.2.4  idata存储类型   7.2.5  pdata存储类型   7.2.6  xdata存储类型   7.3  c51的扩展数据类型   7.3.1  sfr和sfr16型变量   7.3.2  sbit型变量   7.3.3  bit型变量   7.3.4  51单片机寄存器的定义   7.4  c51变量的存储模式   7.4.1  small模式   7.4.2  compact模式   7.4.3  large模式   7.5  c51的存储器指针   7.5.1  一般指针   7.5.2  存储器指针   7.6  小结   7.7  上机实践  第8章  c51的预处理命令和用户配置文件   8.1  c51的预处理命令概述   8.2  文件包含指令   8.2.1  #include命令   8.2.2  c51常用的头文件   8.3  宏定义指令   8.3.1  #define命令   8.3.2  #undef命令   8.4  条件编译指令   8.4.1  #if、#else和#endif命令   8.4.2  #elif命令   8.4.3  #ifdef、#ifndef命令   8.5  其他编译指令   8.5.1  #line命令   8.5.2  #error命令   8.5.3  #pragma命令   8.6  c51的用户配置文件   8.6.1  c51的启动代码详解   8.6.2  c51的变量初始化文件   8.6.3  c51的基本i/o函数文件   8.6.4  c51的分组配置文件   8.7  小结   8.8  上机实践 第三篇  c51单片机编程指南  第9章  c51定时器/计数器 程序设计   9.1  定时器/计数器简介   9.1.1  定时器/计数器的结构   9.1.2  方式控制寄存器tmod   9.1.3  中断控制寄存器tcon   9.1.4  定时器/计数器的初值   9.1.5  定时器/计数器的初始化   9.2  定时器/计数器工作模式0的c51 程序设计   9.2.1  定时器/计数器工作模式0   9.2.2  定时器/计数器模式0的 程序设计   9.3  定时器/计数器工作模式1的c51 程序设计   9.3.1  定时器/计数器工作模式1   9.3.2  定时器/计数器模式1的 程序设计   9.4  定时器/计数器工作模式2的c51 程序设计   9.4.1  定时器/计数器工作模式2   9.4.2  定时器/计数器模式2的 程序设计   9.5  定时器/计数器工作模式3的c51 程序设计   9.5.1  定时器/计数器工作模式3   9.5.2  定时器/计数器模式3的 程序设计   9.6  小结   9.7  上机实践  第10章  c51中断 程序设计   10.1  单片机的中断系统   10.1.1  单片机的中断类型   10.1.2  中断请求标志及其c51访问   10.1.3  中断允许标志及其c51访问   10.1.4  中断优先级标志及其c51访问   10.1.5  中断的c51处理过程   10.2  外部中断源的c51 程序设计   10.3  定时中断源的c51 程序设计   10.4  串行中断源的c51 程序设计   10.5  小结   10.6  上机实践  第11章  c51串行接口 程序设计   11.1  51系列单片机的串行接口   11.1.1  单片机串行通信概述   11.1.2  单片机串行接口的内部结构   11.1.3  串行接口控制寄存器scon   11.1.4  特殊功能寄存器pcon   11.2  串行口工作模式0的c51 程序设计   11.2.1  模式0的波特率   11.2.2  模式0的数据发送及c51 程序设计   11.2.3  模式0的数据接收及c51 程序设计   11.3  串行口工作模式1的c51 程序设计   11.3.1  模式1的波特率   11.3.2  模式1的数据发送及c51 程序设计   11.3.3  模式1的数据接收及c51 程序设计   11.4  串行口工作模式2的c51 程序设计   11.4.1  模式2的波特率   11.4.2  模式2的数据发送及c51 程序设计   11.4.3  模式2的数据接收及c51 程序设计   11.5  串行口工作模式3的c51 程序设计   11.5.1  模式3的波特率   11.5.2  模式3的数据发送及c51 程序设计   11.5.3  模式3的数据接收及c51 程序设计   11.6  小结   11.7  上机实践  第12章  c51下的rtx-51实时多任务操作系统   12.1  rtx-51实时多任务操作系统简介   12.1.1  单任务程序与多任务程序的比较   12.1.2  rtx-51实时多任务操作系统种类   12.2  rtx-51的系统函数   12.2.1  中断调用的发送信号函数   12.2.2  清除信号标志函数   12.2.3  启动任务函数   12.2.4  删除任务函数   12.2.5  当前任务号函数   12.2.6  任务调用的发送信号函数   12.2.7  等待函数   12.3  rtx-51的任务调度   12.3.1  循环任务调度   12.3.2  事件任务调度   12.3.3  信号任务调度   12.3.4  优先级及抢先任务切换   12.3.5  rtx-51的主要概念和特性   12.4  rtx-51 tiny的任务管理   12.4.1  rtx-51 tiny的任务状态   12.4.2  rtx-51 tiny的事件   12.4.3  rtx-51 tiny的任务切换   12.5  rtx-51 tiny的系统配置   12.5.1  rtx-51 tiny系统配置文件   12.5.2  rtx-51 tiny系统参数   12.6  rtx-51 tiny的要求及注意事项   12.6.1  rtx-51 tiny的要求及技术参数   12.6.2  rtx-51 tiny的注意事项   12.7  rtx-51 full实时多任务操作系统简介   12.7.1  rtx-51 full函数一览   12.7.2  rtx-51的技术参数   12.8  小结   12.9  上机实践  第13章  keil m vision3的调试和仿真   13.1  keil m vision3的程序调试   13.1.1  keil m vision3的程序调试模式   13.1.2  断点   13.1.3  性能分析器   13.1.4  代码覆盖分析器   13.1.5  调试命令   13.2  系统资源仿真   13.2.1  并行i/o端口仿真   13.2.2  寄存器仿真   13.2.3  中断仿真   13.2.4  串行接口仿真   13.2.5  定时器/计数器仿真   13.2.6  看门狗定时器的仿真   13.2.7  低功耗仿真   13.3  小结   13.4  上机实践 第四篇  c51 程序设计典型案例  第14章  c51矩阵式键盘 程序设计   14.1  键盘接口概述   14.1.1  独立式按键和矩阵式键盘   14.1.2  键盘设计注意事项   14.2  矩阵式键盘c51 程序设计   14.2.1  扫描法及c51 程序设计   14.2.2  线反转法及c51 程序设计   14.2.3  中断法及c51 程序设计   14.3  c51矩阵式键盘设计实例   14.3.1  电路图   14.3.2  程序设计   14.4  小结   14.5  上机实践  第15章  c51液晶显示模块   15.1  液晶显示模块概述   15.1.1  液晶显示模块的分类   15.1.2  液晶显示模块的特点   15.2  液晶显示控制驱动器   15.2.1  液晶显示控制驱动器概述   15.2.2  液晶显示控制驱动器功能说明   15.3  液晶显示控制器指令集   15.3.1  基本指令集   15.3.2  扩充指令集   15.3.3  控制器指令操作方式   15.4  点阵图形型液晶操作子函数   15.4.1  指令操作子函数   15.4.2  数据操作子函数   15.4.3  初始化子函数   15.4.4  清屏子函数   15.4.5  汉字显示子函数   15.4.6  图形显示子函数   15.5  液晶汉字显示实例   15.5.1  电路设计   15.5.2  程序设计   15.6  液晶图形显示实例   15.6.1  图形数组的提取   15.6.2  图形显示 程序设计   15.7  小结   15.8  上机实践  第16章  c51模拟i2c总线   16.1  i2c总线概述   16.1.1  i2c总线工作原理   16.1.2  i2c总线器件的寻址方式   16.1.3  i2c总线数据操作   16.2  i2c总线接口ee prom存储器   16.3  c51模拟i2c总线协议   16.3.1  延时子函数   16.3.2  起始信号子函数   16.3.3  终止信号子函数   16.3.4  应答信号子函数   16.3.5  非应答信号子函数   16.3.6  应答位检查子函数   16.3.7  单字节写子函数   16.3.8  单字节读子函数   16.3.9  多字节写子函数   16.3.10  多字节读子函数   16.4  c51读写ee prom实例   16.4.1  电路设计   16.4.2  程序设计   16.4.3  仿真分析   16.5  小结   16.6  上机实践  第17章  c51模拟单总线接口   17.1  单总线接口概述   17.2  单总线温度传感器及c51操作   17.2.1  温度传感器ds18s20概述   17.2.2  ds18s20的数据操作及指令   17.2.3  ds18s20的访问流程   17.2.4  温度转换操作   17.2.5  c51模拟单总线操作子函数   17.3  c51单总线温度传感器实例   17.3.1  电路设计   17.3.2  程序设计   17.3.3  仿真分析   17.4  小结   17.5  上机实践  第18章  实时时钟芯片应用   18.1  实时时钟芯片ds1302概述   18.1.1  实时时钟芯片ds1302引脚   18.1.2  实时时钟芯片ds1302的日期操作   18.1.3  实时时钟芯片ds1302的控制操作   18.1.4  实时时钟芯片ds1302的ram操作   18.1.5  实时时钟芯片ds1302数据传输方式   18.2  ds1302的控制子函数   18.2.1  复位子函数   18.2.2  字节读取子函数   18.2.3  字节写入子函数   18.2.4  年设置子函数   18.2.5  月设置子函数   18.2.6  日设置子函数   18.2.7  星期设置子函数   18.2.8  小时设置子函数   18.2.9  分钟设置子函数   18.2.10  秒设置子函数   18.2.11  写保护子函数   18.2.12  写允许子函数   18.2.13  充电控制子函数   18.2.14  初始化子函数   18.2.15  ram字节写入子函数   18.2.16  时钟显示子函数   18.2.17  多字节突发方式读取ram子函数   18.2.18  多字节突发方式写入ram子函数   18.3  c51读写实时时钟芯片实例   18.3.1  电路图   18.3.2  程序设计   18.3.3  仿真分析   18.4  小结   18.5  上机实践  第19章  c51通信接口 程序设计   19.1  串行接口通信概述   19.1.1  串行接口通信标准   19.1.2  串行接口芯片   19.1.3  双机及多机通信原理   19.2  c51双机通信实例   19.2.1  电路原理图   19.2.2  发送方 程序设计   19.2.3  接收方 程序设计   19.3  c51多机通信实例   19.3.1  主机 程序设计   19.3.2  从机 程序设计   19.4  小结   19.5  上机实践  第20章  道路交通灯多任务控制系统   20.1  交通灯多任务控制系统概述   20.2  c51交通灯多任务控制系统   20.2.1  电路原理图   20.2.2  建立rtx-51 tiny项目   20.2.3  多任务划分   20.2.4  多任务 程序设计   20.2.5  串行通信及命令获取子函数   20.2.6  仿真调试   20.3  小结   20.4  上机实践  第21章  常见面试题及解答   21.1  c51编程类面试题   21.1.1  预处理   21.1.2  c51语言基础   21.1.3  循环   21.1.4  位操作   21.1.5  实用子函数   21.2  与mcs-51硬件相关的面试题   21.2.1  mcs-51硬件基础   21.2.2  硬件编程 ·由浅入深,循序渐进,从零开始学单片机编程,一点都不难   ·编程基础、编程进阶、编程应用、项目实战、上机练习、面试指南   ·210个实例、6个案例、80个练习题、39个面试题 本书主要由赵建领、薛园园编著,其他参与编著和资料整理的人员有冯华君、刘博、刘燕、叶青、张军、张立娟、张艺、彭涛、徐磊、戎伟、朱毅、李佳、李玉涵、杨利润、杨春娇、武鹏、潘中强、王丹、王宁、王西莉、石淑珍、程彩红、邵毅、郑丹丹、郑海平及顾旭光。 作 者   2012年1月

目录

前言
第一篇  单片机C51概述
第1章  单片机开发概述 1
1.1  单片机介绍 1
1.1.1  单片机简介 1
1.1.2  单片机的主要组成部分 1
1.1.3  单片机引脚及功能 2
1.1.4  单片机的应用领域 4
1.2  单片机开发流程 5
1.2.1  系统分析 5
1.2.2  单片机选型 5
1.2.3  程序设计 8
1.2.4  仿真测试 8
1.2.5  程序下载 9
1.3  单片机开发语言概述 9
1.3.1  单片机汇编语言 9
1.3.2  单片机C51语言 10
1.4  小结 11
1.5  习题与上机实践 11
第2章  构建C51集成开发环境 12
2.1  51系列单片机的最小硬件系统 12
2.1.1  时钟振荡电路 13
2.1.2  单片机的复位电路 14
2.2  Keil m Vision3集成开发环境 15
2.2.1  Keil m Vision3简介 15
2.2.2  Keil m Vision3安装 15
2.2.3  Keil m Vision3界面概览 17
2.2.4  Keil m Vision3的各种常用窗口 17
2.3  Keil m Vision3中C51的开发流程 21
2.3.1  创建项目 21
2.3.2  创建源文件 22
2.3.3  编译项目 24
2.3.4  仿真调试 24
2.3.5  程序下载 25
2.4  小结 25
2.5  习题与上机实践 26
第二篇  C51语言程序设计指南
第3章  C51语言程序设计基础 27
3.1  C51程序的基本结构 27
3.2  C51编程规范及注意事项 28
3.2.1  注释 28
3.2.2  命名 29
3.2.3  格式 29
3.3  C51的标识符与关键字 30
3.3.1  标识符 30
3.3.2  关键字 30
3.4  C51的变量类型 32
3.4.1  C51的数据类型 32
3.4.2  整型变量 33
3.4.3  浮点型变量 34
3.4.4  字符型变量 35
3.4.5  指针型变量 36
3.4.6  无值型变量 37
3.5  C51的常量类型 37
3.5.1  整型常量 37
3.5.2  浮点型常量 38
3.5.3  字符型常量 39
3.5.4  转义字符 40
3.6  变量作用域 41
3.6.1  变量作用域的基本规则 41
3.6.2  自动变量 42
3.6.3  全局变量 43
3.6.4  静态变量 44
3.6.5  寄存器变量 45
3.7  分隔符与const修饰符 45
3.7.1  C51分隔符 45
3.7.2  const修饰符 46
3.8  C51的运算符 47
3.8.1  算术运算符 47
3.8.2  逻辑运算符 49
3.8.3  关系运算符 50
3.8.4  位运算符 51
3.8.5  “,”运算符 53
3.8.6  “?”运算符 54
3.8.7  “sizeof”运算符 55
3.8.8  地址操作运算符 55
3.8.9  联合操作运算符 56
3.8.10  类型转换运算符 56
3.8.11  运算符优先级和结合性 57
3.9  C51的表达式 59
3.9.1  算术表达式 59
3.9.2  赋值表达式 59
3.9.3  逗号表达式 61
3.9.4  关系表达式 61
3.9.5  逻辑表达式 62
3.10  小结 63
3.11  上机实践 63
第4章  C51语句和流程 65
4.1  C51语句 65
4.1.1  变量声明语句 65
4.1.2  表达式语句 66
4.1.3  复合语句 66
4.1.4  循环语句 67
4.1.5  条件语句 70
4.1.6  开关语句 75
4.1.7  程序跳转语句 76
4.1.8  函数调用语句 78
4.1.9  函数返回语句 79
4.1.10  空语句 80
4.2  C51的流程控制结构及程序示例 81
4.2.1  顺序结构 81
4.2.2  选择结构 81
4.2.3  循环结构 81
4.2.4  流程控制结构程序示例 82
4.3  小结 83
4.4  上机实践 83
第5章  C51的数据结构 85
5.1  C51的数组 85
5.1.1  数组定义及数组元素 85
5.1.2  一维数组 87
5.1.3  一维字符串数组 90
5.1.4  二维数组 92
5.1.5  二维字符串数组 95
5.1.6  多维数组 96
5.2  C51的指针 97
5.2.1  指针及相关概念 97
5.2.2  指针变量的定义及赋值 98
5.2.3  取址运算符和取值运算符 101
5.2.4  指针变量的运算 102
5.2.5  C51的字符指针 103
5.2.6  C51的数组指针 104
5.2.7  C51的指针数组 109
5.3  C51的结构 111
5.3.1  结构的声明 111
5.3.2  结构变量的声明 112
5.3.3  结构变量的初始化 114
5.3.4  结构变量的使用 115
5.3.5  C51的结构数组 116
5.3.6  C51的结构指针 117
5.3.7  C51的嵌套式结构 121
5.3.8  C51的位结构 122
5.4  C51的联合 123
5.4.1  联合的声明和使用 123
5.4.2  结构和联合的区别 128
5.5  C51的枚举 129
5.5.1  枚举和枚举变量的声明 129
5.5.2  枚举变量的赋值和使用 131
5.6  C51的位域 133
5.6.1  位域和位域变量的声明 133
5.6.2  位域变量的使用 135
5.7  C51的自定义类型 136
5.7.1  自定义类型的声明 136
5.7.2  自定义类型的使用 136
5.8  小结 137
5.9  上机实践 137
第6章  C51的函数 138
6.1  函数 138
6.1.1  函数的概述 138
6.1.2  函数的分类 139
6.1.3  函数的定义 140
6.1.4  函数的参数 142
6.1.5  函数的返回值 146
6.2  函数的作用域 147
6.2.1  函数的作用范围 147
6.2.2  函数变量的作用域 147
6.3  函数的调用 149
6.3.1  赋值调用 149
6.3.2  引用调用 150
6.3.3  递归调用 150
6.3.4  嵌套调用 152
6.4  C51的main函数 153
6.4.1  无参main函数 153
6.4.2  有参main函数 154
6.5  C51的库函数 154
6.5.1  I/O函数库 154
6.5.2  标准函数库 166
6.5.3  字符函数库 174
6.5.4  字符串函数库 186
6.5.5  内部函数库 201
6.5.6  数学函数库 204
6.5.7  绝对地址访问函数库 209
6.5.8  变量参数表函数库 212
6.5.9  全程跳转函数库 214
6.5.10  偏移量函数库 215
6.6  小结 216
6.7  上机实践 216
第7章  C51的存储结构 218
7.1  单片机的存储器结构 218
7.1.1  51系列单片机的存储区域 218
7.1.2  片内RAM的存储器结构 218
7.2  C51的存储类型 219
7.2.1  code存储类型 220
7.2.2  data存储类型 220
7.2.3  bdata存储类型 220
7.2.4  idata存储类型 221
7.2.5  pdata存储类型 221
7.2.6  xdata存储类型 222
7.3  C51的扩展数据类型 222
7.3.1  sfr和sfr16型变量 223
7.3.2  sbit型变量 223
7.3.3  bit型变量 224
7.3.4  51单片机寄存器的定义 224
7.4  C51变量的存储模式 226
7.4.1  Small模式 227
7.4.2  Compact模式 227
7.4.3  Large模式 227
7.5  C51的存储器指针 228
7.5.1  一般指针 228
7.5.2  存储器指针 229
7.6  小结 231
7.7  上机实践 231
第8章  C51的预处理命令和用户配置文件 232
8.1  C51的预处理命令概述 232
8.2  文件包含指令 233
8.2.1  #include命令 233
8.2.2  C51常用的头文件 234
8.3  宏定义指令 234
8.3.1  #define命令 235
8.3.2  #undef命令 237
8.4  条件编译指令 238
8.4.1  #if、#else和#endif命令 238
8.4.2  #elif命令 239
8.4.3  #ifdef、#ifndef命令 239
8.5  其他编译指令 241
8.5.1  #line命令 241
8.5.2  #error命令 241
8.5.3  #pragma命令 242
8.6  C51的用户配置文件 243
8.6.1  C51的启动代码详解 243
8.6.2  C51的变量初始化文件 248
8.6.3  C51的基本I/O函数文件 249
8.6.4  C51的分组配置文件 249
8.7  小结 250
8.8  上机实践 250
第三篇  C51单片机编程指南
第9章  C51定时器/计数器程序设计 253
9.1  定时器/计数器简介 253
9.1.1  定时器/计数器的结构 253
9.1.2  方式控制寄存器TMOD 254
9.1.3  中断控制寄存器TCON 255
9.1.4  定时器/计数器的初值 257
9.1.5  定时器/计数器的初始化 257
9.2  定时器/计数器工作模式0的C51程序设计 257
9.2.1  定时器/计数器工作模式0 258
9.2.2  定时器/计数器模式0的程序设计 258
9.3  定时器/计数器工作模式1的C51程序设计 259
9.3.1  定时器/计数器工作模式1 259
9.3.2  定时器/计数器模式1的程序设计 260
9.4  定时器/计数器工作模式2的C51程序设计 261
9.4.1  定时器/计数器工作模式2 261
9.4.2  定时器/计数器模式2的程序设计 261
9.5  定时器/计数器工作模式3的C51程序设计 262
9.5.1  定时器/计数器工作模式3 262
9.5.2  定时器/计数器模式3的程序设计 263
9.6  小结 264
9.7  上机实践 264
第10章  C51中断程序设计 266
10.1  单片机的中断系统 266
10.1.1  单片机的中断类型 266
10.1.2  中断请求标志及其C51访问 267
10.1.3  中断允许标志及其C51访问 270
10.1.4  中断优先级标志及其C51访问 270
10.1.5  中断的C51处理过程 271
10.2  外部中断源的C51程序设计 274
10.3  定时中断源的C51程序设计 275
10.4  串行中断源的C51程序设计 276
10.5  小结 277
10.6  上机实践 277
第11章  C51串行接口程序设计 279
11.1  51系列单片机的串行接口 279
11.1.1  单片机串行通信概述 279
11.1.2  单片机串行接口的内部结构 280
11.1.3  串行接口控制寄存器SCON 281
11.1.4  特殊功能寄存器PCON 284
11.2  串行口工作模式0的C51程序设计 284
11.2.1  模式0的波特率 285
11.2.2  模式0的数据发送及C51程序设计 285
11.2.3  模式0的数据接收及C51程序设计 287
11.3  串行口工作模式1的C51程序设计 289
11.3.1  模式1的波特率 290
11.3.2  模式1的数据发送及C51程序设计 291
11.3.3  模式1的数据接收及C51程序设计 293
11.4  串行口工作模式2的C51程序设计 295
11.4.1  模式2的波特率 295
11.4.2  模式2的数据发送及C51程序设计 295
11.4.3  模式2的数据接收及C51程序设计 297
11.5  串行口工作模式3的C51程序设计 299
11.5.1  模式3的波特率 300
11.5.2  模式3的数据发送及C51程序设计 301
11.5.3  模式3的数据接收及C51程序设计 303
11.6  小结 305
11.7  上机实践 305
第12章  C51下的RTX-51实时多任务操作系统 307
12.1  RTX-51实时多任务操作系统简介 307
12.1.1  单任务程序与多任务程序的比较 307
12.1.2  RTX-51实时多任务操作系统种类 309
12.2  RTX-51的系统函数 310
12.2.1  中断调用的发送信号函数 310
12.2.2  清除信号标志函数 311
12.2.3  启动任务函数 311
12.2.4  删除任务函数 312
12.2.5  当前任务号函数 312
12.2.6  任务调用的发送信号函数 313
12.2.7  等待函数 313
12.3  RTX-51的任务调度 316
12.3.1  循环任务调度 316
12.3.2  事件任务调度 316
12.3.3  信号任务调度 317
12.3.4  优先级及抢先任务切换 318
12.3.5  RTX-51的主要概念和特性 319
12.4  RTX-51 Tiny的任务管理 320
12.4.1  RTX-51 Tiny的任务状态 320
12.4.2  RTX-51 Tiny的事件 321
12.4.3  RTX-51 Tiny的任务切换 321
12.5  RTX-51 Tiny的系统配置 321
12.5.1  RTX-51 Tiny系统配置文件 321
12.5.2  RTX-51 Tiny系统参数 324
12.6  RTX-51 Tiny的要求及注意事项 325
12.6.1  RTX-51 Tiny的要求及技术参数 325
12.6.2  RTX-51 Tiny的注意事项 326
12.7  RTX-51 FULL实时多任务操作系统简介 327
12.7.1  RTX-51 FULL函数一览 327
12.7.2  RTX-51的技术参数 329
12.8  小结 329
12.9  上机实践 329
第13章  Keil m Vision3的调试和仿真 330
13.1  Keil m Vision3的程序调试 330
13.1.1  Keil m Vision3的程序调试模式 330
13.1.2  断点 332
13.1.3  性能分析器 333
13.1.4  代码覆盖分析器 335
13.1.5  调试命令 336
13.2  系统资源仿真 337
13.2.1  并行I/O端口仿真 338
13.2.2  寄存器仿真 339
13.2.3  中断仿真 342
13.2.4  串行接口仿真 345
13.2.5  定时器/计数器仿真 350
13.2.6  看门狗定时器的仿真 356
13.2.7  低功耗仿真 357
13.3  小结 358
13.4  上机实践 359
第四篇  C51程序设计典型案例
第14章  C51矩阵式键盘程序设计 361
14.1  键盘接口概述 361
14.1.1  独立式按键和矩阵式键盘 361
14.1.2  键盘设计注意事项 362
14.2  矩阵式键盘C51程序设计 363
14.2.1  扫描法及C51程序设计 363
14.2.2  线反转法及C51程序设计 365
14.2.3  中断法及C51程序设计 367
14.3  C51矩阵式键盘设计实例 369
14.3.1  电路图 369
14.3.2  程序设计 370
14.4  小结 373
14.5  上机实践 373
第15章  C51液晶显示模块 374
15.1  液晶显示模块概述 374
15.1.1  液晶显示模块的分类 374
15.1.2  液晶显示模块的特点 375
15.2  液晶显示控制驱动器 376
15.2.1  液晶显示控制驱动器概述 376
15.2.2  液晶显示控制驱动器功能说明 376
15.3  液晶显示控制器指令集 380
15.3.1  基本指令集 380
15.3.2  扩充指令集 383
15.3.3  控制器指令操作方式 385
15.4  点阵图形型液晶操作子函数 386
15.4.1  指令操作子函数 387
15.4.2  数据操作子函数 387
15.4.3  初始化子函数 388
15.4.4  清屏子函数 388
15.4.5  汉字显示子函数 389
15.4.6  图形显示子函数 390
15.5  液晶汉字显示实例 390
15.5.1  电路设计 391
15.5.2  程序设计 393
15.6  液晶图形显示实例 395
15.6.1  图形数组的提取 395
15.6.2  图形显示程序设计 397
15.7  小结 399
15.8  上机实践 399
第16章  C51模拟I2C总线 400
16.1  I2C总线概述 400
16.1.1  I2C总线工作原理 400
16.1.2  I2C总线器件的寻址方式 401
16.1.3  I2C总线数据操作 402
16.2  I2C总线接口EEPROM存储器 403
16.3  C51模拟I2C总线协议 403
16.3.1  延时子函数 403
16.3.2  起始信号子函数 404
16.3.3  终止信号子函数 404
16.3.4  应答信号子函数 405
16.3.5  非应答信号子函数 405
16.3.6  应答位检查子函数 406
16.3.7  单字节写子函数 406
16.3.8  单字节读子函数 407
16.3.9  多字节写子函数 407
16.3.10  多字节读子函数 409
16.4  C51读写EEPROM实例 410
16.4.1  电路设计 410
16.4.2  程序设计 411
16.4.3  仿真分析 413
16.5  小结 414
16.6  上机实践 414
第17章  C51模拟单总线接口 415
17.1  单总线接口概述 415
17.2  单总线温度传感器及C51操作 416
17.2.1  温度传感器DS18S20概述 416
17.2.2  DS18S20的数据操作及指令 417
17.2.3  DS18S20的访问流程 419
17.2.4  温度转换操作 420
17.2.5  C51模拟单总线操作子函数 421
17.3  C51单总线温度传感器实例 428
17.3.1  电路设计 428
17.3.2  程序设计 430
17.3.3  仿真分析 433
17.4  小结 433
17.5  上机实践 434
第18章  实时时钟芯片应用 435
18.1  实时时钟芯片DS1302概述 435
18.1.1  实时时钟芯片DS1302引脚 435
18.1.2  实时时钟芯片DS1302的日期操作 436
18.1.3  实时时钟芯片DS1302的控制操作 437
18.1.4  实时时钟芯片DS1302的RAM操作 438
18.1.5  实时时钟芯片DS1302数据传输方式 438
18.2  DS1302的控制子函数 440
18.2.1  复位子函数 440
18.2.2  字节读取子函数 440
18.2.3  字节写入子函数 441
18.2.4  年设置子函数 441
18.2.5  月设置子函数 442
18.2.6  日设置子函数 442
18.2.7  星期设置子函数 442
18.2.8  小时设置子函数 443
18.2.9  分钟设置子函数 443
18.2.10  秒设置子函数 443
18.2.11  写保护子函数 444
18.2.12  写允许子函数 444
18.2.13  充电控制子函数 444
18.2.14  初始化子函数 444
18.2.15  RAM字节写入子函数 445
18.2.16  时钟显示子函数 446
18.2.17  多字节突发方式读取RAM子函数 446
18.2.18  多字节突发方式写入RAM子函数 447
18.3  C51读写实时时钟芯片实例 448
18.3.1  电路图 448
18.3.2  程序设计 448
18.3.3  仿真分析 453
18.4  小结 454
18.5  上机实践 454
第19章  C51通信接口程序设计 456
19.1  串行接口通信概述 456
19.1.1  串行接口通信标准 456
19.1.2  串行接口芯片 460
19.1.3  双机及多机通信原理 462
19.2  C51双机通信实例 462
19.2.1  电路原理图 462
19.2.2  发送方程序设计 463
19.2.3  接收方程序设计 465
19.3  C51多机通信实例 466
19.3.1  主机程序设计 467
19.3.2  从机程序设计 471
19.4  小结 475
19.5  上机实践 475
第20章  道路交通灯多任务控制系统 476
20.1  交通灯多任务控制系统概述 476
20.2  C51交通灯多任务控制系统 476
20.2.1  电路原理图 477
20.2.2  建立RTX-51 Tiny项目 477
20.2.3  多任务划分 478
20.2.4  多任务程序设计 479
20.2.5  串行通信及命令获取子函数 487
20.2.6  仿真调试 492
20.3  小结 493
20.4  上机实践 493
第21章  常见面试题及解答 495
21.1  C51编程类面试题 495
21.1.1  预处理 495
21.1.2  C51语言基础 496
21.1.3  循环 498
21.1.4  位操作 499
21.1.5  实用子函数 500
21.2  与MCS-51硬件相关的面试题 502
21.2.1  MCS-51硬件基础 502
21.2.2  硬件编程 504

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

零基础学单片机C语言程序设计
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon