关注作者了解更多
我的其他CSDN专栏
关注作者了解更多
资料来源于网络,如有侵权请联系编者
目录
1.BCD(Binary Coded Decimal)码——二-十进制码
2.ASCII(American Standard Code for Information Interchange)码
1.1微处理器
1.1.1微处理器的组成
图中假设所有的计数器、寄存器和总线都是8位宽度。
数据单元
ALU、计数器、寄存器和控制部分除在微处理器内通过内部总线相互联系以外,还通过外部总线和外部的存储器和输入输出接口电路联系。
外部总线一般分为数据总线、地址总线和控制总线,统称为系统总线。
存储器包括RAM和ROM
为计算机通过输入/输出接口电路可与各种外围设备联接。
1.运算器
组成
算术逻辑单元(简称ALU)
累加器
数据寄存器
作用
把传送到微处理器的数据进行算术运算或逻辑运算。ALU可对两个操作数进行加、减、与、
或、比较大小等操作,最后将结果存入累加器。ALU执行不同的运算操作是由不同控制线上的信息所确定的。
ALU数据来源
累加器、数据寄存器
主要功能
算数运算
逻辑运算和逻辑测试,如零值测试,两值比较
运算器功能实现过程举例
两个数(7和9)相加,在相加之前,操作数9放在累加器中,7放在数据寄存器中,执行两数相加运算的控制器发出“加”操作信号,ALU即把两个数相加并把结果(16)存入累加器,取代累加器前面存放的数9.
2./控制器
组成
程序计数器、指令寄存器、指令译码器、时序发生器、操作控制器等
作用
它是发布命令的“决策机构”,即协调和指挥整个计算机系统的操作
主要功能
1.从内存中取出一条指令,并指出下一条指令在内存中的位置
2.对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作
3.指挥并控制CPU、内存和输入/输出设备之间数据流动的方向
3.主要寄存器
累加器(A)
累加器是微处理器中最繁忙的寄存器。
在算数和逻辑运算时,它具有双重功能:
1运算前,用于保存一个操作数;
2.运算后,用于保存所得的和、差或逻辑运算结果
数据寄存器(DR)
数据(缓冲)寄存器(DR)是通过数据总线(DBUS)向存储器(M)和输入/输出设备I/O送(写)或取(读)数据的暂存单元
指令寄存器(IR)和指令译码器(ID)
指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时先把它从内存取到数据寄存器中,然后再传送到指令寄存器中。
指令分为操作码和地址码字段,由二进制数字组成。当执行任何给定的指令,必须对操作码进行译码,以便确定所要求的操作。
指令寄存器中操作码字段的输出就是指令译码器的输入
操作码一经译码后,即可向控制器发出具体操作的特定信号。
程序计数器(PC)
通常又称为指令地址计数器。在程序开始执行前,必须将其起始地址,即程序的第一条指令所在的内存单元地址送到PC。当执行指令时,CPU将自动修改PC的内容,使之总是保存将要执行的下一条指令的地址。
地址寄存器(AR)
地址寄存器用来保存当前CPU所要访问的内存单元或I/O设备的地址。因为内存(I/O设备)和CPU之间存在着速度上的差别,所以必须使用地址寄存器来保存地址信息,指导内存(I/O设备)读/写操作完成为止。
1.1.2存储器和输入/输出接口
1.存储器
地址总线、数据总线和若干控制线把存储器和微处理器连接起来。
存储器从CPU接受控制信号,以确定存储器执行读/写操作。
地址总线将8位地址信息送入地址译码器,地址译码器的输出可以确定唯一的存储单元。
数据总线用来传送存储器到CPU或CPU到存储器的数据信息。
2/I/O接口及外设
每个外设与微处理器的连接必须经过接口适配器(I/0接口)
每个I/O接口及其对应的外设都有一个固定的地址,在CPU的控制下实现对外设的输入(读)和输出(写)操作。
§1.1.3 输入输出接口
每个外设与微处理器的连接必须经过接口适配器(I/O接口)
每个I/O接口及其对应的外设都有一个固定的地址,在CPU的控制下实现对外设的输入(读)和输出(写)操作。
1.2 微机的工作过程
微机的“存储程序”工作方式
计算机采取“存储程序”的工作方式,即事先把程序加载到计算机的存储器中,当启动运行后,计算机便自动进行工作。计算器虽然也有运算和控制的功能,但它不是“存储程序”式的自动工作方式,所以不能称为计算机。
任何计算机都有它的指令系统,有十几条至一百多条指令,并有若干种寻址方式。我们假设图1-2所示的模型计算机有4条指令,并只有一种寻址方式——直接寻址方式,模型机的指令及其说明如表1-1所列。
直接寻址方式
寻址方式是指用什么方法寻找指令的操作数。上述4条指令除HLT外,LDA、ADD和STA都有操作数。直接寻址方式的指令格式如图1-5所示。
指令中应有一部分数位(8位,即1字节)用于指明所执行的特定操作,这部分(图
1-5中的第1字节)称为操作码。指令中还应有一部分数位(图1-5中的第2字节)用于说
明被操作的数据来自什么地方,这一部分叫操作数的地址。
在直接寻址方式中,一条指令(如LDA、ADD和STA)需要2个字节:第1个字节是操
作码,第2个字节不是操作数,而是存放操作数的内存单元的地址。例如:
1.2.1 执行一条指令的顺序
计算机执行程序是一条指令一条指令执行的。执行一条指令的过程可分为两个阶段,如图1-7所示。
在计算机中,“存储程序”第1条指令的第1个字节一定是操作码。这样,CPU首先进入取指阶段,从存储器中取出指令并通过CPU译码后,转入执指阶段,在这期间,CPU执行指令指定的操作。
取指阶段是由一系列相同的操作组成的,因此,取指阶段的时间总是相同的。而执行指令的阶段是由不同的事件顺序组成的,它取决于被执行指令的类型。执行完一条指 令 后 接 着 执 行 下 一 条 指 令 。 所以 , 程序 的 执 行 顺 序 是 取 指 、 执指 , 取指 、 执指……如此反复直至程序结束。
1.2.2 执行一条指令的过程
指令“LDA 23”的执行过程是怎样的呢?这是一条直接寻址方式的指令,执行的
过程如图1-8所示。
LDA指令的指令周期由3个CPU周期(即机器周期)组成。其中,第1个CPU周期为取
指令阶段;执行指令阶段由2个CPU周期组成,第2个CPU周期中将操作数的地址送往地
址寄存器并完成地址译码,在第3个CPU周期中,从内存取出操作数并执行装入的操作。
1.2.3 执行一个程序的过程
采用直接寻址,执行一个“7+10”的程序实例如表1-2所示
1.3 常用数制和编码
1.3.1 数制与数制之间的转换
2.不同数制之间的转换
2.不同数制之间的转换
1.3.2 计算机中的常用编码
1.BCD(Binary Coded Decimal)码——二-十进制码
BCD码是一种二进制形式的十进制码,也称二-十进制码。它用4位二进制数表示1
位十进制数,最常用的是8421BCD码,见表1-4。8421BCD码用0000B-1001B代表十进制
数0-9,运算法则是逢十进一。8421BCD码每位的权分别是8,4,2,1,故得此名。
例如,十进制1649的BCD码为0001 0110 0100 1001。
2.ASCII(American Standard Code for Information Interchange)码
ASCII码是一种字符编码,是美国信息交换标准代码的简称。它由7位二进制数码
构成,共有128个字符。ASCII码主要用于微机与外设通信。当微机与ASCII码制的键
盘、打印机及CRT等连用时,均以ASCII码形式进行数据传输。
例如,当按微机的某一键时,键盘中的单片机便将所按的键码转换成ASCII码传
入微机进行相应处理。
1.4 数据在计算机中的表示
因AT89C51是8位单片机,因此以8bit二进制数进行讲解。
1.4.1 有符号数
有符号的8位二进制数用最高位D7表示数的正或负,0代表“+”,1代表“-”,D7称为符号位,D6~D0为数值位。
上述的8位带符号二进制数又有3种不同表达形式,即原码、反码和补码。在计算
机中,所有有符号数都是以补码形式存放的。
1. 原码
一个二进制数,用最高位表示数的符号,其后各位表示数值本身,这种表示
方法称为原码。原码的表示范围是-127~+127。例如:
2. 反码
正数的反码与原码相同,符号位一定为0,其余位为数值位。负数的反码符号
位为1,数值位将其原码的数值位逐位求反。反码的表示范围是-127~+127。例如:
3. 补码
正数的补码与原码相同。负数的补码符号位为1,数值位将其原码的数值位逐
位求反后加1,即负数的反码加1。补码的表示范围是-128~+127。例如:
通常计算机中的数用补码表示,用补码进行运算。一个很明显的优点是减法
可以用补码的加法来运算。
这里还要特别提示“溢出”的概念。溢出与进位不同,溢出是指有符号数的
运算结果超出了数-128~+127的表示范围,破坏了符号位。
4. 机器数与真值
机器数:计算机中以二进制形式表示的数。
真值:机器数所代表的数值。
例如,机器数10001010B,它的真值为
1.4.2 无符号数
无符号的8位二进制数没有符号位,从D7~D0皆为数值位,所以8位无符号二进制
数的表示范围是0~+255。
1.5 89C51/S51单片机
8051是Intel公司推出的内核架构,其他公司的51系列单片机都是以8051为内核的。
51系列单片机有多种型号的产品,如普通型(51子系列)80C51、80C31、87C51和89C51等,增强型(52子系列)80C32、80C52、87C52和89C52等。它们的结构基本相同,其主要差别反映在存储器的配置上。
89系列单片机已经在片内增加4KB或8KB的Flash ROM,而且整个89C51/89C52芯片比87C51便宜得多。所以现在已经没有人使用80C31或87C51开发产品了。
单片机是典型的嵌入式系统,从体系结构到指令系统都是按照嵌入式应用特点专
门设计的,能最好地满足面对控制对象、应用系统的嵌入、现场的可靠运行以及非凡
的控制品质要求。因此,单片机是发展最快、品种最多、数量最大的嵌入式系统。
嵌入式系统与单片机已深入到国民经济众多技术领域,从天上到地下,从军事、
工业到家庭日常生活。在人类进入信息时代的今天,难以想像,没有单片机的世界将
会怎 样 ! 本教 程 以 ATMEL 、 PHILIPS 和 SST 等公 司 的 89 系列 单 片 机 中 的
AT89C51/P89C51/SST89E554(以下简称为89C51)为典型机,讲述单片机的硬件结构、
原理、接口技术、编程及其应用技术。舍弃80C31扩展EPROM的传统模式,而依据目标
任务选择所需不同档次(片内不同存储器容量)的89系列单片机。
AT89C系列单片机属常规类型,只能用通用编程器进行编辑,不能进行下载编程,
AT89S系列单片机主要特点是具有ISP功能,也就是说,对AT89S芯片进行编程时,不
需要将芯片从目标板上取下,只需用一根下载线即可对AT89S单片机进行下载编程。