第1章微型计算机基础进入20世纪70年代,微型计算机开始登上历史舞台,并以不可阻挡的势头迅猛发展成为当今计算机发展的一个主流方向。当前,以微型计算机为代表的计算机已日益普及,其应用已深入社会的各个角落,极大地改变着人们的工作方式、学习方式和生活方式,成为信息时代的主要标志。本章主要是在《微型计算机文化基础》或《微型计算机原理》的基础上,复习有关微型计算机的基本内容:然后介绍一些单片机微控制器在应用过程中的一些基本概念,为后续掌握单片微控制器打下基础。。1.1微型计算机的定义与工作过程1.1.1 定义以微处理器为核心,配上大容量的半导体存储器及功能强大的可编程接口芯片,连上外设(包括键盘、显示器、打印机和软驱、光驱等外部存储器)及电源所组成的计算机,称为微型计算机,简称微型机或微机,有时又称为PC(PersonalComputer)或MC(MicroComputer)。微机加上系统软件,就构成了微型计算机系统(MCS,简称微机系统)。简单的说,某系统或设备只要有CPU,就可以称为微型计算机,如平常我们说的台式机、笔记本电脑、智能洗衣机、微波炉、单片机开发板、数字式仪器仪表、机器人、自动化生产线、内部含有CPU的芯片等。1.1.2冯·诺依曼体系计算机是一种能够存储程序,并能自动连续地执行程序,对各种数字化信息进行运算的现代化电子设备。首先,计算机是能够进行各种运算的设备。运算可分为两类:算术运算和逻辑运算。算术运算的对象是数值型数据,以四则运算为基础,许多复杂的数学问题都可以通过各种算法转换成若于四则运算:逻辑运算用来解决逻辑问题,如信息检索、逻辑判断和分析等。因此,计算机的工作实际上就是对各种信息的处理。其次,计算机如何表示这些信息呢?简单地说,是用数字代码(即二进制数)来表示名种信息,因此称为数字计算机。最后,计算机如何对这些信息进行处理呢?它采用的是一种存储程序的工作方式,即先编写程序,再由计算机将这些程序存储起来,然后自动连续地、快速地执行程序,从而实现各种运算处理。为了存储程序与数据,需要存储器;为了进行运算,需要运算器:为了输入程序和数据及输出运算结果,需要有输入设备和输出设备;此外还需要控制器对计算机各个部件的工作进行控制和管理。1
1 第1章 微型计算机基础 进入20世纪70年代,微型计算机开始登上历史舞台,并以不可阻挡的势头迅猛发展, 成为当今计算机发展的一个主流方向。当前,以微型计算机为代表的计算机已日益普及, 其应用已深入社会的各个角落,极大地改变着人们的工作方式、学习方式和生活方式,成 为信息时代的主要标志。本章主要是在《微型计算机文化基础》或《微型计算机原理》的基 础上,复习有关微型计算机的基本内容;然后介绍一些单片机微控制器在应用过程中的一些 基本概念,为后续掌握单片微控制器打下基础。 1.1 微型计算机的定义与工作过程 1.1.1 定义 以微处理器为核心,配上大容量的半导体存储器及功能强大的可编程接口芯片,连上 外设(包括键盘、显示器、打印机和软驱、光驱等外部存储器)及电源所组成的计算机,称 为微型计算机,简称微型机或微机,有时又称为PC(Personal Computer)或MC(Micro Computer)。微机加上系统软件,就构成了微型计算机系统(MCS,简称微机系统)。 简单的说,某系统或设备只要有CPU,就可以称为微型计算机,如平常我们说的台式 机、笔记本电脑、智能洗衣机、微波炉、单片机开发板、数字式仪器仪表、机器人、自动 化生产线、内部含有CPU的芯片等。 1.1.2 冯ꞏ诺依曼体系 计算机是一种能够存储程序,并能自动连续地执行程序,对各种数字化信息进行运算 的现代化电子设备。 首先,计算机是能够进行各种运算的设备。运算可分为两类:算术运算和逻辑运算。 算术运算的对象是数值型数据,以四则运算为基础,许多复杂的数学问题都可以通过各种 算法转换成若干四则运算;逻辑运算用来解决逻辑问题,如信息检索、逻辑判断和分析 等。因此,计算机的工作实际上就是对各种信息的处理。 其次,计算机如何表示这些信息呢?简单地说,是用数字代码(即二进制数)来表示各 种信息,因此称为数字计算机。 最后,计算机如何对这些信息进行处理呢?它采用的是一种存储程序的工作方式,即 先编写程序,再由计算机将这些程序存储起来,然后自动连续地、快速地执行程序,从而 实现各种运算处理。 为了存储程序与数据,需要存储器;为了进行运算,需要运算器;为了输入程序和数 据及输出运算结果,需要有输入设备和输出设备;此外还需要控制器对计算机各个部件的 工作进行控制和管理
上述要领是由计算机技术的先驱冯诺依曼提出的。他在1945年提出了数字计算机的若干思想,后被称为冯·诺依曼体系,这是计算机发展史上的一个里程碑。几十年来计算机的体系结构发生了深刻的变化,但冯·诺依曼体系的核心概念仍沿用至今。冯·诺依曼体系的要点归纳如下:①采用二进制代码表示数据和指令。②采用存储程序的工作方式,即先编写程序,然后存储程序,最后自动连续地执行程序。③由运算器、存储器、控制器、输入设备和输出设备组成计算机硬件系统。下面首先阐述其中两点:存储程序的工作方式、信息的数字化表示。(1)存储程序的工作方式计算机的工作最终体现为执行程序,计算机采用存储程序的工作方式,体现了计算机解决问题的过程。①编写程序为了使用计算机解决问题,需要先编写程序。在程序中规定了计算机需要做哪些工作,按什么步骤去做。程序还包括需要处理的原始数据,此外还规定了计算机何时从输入设备去获取数据。一件事情一般要分成几步来完成,每步执行的操作命令称为一条指令。计算机最终执行的程序是一系列指令序列,即若干指令的有序集合。换言之,我们事先编写的程序最终变成指令序列和原始数据。②存储程序编写完成的程序经输入设备送入计算机,存放在存储器中。编写程序时是用字符书写的,通过键盘将字符变成二进制编码,然后再送入计算机。③自动、连续地执行程序由于程序已存储在存储器中,启动计算机后,计算机就可以按照一定的顺序从存储器中逐条读取数据,按照指令的要求完成相应的操作,直到程序被执行完毕。原则上,程序在执行过程中不需要人工干预。当然,有些工作本身需要以人机对话的形式进行,例如通过计算机进行查询时,计算机通过屏幕向操作人员询问,操作人员通过键盘或鼠标进行选择。这种情况要求计算机能分段执行程序,之间允许用户进行人工干预。所以计算机在自动、连续地执行程序的过程中,往往允许使用者以外部请求方式进行干预。(2)信息的数字化表示上面讲到,现在广泛使用的计算机,其全称是电子式数字计算机。“电子”指计算机的主要部件是由电子电路组成的,计算机内传送与处理的信息是电子信号。例如,计算机中的算术运算单元(ALU)主要由加法器构成,而加法器由各种门电路(与门、非门等)组成。“数字”则表示计算机中的信息(控制信息和数据信息)均采用数字化表示方法。例如,二进制11001表示-9,01000001表示字符A等。1.1.3工作过程计算机的工作过程实际上是执行程序的过程,而程序是由一系列指令组成的,因此执行程序的过程就是按顺序执行指令的过程。2
2 上述要领是由计算机技术的先驱冯·诺依曼提出的。他在1945年提出了数字计算机的 若干思想,后被称为冯·诺依曼体系,这是计算机发展史上的一个里程碑。几十年来计算 机的体系结构发生了深刻的变化,但冯·诺依曼体系的核心概念仍沿用至今。冯·诺依曼 体系的要点归纳如下: ① 采用二进制代码表示数据和指令。 ② 采用存储程序的工作方式,即先编写程序,然后存储程序,最后自动连续地执行程 序。 ③ 由运算器、存储器、控制器、输入设备和输出设备组成计算机硬件系统。 下面首先阐述其中两点:存储程序的工作方式、信息的数字化表示。 (1)存储程序的工作方式 计算机的工作最终体现为执行程序,计算机采用存储程序的工作方式,体现了计算机 解决问题的过程。 ① 编写程序 为了使用计算机解决问题,需要先编写程序。在程序中规定了计算机需 要做哪些工作,按什么步骤去做。程序还包括需要处理的原始数据,此外还规定了计算机 何时从输入设备去获取数据。一件事情一般要分成几步来完成,每步执行的操作命令称为 一条指令。计算机最终执行的程序是一系列指令序列,即若干指令的有序集合。换言之, 我们事先编写的程序最终变成指令序列和原始数据。 ② 存储程序 编写完成的程序经输入设备送入计算机,存放在存储器中。编写程序时 是用字符书写的,通过键盘将字符变成二进制编码,然后再送入计算机。 ③ 自动、连续地执行程序 由于程序已存储在存储器中,启动计算机后,计算机就可 以按照一定的顺序从存储器中逐条读取数据,按照指令的要求完成相应的操作,直到程序 被执行完毕。原则上,程序在执行过程中不需要人工干预。当然,有些工作本身需要以人 机对话的形式进行,例如通过计算机进行查询时,计算机通过屏幕向操作人员询问,操作 人员通过键盘或鼠标进行选择。这种情况要求计算机能分段执行程序,之间允许用户进行 人工干预。所以计算机在自动、连续地执行程序的过程中,往往允许使用者以外部请求方 式进行干预。 (2)信息的数字化表示 上面讲到,现在广泛使用的计算机,其全称是电子式数字计算机。 “电子”指计算机的主要部件是由电子电路组成的,计算机内传送与处理的信息是电 子信号。例如,计算机中的算术运算单元(ALU)主要由加法器构成,而加法器由各种门电 路(与门、非门等)组成。 “数字”则表示计算机中的信息(控制信息和数据信息)均采用数字化表示方法。例 如,二进制11001表示–9,01000001表示字符A等。 1.1.3 工作过程 计算机的工作过程实际上是执行程序的过程,而程序是由一系列指令组成的,因此执 行程序的过程就是按顺序执行指令的过程
通常,计算机要运行某个程序时,该程序预先要调入内存的一系列单元中,在程序执行过程中完全由计算机自动执行而不需要人工干预,具体包括下列几步。(1)取出指令从存储器某个地址中取出要执行的指令送到CPU内部的指令寄存器暂时保存。(2)分析指令从程序的首地址开始把指令寄存器中的指令送到指令译码器,分析出该指令对应启动计算机执行程序的操作。从存储器中取出一条指令(3)执行指令→根据指令译码结果,向各个部件发出相应的控制信号,完成分析指令指令规定的各种操作。执行指令(4)形成下一条指令地址+为执行下一条指令做好准备,即形成下一条指令的地址。形成下一条指令的地址具体过程如图1-1所示。图1-1程序的执行过程1.2计算机中的数制和编码基础计算机的工作过程就是对数据进行处理。计算机是一个典型的数字化设备,它只能识别0和1,所有的计算机都是以二进制数的形式进行算术运算和逻辑操作的。1.2.1计算机中的数制及转换1.计算机中的数制(参阅资料)计算机最早是作为一种计算工具出现的,所以最基本的功能是对数进行加工和处理。在使用微型计算机时常用的计数制有二进制数、十六进制数、十进制数3种。(1)十进制数(Decimal)(2)二进制数(Binary)(3)十六进制数(Hexadecimal)十进制数、二进制数和十六进制数之间的关系如表1-1所示。表1-1十进制、二进制数及十六进制数对照表+进03256101512制-进000011110001001000110100010101100111H1100制+水C进制为了区别十进制数、二进制数及十六进制数三种数制,可以在数的后面加一个字母。规定B(binary)表示二进制数,D(decimal)表示十进制数,H(hexadecimal)表示十六3
3 通常,计算机要运行某个程序时,该程序预先要调入内存的一系列单元中,在程序执 行过程中完全由计算机自动执行而不需要人工干预,具体包括下列几步。 (1)取出指令 从存储器某个地址中取出要执行的指令送到CPU内部的指令寄存器暂时保存。 (2)分析指令 把指令寄存器中的指令送到指令译码器,分析出该指令对应 的操作。 (3)执行指令 根据指令译码结果,向各个部件发出相应的控制信号,完成 指令规定的各种操作。 (4)形成下一条指令地址 为执行下一条指令做好准备,即形成下一条指令的地址。 具体过程如图1-1所示。 1.2 计算机中的数制和编码基础 计算机的工作过程就是对数据进行处理。计算机是一个典型的数字化设备,它只能识 别0和1,所有的计算机都是以二进制数的形式进行算术运算和逻辑操作的。 1.2.1 计算机中的数制及转换 1.计算机中的数制(参阅资料) 计算机最早是作为一种计算工具出现的,所以最基本的功能是对数进行加工和处理。 在使用微型计算机时常用的计数制有二进制数、十六进制数、十进制数3种。 (1)十进制数(Decimal) (2)二进制数(Binary) (3)十六进制数(Hexadecimal) 十进制数、二进制数和十六进制数之间的关系如表1-1所示。 表1-1 十进制、二进制数及十六进制数对照表 十 进 制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 二 进 制 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 十 六 进 制 0 1 2 3 4 5 6 7 8 9 A B C D E F 为了区别十进制数、二进制数及十六进制数三种数制,可以在数的后面加一个字母。 规定B(binary)表示二进制数,D(decimal)表示十进制数,H(hexadecimal)表示十六 图 1-1 程序的执行过程
进制数,其中十进制数后面的字母D可以省略2原码、反码、补码1.2.2数据在计算机内采用符号数字化处理后,机器可表示并识别带符号的数据。为了改进运算方法、简化控制电路,人们研究出多种有符号数的编码形式,最常用的有三种方法即原码、反码、补码表示法。8位二进制数用来表示有符号数、原码、反码和补码,如表1-2所示。从表1-2可以看出,8位二进制数,无符号数表示范围是0255,有符号数原码表示范围中-127~+127,反码表示范围是-127~+127,补码表示范围是-128~+127。计算机中的数是用补码表示的。表1-2原码、反码和补码表有符号数二进制数无符号数反码原码补码0+0+0+0000000001+100000001+1+12+2+2+200000010..1260111 1110+126+126+126127+127+1270111 1111+127-010000000128127 128129-110000001-126- 127253-125-2-31111 1101254-126-1-21111 1110-01111 1111255127-11.2.3定点数和浮点数(参阅有关资料)计算机中运算的数有整数,也有小数。通常有两种规定:一种是规定小数点的位置固定不变,这时的机器数称为定点数;另一种是小数点的位置可以浮动,这时的机器数称为浮点数。微型计算机中常使用定点数。1.定点数所谓定点法,是指小数点在数中的位置是固定不变的,以定点法表示的实数称为定点数。根据小数点位置的固定方法不同,又可分为定点整数和定点小数表示法。前面介绍的整数均为定点整数,可以认为小数点固定在数的最低位之后。2.浮点数所谓浮点数,是指计算机中数的小数点位置不是固定的,或者说是“浮动”的。在计算机中,浮点数法一般用来表示实数,可以采用“阶码表示法”来表示浮点数,它由整数部分和小数部分组成,一个实数可以表示成一个纯小数和一个乘幂之积。4
4 进制数,其中十进制数后面的字母D可以省略。 1.2.2 原码、反码、补码 数据在计算机内采用符号数字化处理后,机器可表示并识别带符号的数据。为了改进 运算方法、简化控制电路,人们研究出多种有符号数的编码形式,最常用的有三种方法, 即原码、反码、补码表示法。 8位二进制数用来表示有符号数、原码、反码和补码,如表1-2所示。 从表1-2可以看出,8位二进制数,无符号数表示范围是0~255,有符号数原码表示范 围中–127~+127,反码表示范围是–127~+127,补码表示范围是–128~+127。计算机中 的数是用补码表示的。 表1-2 原码、反码和补码表 二进制数 无符号数 有符号数 原码 反码 补码 0000 0000 0000 0001 0000 0010 ··· 0111 1110 0111 1111 1000 0000 1000 0001 ··· 1111 1101 1111 1110 1111 1111 0 1 2 126 127 128 129 253 254 255 +0 +1 +2 +126 +127 –0 –1 –125 –126 –127 +0 +1 +2 +126 +127 –127 –126 –2 –1 –0 +0 +1 +2 +126 +127 –128 –127 –3 –2 –1 1.2.3 定点数和浮点数(参阅有关资料) 计算机中运算的数有整数,也有小数。通常有两种规定:一种是规定小数点的位置固 定不变,这时的机器数称为定点数;另一种是小数点的位置可以浮动,这时的机器数称为 浮点数。微型计算机中常使用定点数。 1.定点数 所谓定点法,是指小数点在数中的位置是固定不变的,以定点法表示的实数称为定点 数。根据小数点位置的固定方法不同,又可分为定点整数和定点小数表示法。前面介绍的 整数均为定点整数,可以认为小数点固定在数的最低位之后。 2.浮点数 所谓浮点数,是指计算机中数的小数点位置不是固定的,或者说是“浮动”的。在计 算机中,浮点数法一般用来表示实数,可以采用“阶码表示法”来表示浮点数,它由整数 部分和小数部分组成,一个实数可以表示成一个纯小数和一个乘幂之积
采用浮点数最大的特点是,比定点数表示的范围大。1.2.4计算机中常用的编码计算机除了用于数值计算外,还要进行大量的文字信息处理,也就是要对表达各种文字信息的符号进行加工。例如计算机和外设如键盘、(字符)显示器、打印机之间的通信都采用字符方式输入/输出。目前计算机中最常用的两种编码是美国信息交换标准代码(ASCII码)和二-十进制编码(BCD码)。1.美国信息交换标准代码(ASCII码)ASCII(AmericanStandardCodefornformation-Interchange)码是美国信息交换标准代码的简称,主要给西文字符进行编码。它采用7位二进制数表示一个字符,包括32个标点符号,10个阿拉伯数字,52个英文大小写字母,34个控制符号,共128个。编码与字符之间的对应关系如附录A所示。在计算机系统中,存储单元的长度通常为8位二进制数(即一个字节),为了存取方便规定一个存储单元存放一个ASCII码,其中低7位表示字母本身的编码,第8位(即bit7)用做奇偶校验位或规定为零(通常如此)。因此,也可以认为ASCII码的长度为8位。奇偶校验的主要目的是用于在数据传输过程中,检测接收方的数据是否正确。收发双方预约为何种校验,接收方收到数据后检验1的个数,判断是否与预约的校验相符,尚若不符,则说明传输出错,可请求重新发送。奇校验时,bit7的取值应使得8位ASCII码中1的个数为奇数;偶校验时,bit7的取值应使得ASCII码中I的个数是偶数。例如:“8”的奇校验ASCII码为00111000B,偶校验ASCII码为10111000B。“B”的奇校验ASCII码为11000010B,偶校验ASCII码为01000010B。2.BCD码(二进制编码的十进制数)十进制毕竞是人们最习惯的计数方式,在向计算机输入数据时,常用十进制数输入,但计算机只识别二进制数,因此每1位十进制必须用二进制数表示。1位十进制数包含0~9十个数码,必须用4位二进制数表示,这样就需要确定0~9与4位二进制数0000B~1111B之间的对应关系,其中较常用的8421BCD码规定了十进制数0~9与4位二进制数编码之间的对应关系,见表1-3。表1-3十进制数与4位二进制数编码之间的对应关系十进制数8421BCD码十进制数8421BCD码00000501011000160110270010011138001110004010091001注:在BCD码中,不使用1010B(OAH)~1111B(OFH)。计算机中存储BCD码的形式有两种:压缩BCD码和非压缩BCD码。(1)压缩BCD码压缩BCD码用4位二进制数表示1位十进制数,一个字节可以表示2位十进制数。例如5
5 采用浮点数最大的特点是,比定点数表示的范围大。 1.2.4 计算机中常用的编码 计算机除了用于数值计算外,还要进行大量的文字信息处理,也就是要对表达各种文 字信息的符号进行加工。例如计算机和外设如键盘、(字符)显示器、打印机之间的通信都 采用字符方式输入/输出。目前计算机中最常用的两种编码是美国信息交换标准代码(ASCII 码)和二十进制编码(BCD码)。 1.美国信息交换标准代码(ASCII码) ASCII(American Standard Code for nformationInterchange)码是美国信息交换标 准代码的简称,主要给西文字符进行编码。它采用7位二进制数表示一个字符,包括32个标 点符号,10个阿拉伯数字,52个英文大小写字母,34个控制符号,共128个。编码与字符之 间的对应关系如附录A所示。 在计算机系统中,存储单元的长度通常为8位二进制数(即一个字节),为了存取方便, 规定一个存储单元存放一个ASCⅡ码,其中低7位表示字母本身的编码,第8位(即bit7)用 做奇偶校验位或规定为零(通常如此)。因此,也可以认为ASCII码的长度为8位。 奇偶校验的主要目的是用于在数据传输过程中,检测接收方的数据是否正确。收发双 方预约为何种校验,接收方收到数据后检验1的个数,判断是否与预约的校验相符,倘若不 符,则说明传输出错,可请求重新发送。奇校验时,bit7的取值应使得8位ASCII码中1的个 数为奇数;偶校验时,bit7的取值应使得ASCII码中1的个数是偶数。例如: “8”的奇校验ASCII码为00111000B,偶校验ASCII码为10111000B。 “B”的奇校验ASCII码为11000010B,偶校验ASCII码为01000010B。 2.BCD码(二进制编码的十进制数) 十进制毕竟是人们最习惯的计数方式,在向计算机输入数据时,常用十进制数输入, 但计算机只识别二进制数,因此每1位十进制必须用二进制数表示。1位十进制数包含0~9 十个数码,必须用4位二进制数表示,这样就需要确定0~9与4位二进制数0000B~1111B之 间的对应关系,其中较常用的8421BCD码规定了十进制数0~9与4位二进制数编码之间的对 应关系,见表1-3。 表1-3 十进制数与4位二进制数编码之间的对应关系 十进制数 8421BCD码 十进制数 8421BCD码 0 0000 5 0101 1 0001 6 0110 2 0010 7 0111 3 0011 8 1000 4 0100 9 1001 注:在BCD码中,不使用1010B(0AH)~1111B(0FH)。 计算机中存储BCD码的形式有两种:压缩BCD码和非压缩BCD码。 (1)压缩BCD码 压缩BCD码用4位二进制数表示1位十进制数,一个字节可以表示2位十进制数。例如