数制及编码教材_第1页
数制及编码教材_第2页
数制及编码教材_第3页
数制及编码教材_第4页
数制及编码教材_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、单片机中数的表示形式在单片机中,只有数码1和0两种不同的状态,对于一个数的正、负号,两种不同状态,约定正数的符号用0表示,负数的符号用1表示,将符号位放在数的最左边。例如:1.2数制和编码N2=-1100(表示负数)N1=+1011(表示正数)假设一个8位单片机,即信息是以8位为单位进行处理的,且每个存贮单元只能存贮—个8位的二进制数,称为一个字节,如果用一个字节(即8位二进制数)来表示上述两个符号数,它们在单片机中可分别表示为:00001011和10001100,其中最高位为符号值,其余位为数值位。最高位为0表示是正数,最高位为1表示是负数。这种计算机用来表示数的形式叫机器数,也叫机器码,而把对应于该机器数的算术值叫真值。值得注意的是:机器数和真值的面向对象不同,机器数面向计算机,真值面向用户,机器数不同于真值,但真值可以用机器数来表示。机器数是计算机中表示数的基本方法,机器数通常有原码、反码和补码三种形式。[+120]原=01111000B[-120]原=11111000B微型计算机的原码形式就是机器数形式,二者完全相同。它们的最高位为符号位,其余为数值位。符号位为0表示该数为正数,符号位为1表示该数为负数。在微型计算机中,一个数的原码是把该数用方括号括起来,并在方括号右下角加“原”字来表示。[例]:真值为+120和-120的在八位微型计算机中的原码形式1.原码表示方法(trueform)对于0,可以认为它是+0,也可以认为它是-0,它在八位微型计算机中的原码形式有两种:[+0]原=00000000B[-0]原=10000000B8位二进制数原码表示范围11111111B-01111111B,即-127~+127。在微型计算机中,二进制数的反码求法很简单,有正数的反码和负数的反码之分。在反码表示方法中,正数的反码与原码相同;负数的反码的符号位和负数原码的符号位相同,即为1,数值位是它的数值位按位取反。反码的标记方法和原码的类似,只是在方括号的右下角加“反”字即可。2.反码表示方法(complement)[X]原=01101101B[Y]原=10110110B[X]反=01101101B[Y]反=11001001B8位二进制数反码表示范围

11111111B-01111111B,即-127~+127[例]设X=+1101101,Y=-0110110,写出X和Y的原码和反码形式。0在八位微型计算机中的反码形式有两种[+0]反=00000000B[-0]反=11111111B3.补码表示方法[X]原=00001010B[Y]原=10001010B[X]反=00001010B[Y]反=11110101B[X]补=00001010B[Y]补=11110110B正数的补码和原码相同,负数的补码是反码加1。[例]已知X=+1010B,Y=-01010B,试分别写出它们在八位微型机中的原码、反码和补码。0的补码只有一种形式0在八位微型计算机中的补码形式有两种[+0]补=[+0]原=[+0]反=00000000B[-0]补=[-0]反+1=11111111B+1=00000000B在日常生活中,编码问题是经常会遇到的。例如:电话号码、房间编号、班级号和学号等等,这些编码问题的共同特点是采用十进制数字来为用户、房间、班级和学生等编号的,编码位数和用户数的多寡有关。例如:一个两位十进制数字的编码最多容许100家用户装电话。二、微型计算机的二进制编码在计算机中,由于机器只能识别二进制数,因此键盘上所有的数字、字母和符号也必须事先为它们进行二进制编码,以便机器对它们加以识别、存储、处理和传送。和日常生活中的编码问题一样,所需编码的数字、字母和符号越多,二进制数字的位数也越长。下面介绍几种微型机中常用的编码。二-十进制编码又称BCD码,既具有二进制数的形式,以便于存储,又具有十进制数的特点,以便于进行运算和显示结果。BCD码(BinaryCodedDecimal)是一种具有十进制权的二进制编码。BCD码的种类较多,常用的有8421码、余3码和格雷码等。现以8421码为例进行讨论。1.二-十进制编码(十进制数的二进制编码)8421码也是BCD码中的一种,因组成它的4位二进制数码的权为8、4、2、1而得名。8421码是一种采用4位二进制数来代表十进制数码的代码系统。在这个代码系统中,十组4位二进制数分别代表了0-9中的十个数字符号,如表所列。(1)8421码的定义4位二进制数字共有15种组合,其中0000B-1001B为8421的基本代码系统,1010B-1111B未被使用,称为非法码或冗余码。10以上的所有十进制数至少需要二位8421码字(即8位二进制数字)来表示,而且不应出现非法码,否则就不是真正的BCD数。因此,BCD数是由BCD码构成的,是以二进制形式出现的,是逢十进位的,但它并不是一个真正的二进制数,因为二进制数是逢二进位的。例如:十进制数45的BCD形式为01000101B(即45H),而它的等值二进制数为00101101B(即2DH)。所谓BCD加法是指两个BCD数按“逢十进位”原则进行相加,其和也是一个BCD数。BCD加法应由计算机自动完成,但计算机只能进行二进制加法。它在两个相邻BCD码之间只能按“逢16进位”,不可能进行逢十进位的。因此计算机在进行BCD加法时,必须对二进制加法的结果进行修正,使两个紧邻的BCD码之间真正能够做到逢十进位。(2)BCD加法运算在进行BCD加法过程中,计算机对二进制加法结果进行修正的原则是:若和的低4位大于9或低4位向高4位发生了进位,则低4位加6修正;若高4位大于9或高4位的最高位发生进位,则高4位加6修正。这种修正是由微处理器内部的十进制调整电路自动完成的,这个十进制调整电路是由专门的十进制调整指令命令它工作的。因此,最终也是由人来控制的。[例]已知X=48,Y=69,试分析BCD的加法过程。

相加两数为无符号数,最高位进位有效。显然,人工算法和机器算法结果是一致的。现代微型计算机不仅要处理数字信息,而且还需要处理大量字母和符号信息。这就需要人们对这些数字、字母和符号进行二进制编码,以供微型计算机识别、存储和处理。这些数字、字母和符号统称为字符,因此上述字母和符号的二进制编码又称为字符的编码。2.ASCII码(字符编码)ASCII码(AmericanStandardCodedforInformationInterchange)是“美国信息交换标准代码”的简称。ASCII码诞生于1963年,是一种比较完整的字符编码,已成为国际通用的标准编码,现已广泛用于微型计算机中。通常,ASCII码有7位二进制数码构成,共可为128个字符编码。这128个字符共分两类:一类是图形字符,共96个,另一类是控制字符,共32个。96个图形字符包括十进制数符10个、大小写英文字母52个和其他字符24个,这类字符有特定形状,可以显示在CRT上和打印在打印纸上,其编码可以存储、传送和处理。32个控制字符包括回车符、换行符、退格符、设备控制符和信息分隔符,等等。这类字符没有特定形状,其编码虽然可以存储、传送和起某种控制作用,但字符本身是不能在CRT上显示和打印纸上打印的。(附录B)

在附录B的ASCII字符表中,中间部分为96个图形字符和32个控制字符代号,左边和上边为相应字符的ASCII码,其中上边为高三位二进制,左边为低4位二进制码。例如:数字0-9的ASCII码为0110000B-0111001B(即30H-39H),大写字母A-Z的ASCII码为41H-5AH。第二章MCS-51单片机硬件结构

本章主要以8051为主线叙述MC5—51单片机的内部结构、工作原理、存储器结构、P0、P1、P2、P3四个I/O口的基本工作原理和操作特点。引脚功能、工作方式和时序,这些对后续章节的学习是十分重要的。

﹡8051/8751/8031;

﹡8052/8752/8032;

﹡80C51/87C51/80C31

﹡80C52/87C52/80C32等

MCS-51是Intel公司生产的一个单片机系列名称。在MCS—51系列里,所有产品都是以8051为核心电路发展起来的,它们都具有8051的基本结构和软件特征。属于这一系列的单片机有多种,如:2.1MCS-51单片机总体结构80C51单片机是在8051的基础上发展起来的,8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致(完全兼容),也就是说在8051下开发的软件完全可以在80C51上应用,反过来,在80C51下开发的软件也可以在8051上应用。这两种单片机是完全可移植的。8051与80C51单片机的主要差别就在于芯片的制造工艺上。80C51的制造工艺是在8051基础上进行了改进。8051系列单片机采用的是HMOS工艺:高速度、高密度;80C51系列单片机采用的是CHMOS工艺:高速度、高密度、低功耗;也就是说80C51单片机是一种低功耗单片机。该系列生产工艺有两种:CHMOS是CMOS和HMOS的结合,既保持了HMOS高速度和高密度的特点,还具有CMOS的低功耗的特点。在产品型号中凡带有字母“C”的即为CHMOS芯片,CHMOS芯片的电平既与TTL电平兼容,又与CMOS电平兼容。CMOS器件的特点是电流小和功耗低(掉电方式下消耗10微安电流),但对电平要求高(高电平大于4.5v,低电平小于0.45V),HMOS对电平要求低(高电平大于2.0V,低电平小于0.8v),但功耗大。

一是HMOS工艺(高密度短沟道MOS工艺)。二是CHMOS工艺(互补金属氧化物的HMOS工艺)。8051单片机内部包含了作为微型计算机所必需的基本功能部件(CPU,4KBROM、256RAM、4个8位的I/O口、一个串行口、两个16位定时/计数器、1个具有5个中断源2个优先级的嵌套中断结构、此外还有程序计数器PC、程序状态寄存器PSW、堆栈寄存器SP、数据指针寄存器DPTR等部件),8051内部基本结构框图如下。各功能部件相互独立而融为一体,集成在同一块芯片上,通过内部总线传送数据信息和控制信息。如果把图中ROM这部分电路移走,则它和8031的内部结构相同。

MCS-51单片机内部结构示意图

时钟电路CPUROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0INT1定时计数器结构框图中央处理器CPU:8位,运算和控制功能内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。定时/计数器:两个16位的定时/计数器,实现定时或计数功能。并行I/O口:4个8位的I/O口P0、P1、P2、P3。串行口:一个全双工串行口。中断控制系统:5个中断源(外部中断2个,定时/计数中断2个,串行中断1个)时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ一.三总线概念

在模拟电路中,器件、部件一般按“串联”方式连接。而在计算机电路中却采用总线连接方式:每一器件的数据线并接在一起,构成数据总线;地址线接在一起,构成地址总线,然后与CPU的数据、地址总线相连,属“并联”关系。为避免混乱,任何时候只允许一个设备与CPU通信,因此需要用控制线进行控制、选择,系统(包括器件)所有的控制线被称为控制总线。2.1.1、总体结构框图及功能一.三总线概念(1)地址总线(AddressBus,简称AB),单向,用于传送地址信息,地址线的数目决定了可以寻址的存储空间。(2)数据总线(DataBus,简称DB),一般为双向,用于CPU与存储器、CPU与外设,或外设与外设之间的传送数据(包括实际意义的数据和指令码)信息。(3)控制总线(ControlBus,简称CB),是计算机系统中所有控制信号线的总称,在控制总线中传送的信息是控制信息。二.存储器

存储器是计算机系统中必不可少的存储设备,主要用于存放程序(指令)和数据。尽管寄存器和存储器均用于存储信息,但CPU内的寄存器数量少,存取速度快,它主要用于临时存放参加运算的操作数和中间结果;而存储器一般在CPU外(但单片机CPU例外,其内部一般均含有一定容量的存储器),单独封装。存储器的种类很多,根据存储器能否随机读写,将存储器分为两大类:只读存储器(ReadOnlyMemory,简称ROM)。

随机读写存储器(RandomAccessMemory,简称RAM)。1.存储器分类PROM(可编程的只读存储器)EPROM(紫外光可擦写的只读存储器)、OTPROM(一次性编程的只读存储器,内部结构、工作原理与EPROM相似,是一种没有擦写窗口的EPROM)EEPROM(也称为E2PROM,是一种电可擦写的只读存储器)、FlashROM(电可擦写只读存储器,写入速度比EEPROM快,因此也称为闪烁存储器)SRAM(静态存储器)作随机读写RAM,使用E2PROM或FRAM(铁电存储器,读写速度快,操作方法与SRAM相似)作非易失的数据存储器。尽管这些存储器工作原理不同,但内部结构基本相同。

概念:译码是编码的逆过程,将输入的每个二进制代码赋予的含义“翻译”过来,并给出相应的输出信号。具有译码功能的逻辑部件称为译码器。根据译码的概念,译码器的输出端子数N和输入端子数n之间应该满足关系式:N≤2n。STA1A0Y3Y2Y1Y01××11110001110001110101010110110111表

2线-4线译码器真值表BIN/OCTY0STY1Y2Y3A0A112EN0123图

2线-4线译码器逻辑符号1-高电平,0-低电平,×-任意,低电平有效。

由真值表可见,在选通端ST(低电平有效)为0时,对应译码地址输入端A1、A0的每一组代码输入,都能译成在对应输出端输出低电平0。

在译码的过程中,任何时刻只有一个输出端为有效电平,且其余输出端都为相反的电平。

3线-8线译码器BIN/OCTY0STBY1Y2Y3A0A112EN0123图

3线-8线译码器

逻辑符号4567Y4Y5Y6Y7STCSTAA24&STASTB+STCA2A1A0Y0Y1Y2Y3Y4Y5Y6Y7×1×××111111110××××1111111110000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110表

3线-8线译码器真值表选通信号,高电平有效。选通信号,低电平有效。图

存储器芯片及内部结构2.存储器内部结构

EPROM、EEPROM、FlashROM、SRAM、FRAM等存储器内部结构可以用下图描述,由地址译码器、存储单元、读写控制电路等部分组成。

两根8位总线和若干控制线把存储器和微处理器连接起来。地址总线将一组8位二进制数从CPU送到存储器的地址译码器。每个存储单元被赋予一个唯一的地址,规定第一单元地址为0,最后一单元的地址为255。在地址总线上,通过8位地址线选择指定的单元。地址译码器的输出可以唯一确定被选择的存储单元。

存储器从CPU接收控制信号,从而确定存储器执行何种操作。“读”信号表明要读出被选单元的内容,并将数据放到数据总线上,有总线送到CPU。“写”信号表明要把数据总线上的数据写入指定的存储单元中。

3.存储器的容量及地址线的计算地址线的根数:n地址线空间:2n地址:从n个0~n个1

89C51单片机内部结构如图所示。

三.CPU结构

8051内部CPU是一个字长为二进制八位的中央处理单元,也就是说它对数据的处理是按字节为单位进行的。和微型计算机CPU类似,8051内部CPU也是由运算器(ALU)、控制器(定时控制部件等)和专用寄存器组三部分电路组成。(一)、运算器

运算器由运算部分--算术逻辑单元(Arithmetic&LogicalUnit,简称ALU),累加器和寄存器等几部分组成.ALU的作用是把传送到微处理器的数据进行算术或逻辑运算.ALU具有两个主要的输入来源,一个来自累加器,另一个来自数据寄存器.ALU能够完成这两个输入数据的相加或相减运算,也能完成某些逻辑运算。ALU执行不同的运算操作是由不同控制线上的信号所确定的。

通常,ALU接受来自累加器和数据寄存器的两个8位二进制数,因为要对这些数据进行某些操作,所以将这两个输入的数据均成为操作数。运算器有两个主要功能:

(1)执行各种算术运算。

(2)执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。

通常,一个算数操作产生一个运算结果,而一个逻辑操作产生一个判决。(二)、控制器

控制器由程序计数器,指令寄存器,指令译码器,时序发生器和操作控制器等组成,是发布命令的"决策机构",即协调和指挥整个计算机系统的操作.控制器的主要功能有:

(1)从内存中取出一条指令,并指出下一条指令在内存中的位置。

(2)对指令进行译码或测试,并产生相应的操作控制信号,以便执行规定的动作.比如一次内存读/写操作,一个算术/逻辑运算操作或一个输入/输出操作等。

(3)指挥并控制CPU,内存和输入/输出设备之间数据流动的方向。

相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所执行的全部操作都是由控制器发出的控制信号来指挥的。

ALU、计数器、寄存器和控制部分除在微处理器内通过内部总线相互联系外,还通过外部总线与外部的存储器和输入/输出借口电路联系。外部总线一般分为数据总线DB、地址总线AB和控制总线CB,统称为系统总线。存储器包括RAM和ROM。微型计算机通过输入/输出接口电路可与各种外围设备连接。(三)、CPU中的主要寄存器:

(1)累加器(A):它是微处理器中最繁忙的寄存器.在算术和逻辑运算时,它具有双重功能:运算前,用于保存一个操作数;运算后,用于保存所得的和,差或逻辑运算结果。

(2)数据寄存器(DR):它是通过数据总线向存储器和输入/输出设备松(写)或取(读)数据的在存单元。它可以保存一条正在译码的指令,也可以保证在送往存储器中存储的一个数据字节等等。(3)指令寄存器(IR)及指令译码器(ID)

指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器中,然后再传送到指令寄存器。指令分为操作码和地址码字段,由二进制数字组成。为执行给定的指令,必须对操作码进行译码,以便确定所要求的操作。指令译码器就是负责这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码已经译码后,即可向操作控制器发出具体操作的特定信号。

(4)程序计数器(PC)

为了保证程序能够连续地执行下去,CPU必须采取某些手段来确定下一条指令的地址。程序计数器正是起到了这种作用,所以通常又成其为指令地址计数器。在程序开始执行前,必须将其起始地址,即程序的第一条指令所在的内存单元地址送入PC;当执行指令时,CPU将自动修改PC的内容,是指总是指示出将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,所以修改的过程通常只是简单的加1操作。

(5)地址寄存器(AR):

它是用于保存当前CPU所要访问的内容单元或I/O设备的地址。由于内存和CPU之间存在着速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止。显而易见,当CPU和内存进行信息交换(即CPU向/从内存器存储器/取数据或者CPU从内存读出指令)时,都要使用地址寄存器和数据寄存器。同样,如果把外围设备的地址作为内存地址单元来看待的话,那么,当CPU和外围设备交换信息时,也需要使用地址寄存器和数据寄存器。PSW是一个八位标志寄存器,用来存放指令执行后的有关状态。PSW中各位状态通常是在指令执行过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。它的各标志位定义如下:(6)程序状态字PSW(ProgramStatusWord)①进位标志位Cy((Carry):用于表示加减运算过程中最高位A7〔累加器最高位)有无进位或借位。在加法运算时,若累加器最高位A7有进位,则Cy=1;否则Cy=0。在减法运算时,若A7有了借位,则Cy=1;否则认Cy=0。此外,CPU在进行移位操作时也会影响这个标志位。②辅助进位位AC(AuxiliaryCarry):用于表示加减运算时低4位(即A3)有无向高4位(即A4)进位或借位。若AC=0,则表示加减过程中A3没有向A4进位或借位;若AC=l,则表示加减过程中A3向A4有了进位或借位。③用户标志位F0(F1agZero):F0标志位的状态通常不是机器在执行指令过程中自动形成的,是用户根据程序执行的需要通过传送指令确定的。该标志位状态一经设定,便由用户程序直接检测,以决定用户程序的流向。

④寄存器选择位RS1和RS0:8051共有8个八位工作寄存器,分别命名为R0—R7。工作寄存器R0—R7常常被用户用来进行程序设计,但它在RAM中的实际物理地址是可以根据需要选定的。RS1和RS0就是为了这个目的提供给用户使用的,用户通过改变RS1和RS0的状态可以方便地决定R0—R7的实际物理地址。工作寄存器R0—R7的物理地址和RS1和RS0之间的关系如表。RS1RS0R0-R7组号R0-R7物理地址00011011012300H-07H08H-0FH10H-17H18H-1FH采用8051或8031做成的单片机控制系统,开机后的RS1和RS0总是为零状态,故R0—R7的物理地址为00H—07H,即R0的地址为00H,R1的为01H……,R7的为07H。但若机器执行如下指令则RS1和RS0显然为01B,故R0—R7的物理地址变为08H—0FH。因此,用户利用这种方法可以很方便地达到保护R0—R7中数据的目的,这对用户的程序设计是非常有利的。MO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论