单片机电子管计算机

电子管计算机  时间:2021-04-01  阅读:()

第1讲单片机基础知识从1946年2月宾夕法尼亚大学研制出第一台数字计算机ENIAC(ElectronicNumericalIntegratorAndCalculator,电子数字积分器与计算机)至今,计算机的发展已经经历了电子管计算机、晶体管计算机、集成电路计算机以及大规模集成电路计算机4个时代.
如今计算机已经不再是当年少数科研人员使用的"庞然大物",而是以微机(Microcomputer)的形式进入到了我们日常工作、生活的各个角落.
单片机作为微型计算机的一种,在工业控制以及日常生活中都有十分广泛的应用.
本讲将介绍单片机的概念和预备知识,为后面系统详细学习单片机做好铺垫.
单片机概述单片机中的预备知识1.
1单片机概述从仪器仪表到工业控制,从家用电器到航空航天,单片机在我们的日常生活和工作中有着十分广泛的应用.
而在平时的学习过程中,除了单片机我们还常常听到微处理器、微型计算机、嵌入式系统等名词,这些名词与单片机有着密切的联系,同时也有着一定的区别.
本节将从这几个概念开始继而详细阐述单片机的相关概念、发展历史、基本组成、应用以及发展趋势.

1.
1.
1有关单片机的几个概念微处理器、微型计算机、微型计算机系统、嵌入式系统、单片机这几个概念之间有着一定的联系也存在一定的区别,弄清楚这几个概念有利于我们更好地理解什么是单片机.
(1)微处理器(MicroProcessorUnit)微处理器即MPU,是由一块或者几块大规模集成电路组成的中央处理器(CPU),具有控制运算功能.
1971年,计算机发展进入到大规模集成电路时代,微处理器得以诞生并开始高速发展.
从第一代4位处理器开始,历经8位处理器、16位处理器、32位处理器,现在64位处理器也已经得到广泛的使用.
由于是将CPU集成在一个半导体芯片上,所以相较传统的CPU,其具有体积小、重量轻以及容易模块化的特点.
微处理器是构成微型计算机的核心部件.

(2)微型计算机(MicroComputer)微型计算机简称微机,是以微处理器为核心单元,配以存储器、输入/输出设备接口电路以及相应辅助电路构成的裸机.
依据组成微型计算机电路板数量类型的不同,可以将微型计算机分为多板微型计算机、单板微型计算机以及单片微型计算机.
其中,单片微型计算机即通常所说的单片机,也就是说单片机是微型计算机中的一种.

(3)微型计算机系统(MicroComputerSystem)以微型计算机为核心,再配以相应的外围设备、电源、辅助电路和控制微型计算机工作的软件就构成了完整的微型计算机系统.
因此,所说的单独的微型计算机并不是一个微型计算机系统,一般而言,微型计算机系统包含硬件和软件两个部分.

通过上面的介绍可以看出,从微处理器到微型计算机再到微型计算机系统,这3个概念包含的范围依次递增,微处理器是微型计算机的核心单元,微型计算机又是微型计算机系统的核心单元.
(4)嵌入式系统(EmbeddedSystem)嵌入式系统是一种完全嵌入受控器件内部且为特定应用而设计的专用计算机系统.
相较于平常使用的个人计算机(PersonalComputer)系统,嵌入式系统通常执行的是有特定要求预先设置的任务.
嵌入式系统是面向具体应用的,它能够与应用紧密结合,并适应具体应用在功能、可靠性、成本、体积、功耗等方面的严格要求.

嵌入式系统的核心单元最初是基于单片机的,但是随着嵌入式系统的发展,其核心单元也有了许多变化.
除了单片机之外,出现了基于DSP、ARM等多种处理器的嵌入式系统.
(5)单片机(SingleChipMicroComputer)单片微型计算机即单片机,是将CPU、RAM、ROM、定时器、中断系统、输入/输出接口电路等集成到一块芯片上的计算机.
由于单片机在控制领域得到广泛的使用,所以逐渐被称之为微控制器(MicroControllerUnit,MCU).
单片机属于微型计算机中的一种,具有普通微型计算机的基本组成和功能.
1.
1.
2单片机的发展历史单片机从诞生至今已经有30多年的历史,从最初的低性能8位单片机到如今的单片机,经历了如下几个阶段.
(1)第一阶段(1974—1976年)这个阶段是单片机的探索阶段.
1971年,Intel首次宣布了4004的4位微处理器,各大公司就开始酝酿生产单片机.
1974年12月,FairChild公司推出8位单片机F8,但是实际上只包含8位CPU、64B的RAM和两个并行口,还需加一块3851(由1KBROM、定时/计数器和两个并行I/O口构成)才能组成一台完整的微型计算机.
(2)第二阶段(1976—1978年)这个阶段是低性能单片机阶段.
在这个阶段出现一些具有单片机结构功能的单片机型号,并在工业控制领域得到了广泛的应用.
但是这个阶段的单片机仍处于初级阶段,规模较小,功能也比较简单.
以Intel公司推出的MCS-48为例,一块芯片内只含有8位CPU、并行I/O口、8位定时/计数器、RAM和ROM等,无串行I/O口.
中断处理也比较简单,片内RAM和ROM容量较小,且寻址范围有限,一般都不大于4KB.

(3)第三阶段(1978—1982年)这个阶段是高性能单片机阶段.
这一类单片机带有串行I/O口,有多级中断处理,定时/计数器为16位,片内的RAM和ROM相对增大,且寻址范围可达64KB,有的片内还带有A/D转换接口.
这个阶段单片机的典型代表是Intel推出的MCS-51单片机,同时各大公司也争相研制开发出了自己的单片机,如Zilog公司的Z8系列等.
由于这类单片机的性价比高,所以被广泛应用,目前仍是应用数量最多的单片机.

(4)第四阶段(1982—1990年)这是16位单片机阶段.
16位单片机除了CPU为16位外,RAM和ROM容量进一步增大,实时处理的能力更强.
如Intel公司的MCS-96,其集成度为120000管子/片,主振幅为12MHz,片内RAM为232字节,ROM为8KB,中断处理为8级,而且片内带有多通道10位A/D转换和高速输入/输出部件(HSIO),实时处理的能力很强.

(5)第五阶段(1990年至今)这是微控制器的全面发展阶段.
各个公司的产品在尽量兼容的同时向更高速度、更强运算能力、更大寻址范围方面发展.
典型的有美国Microchip公司推出的完全不兼容MCS-51的新一代PIC单片机和Intel公司推出的80960超级32位计算机等.
许多高速、强运算能力、大寻址范围的8位/16位/32位通用型单片机,以及小而廉价的专用型单片机得到了广泛的发展和使用.

1.
1.
3单片机的基本组成与特点单片机是微型计算机的一种,如同绝大部分微机一样,其基本结构由控制器、运算器、存储器、输入设备和输出设备5部分组成.
单片机的硬件结构体系如图1-1所示,主要由存储器、微处理器(MPU)、输入/输出(I/O)接口组成,三者通过数据总线(DataBus)、地址总线(AddressBus)、控制总线(ControlBus)相连接.
下面将分别介绍存储器、MPU、I/O接口和总线的概念.
1.
存储器(Memory)存储器是计算机用以存放程序以及数据的单元.
存储器的容量单位包括Byte、KB、MB、GB、TB等.
其中,1Byte简称1B,容量为8个二进制数,即1Byte=8bit.
1KB=1024Byte,1MB=1024KB,1GB=1024MB,1TB=1024GB.
在存储器中又将两个字节(Byte)称作一个字(Word),把两个字称作双字(DoubleWord).
存储器的读写速度指的是读或者写一条指令的时间,它是影响计算机速度的主要因素之一.
在微型计算机中,存储器分为内部存储器和外部存储器两种.
内部存储器为半导体存储器,具有造价高、速度快、容量小的特征,主要用于存放当前正在运行的程序或者待处理的数据.
外部存储器包括软盘、光盘、硬盘、U盘等存储器件,它们一般具有造价低、容量大、速度慢的特征,一般用以存放暂时不运行的程序或者数据.
单片机中的存储器单元指的是半导体内部存储器.

(1)只读存储器(ReadOnlyMemory)内部存储器又分为只读存储器(ROM)和随机存取存储器(RAM)两种.
只读存储器通常情况下只允许读操作,不允许写操作.
在开始阶段通过特殊手段向ROM中写入固定的程序或者数据,写入的数据则可以长期保存,断电也不会丢失,需要时从中读出使用即可.
ROM分为掩膜ROM、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电擦除可编程只读存储器(E2PROM)和Flash存储器(闪存)等.
随着ROM技术的发展,ROM与RAM的界限逐渐模糊,一些ROM具有了RAM那样可读可写的功能,同时保持了断电不丢失的功能.
下面简单介绍几种常见的ROM.

掩膜ROM掩膜ROM是由厂家写入数据供用户使用的ROM,用户不能更改其中的内容.
在批量很大的情况下,掩膜ROM价格最便宜.
可编程只读存储器(ProgrammableROM,PROM)相对于掩膜ROM中的程序完全不能更改,在制造完成后,可编程只读存储器中的内容可以根据用户的需求进行一次更改.
这种更改操作有且只有一次,一旦更改之后无法再次更改,PROM成本与掩膜ROM相比较高.
现在有一种被称为OneTimeProgrammable(OTP)的存储器,它也属于PROM的范畴,只是在实现方式上和原来普通的PROM有所区别.

可擦除可编程只读存储器(ErasablePROM,EPROM)EPROM是一种可以改写内部程序或者数据的ROM,但是EPROM的数据改写并不像RAM那么简单方便.
想要改写EPROM中的数据首先需要将EPROM拔下并放于紫外线中照射10~30分钟清除原数据,因此称EPROM为电写入紫外线擦除存储器.

电擦除可编程只读存储器(ElectricallyErasablePROM,E2PROM或者EEPROM)如上所述EPROM是一种电写入紫外线擦除的存储器,而E2PROM是一种电写入电擦除的可编程ROM.
E2PROM与RAM一样读写操作简单,同时又有数据不会掉电消失的优点,因此使用极为方便.
一般E2PROM保存的数据至少可达10年以上,每块芯片可擦写1000次以上.

Flash存储器(FlashMemory)Flash存储器又称为闪存,是一种快速编程的E2PROM.
它既拥有E2PROM读写数据的方便性,又简化了结构,进一步提高了集成度和可靠性,降低了成本.
一般PC机上的BIOS采用的就是Flash存储器.
许多新型单片机内部都有片内闪速存储器,如89S52有8KB的Flash存储器.

(2)随机存取存储器(RandomAccessMemory)随机存取存储器中存储的信息可以随意读出与写入,并且读写速度与存储的位置无关.
一旦断电,则RAM中原来的信息就会消失.
按照存储信息方式的不同,RAM又可分为静态随机存储器和动态随机存储器.

静态随机存储器(StaticRAM,SRAM)SRAM的特点是只要有电源加在存储器上面,则存储器中的内容一直存在不会消失.
SRAM具有速度快、控制电路简单的特征,但其集成度低、功耗大,一般相同存储容量下SRAM体积较大,价格较贵.
一般单片机中RAM多采用SRAM,容量一般在128B~64KB之间.

动态随机存储器(DynamicRAM,DRAM)与SRAM不同,在供电的情况下,DRAM中写入的信息只能保存若干毫秒的时间,因此每隔一段时间需要将数据重新写入以保证原来的数据不丢失,这种重写的操作称为刷新(Refresh).
相较于SRAM而言,DRAM容量较大,价格便宜但是速度较慢,控制电路复杂.
一般PC机上的内存条多采用DRAM,容量一般在64MB~2GB之间.

2.
微处理器(MPU)微处理器是微机的核心单元,是微机的运算和指挥控制中心.
一般而言,微处理器的组成包括运算器、控制器以及内部总线.
微处理器MPU的基本结构如图1-2所示.
下面简单介绍微处理器的运算器与控制器.

图1-2MCU结构框图(1)运算器一般而言,运算器包括算术逻辑单元ALU、累加器A、暂存器TMP、程序状态字PSW以及通用寄存器几个部分.
算术逻辑单元ALU(Arithmetic-LogicUnit)算术逻辑单元是运算器的核心部件,它以全加器为基础,配合移位和控制逻辑进行加减乘除以及各种逻辑运算.
累加器A(Accumulator)累加器是一个移位寄存器,用于运算前存放操作数以及运算后存放运算结果.
在MPU中,单操作数运算多从累加器中获取操作数,多操作数运算也常常从累加器中获取一个操作数.
暂存器TMP(Temporary)暂存器也是一个移位寄存器,用来存放ALU运算中所需的操作数或者操作结果.
从本质上说,暂存器的作用在于解决MPU处理速度与内存速度不匹配的问题.
通过将少量需要重复使用的数据存放于暂存器中可以避免MPU频繁向内存索取数据,从而提高计算机数据处理速度.

程序状态字PSW(ProgramStatusWord)程序状态字PSW包含8个触发器,用来存放ALU运算过程中产生的状态.
运算过程中最高位是否有进位或者借位,低4位是否向高4位进位等都通过程序状态字中的状态位表示.
通用寄存器(GeneralPurposeRegister)通用寄存器是相对专用寄存器而言的,上面所说的以及后面提及的程序计数器PC等都是专用计数器,它们的功能固定.
在MPU中还有部分寄存器,它们可以被指定用来存放操作数或者运算结果,这部分寄存器被称为通用寄存器.

(2)控制器如果说运算器是计算机的运算中心,那么控制器就是计算机的指挥中心,其作用在于控制MPU中各个部分协调工作,共同完成整个程序的自动执行.
计算机中的典型工作过程为取指令、分析指令、执行指令.
计算机中要执行的指令放在内存中,MPU想要执行一条指令,首先要从内存中找到将要执行的指令并将其取出.
在单片机MPU中,有一个程序计数器PC用来存放将要执行程序的内存地址.
计算机根据PC中的内存地址取得想要执行的指令,取出指令后,PC自动加1指向下一条指令.

分析指令的过程是一个译码的过程.
在MPU中存在一个指令寄存器IR,用来暂时存放从内存中获取的指令码.
MPU从IR中获取指令码后,通过指令译码器ID对指令码进行译码.
在与时序系统的配合下,MPU译码后将按时序产生控制信号,对响应部分进行控制.

执行指令的过程就是一个将控制信号发送到I/O接口执行的过程.
执行指令的过程也包括对计算结果的处理以及MPU中转移地址的形成.
为了实现上述所说的典型工作过程,CPU控制器需要包括以下几个部分的控制功能.
指令控制指令控制指的是控制计算机按照取指令、分析指令、执行指令步骤对指令进行操作的过程.
指令控制是控制器的基本功能.
如上所述,控制器中包含了程序计数器PC、指令寄存器IR以及指令译码器ID来实现指令控制功能.

时间控制时间控制指的是MPU控制器对指令执行过程中操作时间的控制过程.
如上所述,MPU译码后会按照时序产生控制信号,这个时序信号就是用来完成MPU的时间控制的.
操作控制操作控制指的是MPU控制器按照译码后的控制信号完成控制的过程.
通过操作控制,MPU可以完成指令操作.
3.
输入/输出(I/O)接口及设备微机通过输入/输出设备来实现具体信号的输入和输出.
常见的输入设备包括鼠标、键盘、摄像头等.
常见的输出设备包括CRT屏幕、液晶显示屏、打印机等.
输入/输出接口是MPU与外部设备进行信息交互的连接电路.
微机通过I/O接口来实现MPU与输入/输出设备之间的数据、信息通信以及操作控制.
在微机系统中,一般较为复杂的I/O接口都在一个电路插板上,电路插板与系统总线相连.
当使用外部设备时,只要将外部设备插在电路插板上,即可实现外部设备与微机系统的连接.

4.
系统总线MPU通过系统总线与存储器、I/O接口以及外部设备进行信息交换.
根据功能的不同,微机中的系统总线分为地址总线、数据总线和控制总线3种.
(1)地址总线AB(AddressBus)MPU通过地址总线向外传送地址信息.
地址总线是单向总线,只能由MPU向外发出.
在MPU要对存储器或者外部设备进行读/写操作时,首先要将存储器或者外设的地址码送到地址总线上进行选中,进而进行读/写操作.

地址总线的数量由MPU型号决定,其大小决定了一次寻址的寄存器数目.
假如有n条地址总线,那么一次的最大寻址数量为个单元.
在多数8位机中地址总线的数量为16.
(2)数据总线DB(DataBus)MPU通过数据总线与存储器和外设进行数据交换.
数据总线为双向总线,数据即可以通过DB从MPU流出,也可以通过DB向MPU流入.
数据总线的数量代表了MPU进行数据处理的位数.
一般MPU位数与数据总线数量相同,即8位机数据总线数量为8,16位机数据总线数量为16.
但是也有MPU为16位但是外部数据总线仍然为8的情况.

(3)控制总线CB(ControlBus)MPU通过控制总线对外传送控制信号,同时存储器或者外部设备也通过控制总线向MPU发送状态或者请求信号.
在微机中,单个控制总线的数据传输方向是固定的,而所有控制总线呈现的总体情况是双线的:有的控制总线负责从MPU传出信号,有的控制总线向MPU传入信号.

1.
1.
4单片机的应用单片机具有集成度高、结构简单、可靠性强、价格低廉等特点,如今已被广泛应用于国民经济的各个领域.
1.
日常生活中的应用单片机自诞生以后就开始进入人们的日常生活.
现在,在空调、洗衣机、录音机、微波炉、电饭煲、饮水机等各种日常电器中都可以找到单片机的影子.
单片机不仅提高了这些日常电器的智能化程度,还方便了普通百姓的日常生活.

2.
智能仪器仪表中的应用单片机的应用大大降低了传统仪器仪表的电路复杂程度,不仅使仪器仪表的数字化、智能化程度得到提高,而且减小了仪表的体积、降低了价格.
目前,温度、湿度、压力、流量、流速、电压、电流、角度等量的测量与控制都可以加入单片机来实现.

3.
工业控制中的应用单片机广泛应用于工业控制现场.
这既包括工业机器手、机器人、工业测控、航空军工中的实时控制,又包括机械、造纸、去污、纺织生产线中的分布式控制.
单片机的实时数据处理能力以及I/O口扩展通信能力为工业控制中的快速、稳定性提供了保障.

4.
机电一体化产品中的应用集合机械、电子以及计算机技术于一体的机电一体化技术是当今机械工业的发展方向.
数控车床、钻床、电梯、电脑缝纫机等都是机电一体化的典型产品.
单片机作为一种微机产品,由于其体积小、可靠性高、功能性强的特点能够方便地融入到机械产品中去,提高机械产品的自动化和智能化程度.

1.
1.
5单片机的发展趋势从大的角度来看单片机的发展方向有两个:一是朝着高性能、大容量的方向发展,通过新技术或者高集成提高单片机的性能,使其拥有更加强大的功能;另一方面与上述相反,单片机朝着小容量、低价格的方向发展,强调在满足一定功能条件下尽可能减小体积,降低价格.
站在新技术、新功能的角度上看,单片机的发展趋势有以下几个方面.

1.
CMOS化CHMOS(互补高性能MOS)技术的出现大大促进了单片机的CMOS化.
CMOS芯片具有低功耗、高密度、低价格的特点,通过单片机的CMOS化可以减小单片机的体积以及功耗.
CMOS同时有低速度的特点.
HMOS工艺芯片的出现解决了低速度的问题但同时提高了芯片的体积以及功耗.
CHMOS技术是CMOS工艺与HMOS工艺的结合,通过CHMOS技术能够在提高速度的同时保持低功耗、高密度的特点,是单片机发展的方向.

2.
低电压、低功耗降低单片机工作电压以及电流,使单片机能够在低电压、低功耗条件下运行是单片机的发展方向.
3.
高性能化通过提高单片机中MPU的性能进一步提高单片机处理速度和可靠性是单片机发展方向之一.
32位处理器以及精简指令RISC(ReducedInstructionSetComputer)结构可以大幅提高单片机运行速度.
4.
大容量化以往单片机内部ROM的大小为1~4KB,RAM大小为64~128B.
在复杂场合下,需要通过内存扩展的方法来提高单片机的内存容量.
现在通过闪存技术和其他方法扩大存储器容量可以减少单片机内存扩展需求,使单片机系统更加简单.

5.
系统单片化通常所说的单片机包含了MPU、存储器以及I/O接口几部分主要结构,系统需要的其他一些结构,如DMA(DirectMemoryAccess)控制器、D/A转换、A/D转换器等并没有集成在单片机内部.
如果在系统中需要用到上述功能则需要通过外部扩展实现.
根据系统要求将一些外围功能集成到单片机内部也是单片机的一个发展趋势.

1.
2单片机中的预备知识计算机中的数据是以二进制数进行存储和运算的.
要弄清单片机的工作原理和工作方式,首先要具备一定的计算机数据操作基本知识.
下面从数制、编码、运算几个方面简单介绍计算机中的数据知识.
1.
2.
1数制及其转换1.
3种基本数制数制指的是数据的表现形式.
在计算机中常用的数制有二进制数、十进制数和十六进制数.
无论是什么数制,将这个数制所包含的数码个数称为基,将各个数字所具有的数值称为权.
(1)十进制数(Decimal)十进制数是日常生活中最为常用的数制形式.
十进制数的基为10,其包含10个数码,即0、1、2、3、4、5、6、7、8、9.
十进制数的权是以10为底的幂,每个数所处位置不同,则其代表值不同.
前一个数的权值为其相邻后一个数权值的10倍.

例如,一个十进制数为2345.
678D,则其代表的数值为:2345.
678D=2*+3*+4*+5*+6*+7*+8*从左到右各位代表的权值为:也就是平常所说的千、百、十、个、0.
1、0.
01、0.
001.
(2)二进制数(Binary)二进制数是计算机中的基本数据形式,所有数据在计算机中都以二进制数形式进行存储和运算.
二进制数的基为2,在二进制数中只包含0和1两个数码.
二进制数的权是以2为底的幂,每个数所处位置不同,则其代表值不同.
前一个数的权值为其相邻后一个数权值的2倍.

例如,一个二进制数为1011.
1001B,则其代表的十进制数值为:1001.
1011B=1*+0*+0*+1*+1*+0*+1*+1*=8+0+0+1+0.
5+0.
25+0.
125+0.
0625=9.
9375从左到右各位代表的权值为:二进制数之所以能够成为计算机工作基本数据形式,这是由计算机中的电路工作原理决定的.
计算机中的电路通常只有两种状态,在二进制数中可以用1代表电路中的高电平,用0代表电路中的低电平;或者用1代表电路中的导通,用0代表电路中的截止.
采用二进制数可以方便地对电路进行计数工作.

(3)十六进制数(Hexadecimal)十六进制数的基为16,在十六进制数中包含了16个数码,各个数码表示如下:0123456789ABCDEF十六进制数的权是以16为底的幂,与二进制数相同,每个数所处位置不同,则其代表值不同.
前一个数的权值为其相邻后一个数权值的16倍.
例如,一个十六进制数为F72.
C4H,则其代表的十进制数值为:F72.
C4H=15*+7*+2*+12*+4*=3954.
765625从左到右各位代表的权值为:相对于二进制数而言,十六进制数能够用较少的位数表现较大的数值,便于书写和记忆.
由于二进制数与十六进制数的转换非常简单,所以在计算机中的数值常常采用十六进制数来表示.
在汇编语言中,为了将十六进制数中的A、B、C、D、E、F与字母区分开来,书写时常常会在其前面加一个0.
例如F7H写作0F7H.

2.
数制间的转换由于不同数制的特性不同,常常需要将一个数转换为十进制数来理解数值大小,将一个数转换为十六进制数来编写程序,将一个数转换为二进制数来理解对应数据在计算机中的含义.
下面介绍计算机中不同数制的转换方法.

(1)转换为十进制数在前面介绍数制的过程中已经介绍了二进制数和十六进制数转换为十进制数的方法.
将一个二进制数或十六进制数转换为十进制数只需将该数各个数位的基与权相乘累加即可.
例如:10110101B=1*+0*+1*+1*+0*+1*+0*+1*10110101B=181B5H=11*+5*=181(2)十六进制数与二进制数的转换由于十六进制数的基16是二进制数基2的4次方,所以二进制数与十六进制数的转换十分简单.
十六进制数转换为二进制数时,只需从右至左将各个位上的数以二进制数表示出来即可.
二进制数转换为十六进制数时,需要从右至左依次将4个二进制数表示成一个十六进制数,左侧不满4个时在前面补0到4个即可.
如表1-1所示为0~15的十进制数、二进制数、十六进制数的转换关系表.

表1-1不同数制的数据转换表十进制数D二进制数B十六进制数H十进制数D二进制数B十六进制数H000000810008100011910019200102101010A300113111011B401004121100C501015131101D601106141110E701117151111F例如,一个二进制数10010110101B要转换为十六进制数,其过程如下:10010110101B=010010110101=4B5H一个十六进制数A3FBH转换为二进制数的过程如下:A3FBH=1010001111111011B(3)十进制数转换为二进制数或者十六进制数将一个十进制数转换为二进制数时,对于十进制数整数部分采用"除2取整"的方法,小数部分采用"乘2取整"的方法.
十进制数转换为十六进制数时可以采用类似的"除16取整"以及"乘16取整"的方法.
由于十六进制数与二进制数之间的转换十分简单,在十进制数转换为十六进制数时,也可以先转换为二进制数继而转换为十六进制数.

下面以一个十进制数78.
8125D为例来介绍"除2取整"以及"乘2取整"方法的使用.
78.
8125D整数部分为78,转换为二进制数时将此数不停除2直到商为0为止,然后将所有余数逆向整合即可得到想要的二进制数.
2∟78……余数为0低位2∟39……余数为12∟19……余数为12∟9……余数为12∟4……余数为02∟2……余数为02∟1……余数为1高位如上所示将余数逆向整合得到78D=1001110B.
小数部分0.
8125转换为二进制数时将该数的纯小数部分不停乘以2直至乘积为1为止,将所有结果整数部分一次组合即可得到想要的二进制数.
0.
8125*2=1.
625……整数部分为1高位0.
625*2=1.
25……整数部分为10.
25*2=0.
5……整数部分为00.
5*2=1……整数部分为1低位如上所示将整数顺次整合得到0.
8125D=0.
1101B.
将小数部分以及整数部分整合得到78.
8125D=1001110.
1101B.
1.
2.
2计算机中的常用编码计算机中的数据都是以二进制数形式进行存储和运算的.
计算机只能识别用二进制数表示的信息,所以计算机中需要进行处理的数字、符号都必须进行二进制编码.
下面介绍有符号数、ACSII码以及BCD码编码方法.

1.
有符号数编码计算机中数据的存储都以字节(即8位)作为存储单位,一个数据占据的位数代表了其可以表示的数据范围.
对于一个无符号数,8位数据对应二进制存储范围为00000000~11111111B,对应十六进制存储范围为00~0FFH,对应十进制存储范围为0~28-1(即0~255).
而对于一个16位数据,其对应二进制存储范围为0000000000000000~1111111111111111B,对应十六进制存储范围为0000~0FFFFH,对应十进制存储范围为0~216-1(即0~65535).
对于一个有符号数,计算机中将对应数据的最高位作为符号位来表示数据的正负.
最高位为0代表为正数,最高位为1代表为负数.
最高位后面的位数用以表示数据的绝对值大小.
计算机中有符号数的编码方式有3种,即原码、反码和补码.

(1)原码(TrueForm)设一个8位二进制数最高位为b7,最低位为b0.
当原码表示一个有符号数时,对于一个正数而言,b7位为0,对于一个负数而言,b7位为1.
其余7位b6~b0用来表示数值的大小.
由于7位数表示的大小范围为0~27-1(即0~127),故8位原码数表示的数值范围为-127~+127.

例如:[+58]原=[+0111010]原=00111010[-58]原=[-0111010]原=10111010对于0的表示,则[+0]原=[00000000]原,[-0]原=[10000000]原.
采用原码表示一个有符号数简单易懂,转换方便.
但是在原码中0分为+0以及-0两种表示方法,给运算带来了不便.
同时,对于两个异符号数相加或者同符号数相减,原码在运算中需要做减法运算.
由于计算机中一般只有加法器而无减法器,这就会给计算带来不便,为了解决这个问题,在计算机中引入了反码以及补码的概念.

(2)反码(One'sComplement)如果一个数是正数,那么其反码与原码相同.
如果一个数是负数,那么保持原码符号位不变,将数值位按位依次取反可以得到它的反码.
例如:[+58]反=00111010[-58]反=11000101对于0的表示,则[+0]反=00000000,[-0]反=11111111可见对于反码而言,+0与-0的表示仍然不同.
对于一个反码如果要得到它的真值,那么首先要转换为其原码,继而转换为真值.
8位反码能够表示的数值范围为-127~+127.
(3)补码(Two'sComplement)对于补码而言,如果一个数是正数,那么其补码与其原码以及反码相同.
如果一个数是负数,那么它的补码为其反码加1,即[X]补=[X]反+1.
例如:[+58]补=00111010[-58]补=11000101+1=11000110对于0而言,[+0]补=00000000,[-0]补=11111111+1=100000000=00000000(最高位丢失).
可以看出对于补码而言,0的表示是唯一的,都是00000000.
一个补码转换为真值时,对于正数,真值与补码相同.
对于负数,保持最高位1不变,将数值位取反加1即可.
对于一个补码数10000000B而言,保持负数位1不变,将数字位0000000取反后为1111111,加1后为10000000,代表真值-128.
所以[-128]补=10000000B.
8位补码能够表示的数值范围为-128~+127.

为了帮助理解补码中出现第9位丢失的现象,我们用日常生活中拨动时钟的概念来帮助理解.
现在时钟指向9点整,那么要使时钟时间变为4点,有两种方法:一种是逆时针拨动5格使其回到4;另一种是顺时针拨动7格,使其经过12后变为4.

第一种方法相当于9-5等于4,做的减法运算.
第二种相当于9+7=16,但是由于过了12,12自动丢失,变为4.
这里第二种方法中12丢失的现象与补码中第9位丢失的现象一致,都是超过了一定的范畴产生了数据的丢失,时钟中超过了一周的最大数值12,补码中超过了最大位数8.

通过这种数据丢失,我们发现此时9-5与9+7的计算结果相同,可以将减法运算转换为加法运算.
补码引入的最大功能就是可以通过补码将减法运算变为加法运算,方便计算机的数据运算的处理.
2.
ASCII码(字符编码)要将字符字母以二进制方式在计算机中表现出来,则需要对可能涉及的字符以一定的方式进行二进制编码.
ASCII(AmericanStandardCodedforInformationInterchange)是"美国信息交换标准"的简称,是目前最为流行的字符编码方式.
ASCII码是一种8位码,其中后7位用以编码代表字符信息.
7个bit共可表示27=128个字符.
在这些字符当中32个为控制字符,不能用于显示打印,包括回车符、换行符、退格符、设备控制符等.
另外96个为图形字符,可以用于显示以及打印,包括10个十进制数、52个大小写英文字母以及34个其他字符.
ACSII码表如表1-2所示.

表1-2ASCII码表高位低位000000010010001101000101011001110000NULSLESP0@P`p0001SOHDC1(XON)!
1AQaq0010STXDC2"2BRbr0011ETXDC3(XOFF)#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB'7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,N^n~1111SIUS/O_o←第8位b7为奇偶校验位,用以判断数据传送中信息是否出错.
奇偶校验分为奇校验以及偶校验.
奇校验是指在发送端通过加入第8位使得整个字节中包含"1"的个数为奇数个,偶校验是指发送端通过加入第8位使得整个字节中包含"1"的个数为偶数个.

例如ACSII中A、B、C、D几个数采用奇校验,则ASCII码为:A1000001奇校验则为11000001B1000010奇校验则为11000010C1000011奇校验则为01000011D1000100奇校验则为11000100通过第8位的加入使得ASCII码发送端中"1"的个数保持为奇数个.
接收端接收到数据后,通过判断数据中1的数量是否为奇数个,即可判断通信过程中是否出现错误.
3.
BCD码(十进制数的二进制表示)BCD(BinaryCodedDecimal)码是一种以二进制代码表示十进制数的方法.
在BCD码中最为常用的是8421BCD码.
在8421BCD码中以4位二进制数0000~1010为0~9这10个数字进行编码.
8421分别代表二进制中4个数字的权值.

BCD码与十进制数之间的转换非常方便,只需要将十进制数各位数字依次转换为8421BCD码表示即可.
用8421BCD码表示0~15这几个数字的转换表如表1-3所示.
表1-3十进制与BCD码转换表十进制数D8421BCD码十进制数D8421BCD码十进制数D8421BCD码十进制数D8421BCD码00000401008100012000100101000150101910011300010011200106011010000100001400010100300117011111000100011500010101BCD码与其他数制之间的转换不是直接的,要转换为二进制数或者十六进制数,首先要转换为十进制数继而进行转换.
1.
2.
3计算机中的运算计算机中的数据是以二进制的方式存储与运算的.
二进制的运算包括了算术运算和逻辑运算两个方面.
1.
算术运算二进制数的加减乘除与十进制数的加减乘除相似.
在加法以及乘法中如果超过了原来的范围则需要进位,在减法或者除法中如果原来的数不够用则需要借位.
从本质上说,乘法可以转换为加法进行运算,而除法可以转换为减法进行运算.
如上所述,通过补码的引入,可以将减法运算转换为加法运算,因此在计算机中只需要有累加器就可以完成加减乘除四则运算.
下面主要介绍补码的运算以及溢出判断.

对于一个n位的机器数,只要X、Y以及X+Y都在-2n-1~+(2n-1)范围内,则两数和的补码与两数补码之和相同.
即:[X+Y]补=[X]补+[Y]补在补码的运算过程中,无论是做加法运算或者减法运算,都可以将其视为有符号数的加法来进行运算.
如果在运算过程中出现了进位现象,那么进位的位数自然丢失不计入计算结果.
下面以几个例子来进行说明.

【实例1-1】用补码运算求56-24.
用补码表示[56]补=00111000用补码表示[-24]补=11101000用补码运算为:最高位自然丢失后计算机结果为00100000=32【实例1-2】用补码运算求-18-13.
用补码表示[-18]补=11101110用补码表示[-13]补=11110011用补码运算为:最高位自然丢失后结果为11100001=-31当X+Y结果不在-2n-1~+(2n-1)范围内时,计算结果超出了n位机器数补码能够表示的数据范围,此时上面的公式不再成立.
如下例所示.
【实例1-3】用补码运算求67+68.
用补码表示[67]补=01000011用补码表示[68]补=01000100用补码运算为:如果将最高进位省去,那么此时结果为10000111=-121.
两个正数相加得到一个负数,结果产生了错误.
上面的这种现象称为溢出,这种错误称为溢出错误.
所谓溢出就是指计算机在运行过程中产生的数超过了计算机所能表示的数的范围.
如上面实际运算结果应该为135,超过了补码能够表示的最大正数127.
一旦计算过程中出现了溢出错误,那么计算结果不能正常使用.

如果X、Y都在机器数表示范围之内,那么只有两个同符号数相加才有可能产生溢出现象.
对于一个8位数,假设第8位的进位为C8,如果有进位则C8=1,无进位则C8=0.
第7位的进位为C7,如果有进位则C7=1,无进位则C7=0.

如果是两个正数相加,则第8位不会进位,即C8必然为0.
如果第7位产生进位C7=1,则导致第8位b8为1,变为负数,产生溢出.
如果第7位不产生进位C7=0,则b8=0,此时无溢出.
如果是两个负数相加,则第8位必然发生进位,C8必然为1.
如果第7位产生进位C7=1,则导致第8位b8为1,为负数,此时不会产生溢出.
如果第7位不产生进位C7=0,此时b8=0,表示一个正数,此时产生溢出.

总之对于同符号数相加,当最高位进位C8与第7位进位C7不同,即C8≠C7时产生溢出,如果C8=C7则不会溢出.
对于符号相异补码的相加不会产生溢出,而实际中符号相异的数相加过程中C8必然等于C7,也符合C8=C7是不会溢出的结论.
因此可以总结出当C8=C7时无溢出,当C8≠C7时产生溢出.

为了判断计算结果是否有溢出现象,计算机会在程序状态字中设置一个溢出位用来进行标识.
如果C8≠C7,将溢出位置位为1,代表发生溢出错误;如果C8=C7,溢出位为0,则代表运算正常,没有溢出错误.

2.
逻辑运算计算机中除了要进行算术运算之外还要进行逻辑运算.
逻辑运算由专门的逻辑电路完成.
逻辑运算都是针对位与位之间进行的,下面介绍几种常见的逻辑运算.
(1)逻辑"与"运算逻辑"与"运算的运算符号为"∧".
对于两个二进制数的"与"运算,只有它们都为1(都为真)时,运算结果才为1(真).
其规则如下所示:0∧0=10∧1=1∧0=01∧1=1我们发现将一个数与1进行"与"运算,其结果仍为其本身.
而与0进行"与"运算,其结果为0,可以认为这个数被屏蔽掉或者被置0.
可以利用"与"的这个特性将一个数的部分提取出来,而其他部分进行屏蔽或者置0操作.

创梦网络-江苏宿迁BGP云服务器100G高防资源,全程ceph集群存储,安全可靠,数据有保证,防护真实,现在购买7折促销,续费同价!

官方网站:点击访问创梦网络宿迁BGP高防活动方案:机房CPU内存硬盘带宽IP防护流量原价活动价开通方式宿迁BGP4vCPU4G40G+50G20Mbps1个100G不限流量299元/月 209.3元/月点击自助购买成都电信优化线路8vCPU8G40G+50G20Mbps1个100G不限流量399元/月 279.3元/月点击自助购买成都电信优化线路8vCPU16G40G+50G2...

HostSailor:罗马尼亚机房,内容宽松;罗马尼亚VPS七折优惠,罗马尼亚服务器95折

hostsailor怎么样?hostsailor成立多年,是一家罗马尼亚主机商家,机房就设在罗马尼亚,具说商家对内容管理的还是比较宽松的,商家提供虚拟主机、VPS及独立服务器,今天收到商家推送的八月优惠,针对所有的产品都有相应的优惠,商家的VPS产品分为KVM和OpenVZ两种架构,OVZ的比较便宜,有这方面需要的朋友可以看看。点击进入:hostsailor商家官方网站HostSailor优惠活动...

零途云月付31.9元起,香港cn2 gia线路

零途云是一家香港公司,主要产品香港cn2 gia线路、美国Cera线路云主机,美国CERA高防服务器,日本CN2直连服务器;同时提供香港多ip站群云服务器。即日起,购买香港/美国/日本云服务器享受9折优惠,新用户有优惠码:LINGTUYUN,使用即可打折。目前,零途云还推出性价比非常高香港多ip站群云服务器,有需要的,可以关注一下。零途云优惠码:优惠码:LINGTUYUN (新用户优惠,享受9折优...

电子管计算机为你推荐
sss17.comwww.com17com.com是什么啊?haokandianyingwang有什么好看的电影网站haole16.com玛丽外宿中16全集在线观看 玛丽外宿中16qvod快播高清下载m.2828dy.combabady为啥打不开了,大家帮我提供几个看电影的网址www.ijinshan.com桌面上多了一个IE图标,打开后就链接到009dh.com这个网站,这个图标怎么删掉啊?555sss.com拜求:http://www.jjj555.com/这个网站是用的什么程序www.15job.com广州天河区的南方人才市场www.toutoulu.comWWW【toutoulu】cOM怎么搜不到了?到哪里能看到toutoulu视频?5566.com5566网址大全www.diediao.com谁知道台湾的拼音怎么拼啊?有具体的对照表最好!
flashfxp怎么用 大硬盘 vps.net 秒解服务器 cdn服务器 国内永久免费云服务器 gateone 网通代理服务器 丹弗 铁通流量查询 qingyun 域名接入 789电视剧 吉林铁通 华为云盘 河南移动梦网 vul 美国盐湖城 服务器防火墙 酸酸乳 更多