本书是根据教育部应用型科技大学的教学要求和*大纲编写而成的。全书以MCS-51系列单片机为例,通过丰富的应用实例,采用理论和实践相结合的方法,由浅入深地介绍了51系列单片机的结构及工作原理、内部硬件资源及单片机的系统扩展、A/D、D/A、常用接口设计及常用的编程语言(汇编语言与C51)和开发工具(Proteus、Keil C)的使用等内容,并介绍了单片机应用系统的设计、开发与调试过程。本书注重学生能力的培养,采用案例教学,融"教、学、练一体化,案例中将Proteus和keil C相结合,实践性和可操作性强。编程以C51为主,兼顾汇编语言程序设计。*后给出了详细的单片机实验指导和课程设计实例,供实践教学参考。
本书可作为高等院校电子信息工程、通信工程、电子科学与技术、计算机、自动化、机电一体化等相关专业的本、专科教材和参考书,也可供从事单片机应用开发的工程技术人员及其他工程技术人员参考,同时还可以作为全国大学生电子设计竞赛的培训教材。
单片机原理及应用是工科类院校开设的一门面向应用、具有很强的实践性与综合性的课程,为了培养学生应用单片机技术进行电子产品的软硬件设计和制作能力,积累开发经验,通过对传统的教学模式改革、案例教学,使初学者理解单片机的工作过程和应用系统的开发流程,使用Labcenter公司的Proteus仿真软件创建实验环境,进行软、硬件仿真,做到了融教、学、练于一体,边学理论,边实践。
本书采用案例教学,内容安排合理,定位准确,实用性强,注重实践能力的培养,满足应用型科技大学的教学目标、培养方向和办学特色的需要,以能力培养为目标、以工作过程为导向,用案例贯穿知识,用任务驱动教学,内容精炼,注重实用。
全书共分10章。
第1章介绍了51单片机的系统结构及引脚功能;第2章介绍了51单片机程序设计基础;第3章介绍了单片机中断系统、定时/计数器、串行口;第4章介绍了单片机的系统扩展;第5章和第6章分别介绍了A/D转换、D/A转换及常用接口的设计;第7章介绍了单片机应用系统的设计、开发与调试方法;第8章介绍了单片机常用开发工具;第9章和第10章分别给出了实验指导和课程设计实例。
本书由禹定臣、李白燕担任主编,张健、李平、魏迎军担任副主编。由电子信息工程、通信工程专业教学一线教师合作编写完成。第1章~第2章由李平编写,第3章~第4章由李白燕编写,第5章~第7章由张健编写,第9章~第10章及实例由禹定臣编写,第8章、附录、习题由魏迎军编写。全书由禹定臣教授定稿,耿红琴教授主审。在编写过程中参阅借鉴了一些相关教材和文献,在此向有关编者表示感谢。
由于编写时间仓促,书中难免有疏漏和不妥之处,欢迎读者批评指正,以便再版时及时修正。
编者
2016.9
禹定臣,教育思想观念先进,教学内容理论联系实际,教学方法灵活创新, 主张并积极尝试了案例式、问题式、讨论式、研究型教学方法改革,在教学实践中形成了激趣、启思、求活、务实的教学风格和注重启迪、鼓励创新的教学特点,教学效果优秀,受到学生欢迎。
第1章 MCS-51单片机硬件结构1
1.1 知识结构1
1.1.1 单片机内部结构1
1.1.2 引脚功能15
1.2 学习实例17
实例一 LED灯闪烁17
实例二 LED流水灯19
实例三 转向灯21
本章小结22
习题一22
第2章 单片机汇编语言与C语言程序设计基础25
2.1 知识结构25
2.1.1 汇编语言程序设计25
2.1.2 C51程序设计49
2.2 学习实例66
实例一 用P1口、P2口分别显示二进制加、减法结果66
实例二 用P2口实现左右跑马灯效果68
实例三 用查表法实现P2口接的8只LED灯花样显示71
本章小结73
习题二73
第3章 单片机中断系统、定时器/计数器及串行口77
3.1 知识结构77
3.1.1 中断系统77
3.1.2 定时器/计数器82
3.1.3 串行口86
3.2 学习实例92
实例一 用 和 对按键进行计数并显示计数结果92
实例二 用T0工作在方式1时控制播放一首歌曲94
实例三 用T0工作在方式1时控制LED灯的闪烁时间间隔96
实例四 用T0工作在方式2时对脉冲进行计数并显示计数结果98
实例五 用串行口工作在方式0时扩展输出接口99
实例六 用串行口工作在方式1时实现双机通信101
实例七 单片机向PC机发送数据102
实例八 单片机接收PC机发送的数据104
本章小结106
习题三106
第4章 51单片机系统扩展109
4.1 知识结构109
4.1.1 单片机系统总线及系统扩展方法109
4.1.2 单片机存储器的扩展112
4.1.3 并行I/O口扩展117
4.2 学习实例131
实例一 用62256扩展32KB的外部RAM131
实例二 用27256扩展32KB的外部ROM132
实例三 用AT24C02扩展EEPROM133
实例四 用74LS273、74LS241扩展I/O接口137
实例五 用8255芯片扩展键盘/显示接口139
实例六 用8155芯片扩展显示接口142
实验七 用74ls165、74ls164扩展键盘/显示接口144
本章小结145
习题四145
第5章 DAC和ADC接口148
5.1 知识结构148
5.1.1 A/D转换器件148
5.1.2 D/A转换器件150
5.2 学习实例152
实例一 基于ADC0809的5V直流电压表设计152
实例二 用DAC0832设计简易信号发生器154
本章小结157
习题五157
第6章 键盘与显示接口设计160
6.1 知识结构160
6.1.1 键盘接口设计160
6.1.2 LED显示接口设计165
6.1.3 LCD显示接口设计168
6.2 学习实例173
实例一 用LED数码管循环显示0~9173
实例二 用LED数码管动态显示HELLO175
实例三 数码时钟设计176
实例四 独立式键盘控制步进电动机正、反转180
实例五 矩阵式键盘按键值的数码管显示183
实例六 矩阵式键盘按键值的LCD显示185
实例七 用1602LCD显示HUANG HUAI UNIVERSITY187
实例八 用12864LCD显示汉字190
本章小结193
习题六194
第7章 单片机应用系统设计与调试简介195
7.1 知识结构195
7.1.1 单片机应用系统的设计步骤195
7.1.2 应用系统的硬件设计196
7.1.3 应用系统的软件设计197
7.1.4 单片机应用系统的开发与调试197
7.1.5 单片机应用系统的可靠性与抗干扰性设计199
7.2 学习实例204
实例一 基于DS1302的日历时钟设计204
实例二 基于ADC0832和LCD1602的数字电压表设计212
本章小结215
习题七215
第8章 常用开发仿真软件Keil c和Proteus简介216
8.1 知识结构216
8.1.1 Keil C编译器使用简介216
8.1.2 Proteus仿真软件使用简介221
8.2 学习实例225
实例一 通过P1.0输出周期为20ms的方波信号225
实例二 计单个按键次数并显示227
本章小结228
习题三229
第9章 单片机实验指导230
实验一 P1口实验230
实验二 交通灯控制实验234
实验三 简单I/O口扩展实验238
实验四 外部中断实验243
实验五 定时器实验247
实验六 8255A可编程并行接口实验251
实验七 数码显示实验253
实验八 液晶显示屏1602显示实验256
实验九 串/并转换实验260
实验十 A/D转换实验263
第10章 单片机课程设计实例267
实例一 基于单片机的简易计算器设计267
实例二 基于单片机的数字电压表设计272
实例三 基于单片机的电子日历设计276
实例四 基于单片机的具备温度显示的数字时钟设计284
实例五 基于单片机的具备转速显示功能的直流电动机控制系统设计293
实例六 基于单片机的红外遥控器控制继电器的设计297
附录304
附录A MCS-51系列单片机指令表304
附录B Protreus的常用元器件309
附录C C51常用库函数314
参考文献319