单片微机原理与接口技术——基于STC15系列单片机(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-22 01:50:45

点击下载

作者:丁向荣

出版社:电子工业出版社

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

单片微机原理与接口技术——基于STC15系列单片机

单片微机原理与接口技术——基于STC15系列单片机试读:

前言

STC系列单片机传承于Intel8051单片机,但在传统8051单片机框架基础上注入了新鲜血液,焕发出新的“青春”,在性能上进行了改进,在功能上进行了扩展。STC单片机的在线下载编程功能(可节省仿真器、编程器)以及分系列的资源配置,增加了单片机型号的选择性,可根据单片机应用系统的功能要求选择合适的单片机,从而降低单片机应用系统的开发难度与开发成本,使得单片机应用系统更加简单、实效,提高了产品的性能价格比。STC系列单片机相比传统的8051单片机具有强大的优势,它在我国应用市场中已占有较大的份额。传统的8051单片机教材与现实中使用的单片机存在较大的差距,本教材使单片机技术的教学与单片机技术的发展同步,保障单片机教学与单片机应用的无缝“链接”。

STC系列单片机作为中国本土MCU的领航者,现已发展了STC89/90系列、STC10/11系列、STC12系列、STC15系列,本教材选用STC最新系列STC15系列的STC15F2K60S2单片机作为主讲机型,系统地介绍了STC15F2K60S2单片机的硬件结构、指令系统与应用编程。

STC系列单片机的指令系统和标准的8051内核完全兼容,原来讲解8051单片机的师资力量可以充分发挥以前讲解单片机原理及应用课程的经验;对于具有8051单片机知识的读者,也不存在转型困难的问题。

本教材力求实用性、应用性与易学性,以提高读者的工程设计能力与实践动手能力为目标。本书具有以下几方面的特点:(1)单片机机型贴近生产实际。STC单片机是我国8位单片机应用中市场占有率最高的,更难能可贵的是,STC单片机是我国本土的MCU。(2)采用“双”语言编程。在绝大多数应用程序的编程中,采用汇编语言和C语言(C51)对照编程。采用汇编语言程序设计的学习更有利于加强对单片机的理解,而C51在功能、结构上以及可读性、可移植性、可维护性方面都有非常明显的优势。(3)理论联系实际。在学习单片机指令系统前的第3章就专门介绍了单片机应用的开发工具,贯穿程序的编辑、编译、下载与调试。强化单片机知识的应用性与实践性,不论是一条指令,或若干条指令,或一个程序段都可以用开发工具进行仿真调试或在线联机调试。(4)强化单片机应用系统的概念。学习单片机就是为了能开发与制作有具体意义的单片机应用系统,第13章介绍了单片机基本的外围接口技术与典型单片机应用系统的设计与开发。(5)在教材的编写中,直接与STC单片机的创始人姚永平先生进行密切沟通与交流,姚永平先生亲自担任本教材的主审,确保了教材内容的系统性与正确性。(6)开发与教材配套的STC-15型单片机通用开发板,建立与教材同步的STC教学资源网站(www.stcstudy.com)。

在本书的编写过程中,深圳宏晶科技有限公司技术部工程人员在技术上给予了大力支持和帮助,公司姚永平总经理对全书进行了认真审阅,并提出了宝贵意见。杨军博士给本教材提供了许多有益的建议,在此,对所有提供帮助的人表示感谢!

由于编者水平有限。书中定有疏漏和不妥之处,敬请读者不吝指正!垦请您的宝贵意见,可发电子邮件到:dingxiangrong65@163.com,与作者进一步沟通与交流。

编者

2012.2于广州

第1章 微型计算机基础

1.1 数制与编码

数制与编码是微型计算机的基本数字逻辑基础,是学习微型计算机的必备知识。数制与编码的知识一般会在数字逻辑或计算机文化基础中学习,但往往由于数制与编码的知识,与当前课程的关系并非“不可或缺”,又比较枯燥。在微型计算机原理或单片机的教学中,教师普遍感觉到,学生在这方面的知识基础不扎实。在此,提纲挈领再理一理。1.1.1 数制及转换方法

所谓数制就是计数的方法,通常采用进位计数制。在微型机算机的学习与应用中,主要有十进制、二进制和十六进制三种计数方法。日常生活中采用的是十进制;微型计算机只能识别和处理数字信息,微型计算机硬件电路采用的是二进制,但为了更好地记忆与描述微型计算机的地址和程序代码、运算数字,一般采用十六进制。

1.各种进位计数制及其表示方法

见表1.1所示。表1.1 二进制、十进制与十六进制的计数规则与表示方法

2.数制之间的转换

任意进制之间相互转换,整数部分和小数部分必须分别进行。各进制的相互转换关系如图1.1所示。(1)二进制、十六进制转换为十进制。将二进制、十六进制数按权值展开式展开相加所得数,即为十进制数。图1.1 各进制的相互转换关系图(2)十进制转换为二进制。十进制转换为二进制要分成整数部分与小数部分,而且其转换方法完全不同。

① 整数部分——除2取余法,倒序排列,如下所示:

∴(84)=(1010100)102

② 小数部分——乘2取整法,顺序排列,如下所示:

∴(0.6875)=(0.1011)102

将上述两部分合起来,则有:(84.6875)=(1010100.1011)102(3)二进制与十六进制互转。

① 二进制转换为十六进制。以小数点为界,往左、往右4位二进制数为一组,每4位二进制数用1位十六进制表示,往左高位不够用0补齐,往右低位不够用0补齐,例如:

② 十六进制转换为二进制。每位十六进制数用4位二进制数表示,再将整数部分最高位的0去掉,小数部分最低位的0去掉,例如,

数制转换工具:利用PC机附件中的计算器(科学型)可实现各数制间的相互转换。单击任务栏“开始”按钮,选择“所有程序”→“附件”→“计算器”,即可打开计算器工具,在计算器工具界面“查看”菜单栏中选择“科学型”,如图1.2所示。图1.2 科学型计算器与各进制转换

转换方法:先选择被转换数制的类型,输入转换数字,再选择目标转换数制类型,此时看到的就是转换后的数字。如96转换为十六进制、二进制,先选择数制类型为十进制,如图1.2上部所示,在输入框中输入数字96,然后再选择数制类型为十六进制此时显示框中看到的数字即为转换后的十六进制数字60,如图1.2中部所示;再选择数制类型为二进制,此时显示框中看到的数字即为转换后的二进制数字1100000,如图1.2下部所示。

3.二进制数的运算规则(1)加法运算规则。

0+0=0,0+1=1,1+1=0(有进位)(2)减法运算规则。

0-0=0,1-0=1,1-1=0,0-1=1(有借位)(3)乘法法运算规则。

0×0=0,1×0=1,1×1=11.1.2 微型计算机中数的表示方法

1.机器数与真值

数学中的正、负用符号“+”和“-”表示,计算机中是如何表示数的正、负呢?在计算机中数据存放在存储单元内,而每个存储单元则由若干二进制位组成,其中每一数位或是0或是1,刚好可以对应数的“+”号和“-”号,这样就可用一个数位来表示数的符号。在计算机中规定用“0”表示“+”,用“1”表示“-”。用来表示数的符号的数位被称为“符号位”(通常为最高数位),于是数的符号在计算机中已数码化了,但从表示形式上看符号位与数值位毫无区别。

设有两个数x,x:12

x=+1011011 B,x=-1011011B12

它们在计算机中分别表示为(带下画线部分为符号位,字长为8位):

为了区分这两种形式的数,我们把机器中以编码形式表示的数称为机器数(上例中x=01011011 B及x=11011011B),而把原来一般12书写形式表示的数称为真值(x=+1011011 B及x=-1011011B)。12

若一个数的所有数位均为数值位,则该数为无符号数;若一个数的最高数位为符号位而其他数位为数值位,则该数为有符号数。由此可见,对于同一存储单元,它存放的无符号数和有符号数所能表示的数值范围是不同的(如存储单元为8位,当它存放无符号数时,因有效的数值位为8位,故该数的范围为0~255;当它存放有符号数时,因有效的数值位为7位,故该数的范围(补码)为-128~+127)。

2.原码

对于一个n位二进制数,如用最高数位表示该数的符号(“0”表示“+”号,“1”表示“-”号),其余各数位表示其数值本身,则称为原码表示法。

若x=±x…xx,则[x]=xx…xxn-210原码n-1n-210

其中x为原机器数的符号位,它满足:n-1

3.反码

也就是说,正数的反码与其原码相同(反码=原码),而负数的反码为符号位保持不变,数值位按位取反.

4.补码(1)补码的引进。首先以日常生活中经常遇到的钟表“对时”为例来说明补码的概念。假定现在是北京标准时间八时整,而一只表却指向十时整,为了校正此表,可以采用倒拨和顺拨两种方法:倒拨就是反时针减少2小时(把倒拨视为减法,相当于10-2=8),时针指向8;还可将时针顺拨10小时,时针同样也指向8,把顺拨视为加法,相当于10+10=12(自动丢失)+8=8,这自动丢失的数(12)就叫做摸(mod),上述的加法称为“按摸12的加法”,用数学式可表示为:

10+10=12+8=8(modl2)

因时针转一圈会自动丢失一个数12,故10-2与10+10是等价的.称10和-2对模12互补,10是-2对模12的补码。引进补码概念后,就可将原来的减法10-2=8转化为加法10+10(-2的补码)=12(自动丢失)+8=8(modl2)。(2)补码的定义。通过上面的例子不难理解计算机中负数的补码表示法。设寄存器(或存储单元)的位数为n位,则它能表示的无nnn符号数最大值为2-1,逢2进1(即2自动丢失)。换句话说,在字长n为n的计算机中,数2和0的表示形式一样。若机器中的数以补码表示,n则数的补码以2为模,即nn

[x]=2+x(mod2)补nn

若x为正数,则[x]=x;若x为负数,则[x]=2+x=2-x。补补n即负数x的补码等于模2加上其真值或减去其真值的绝对值。

在补码表示法中,零只有唯一的表示形式:0000…0。(3)求补码的方法。根据上述介绍可知,正数的补码等于原码。下面介绍负数求补码的三种方法。

① 根据真值求补码。根据真值求补码就是根据定义求补码,即有nn

[x]=2+x=2-x补nn

即负数的补码等于2(模)加上其真值,或者等于2(模)减去其真值的绝对值。

② 根据反码求补码(推荐使用方法)。

[x]=[x]+1补反

③ 根据原码求补码。负数的补码等于其反码加1,这也可理解为负数的补码等于其原码各位(除符号位外)取反并在最低位加1。如果反码的最低位是1,它加1后就变成0,并产生向次最低位的进位;如次最低位也为1,它同样变成0,并产生向其高位的进位(这相当于在传递进位),这进位一直传递到第1个为0的位为止。于是可得到这样的转换规律:从反码的最低位起直到第一个为0的位以前(包括第一个为0的位),一定是1变0,第一个为0的位以后的位都保持不变,由于反码是由原码求得,因此可得从原码求补码的规律为:从原码的最低位开始到第1个为1的位之间(包括此位)的各位均不变,此后各位取反,但符号位保持不变。

特别要指出,在计算机中凡是带符号的数一律用补码表示且符号位参加运算,其运算结果也是用补码表示,若结果的符号位为“0”,则表示结果为正数,此时可以认为它是以原码形式表示的(正数的补码即为原码);若结果的符号位为“1”,则表示结果为负数,它是以补码形式表示的,若是要用原码来表示该结果,还需要对结果求补(即除符号位外按位取反加1),即

[[x]]=[x]补补原1.1.3 微型计算机中常用编码

微型机算机不但要处理数值计算问题,而且还要处理大量非数值计算问题,因此除了直接给出二进制数外,不论是十进制数还是英文字母、汉字以及某些专用符号都必须编成二进制代码,这样它们才能被计算机识别、接收、存储、传送及处理。

1.十进制数的编码

在微型计算机中,十进制数除了转换成二进制数外,还可用二进制数对其进行编码:用4位二进制数表示1位十进制数,使它既具有二进制数的形式又具有十进制数的特点。二-十进制码又称为BCD码(Binary-Coded Decimal),它有8421码、5421码、2421码以及余3码等几种编码形式,其中最常用的是8421码。8421码与十进制数的对应关系见表1.2所示,每位二进制数位都有固定的“权”,各数位的权3210从左到右分别为2、2、2、2,即8、4、2、1,这与自然二进制数的权完全相同,故8421BCD码又称为自然权BCD码。其中1010~1111这6个代码,是不允许出现的,属非法8421BCD码。表1.2 8421BCD码编码表

BCD码低位与高位之间是“逢十进一”,而4位二进制数(即十六进制数)是“逢十六进一”,用二进制加法器进行BCD码运算时,如果BCD码运算的低、高位的和都在0~9之间,则其加法运算规则与二进制加法完全一样;如果相加后某位(BCD码位,低4位或高4位)的和大于9或产生了进位,则此位应进行“加6调整”。通常在微型计算机中,都设置有BCD码的调整电路,机器执行一条十进制调整指令,机器就会自动根据刚才的二进制加法结果进行修正。BCD码向高位借位是“借一当十”,而4位二进制数(1位十六进制数)是“借一当十六”,因此在进行BCD码减法运算时,如果某位(BCD码位)有借位时,必须在该位进行“减6调整”。

2.字符编码

微型机算机需要进行非数值处理(如指令、数据的输入、文字的输入及处理等),必须对字母、文字以及某些专用符号进行编码。微型机算机系统的字符编码多采用美国信息交换标准代码——ASCII码(American Standand Code for Information Interchange),ASCII码是7位代码,共有128个字符,其中94个是图形字符,可在字符印刷或显示设备上打印出来,包括数字符号10个、英文大小写字母共52个以及其他字符32个,另外34个是控制字符,包括传输字符、格式控制字符、设备控制字符、信息分隔符和其他控制字符,这类字符不打印、不显示,但其编码可进行存储,在信息交换中起控制作用。其中,数字0~9对应的ASCII码为30H~39H,英文大写字母A~Z对应的ASCII码为41H~5AH,小写字母a~z对应的ASCII码为61H~7AH,这些规律性对今后的码制转换的编程非常有用。

我国于1980年制定了国家标准GB1988-80,即“信息处理交换用的7位编码字符集”,其中除了用人民币符号“”代替美元符号“$”外,其余与ASCII码相同。

1.2 微型计算机的基本组成

随着集成电路技术的飞速发展,1971年1月,Intel公司的德.霍夫将运算器、控制器以及一些寄存器集成在一块芯片上,称为微处理器或中央处理单元(简称CPU),形成了以微处理器为核心的总线结构框架。

如图1.3所示为微型计算机的组成框图,由微处理器、存储器(ROM、RAM)和输入/输出接口(I/O接口)及连接它们的总线组成。微型计算机配上相应的输入/输出设备(如键盘、显示器)就构成了微型计算机系统。图1.3 微型计算机组成框图

1.微处理器

微处理器由运算器和控制器两部分组成,是计算机的控制核心。(1)运算器。运算器由算术逻辑单元(ALU)、累加器和寄存器等几部分组成,主要负责数据的算术运算或逻辑运算。(2)控制器。控制器是发布命令的“决策机构”,即协调和指挥整个计算机系统操作。控制器由指令部件、时序部件和微操作控制部件等三部分组成。

指令部件是一种能对指令进行分析、处理和产生控制信号的逻辑部件,是控制器的核心。通常指令部件由程序计数器PC(Program Counter)、指令寄存器IR(Instruction Register)和指令译码器ID(Instruction Decode)等三部分组成。

时序部件由时钟系统和脉冲发生器组成,用于产生微操作控制部件所需的定时脉冲信号。

微操作控制部件根据指令译码器判断出的指令功能后,形成相应的伪操作控制信号,用以完成该指令所规定的功能。

2.存储器(RAM、ROM)

通俗来讲,存储器是微型计算机的仓库,包括程序存储器和数据存储器两部分。程序存储器用于存储程序和一些固定不变的常数和表格数据,一般由只读存储器(ROM)组成;数据存储器用于存储运算中输入、输出数据或中间变量数据,一般由随机存取存储器(RAM)组成。

3.输入/输出接口(I/O接口)

微型计算机的输入/输出设备(简称外设,如键盘、显示器等),有高速的也有低速的,有机电结构的,也有全电子式的,由于种类繁多且速度各异,因而它们不能直接地同高速工作的CPU相连。I/O接口是CPU与输入/输出设备的连接桥梁,I/O接口的作用相当于一个转换器,保证CPU与外设间协调地工作。不同的外设需要不同的I/O接口。

4.总线

CPU与存储器和I/O接口是通过总线相连的,包括地址总线、数据总线与控制总线。(1)地址总线(AB)。地址总线用做CPU寻址,地址总线的多少标志着CPU的最大寻址能力。若地址总线的根数为16,即CPU的16最大寻址能力为2=64KB。(2)数据总线(DB)。数据总线用于CPU与外围器件(存储器、I/O接口)交换数据,数据总线的多少标志着CPU一次交换数据的能力,决定CPU的运算速度。通常所说CPU的位数就是指数据总线的宽度,如8位机,就是指计算机的数据总线为8位。(3)控制总线(CB)。控制总线用于确定CPU与外围器件交换数据的类型,主要为读和写两种类型。

1.3 指令、程序与编程语言

一个完整的计算机是由硬件和软件两部分组成的,缺一不可。上面所述为计算机的硬件部分,是看得到、摸得着的实体部分,但计算机硬件只有在软件的指挥下,才能发挥其效能。计算机采取“存储程序”的工作方式,即事先把程序加载到计算机的存储器中,当启动运行后,计算机便自动地按照程序进行工作。

指令是规定计算机完成特定任务的命令,微处理器就是根据指令指挥与控制计算机各部分协调地工作。

程序是指令的集合,是解决某个具体任务的一组指令。在用计算机完成某个工作任务之前,人们必须事先将计算方法和步骤编制成由逐条指令组成的程序,并预先将它以二进制代码(机器代码)的形式存放在程序存储器中。

编程语言分为机器语言、汇编语言和高级语言。

● 机器语言是用二进制代码表示的,是机器能直接识别的语言,因此机器语言程序又称为目标程序。

● 汇编语言是用英文助记符来描述指令的,但不能独立于机器。

● 高级语言是采用独立于机器,人们日常习惯使用的语言形式。

1.4 微型计算机的工作过程

微型计算机的工作过程就是执行程序的过程,计算机执行程序是一条指令一条指令执行的,执行一条指令的过程分为三个阶段:取指令、指令译码、执行指令。每执行完一条指令,自动转向下一条指令的执行。

1.取指令

根据程序计数器PC中的地址,到程序存储器中取出指令代码,并送到指令寄存器IR中。然后PC自动加1,指向下一条指令(或指令字节)地址。

2.指令译码

指令译码器对指令寄存器中的指令代码进行译码,判断出当前指令代码的工作任务。

3.执行指令

判断出当前指令代码任务后,控制器自动发出一系列微指令,指挥计算机协调的动作,完成当前指令指定的工作任务。

如图1.4所示为微型计算机工作过程的示意图,程序存储器从0000H起存放了如下所示的指令代码。

下面分析图1.4所示微型计算机的工作过程:图1.4 微型计算机工作过程示意图(1)将PC内容0000H送地址寄存器MAR。(2)PC值自动加1,为取下一个字节的机器代码做准备。(3)MAR中的地址经地址译码器找到程序存储器0000H单元。(4)CPU发出读出命令。(5)将0000H单元内容74H读出,送至数据寄存器MDR中。(6)将74H送指令寄存器IR中。(7)经指令译码器ID译码,判断出指令代码所代表的功能,由操作控制器(OC)发出相应的微操作控制信号,完成指令操作。(8)根据指令功能要求,PC内容0001H送地址寄存器MAR。(9)PC值自动加1,为取下一个字节的机器代码做准备。(10)MAR中的地址经地址译码器找到程序存储器0001H单元。(11)CPU发出读出命令。(12)将0001H单元内容0FH读出,送至数据寄存器MDR中。(13)因此次读取的是数据,读出后根据指令功能直接送累加器A,至此,完成该指令操作。(14)接着,又重复上述过程,逐条地读取指令、指令译码、执行指令。

1.5 微型计算机的应用形态

从应用形态上,微型计算机主要可分为两种:系统机与单片机。

1.系统机

系统机将微处理器、存储器、I/O接口电路和总线接口组装在一块主机板(即微机主板)上,通过系统总线和其他多块外设适配卡连接键盘、显示器、打印机、硬盘驱动器及光驱等输入/输出设备。

目前人们广泛使用的个人电脑(PC机)就是典型的系统微型计算机。系统机的人机界面好,功能强,软件资源丰富,通常作为办公或家庭的事务处理及科学计算,属于通用计算机,现在已成为社会各领域中最为通用的工具。

系统机的发展,追求的是高速度、高性能。

2.单片机

将微处理器、存储器、I/O接口电路和总线接口集成在一块芯片上,即构成单片微型计算机,简称单片机。

单片机的应用是嵌入到控制系统(或设备)中,属于专用计算机,也称为嵌入式计算机。单片机应用讲究的是高性能价格比,针对控制系统任务的规模、复杂性选择合适的单片机,高、中、低档单片机是并行发展的。

本章小结

数制与编码是微型机算机的基本数字逻辑基础,是学习微型机算计的必备知识。在计算机的学习与应用中,主要涉及二进制、十进制与十六进制;在计算机中,同样存在数据的正、负问题,用数据位的最高位来表示数据的正、负,“0”表示正,“1”表示负,用补码形式来表示有符号数。

在计算机中,编码与译码是常见的数据处理工作,最常见的计算机编码有两种,一是BCD编码,二是ASCⅡ码。

将运算器、控制器以及各种寄存器集成在一片集成电路芯片上,组成中央处理器(CPU)或微处理器。微处理器配上存储器、输入/输出接口便构成了微型计算机。再配以输入/输出设备,即构成微型计算机系统。

一个完整的计算机包括硬件与软件两部分,硬件是指“看得见、摸得着”的实体部分;软件是计算机的指令代码的集合。简单来说,计算机的工作过程很简单,就是机械地按照“取指令、指令译码、执行指令”逐条执行指令而已。

单片机与系统机分属微型计算机的两个发展方向,从诞生至今,仅仅几十年,发展迅速,分别在嵌入式系统、科学计算与数据处理等领域中起着至关重要的作用。

习题1

1.1 将下列十进制数转换成二进制数。(1)67 (2)35 (3)41.75 (4)100

1.2 将下列二进制数转换成十进制数和十六进制数。(1)10101010B (2)11100110B (3)0.0101B (4)01111111B

1.3 已知原码如下,写出各数的反码和补码。(1)10100110 (2)11111111 (3)10000000 (4)01111111

1.4 将下列十进制数转换为8421BCD码表示。(1)25 (2)1024 (3)688 (4)100

1.5 将下列字符转换为ASCⅡ码表示。(1)STC (2)Compute (3)MCU (4)stc15f2k60s2

1.6 微型计算机的基本组成部分是什么?从微型计算机地址总线、数据总线看,能确认微型计算机哪几方面的性能?

1.7 微型计算机的结构相比计算机的经典结构,有哪些改进?

1.8 简述微型计算机的工作过程。

第2章 STC15F2K60S2单片机增强型8051内核

2.1 单片机概述

2.1.1 单片机的概念

将微型计算机的基本组成部分(CPU、存储器、I/O接口以及连接它们的总线)集成在一块芯片中而构成的计算机,称为单片微型计算机,简称单片机(Single-chip Microcomputer)。考虑到它的实质是用做控制,现已普遍改用微控制器(Micro Controller)一词,缩写为MCU(Micro Controller Unit)。

由于单片机是完全做嵌入式应用,故又称为嵌入式微控制器。根据单片机数据总线的宽度不同,单片机主要可分为4位机、8位机、16位机和32位机。在高端应用(图形图像处理与通信等)中,32位机应用已越来越普及;但在中、低端控制应用中,而且在将来较长一段时间内,8位单片机仍是单片机的主流机种,近期推出的增强型单片机产品内部普遍集成有丰富I/O接口,而且集成有ADC、DAC、PWM、WDT(看门狗)等接口或功能部件,并在低电压、低功耗、串行扩展总线、程序存储器类型、存储器容量和开发方式(在线系统编程ISP)等方面都有较大的发展。

由于单片机具有较高的性能价格比、良好的控制性能和灵活的嵌入特性,单片机在各个领域里都获得了极为广泛的应用。2.1.2 常见单片机

1.8051内核单片机

8051内核单片机应用比较广泛,常见的8051内核单片机有以下几种:(1)Intel公司的MCS-51系列单片机。MCS-51系列单片机是美国Intel公司研发的,该系列有8031、8032、8051、8052、8751、8752等多种产品。MCS-51系列单片机的典型产品是8051,其构成了8051单片机的标准。MCS-51系列单片机的资源配置见表2.1。表2.1 MCS-51系列单片机的内部资源续表

目前,Intel公司已经将8051内核技术实现转让,Intel公司本身已不生产MCS-51系列单片机,现在应用的8051单片机已不再是传统的MCS-51系列单片机。获得8051内核的厂商,在该内核基础上进行了功能扩展与性能改进。以下(2)~(4)所列是比较典型的8051内核单片机。(2)深圳市宏晶科技公司的STC系列单片机。公司网址:http://www.STCMCU.com。(3)荷兰PHILIPS公司的8051内核单片机。公司网址:http://www.philips.com。(4)美国Atmel公司的89系列单片机。公司网址:http://www.atmel.com。

2.其他单片机

除了8051内核单片机以外,比较有代表性的单片机还有以下几种:(1)Freescale公司的MC68系列单片机、MC9S08系列单片机(8位)、MC9S12系列单片机(16位)以及32位单片机。公司网址:http://www.freescale.com.cn。(2)美国Microchip公司的PIC系列单片机。公司网址:http://www.microchip.com。(3)美国TI公司的MSP430系列16位单片机。公司网址:http://www.ti.com.cn。(4)日本National公司的COP8系列单片机。公司网址:http://www.national.com.cn。(5)美国Atmel公司的AVR系列单片机。公司网址:http://www.atmel.com。

单片机技术的发展,可以说是产品多样化和系列化,用户可以根据自己的实际需求进行选择。单片机技术虽然缺乏统一的标准,但单片机的基本工作原理都是一样的,主要区别在于包含的资源不同、编程语言的格式不同。当使用C语言进行编程时,编程语言的差别就很小了。因此,只要学好了一种单片机,使用其他单片机时,只需仔细阅读相应的技术文档就可以进行项目或产品的开发。2.1.3 STC系列单片机

STC系列单片机是深圳宏晶科技公司研发的增强型8051内核单片机,相对于传统的8051内核单片机,在片内资源、性能以及工作速度上都有很大的改进,尤其采用了基于Flash的在线系统编程(ISP)技术,使得单片机应用系统的开发变得简单了,无须仿真器或专用编程器就可进行单片机应用系统的开发,同样也方便了单片机的学习。

STC单片机产品系列化、种类多,现有超过百种的单片机产品,能满足不同单片机应用系统的控制需求。按照工作速度与片内资源配置的不同,STC系列单片机有若干个系列产品。按照工作速度可分为12T/6T和1T系列产品:12T/6T产品是指一个机器周期可设置为12个时钟或6个时钟,包括STC89和STC90两个系列;1T产品是指一个机器周期仅为1个系统时钟,包括STC11/10和STC12/15等系列。STC89、STC90和STC11/10系列属基本配置,而STC12/15系列产品则相应地增加了PWM、A/D和SPI等接口模块。在每个系列中包含若干个产品,其差异主要是片内资源数量上的差异。在应用选型时,应根据控制系统的实际需求,选择合适的单片机,即单片机内部资源要尽可能地满足控制系统要求,而减少外部接口电路,同时,选择片内资源时遵循“够用”原则,极大地保证单片机应用系统的高性能价格比和高可靠性。

STC15系列单片机采用STC-Y5超高速CPU内核,在相同频率下,速度比早期1T系列单片机(如STC12、STC11、STC10系列)的速度快20%。本书以STC15系列中的STC15F2K60S2单片机为教学机型,全面学习STC单片机技术以及培养STC单片机的应用设计能力。

2.2 STC15F2K60S2系列单片机资源概述与引脚功能

2.2.1 STC15F2K60S2系列单片机资源与功能概述

STC15F2K60S2单片机是STC15系列单片机的典型产品,集成以下资源:

● 增强型8051 CPU,1T型,即每个机器周期只有1个系统时钟。

● ISP/IAP功能,即在系统可编程/在应用可编程。

● 内部高可靠复位,8级可选复位门槛电压,可彻底省掉外围复位电路。

● 内部高精度R/C时钟,±1%温漂(-40℃~85℃),常温下温漂可达0.5%,内部时钟从5~35MHz可选。

● 低功耗设计:低速模式、空闲模式、掉电模式(停机模式)。

● 具有支持掉电唤醒的引脚。

● 8~62KB Flash 程序存储器。

● 大容量2048字节SRAM。

● 大容量的数据Flash(EEPROM),擦写次数十万次以上。

● 6个定时器:两个16位可重装载初始值(兼容传统8051)的定时器T0/T1,T2定时器,3路CCP可再实现3个定时器。

● 2个全双工异步串行口(UART)。

● 8通道高速10位ADC,速度可达30万次/秒。

● 3通道捕获/比较单元(PWM/PCA/CCP)。

● 高速SPI串行通信接口。

● 多路可编程时钟输出。

● 最多42个I/O口线。

● 硬件“看门狗”。2.2.2 STC15F2K60S2单片机引脚功能

STC15F2K60S2单片机有LQFP-44、LQFP-32、PDIP-40、SOP-28、SOP-32、DIP-28 等封装形式,其中图2.1、图2.2为LQFP-44、PDIP-40封装引脚图。图2.1 STC15F2K60S2单片机LQFP-44封装的引脚图图2.2 STC15F2K60S2单片机PDIP-40封装的引脚图

下面以STC15F2K60S2单片机的PDIP-40封装为例介绍STC15F2K60S2单片机的引脚功能,从引脚图中可看出,除引脚18、20为电源、地以外,其他引脚都可用做I/O口,也就是说STC15F2K60S2单片机不需外围电路,只需接上电源就是一个单片机最小系统了,这里以STC15F2K60S2单片机的I/O口引脚为主线,介绍STC15F2K60S2单片机的各引脚功能。(1)P0口。P0口引脚排列与功能说明见表2.2。表2.2 P0口引脚排列与功能说明(2)P1口。P1口引脚排列与功能说明见表2.3。表2.3 P1口引脚排列与功能说明(3)P2口。P2口引脚排列与功能说明见表2.4。(4)P3口。P3口引脚排列与功能说明见表2.5。(5)P4口。P4口引脚排列与功能说明见表2.6。(6)P5口。P5口引脚排列与功能说明见表2.7。表2.4 P2口引脚排列与功能说明表2.5 P3口引脚排列与功能说明续表表2.6 P4口引脚排列与功能说明表2.7 P5口引脚排列与功能说明注:STC15F2K60S2单片机内部接口的外部输入、输出引脚可通过编程进行切换,上电或复位后,默认功能引脚的名称以原功能状态名称表示,切换后引脚状态的名称在原功能名称基础上加一下画线和序号组成,如RxD和RxD_2,RxD为串行口1默认的数据接收端,RxD_2为串行口1切换后(第1组切换)的数据接收端名称,其功能同串行口1的串行数据接收端。

2.3 STC15F2K60S2单片机的内部结构

2.3.1 STC15F2K60S2单片机的内部结构

STC15F2K60S2单片机的内部结构框图如图2.3所示。

STC15F2K60S2单片机包含CPU、程序存储器(程序Flash)、数据存储器(基本RAM、扩展RAM、特殊功能寄存器)、EEPROM(数据Flash)、定时器/计数器、串行口、中断系统、ADC模块、PCA/PWM模块(可当DAC使用)、SPI接口以及硬件看门狗、电源监控、专用复位电路、内部RC振荡器等模块。图2.3 STC15F2K60S2单片机的内部结构框图2.3.2 CPU结构

单片机的中央处理器CPU由运算器和控制器组成。它的作用是读入并分析每条指令,根据各指令功能控制单片机的各功能部件执行指定的运算或操作。

1.运算器

运算器由算术/逻辑运算部件ALU、累加器ACC、寄存器B、暂存器(TMP1,TMP2)和程序状态标志寄存器PSW组成。它所完成的任务是实现算术与逻辑运算、位变量处理与传送等操作。

ALU功能极强,既可实现8位二进制数据的加、减、乘、除算术运算和与、或、非、异或、循环等逻辑运算,同时还具有一般微处理器所不具备的位处理功能。

累加器ACC,又记做A,用于向ALU提供操作数和存放运算结果,它是CPU中工作最频繁的寄存器,大多数指令的执行都要通过累加器ACC进行。

寄存器B是专门为乘法和除法运算设置的寄存器,用于存放乘法和除法运算的操作数和运算结果。对于其他指令,可作为普通寄存器使用。

程序状态标志寄存器PSW,简称程序状态字,它用来保存ALU运算结果的特征和处理状态,这些特征和状态可以作为控制程序转移的条件,供程序判别和查询。PSW的各位定义如下所示:

CY:进位标志位。执行加/减法指令时,如果操作结果的最高位D7出现进/借位,则CY置“1”,否则清零。执行乘法运算后,CY清零。

AC:辅助进位标志位。当执行加/减法指令时,如果低4位数向高4位数产生进/借位,则AC置“1”,否则清零。

F0:用户标志0。该位是由用户定义的一个状态标志。

RS1、RS0:工作寄存器组选择控制位,详见表2.8。

OV:溢出标志位。指示运算过程中是否发生了溢出。有溢出时,OV=1;无溢出时,OV=0。

F1:用户标志1。该位也是由用户定义的一个状态标志。

P:奇偶标志位。如果累加器ACC中1的个数为偶数,P=0;否则P=1。在具有奇偶校验的串行数据通信中,可以根据P设置奇偶校验位。

2.控制器

控制器是CPU的指挥中心,由指令寄存器IR、指令译码器ID、定时及控制逻辑电路以及程序计数器PC等组成。

程序计数器PC是一个16位的计数器(注意:PC不属于特殊功能寄存器),它总是存放着下一个要取指令字节的16位程序存储器存储单元的地址。并且每取完一个字节后,PC的内容自动加1,为取下一个字节做准备。因此一般情况下,CPU是按指令顺序执行程序的,只有在执行转移、子程序调用指令和中断响应时例外,而是由指令或中断响应过程自动给PC置入新的地址。PC指到哪里,CPU就从哪里开始执行程序。

指令寄存器IR保存当前正在执行的指令。执行一条指令,先要把它从程序存储器取到指令寄存器IR中。指令内容包含操作码和地址码两部分,操作码送指令译码器ID,并形成相应指令的微操作信号;地址码送操作数形成电路以便形成实际的操作数地址。

定时与控制是微处理器的核心部件,它的任务是控制取指令、执行指令、存取操作数或运算结果等操作,向其他部件发出各种微操作信号,协调各部件工作,完成指令指定的工作任务。

2.4 STC15F2K60S2单片机的存储结构

STC15F2K60S2单片机存储结构的主要特点是程序存储器与数据存储器是分开编址的,STC15F2K60S2单片机内部在物理上有4个相互独立的存储器空间:程序存储器(程序Flash)、片内基本RAM、片内扩展RAM与EEPROM(数据Flash),如图2.4所示。图2.4 STC15F2K60S2单片机的存储器结构

1.程序存储器(程序Flash)

程序存储器用于存放用户程序、数据和表格等信息。STC15F2K60S2单片机片内集成了60KB的程序Flash存储器,其地址为0000H~EFFFH。

在程序存储器中有些特殊的单元,在应用中应加以注意。(1)0000H单元。系统复位后,PC值为0000H,单片机从0000H单元开始执行程序。一般在0000H开始的三个单元中存放一条无条件转移指令,让CPU去执行用户指定位置的主程序。(2)0003H~00A3H,这些单元用做21个中断的中断服务程序的入口地址(或称为中断向量地址)。

0003H:外部中断0中断服务程序的入口地址。

000BH:定时/计数器0(T0)中断服务程序的入口地址。

0013H:外部中断1中断服务程序的入口地址。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载