前言 单片机技术在电子信息、电气工程、工业自动化、通信及物联网、汽车电子、航空航天等领域得到广泛应用,人们在生产生活中所用的几乎每件电子和机械产品中都会集成有单片机。单片机又称为微控制器,是嵌入式控制器的一种,是嵌入式系统学习的基础。 20世纪80年代初,英特尔公司推出了8位的8051单片机,此后在8051上发展出了MCS51系列单片机,基于这一内核的单片机至今还在使用。随着应用要求的不断提高和技术的发展,16位单片机和32位单片机成为市场主流,目前,高端的32位单片机主频已经超过600MHz,增强型的高端单片机集成了ADC、DAC、PWM、WDT、LCD驱动电路等功能模块,带有SPI、I2C、CAN等通信接口,实现ISP、IAP编程,进一步提升了性价比,给工程师带来更好的开发体验。当代单片机系统已经不只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机还可以直接使用专用的Windows、Linux、Android等操作系统。 8051单片机是最基础的单片机,其内部结构简单、学习资料丰富,对开发环境要求较低,方便初学者入门,使学习者在进阶学习中能够更深刻地理解接口时序和外围功能电路模块的使用与编程; 51单片机更接近底层硬件,可以使学习者深入积累更多的底层技术基础。只要把51单片机学透,通过51单片机的学习掌握单片机的内部资源、外围扩展和使用编程技巧,入门后遇到从未用过的单片机也能触类旁通,很快上手。因此,国内绝大多数高校都用51单片机进行单片机入门教学。 C语言与汇编语言相比,在功能性、结构性、可读性、可维护性上有明显的优势,C51是在标准C语言的基础上针对51单片机的硬件特点进行的扩展,并向51单片机上移植, C51已经成为公认的高效、简洁而又贴近51单片机硬件的实用高级编程语言。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。其方便易用的集成环境、强大的软件仿真调试工具使开发者事半功倍。 单片机程序开发不同于通用的计算机应用程序设计,它是软、硬件相结合的,必须针对具体的微控制器和外围电路来实现。对于单片机初学者,在制作电路的基础上进行软、硬件联合调试具有较高难度和成本,很多公司推出了单片机开发板、实验箱、编程器、仿真器等,方便初学者和开发者进行学习。英国Labcenter Electronics公司出品的EDA工具软件Proteus,不仅具有其他EDA工具软件的仿真功能,还能仿真单片机及外围器件,它是目前最好的仿真单片机及外围器件的工具,其处理器模型支持多种主流单片机,Proteus软件为在纯软件环境中完成系统设计与调试成为可能,为单片机学习和工程开发提供了理想的平台。 本书主要基于ATMEL公司8051内核的AT89C51单片机进行讲解,实例用C语言在KeilμVision4集成开发环境下编写,所有的实例都可以在Proteus仿真软件中运行。本书共分四部分,14章内容。 第一部分: 基础知识 本部分主要介绍单片机硬件结构、集成开发环境和仿真软件、C51编程基础。包括4章内容: 第1章单片机概述,介绍单片机的概念、发展历史、发展趋势及应用领域; 对学习单片机的方法进行探讨; 介绍本课程将接触到的工具、设备和软件; 回顾数制、编码和数据的基础知识。第2章AT89C51单片机的硬件结构和原理,介绍AT89C51单片机的内部硬件资源、各功能部件及原理。第3章仿真和集成开发环境使用,讲解Keil μVision4集成开发环境和电路仿真软件Proteus 7.5的初步使用。第4章C51程序设计基础,初步介绍如何使用C51来进行AT89C51单片机程序开发,重点介绍C51对标准C语言所扩展的部分,并通过一些例程来讲解C51的程序设计思想。 第二部分: AT89C51单片机内部资源及编程 本部分是本课程的核心,主要介绍单片机内部资源结构,通过大量例子讲解内部资源的使用与编程。包括4章内容。第5章单片机的并行I/O口原理及编程,介绍51单片机P0、P1、P2、P3四组并行I/O口的结构及使用与编程。第6章单片机中断系统,介绍中断的基本概念、AT89C51单片机的中断系统、中断服务函数的语法,并通过几个实例讲解外部中断源的使用与编程方法。第7章AT89C51单片机的定时器/计数器,介绍51单片机定时器/计数器的内部结构、工作方式、相关控制寄存器、初值计算方法,并通过多个实例讲解定时器/计数器的使用与编程方法。第8章单片机的串行口,介绍通信的基础知识,UART的基本结构和工作原理,串口的4种工作方式,与串口相关的特殊功能寄存器。通过实例讲解同步移位寄存器在串行转并行和并行转串行的应用,单片机串口双机通信、多机通信、单片机与PC的通信,并简要介绍常用标准通信接口RS232、RS485、USB。 第三部分: AT89C51单片机系统扩展及接口技术 本部分主要介绍单片机的键盘与显示接口技术,A/D、D/A转换,常见接口扩展技术。包括3章内容: 第9章单片机键盘与显示接口技术,讲解键盘、数码管显示驱动芯片、液晶与单片机的接口设计与软件编程。第10章 A/D与D/A转换接口技术,介绍ADC和DAC的使用,通过实例讲解几种典型的ADC与DAC与单片机的接口设计及软件编程。第11章单片机的系统扩展,介绍51单片机系统的三总线并行扩展技术,SPI、I2C、1Wire串行扩展技术和一些常见的外围芯片和单片机的接口与编程。 第四部分: AT89C51单片机进阶应用 本部分主要介绍单片机的应用系统设计方法和抗干扰设计方法,电机控制方法和模块化程序设计方法。包括3章内容: 第12章单片机的应用系统设计及抗干扰技术,介绍单片机应用系统的组成、应用系统设计步骤,分析单片机应用系统硬件设计和软件设计应考虑的问题,介绍干扰的来源,硬件和软件的抗干扰措施。第13章单片机的电机控制,介绍直流电机、步进电机和舵机的工作原理及单片机的基本控制方法,并通过实例讲解电机的启停、正反转和调速等基本控制编程。第14章单片机的模块化程序设计,介绍单片机模块化划分的原则、C51模块化编程的方法和规范、在Keil4中单片机模块化工程建立的方法和步骤,并通过由浅入深的几个实例讲解单片机模块化程序设计的方法。 本书可作为测控技术与仪器、机械电子工程、电子信息工程等对单片机要求较高专业的教材,也可以作为机械设计制造及其自动化、车辆工程、材料成型与控制工程等对单片机要求较低专业的教材。本书可供少学时(32~48学时)选用,也可供多学时(64学时及以上)选用。对于少学时专业,主要讲授第一部分和第二部分的章节、第三部分第9章。对于多学时专业,主要讲授第一、二、三部分章节和选讲第四部分部分章节。 本书所有案例均可到清华大学出版社网站下载,包括案例仿真电路和C语言源程序。由于编者水平有限,书中错漏之处在所难免,请读者提出宝贵意见,以不断改进。 编者 2022年6月 配套资源扫码下载