1、第1章 微机基础知识1.1 1.1 微处理器、微机和单片机的概念微处理器、微机和单片机的概念1.2 1.2 微机的工作过程微机的工作过程1.3 1.3 常用数制和编码常用数制和编码1.4 1.4 数据在计算机中的表示数据在计算机中的表示1.5 89C51/S511.5 89C51/S51单片机单片机1.1 微处理器、微机和单片机的概念1.1 微处理器、微机和单片机的概念l微处理器微处理器(Microprocessor)(Microprocessor)是是小小型型计计算算机机或或微微型型计计算算机机的的控控制制和和处处理理部部分分,又又称称中中央央处处理理单单元元CPUCPU(Central P
2、rocessing UnitCentral Processing Unit)。)。l微机(微机(MicrocomputerMicrocomputer)是是具具有有完完整整运运算算及及控控制制功功能能的的计计算机。算机。图图1-1 微机的组成微机的组成 微处理器微处理器(CPU)(CPU)微处理器由控制器、运算器和若干个寄存器组成;存储器存储器 存储器是指微机内部的存储器(RAM、ROM和EPROM等芯片)接口适配器(输入输出接口电路)接口适配器(输入输出接口电路)输入输入/输出(输出(I/OI/O)设备)设备 /设备与微处理器的连接需要通过接口适配器(即/接口)1.1 微处理器、微机和单片机的
3、概念l单片机(单片机(Single-Chip Single-Chip MicrocomputerMicrocomputer)是是将将微微处处理理器器、一一定定容容量量RAMRAM和和ROMROM以以及及I/OI/O口口、定定时时器器等等电电路路集集成成在在一一块块芯芯片片上上,构构成成单单片片微微型型计计算算机。机。图图1-1 微机的组成微机的组成 微处理器RAM ROMI/O口定时器单片微型计算机单片微型计算机1.1.1 1.1.1 微处理器的组成微处理器的组成图中假设所有的计数器、寄存器和总线都是8位宽度。数据单元数据单元ALU、计数器、寄存器和控制部分除在微处理器内通过内部总线相互联系以
4、外,还通过外部总线和外部的存储器和输入/输出接口电路联系。外部总线一般分为数据总线、地址总线和控制总线,统称为系统总线系统总线。存储器包括RAM和ROM。微计算机通过输入/输出接口电路可与各种外围设备联接。1.1 微处理器、微机和单片机的概念图图1-2 一个计算机模型一个计算机模型运算器运算器控制器控制器寄存器寄存器1.1.1 1.1.1 微处理器的组成微处理器的组成1.1.运算器:运算器:组成组成 算术逻辑单元(简称ALU)累加器 数据寄存器作用作用 把传送到微处理器的数据进行算术运算或逻辑运算。ALU可对两个操作数进行加、减、与、或、比较大小等操作,最后将结果存入累加器。ALU执行不同的运
5、算操作是由不同控制线上的信息所确定的。ALUALU数据来源数据来源累加器、数据寄存器主要功能主要功能算术运算逻辑运算和逻辑测试,如零值测试、两值比较1.1 微处理器、微机和单片机的概念图图1-2 一个计算机模型一个计算机模型1.1.1 1.1.1 微处理器的组成微处理器的组成1.1.运算器:运算器:运算器功能实现过程举例:运算器功能实现过程举例:两个数(7和9)相加,在相加之前,操作数9放在累加器中,7放在数据寄存器中,执行两数相加运算的控制线发出“加”操作信号,ALU即把两个数相加并把结果(16)存入累加器,取代累加器前面存放的数9。1.1 微处理器、微机和单片机的概念图图1-2 一个计算机
6、模型一个计算机模型1.1.1 1.1.1 微处理器的组成微处理器的组成2.2.控制器:控制器:组成组成 程序计数器、指令寄存器、指令译码器、时序发生器、操作控制器等作用作用 它是发布命令的“决策机构”,即协调和指挥整个计算机系统的操作。主要功能主要功能 从内存中取出一条指令,并指出下一条指令在内存中的位置。对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。1.1 微处理器、微机和单片机的概念图图1-2 一个计算机模型一个计算机模型1.1.1 1.1.1 微处理器的组成微处理器的组成3.3.主要寄存器:主要寄存器:累加器
7、(累加器(A A)数据寄存器(数据寄存器(DRDR)指令寄存器(指令寄存器(IRIR)和指令译码器()和指令译码器(IDID)程序计数器(程序计数器(PCPC)地址寄存器(地址寄存器(ARAR)1.1 微处理器、微机和单片机的概念图图1-2 一个计算机模型一个计算机模型1.1.1 1.1.1 微处理器的组成微处理器的组成3.3.主要寄存器:主要寄存器:累加器(累加器(A A)累加器是微处理器中最繁忙的寄存器。在算术和逻辑运算时,它具有双重功能双重功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。数据寄存器(数据寄存器(DRDR)数据(缓冲)寄存器(DR)是通过数据总
8、线(DBUS)向存储器(M)和输入/输出设备I/O送(写)或取(读)数据的暂存单元。1.1 微处理器、微机和单片机的概念图图1-2 一个计算机模型一个计算机模型1.1.1 1.1.1 微处理器的组成微处理器的组成3.3.主要寄存器:主要寄存器:指令寄存器(指令寄存器(IRIR)指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时先把它从内存取到数据寄存器中,然后再传送到指令寄存器中。指令译码器(指令译码器(IDID)指令分为操作码和地址码字段,由二进制数字组成。当执行任何给定的指令,必须对操作码进行译码,以便确定所要求的操作。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译
9、码后,即可向控制器发出具体操作的特定信号。1.1 微处理器、微机和单片机的概念图图1-2 一个计算机模型一个计算机模型1.1.1 1.1.1 微处理器的组成微处理器的组成3.3.主要寄存器:主要寄存器:程序计数器(程序计数器(PCPC)通常又称为指令地址计数器。在程序开始执行前,必须将其起始地址,即程序的第一条指令所在的内存单元地址送到PC。当执行指令时,CPU将自动修改PC的内容,使之总是保存将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,所以修改的过程通常是简单的加1操作。地址寄存器(地址寄存器(ARAR)地址寄存器用来保存当前CPU所要访问的内存单元或I/O设备的地址。因为内
10、存(I/O设备)和CPU之间存在着速度上的差别,所以必须使用地址寄存器来保存地址信息,直到内存(I/O设备)读/写操作完成为止。1.1 微处理器、微机和单片机的概念图图1-2 一个计算机模型一个计算机模型1.1.2 1.1.2 存储器和输入存储器和输入/输出接口输出接口1.1.存储器:存储器:地址总线、数据总线和若干控制线把存储器和微处理器连接起来。存储器从CPU接收控制信号,以确定存储器执行读/写操作。地址总线将8位地址信息送入地址译码器,地址译码器的输出可以确定唯一的存储单元。数据总线用来传送存储器到CPU或CPU到存储器的数据信息。2.I/O2.I/O接口及外设:接口及外设:每个外设与微
11、处理器的连接必须经过接口适配器(I/O接口)。每个I/O接口及其对应的外设都有一个固定的地址,在CPU的控制下实现对外设的输入(读)和输出(写)操作。1.1 微处理器、微机和单片机的概念图图1-4 随机存取存储器随机存取存储器1.2 微机的工作过程名称助记符操作码注释取入累加器LDA1001 0110(96H)将存储单元的内容取入累加器,其单元地址由下一个字节给出加法ADD1001 1011(9BH)将存储单元的内容和累加器的现有内容相加,结果放在累加器中,存储单元的地址由下一字节给出累加器送存STA1001 0111(97H)累加器内容送存,存储单元的地址由下一字节给出停机HLT0011 1
12、110(3EH)停止全部操作l微机的微机的“存储程序存储程序”工作方式工作方式 计计算算机机采采取取“存存储储程程序序”的的工工作作方方式式,即即事事先先把把程程序序加加载载到到计计算算机机的的存存储储器器中中,当当启启动动运运行行后后,计计算算机机便便自自动动进进行行工工作作。计计算算器器虽虽然然也也有有运运算算和和控控制制的的功功能能,但但它它不不是是“存储程序存储程序”式的自动工作方式,所以不能称为计算机。式的自动工作方式,所以不能称为计算机。任任何何计计算算机机都都有有它它的的指指令令系系统统,有有十十几几条条至至一一百百多多条条指指令令,并并有有若若干干种种寻寻址址方方式式。我我们们
13、假假设设图图1-21-2所所示示的的模模型型计计算算机机有有4 4条条指指令令,并并只只有有一一种种寻寻址址方方式式直直接接寻寻址址方方式式,模型机的指令及其说明如表模型机的指令及其说明如表1-11-1所列。所列。1.2 微机的工作过程表表1-1 模型机指令表模型机指令表l直接寻址方式直接寻址方式 寻寻址址方方式式是是指指用用什什么么方方法法寻寻找找指指令令的的操操作作数数。上上述述4 4条条指指令令除除HLTHLT外外,LDALDA、ADDADD和和STASTA都有操作数。直接寻址方式的指令格式如图都有操作数。直接寻址方式的指令格式如图1-51-5所示。所示。指指令令中中应应有有一一部部分分
14、数数位位(8(8位位,即即1 1字字节节)用用于于指指明明所所执执行行的的特特定定操操作作,这这部部分分(图图1-51-5中中的的第第1 1字字节节)称称为为操操作作码码。指指令令中中还还应应有有一一部部分分数数位位(图图1-51-5中中的的第第2 2字字节节)用用于于说说明被操作的数据来自什么地方,这一部分叫明被操作的数据来自什么地方,这一部分叫操作数操作数的地址的地址。1.2 微机的工作过程图图1-5 直接寻址方式的指令格式直接寻址方式的指令格式l直接寻址方式直接寻址方式 在在直直接接寻寻址址方方式式中中,一一条条指指令令(如如LDALDA、ADDADD和和STA)STA)需需要要2 2个
15、个字字节节:第第1 1个个字字节节是是操操作码,第作码,第2 2个字节不是操作数,而是存放操作数的内存单元的地址。例如:个字节不是操作数,而是存放操作数的内存单元的地址。例如:LDA 23;将地址为23的内存单元中的内容7装入累加器A中。23为操作数的地址1.2 微机的工作过程图图1-6 执行执行“LDA 23”指令指令1.2.1 1.2.1 执行一条指令的顺序执行一条指令的顺序 计算机执行程序是一条指令一条指令执行的。执行一条指令的过程可分为两个阶段,如图1-7所示。在计算机中,“存储程序”第1条指令的第1个字节一定是操作码。这样,CPU首先进入取取指指阶段,从存储器中取出指令并通过CPU译
16、码后,转入执执指指阶段,在这期间,CPU执行指令指定的操作。取指阶段是由一系列相同的操作组成的,因此,取取指指阶阶段段的的时时间间总总是是相相同同的的。而执行指令的阶段是由不同的事件顺序组成的,它取决于被执行指令的类型。执行完一条指令后接着执行下一条指令。所以,程序的执行顺序是取指、执指,取指、执指如此反复直至程序结束。1.2 微机的工作过程图图1-7 取指令、执行指令序列取指令、执行指令序列1.2.2 1.2.2 执行一条指令的过程执行一条指令的过程 指令“LDA 23”的执行过程是怎样的呢?这是一条直接寻址方式的指令,执行的过程如图1-8所示。LDA指令的指指令令周周期期由3个CPUCPU
17、周周期期(即机机器器周周期期)组成。其中,第1个CPU周期为取指令阶段;执行指令阶段由2个CPU周期组成,第2个CPU周期中将操作数的地址送往地址寄存器并完成地址译码,在第3个CPU周期中,从内存取出操作数并执行装入的操作。1.2 微机的工作过程图图1-8 直接访问内存指令的指令周期直接访问内存指令的指令周期1.2.3 1.2.3 执行一个程序的过程执行一个程序的过程 采用直接寻址,执行一个“7+10”的程序实例如表1-2所示。1.2 微机的工作过程1.2.3 1.2.3 执行一个程序的过程执行一个程序的过程 1.2 微机的工作过程1.2.3 1.2.3 执行一个程序的过程执行一个程序的过程
18、1.2 微机的工作过程1.2.3 1.2.3 执行一个程序的过程执行一个程序的过程 1.2 微机的工作过程1.3 常用数制和编码1.3.1 1.3.1 数制与数制之间的转换数制与数制之间的转换1.1.数制数制计数的进位制计数的进位制 二进制:二进制:是“0”和“1”这样的数、逢2进位。按权展开时权的基数为2。用后缀字母“B”表示。如:1001B=123+022+021+120=9(十进制数)十进制:十进制:是“0”“9”之间的数、逢10进位。按权展开时权的基数为10。用后缀字母“D”表示。如:1135D=1103+1102+3101+5100 十六进制:十六进制:是“0”“9”,“A,B,C,
19、D,E,F”之间的数、逢16进位。按权展开时权的基数为16。用后缀字母“H”表示。如:1C5H=1162+12161+5160=453D1.3 常用数制和编码1.3.1 1.3.1 数制与数制之间的转换数制与数制之间的转换1.1.数制数制计数的进位制计数的进位制 1.3 常用数制和编码1.3.1 1.3.1 数制与数制之间的转换数制与数制之间的转换2.2.不同数制之间的转换不同数制之间的转换二进制、十六进制转化成十进制:二进制、十六进制转化成十进制:将二、十六进制数按权展开相加即为相应的十进制数。如:1101.11B=123+122+021+120+12-1+12-2=13.75D如:1F.A
20、H=1161+15160+1016-1=31.625D十进制转换成二进制数:十进制转换成二进制数:整数部分除2取余,商为0止,余数倒置;小数部分乘2取整,积为0止或满足精度要求时停止,整数顺置如:11.625D=1011.101B1.3 常用数制和编码0.6252=1.25 1 MSB0.252=0.5 00.52=1 1 LSB1.3.1 1.3.1 数制与数制之间的转换数制与数制之间的转换2.2.不同数制之间的转换不同数制之间的转换十进制转换成十六进制数:十进制转换成十六进制数:整数部分除16取余,商为0止,余数倒置;小数部分乘16取整,积为0止或满足精度要求时停止,整数顺置如:100.0
21、625D=64.1H二进制转换成十六进制数:二进制转换成十六进制数:将二进制数以小数点为界四位一分,不足补0,用一位十六进制数代替四位二进制数。如:10011.11B=0001 0011.1100 B=13.C H十六进制转换成二进制数:十六进制转换成二进制数:将十六进制数以小数点为界,用四位二进制数代替一位十六进制数。如:D4.E H=1101 0100.1110 B1.3 常用数制和编码1.3.2 1.3.2 计算机中的常用编码计算机中的常用编码1.BCD1.BCD(Binary Coded DecimalBinary Coded Decimal)码)码二二-十进制码十进制码 BCD码是一
22、种二进制形式的十进制码,也称二-十进制码。它用4位二进制数表示1位十进制数,最常用的是8421BCD码,见表1-4。8421BCD码用0000B-1001B代表十进制数0-9,运算法则是逢十进一。8421BCD码每位的权分别是8,4,2,1,故得此名。例如,十进制1649的BCD码为0001 0110 0100 1001。1.3 常用数制和编码十进制数8421BCD码二进制数十进制数8421BCD码二进制数000000000810001000100010001910011001200100010100001 00001010300110011110001 0001101140100010012
23、0001 0010 1100501010101130001 0011 1101601100110140001 01001110701110111150001 010111111.3.2 1.3.2 计算机中的常用编码计算机中的常用编码2.ASCII2.ASCII(American Standard Code for Information InterchangeAmerican Standard Code for Information Interchange)码)码 ASCII码是一种字符编码,是美国信息交换标准代码的简称。它由7 7位位二进制数码构成,共有128个字符。ASCII码主要用于
24、微机与外设通信。当微机与ASCII码制的键盘、打印机及CRT等连用时,均以ASCII码形式进行数据传输。例如,当按微机的某一键时,键盘中的单片机便将所按的键码转换成ASCII码传入微机进行相应处理。1.3 常用数制和编码1.3.2 1.3.2 计算机中的常用编码计算机中的常用编码3.ASCII3.ASCII扩展码扩展码 由8 8位位二进制数码构成,共有256个字符。4.UNICODE4.UNICODE编码编码 由1616位位二进制数码构成,共有65536个字符。1.3 常用数制和编码1.4 数据在计算机中的表示 因AT89C51是8位单片机,因此以8bit二进制数进行讲解。1.4.1 1.4.
25、1 有符号数有符号数 有有符符号号的的8 8位位二二进进制制数数用用最最高高位位D7D7表表示示数数的的正正或或负负,0 0代代表表“+”+”,1 1代代表表“-”-”,D7D7称为符号位,称为符号位,D6D6 D0D0为数值位。为数值位。上上述述的的8 8位位带带符符号号二二进进制制数数又又有有3 3种种不不同同表表达达形形式式,即即原原码码、反反码码和和补补码码。在在计计算算机中,所有有符号数都是以补码形式存放的机中,所有有符号数都是以补码形式存放的。1.1.原码原码 一个二进制数,用最高位表示数的符号,其后各位表示数值本身,这种表示方法称为原码。原码的表示范围是-127+127。例如:X
26、=+1011010B X原=01011010BX=-1011010B X原=11011010B1.4 数据在计算机中的表示D7D6 D0符号位数值位1.4.1 1.4.1 有符号数有符号数2.2.反码反码 正数的反码与原码相同,符号位一定为0,其余位为数值位。负数的反码符号位为1,数值位将其原码的数值位逐位求反。反码的表示范围是-127+127。例如:X=-1011010B X原=11011010B X反=10100101B3.3.补码补码 正数的补码与原码相同。负数的补码符号位为1,数值位将其原码的数值位逐位求反后加1,即负数的反码加1。补码的表示范围是-128+127。例如:X=-1011
27、010B X补=10100110B 通常计算机中的数用补码表示,用补码进行运算。一个很明显的优点是减法可以用补码的加法来运算。这里还要特别提示“溢溢出出”的概念。溢出与进位不同,溢出是指有符号数的运算结果超出了数-128+127的表示范围,破坏了符号位。1.4 数据在计算机中的表示1.4.1 1.4.1 有符号数有符号数4.4.机器数与真值机器数与真值机器数:计算机中以二进制形式表示的数。真值:机器数所代表的数值。例如,机器数10001010B,它的真值为138(无符号数)-10(原码)-117(反码)-118(补码)【例1-5】怎样根据真值求补码,或根据补码求真值?答:一是求负数的补码,用绝
28、对值“取反加取反加1”1”来求补码;二是求负数(补码)的真值,可先将该补码数用“取取反反加加1”1”的方法得到其绝对值,再在绝对值前添加一负号。另:补码的表盘理论可以自行查阅。另:补码的表盘理论可以自行查阅。1.4 数据在计算机中的表示1.4.2 1.4.2 无符号数无符号数 无无符符号号的的8 8位位二二进进制制数数没没有有符符号号位位,从从D7D0D7D0皆皆为为数数值值位位,所所以以8 8位位无无符符号号二二进进制制数的表示范围是数的表示范围是0+2550+255。1.4 数据在计算机中的表示8位二十进制数无符号数原码反码补码0000 00000+0+0+00000 00011+1+1+
29、10000 00102+2+2+20111 1100124+124+124+1240111 1101125+125+125+1250111 1110126+126+126+1260111 1111127+127+127+1271000 0000128-0-127-1281000 0001129-1-126-1271000 0010130-2-125-1261111 1100252-124-3-41111 1101253-125-2-31111 1110254-126-1-21111 1111255-127-0-11.5 89C51/S51单片机 8051 8051是是IntelIntel公司推
30、出的内核架构,其他公司的公司推出的内核架构,其他公司的5151系列单片机系列单片机都是以都是以80518051为内核的。为内核的。5151系系列列单单片片机机有有多多种种型型号号的的产产品品,如普通型(51子系列)80C51、80C31、87C51和89C51等,增强型(52子系列)80C32、80C52、87C52和89C52等。它们的结构基本相同,其主要差别反映在存储器的配置上。其主要差别反映在存储器的配置上。80C31片内没有程序存储器,80C51内部设有4KB的掩膜ROM程序存储器。87C51是将80C51片内的ROM换成EPROM,89C51则换成4KB的Flash ROM。51增强
31、型(52子系列)的程序存储器容量为普通型的2倍。通常以通常以8C518C51代表这一系列的单片机,代表这一系列的单片机,其中=0掩膜ROM =7EPROM/OTPROM =9Flash ROM1.5 89C51/S51单片机 89系列单片机已经在片内增加4KB或8KB的Flash ROM,而且整个89C51/89C52芯片比87C51便宜得多。所以现在已经没有人使用80C31或87C51开发产品了。单片机是典型的嵌入式系统,从体系结构到指令系统都是按照嵌入式应用特点专门设计的,能最好地满足面对控制对象、应用系统的嵌入、现场的可靠运行以及非凡的控制品质要求。因此,单片机是发展最快、品种最多、数量
32、最大的嵌入式系统。嵌入式系统与单片机已深入到国民经济众多技术领域,从天上到地下,从军事、工业到家庭日常生活。在人类进入信息时代的今天,难以想像,没有单片机的世界将会 怎 样!本 教 程 以 ATMEL、PHILIPS和 SST等 公 司 的 89系 列 单 片 机 中 的AT89C51/P89C51/SST89E554(以下简称为89C51)为典型机,讲述单片机的硬件结构、原理、接口技术、编程及其应用技术。舍弃80C31扩展EPROM的传统模式,而依据目标任务选择所需不同档次(片内不同存储器容量)的89系列单片机。AT89C系列单片机属常规类型,只能用通用编程器进行编辑,不能进行下载编程,AT89S系列单片机主要特点是具有ISPISP功功能能,也就是说,对AT89S芯片进行编程时,不需要将芯片从目标板上取下,只需用一根下载线即可对AT89S单片机进行下载编程。1.5 89C51/S51单片机1.5 89C51/S51单片机1.5 89C51/S51单片机谢谢!