51单片机开发快速上手(txt+pdf+epub+mobi电子书下载)


发布时间:2021-01-21 18:19:57

点击下载

作者:杜树春

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

51单片机开发快速上手

51单片机开发快速上手试读:

前言

单片机又称嵌入式处理器。按通常的说法,用于嵌入式应用的处理器可分为4类,即微控制器或单片机(MicroController Unit, MCU)、嵌入式微处理器(Embedded Microprocessor Unit, EMPU)、信号处理领域的DSP处理器(Digital Signal Processor, DSP)和高度集成的片上系统(System on Chip, SoC)。

单片机应用和教学最流行的是8051系列。8051是Intel公司1980年设计的8位MCU。20世纪80年代中期,Intel公司将8051单片机内核使用权以专利互换或出售形式转让给世界许多著名的IC制造厂商,如Philips、Atme1、Dallas、Infineon、ADI、Winbond和SiliconLabs公司等,这样8051就变成有众多制造厂商支持的、发展出上百个品种的大家族。到目前为止,其他任何一个单片机系列均未发展到如此的规模,它是近30年一直普遍流行的产品。8051是单片机教学的首选机型,因为它是目前应用最广泛、使用人数最多的单片机,已成为单片机领域的实际标准。51系列单片机作为最理想的学习用单片机的另一个理由是:其内部资源丰富,样片容易得到,学习资料也非常丰富,C语言编译器及片内Flash程序存储器的使用降低了单片机实验的门槛。

1.本书特点

本书是一本介绍51单片机如何应用的入门读物,所应用的软件有两个,即单片机开发软件KeilC51集成开发环境和单片机仿真软件Proteus。

本书大部分篇幅是介绍51单片机和外围器件接口方法的,每一种实例选用一种接口芯片。介绍的顺序为:首先是该单片机接口芯片功能简介,其次是该芯片与单片机连接电路原理,该芯片的C51语言程序,程序设计和调试,最后是使用该芯片的注意事项。

本书中51系列单片机实例部分,对每种芯片都提供了C51语言程序。C51语言程序和汇编语言比较起来,有更大的优越性,有更多的人在使用。

为与Proteus软件中的电路图保持一致,本书电路中电阻、电容单位的不规范处不做更改,如10K不改为10kΩ,10uF不改为10μF。

2.本书内容

本书共分12章,各章内容说明如下:

第1章介绍51单片机的基础知识,包括51单片机的基本结构、51单片机的C51语言和51系列单片机的常用型号及功能等。

第2章介绍单片机仿真软件Proteus的使用方法,包括源代码级调试和Keil C与Proteus联合调试方法。

第3章介绍单片机开发软件Keil C51集成开发环境及Keil C51的使用方法。

从第4章到第12章全部是单片机和外围芯片连接的例子,每一章讨论一类芯片。

第4章介绍LED显示器,包括和单片机I/O线直接连接的LED、通过显示译码器和单片机连接的LED显示器、通过触发器/移位寄存器和单片机连接的显示器及通过专用显示器驱动芯片和单片机连接的显示器。

第5章介绍内存的扩展,包括程序存储器的扩展、数据存储器的扩展及程序存储器和数据存储器的一同扩展。

第6章介绍A/D 转换器,包括并行8位A/D转换器ADC0804、串行8位A/D转换器TLC549和串行12位A/D转换器MAX128。

第7章介绍 D/A 转换器,包括串行10位D/A转换器MAX504和串行10位D/A转换器TLC5615。

第8章介绍时钟芯片,包括不用时钟芯片的时钟日历电路和不带RAM 的实时时钟芯片PCF8563。

第9章介绍模拟开关,包括模拟电子开关 CD4067和串行控制的8通道单刀单掷开关MAX335。

第10章介绍单总线器件,包括信息按钮DS1990A和1024位1-Wire EEPROM DS2431。

第11章介绍传感器,包括两种数字传感器——温度传感器 DS1621和温湿度传感器SHT11。

第12章介绍数字电位器——256抽头双数字电位器MAX5413。

本书有两个附录,即附录A和附录B。附录A是计算CRC8(8位循环冗余校验码)的C51语言程序;附录B是4字节十六进制数变浮点数C语言程序。

3.电子资料包

电子资料包的内容仍是以书中章节为单位。在每一章(指第4章至第12章)下,都有一个章文件夹,每章下面的每节又有节文件夹,节文件夹内有多个文件。其中,扩展名为“DSN”的文件是Proteus仿真原理图文件,在Proteus 软件已安装在计算机中的前提下,双击具有“DSN”扩展名的文件就可进入显示电路原理图界面,也就是Proteus的调试状态;扩展名为“C”的是C51语言程序;扩展名为“UV2”的是Keil C51工程文件;扩展名为“HEX”的是用Keil C51软件对上述C51语言程序编译生成的十六进制文件。在原理图的单片机上双击,在弹出的“编辑元件”对话框的“Program Files”文本框中输入“×××. HEX”,单击“确定”按钮即可完成十六进制程序文件载入,之后就可以进行仿真和调试了。

4.适用读者

本书适用于51系列单片机(包括C51高级语言)的初学者,书中C51高级语言的程序实例全部经过实际调试。对于有一定基础的人,书中的模块可以直接使用。本书既适用于工程技术人员参考和套用,也可作为各工科大、专院校和中等专业学校(包括中技和职高)的51系列单片机辅助或参考教材。

5.致谢

本书在编写过程中,得到了电子工业出版社张剑的指导和帮助;同时,得到杜菲、程青平等人的协助。在此,向以上单位和个人表示衷心感谢。

由于作者水平有限且时间仓促,书中难免存在缺点和错误,恳请读者批评指正,可通过电子邮箱E-mail: dushuchun@263. net与作者联络。编著者2014年10月第1章51单片机基础知识什么是单片机?单片机就是把中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时器/计数器和各种输入/输出接口(I/O接口)电路等部件集成在一块集成电路芯片上的微型计算机。所以,单片机就是微型计算机(Single Chip Microcomputer)的简称。因为单片机在控制方面的重要应用,国际上又把单片机称为微控制器(Microcontroller)。单片机应用广泛,可以说凡是与控制和计算有关的电子设备其核心部件都是单片机。本章将简要介绍51单片机的基本结构和功能、51单片机的C51语言及51系列单片机的常用型号和功能。1.151单片机基本结构1.51单片机的基本组成

现以8051为例(Intel产品)介绍51单片机。图1-1是MCS-51单片机组成及结构图。8051单片机各部分功能如下。图1-1 8051单片机组成及结构(1)1个8位中央处理器(CPU),中央处理器是单片机的核心,完成运算和控制功能。(2)1个片内振荡器及时钟电路,时钟电路产生时钟信号,送给单片机内部各个电路,使它们有节奏地工作。时钟信号频率越高,单片机工作速度越快。(3)128B RAM(数据存储器)。51单片机芯片中共有256B RAM单元,其中,后128B RAM单元被专用寄存器占用,通常称为特殊功能寄存器;供用户使用的只有前128B RAM单元,用于存放可读/写的数据。(4)4KB ROM(程序存储器),用以存放程序或原始数据。(5)两个16位定时器/计数器,用以实现定时或计数功能。(6)32条可编程的I/O线,4个8位并行I/O端口P0、P1、P2和P3。(7)1个全双工串行口,用以实现单片机和其他设备之间的串行数据通信。(8)5个中断源,有两个外部中断源、两个定时器/计数器中断源和一个串行中断源。2.51单片机的引脚与功能

图1-2是8051单片机的引脚图。8051单片机的引脚功能如下。图1-2 8051的引脚图(1)电源线,+5V供电;

VCC(40)——+5V;

GND(20)——地。(2)晶体振荡器信号输入/输出:

XTAL2(18)——晶体振荡器信号输入;

XTAL1(19)——晶体振荡器信号输出。(3)输入/输出线:

P0.0 ~P0.7——P0口,I/O口或低8位地址总线/数据总线;

P1.0 ~P1.7——P1口,I/O口;

P2.0 ~P2.7——P2 口,I/O口或高8 位地址总线;

P3.0 ~P3.7——P3 口,I/O 口或第二功能,当 P3口某些引脚作为第二功能使用时,不可再作为 I/O 口线使用。(4)控制信号线:

ALE/PROG(30)——地址锁存控制信号(Address Latch Enable), ALE用于将地址总线的低8位锁存。该信号频率为晶振频率的1/6,可作为外部定时或时钟使用。

PSEN(29)——外部程序存储器读选通信号(Program Store Enable),该信号为低电平时,CPU从外部程序存储器单元读取指令。

EA/VPP(31)——内外程序存储器选择控制(External Access Enable)。当EA引脚加上低电平时,CPU对程序存储器的操作仅限于单片机外部程序存储器;当EA引脚加上高电平时,CPU对程序存储器的操作从单片机内部程序存储器开始,并可延伸到单片机的外部程序存储器。

RESET(9)—— 复位信号。RESET持续2个机器周期以上的高电平,单片机复位。复位后程序计数器 PC =0000H,即复位后将从程序存储器的0000H 单元读取第一条指令码,通俗地说,复位后单片机从头开始执行程序。(5)部分引脚的第二功能(复用,同一个引脚被双重定义):表1-1是 P3口引脚的第二功能。表1-1 P3口引脚的第二功能3.51单片机的内部存储器

1)51单片机存储器的编址方法 在物理结构上,51单片机有4个独立的存储空间,它们分别是片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器,并且地址空间有部分重叠,如图1-3所示。

在读/写逻辑上,51单片机具有3个逻辑空间,分别是:(1)片内外统一编址的64KB ROM(0000H~FFFFH);(2)片外64KB RAM(0000H ~FFFFH);(3)片内256B的RAM(00H ~FFH)。

2)片内RAM 存储器 51单片机片内RAM区功能分布如图1-4所示。图1-3 51单片机存储区结构图1-4 51单片机片内RAM区功能分布(1)通用寄存器区:从00H ~1FH的32字节为通用寄存器区,每个区中都有8个寄存器R0 ~R7,因为4个区的寄存器重名,所以任意时刻只能有一个区的寄存器在工作。区的选择由PSW寄存器的第4位和第3位(PSW.4, PSW.3)决定,如表1-2所示。(2)位寻址区:从20H ~2FH为位寻址区,在这16字节中,每个二进制位都有一个地址,可以单独置位或复位,所以,这16字节既可以按字节操作,又可以按位操作,字节地址与位地址的对应关系如表1-3所示。表1-2 寄存器工作区选择表1-3 RAM 位寻址区地址表(3)特殊功能寄存器:51单片机的特殊功能寄存器(Special Function Register)SFR 有21个,它们分布于80H ~FFH,如表1-4所示,其中空白处为未定义单元。表1-4 特殊功能寄存器地址分布

从某种意义上讲,掌握了特殊功能寄存器的用法,也就掌握了单片机的软件设计,因为单片机的许多功能都是通过操作SFR来实现的。表1-5列出了各个特殊功能寄存器的功能说明。表1-5 51单片机特殊功能寄存器功能说明4.专用寄存器

1)A(累加器) 又叫ACC,是使用最频繁的寄存器。

2)B(寄存器) 作乘除法时离不了它。作乘除法时其使用格式是:

乘法 (A)×(B)→(BA)

除法 (A)/(B)→(A)…(B)

3)堆栈指针 SP(8位寄存器) 原则上51单片机的堆栈区可以设在内部 RAM 00H ~7FH的任何区域。考虑到00H ~1FH 为工作寄存器区最好不设堆栈区,20H ~2FH 为寻址区最好不设堆栈区,一般多在片内RAM的30H ~7FH范围中选择适当的区域。

复位后(SP)=07H;若不对SP赋值,堆栈将从08H 单元开始执行。SP 的内容可由硬件改变(例如,由中断改变SP)和软件设置。

4)数据指针DPTR DPTR由高8位DPH和低8位DPL组成,可以作为一个16位寄存器使用和访问,也可以分成两个独立的8位寄存器单独使用和访问。其主要作用是:①作为间接寄存器,存放16位地址,访问64KB 的外 RAM 区;②作为基址寄存器,存放16位基址,加上变址后可访问ROM,用来读ROM中的常数、表格等。

5)串行数据缓冲器SBUF 它包括两个寄存器——发送缓冲器和接收缓冲器。这两个寄存器共用一个地址。其作用是:存放欲发送的数据或已接收的数据。

6)定时器 T0(TH0和 TL0)和 T1(TH1和 TL1) 16位定时器/计数器(TH ×高8位,TL ×低8位),可作为16位定时器/计数器使用,但必须高、低8位单独访问(读/写)。

7)P0 ~P3 4个并行的输入/输出端口的寄存器,其内容分别对应4个端口引脚的输入/输出值。

8)程序状态字PSW 其作用是存放运行程序中的状态信息,格式为:CY——进位标志,也称借位标志。如果两数相加超过255或两数相减小于0,则 CY置1。AC——半进位标志,或称辅助进位标志。如果低4位向高4位有进位或者借位,其值置1。F0——用户标志位,软件可置0和1,可测定F0的状态决定程序的转移。RS1、RS0——工作寄存器选择位。OV——溢出标志,加、减、乘、除等运算影响该位。当操作结果位6对位7有进位,而位7对CY无进位,或位6对位7无进位,而位7对 CY 有进位时,OV =1;否则OV=0。P——累加器A的奇偶标志。1.251单片机的C51语言

汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更难读懂,而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,并且 C 语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用 C 语言的开发周期通常要短于汇编语言很多。

C51语言是针对51系列单片机使用而开发的一种高级语言,它和普通的 C 语言大同小异。1.一个极简单的C51程序

下面通过一个简单的例子介绍C51语言的特点和书写格式。

这个程序的作用是通过单片机向P0口所接的硬件输出一个数据,如可以点亮P1.0引脚上的发光二极管(LED)。

1)“文件包含”的处理 程序的第1行是一句注释,程序的第2行是一个“文件包含”处理,是指一个文件将另外一个文件的内容全部包含进来。由于单片机不认识“P1”,因此必须给“P1”定义。包含文件里就有“P1”的定义,只要程序开头有“#include”一句,“P1”等各个寄存器的名字就为单片机所认识了。

2)main()函数 main()函数为主函数,每个C语言程序必须有且只能有一个主函数;函数后面一定要有一对大括号“{}”,程序就写在大括号里。

3)语句结束标志 语句必须以分号“; ”结尾。

4)注释 C语言程序中的注释是为了提高程序的可读性。在编译时,注释的内容不会被执行。注释有两种方式:一种采用“/*……*/”的格式;另一种采用“//”的格式。前者可以注释多行内容,后者只能注释一行内容。2.C51中基本的数据类型

C语言程序中有各种变量,不能给变量赋任意大小的数,因为“变量”的大小是有限制的。变量在单片机的内存中是要占据空间的,变量不同所占据的空间也不一样。和其他高级语言一样,C51语言对变量也是要求“先定义,后使用”。例如,定义变量x为无符号字符型(unsigned char),给x赋值就要在0 ~255内,其他类型也一样。单片机C51语言中常用的数据类型如表1-6所示。表1-6 单片机 C语言中常用的数据类型3.C51中常用的头文件

头文件就是放到C51语言开头的文件。

头文件通常有 reg51. h、reg52. h、math. h、ctype. h、stdio. h、stdlib. h、absacc. h、intrins. h。但常用的只有reg51. h、reg52. h、math. h。

reg51. h和reg52. h是定义51单片机(如AT89C51、8031)或52单片机(如 AT89C52、8032)特殊功能寄存器和位寄存器的。

math. h是定义常用数学运算的,如求绝对值、方根、正弦和余弦等。该头文件中包含各种数学运算函数,需要时可以直接调用它们。4.C51中的运算符

C51中的算术运算、关系(逻辑)运算和位运算符如表1-7 ~表1-9所示。“/”用在整数除法中时,10/3 =3;用在小数除法中时,10/3.0 =3.33333。“%”为求余运算,如10% 3 =1。“==”两个等号写在一起表示测试相等,即判断两个等号两边的数是否相等;“! =”判断两个等号两边的数是否不相等。5.C51中的基础语句

C51中用到的基础语句如表1-10所示。表1-7 算术运算符表1-8 关系(逻辑)运算符表1-9 位运算符表1-10 C51中用到的基础语句6.C51语言程序和51汇编语言程序的异同(1)C51程序开头是头文件reg51. h或reg52. h,有时有其他头文件。(2)C51程序中有并且只有一个main()函数或程序,程序从main()开始执行。(3)C51中,要在程序开头定义变量,对变量要“先定义,再使用”。常用变量为unsigned(signed)char、unsigned(signed)int、unsigned(signed)long、float、bit等。(4)C51中,51单片机的特殊功能寄存器用大写,如 P0、T1、SMOD 等,其余用小写;汇编语言中一般全用大写。(5)在汇编语言中,程序开头有“ORG XXXX”,末尾有“END”; C51中的 {} 要配对。(6)C51建立工程文件的方法和汇编语言相同,C51语言程序的扩展名为“C”,汇编语言程序的扩展名为“ASM”;所建工程文件扩展名均为“UV2”。编译、调试方法两种语言近似。(7)混合编程。理论上两种语言可以互调,但用得多的还是C语言调用汇编语言。(8)C51中,注释有两种方式:一种采用“/*……*/”的格式;另一种采用“//”的格式。在汇编语言中,只有一种格式,就是“; ”。1.351系列单片机常用型号

单片机教学最流行的是8051系列。8051是Intel公司1980年设计的8位MCU。20世纪80年代中期,Intel公司将8051单片机内核使用权以专利互换或出售形式转让给世界许多著名的IC制造厂商,如Philips、Atme1、Dallas、Infineon、ADI、Winbond和Silicon Labs公司等,这样8051就变成有众多制造厂商支持的、发展出几十个系列、上百个品种的大家族。到目前为止,其他任何一个单片机系列均未发展到如此的规模,近30年一直是普遍流行的产品,相当具有生命力。8051是单片机教学的首选机型,已成为单片机领域的实际标准。

这些51系列单片机的特点是它们的主体结构或框架是相同的,不同厂家生产的不同型号只是在同一个框架中增加若干部件或减少若干部件,它们都可以用MCS-51汇编语言和C51语言编程。

以下是常用的51系列单片机型号及主要功能介绍。1.Intel(英特尔)公司(见表1-11)表1-11Intel公司51单片机① 8051内有4KB ROM,8751内有4KB EPROM,8031内没有 ROM/EPROM。2.Atmel(爱特梅尔)公司(见表1-12)表1-12 Atmel公司51单片机3.Winbond(华邦)公司(见表1-13)表1-13 Winbond公司51单片机4.Philips(飞利浦)公司(见表1-14)表1-14 Philips公司51单片机5.Hyundai(现代集团)公司(见表1-15)表1-15 Hyundai公司51单片机6.ADI(模拟器件)公司(见表1-16)表1-16 ADI公司51单片机7.DALLAS(达拉斯)公司(见表1-17)表1-17 DALLAS公司51单片机

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载