本书以8051系列单片机应用为目的,以项目为载体,以Keil C51 为编程调试软件,介绍了用C语言编写单片机程序的方法,主要包括七个项目,涵盖了单片机的基本知识、C语言基础、LED灯的程序设计、数码管的程序设计、串行口通信原理、交通灯控制系统的程序设计、LCD液晶显示器系统的程序设计等内容。本书内容与行业、职业岗位需要的知识、技能密切结合,意在培养学生良好的实践动手能力和分析解决问题能力。本书可作为高职高专院校工科类专业教材使用,也可供相关技术人员参考阅读。
单片机应用技术是高等职业院校机电类、自动化类、电子信息类专业学生乃至工科非计算机专业学生必须学习的一门专业课。
本书紧跟职业教育的教学改革潮流,突出行业性、实用性、科学性和操作性,采用企业真实业务,贴近职业岗位实际需求,在拉近单片机教学与职业岗位需求距离的同时,兼顾知识的系统性和完整性。
本书以C语言编写单片机应用程序,利用C语言编程功能灵活,程序的可读性、可移植性较强的优点,整合C语言和单片机两个部分的教学内容。本书依据任务驱动、做中学的编写思路,以完成实际项目中的各项任务为编写模式。每个项目均由若干个具体的典型任务组成,每个任务又将相关知识和职业岗位基本技能结合在一起,把知识、技能的学习融入任务过程中。突出了教学内容的实践性、实用性,注重对学生技术应用能力的培养,体现了教、学、做一体化的教学模式。
本书共分七个项目,由盘锦职业技术学院高天哲、直敏和孙卓担任主编,盘锦职业技术学院尤建祥、盘锦高级技工学校王晗、盘锦职业技术学院丛榆坤、沈阳机床(集团)有限责任公司设计研究院关百军担任副主编,盘锦职业技术学院陈金阳、王敏参编。
由于编者水平有限,书中难免会有不妥之处,敬请广大读者和专家批评指正。
编者
2021年8月
项目一单片机的认识
任务1.1单片机综述001
1.1.1单片机的概念001
1.1.2单片机的发展历史002
1.1.3单片机的特点及应用002
1.1.4单片机的发展趋势004
任务1.2单片机的学前准备006
1.2.1数制转换006
1.2.2二进制的逻辑运算009
任务1.3单片机的开发软件环境搭建011
1.3.1编程软件Keil的安装步骤011
1.3.2编程软件Keil的使用步骤014
1.3.3下载器的使用步骤021
项目二C语言基础
任务2.1C语言基础知识介绍025
2.1.1利用C语言开发单片机的优点025
2.1.2C51中的数据类型026
2.1.3C51数据类型扩充定义028
2.1.4C51中常用的头文件028
2.1.5C51中的运算符和表达式029
2.1.6C51中的基础语句032
任务2.2选择语句034
2.2.1if语句034
2.2.2if else语句035
2.2.3else if语句036
2.2.4if语句嵌套037
2.2.5switch多分支语句038
任务2.3循环语句040
2.3.1for语句040
2.3.2while语句042
2.3.3do while循环语句043
任务2.4数组048
2.4.1一维数组048
2.4.2二维数组051
2.4.3字符数组054
任务2.5函数059
2.5.1函数的概念059
2.5.2函数的分类060
2.5.3函数的定义060
2.5.4函数的调用062
2.5.5函数的声明063
2.5.6函数的返回值064
任务2.6指针066
2.6.1指针与指针变量066
2.6.2指针变量的运算069
2.6.3指针与数组070
2.6.4指针与函数074
2.6.5指针与字符串079
2.6.6指针数组与命令行参数084
2.6.7C51中指针的使用087
项目三LED灯的程序设计
任务3.1点亮LED灯的程序设计092
3.1.1单片机的结构组成092
3.1.2单片机的小系统096
任务3.2流水灯的程序设计103
项目四数码管的程序设计
任务4.1数码管静态显示108
4.1.1数码管结构及工作原理108
4.1.2数码器的字形编码109
4.1.3锁存器110
任务4.2数码管动态显示113
4.2.1中断的产生背景113
4.2.2定时器中断的应用114
4.2.3中断的优先级117
4.2.4动态显示的基本原理118
4.2.5数码管显示消隐119
项目五串行口通信原理
任务5.1串行数据转换为并行数据124
5.1.1并行通信和串行通信124
5.1.2单工通信和双工通信125
5.1.3同步通信和异步通信126
5.1.4串行接口的电气标准127
5.1.5串行接口的物理标准131
5.1.6多机通信131
项目六交通灯控制系统的程序设计
任务6.1交通灯控制系统的程序设计136
任务6.2复杂交通灯控制系统的程序设计141
6.2.1定时器/计数器141
6.2.2定时器/计数器的寄存器143
6.2.3定时器/计数器的工作方式144
6.2.4定时器/计数器的应用146
项目七LCD液晶显示系统的程序设计
任务7.1LCD广告牌的程序设计157
7.1.1液晶显示器的原理及特点157
7.1.2LCD 1602液晶显示模块和引脚功能158
7.1.3LCD 1602液晶显示器的编程应用164
附录
附录AC51关键字175
附录BASCII码表176
参考文献