第0章计算机的基础知识.ppt
第0章计算机的基础知识,单片机原理、接口及应用,内容提要,★微型计算机的基本结构和工作原理★计算机中的数制与码制★小结,0.1.1微机的系统结构,,,,,微机系统,软件,硬件,主机,外围设备,微处理器(CPU),运算器控制器寄存器,,存储器(内存),RAMROM,,,输入/输出接口(I/O接口),并行、串行接口定时器、A/D、D/A,总线,,系统软件应用软件程序设计语言,,外部设备,辅助设备,,,输入设备输出设备辅助存储器,电源电路时钟电路,CPU是计算机的控制核心,它的功能是执行指令,完成算数运算、逻辑运算,并对整机进行控制。存储器用于存储程序和数据。输入/输出接口(又称I/O接口)是CPU和外设之间相连的逻辑电路,外设必须通过接口才能和CPU相连。不同的外设所用接口不同。每个I/O接口也有一个地址,CPU通过对不同的I/O接口进行操作来完成对外设的操作。存储器、I/O接口和CPU之间通过总线相连。用于传送程序或数据的总线称为数据总线;地址总线用于传送地址,以识别不同的存储单元或I/O接口;控制总线用于控制数据总线上数据流送的方向、对象等。,0.1.2微机的基本工作原理,存储程序、执行程序是微机的工作原理,取指令,译码,执行是微机的基本工作过程。单片机是微型计算机的一种,是将计算机主机(CPU、存储器和I/O接口)集成在一小块硅片上的微机,又称微控制器。它专为工业测量与设计而设计,具有三高优势(集成度高、可靠性高、性价比高),他的特点是小而全体积小,功能全),主要应用于工业检测与控制、计算机外设、智能仪器、仪表、通信设备、家用电器等,特别适合于嵌入式微型机应用系统。,0.1.3微机的主要技术指标,微型计算机主要有如下一些技术指标字长CPU并行处理数据位,由此定为8位机、16位机、32位机等。存储容量存储器单元数,例如256B、8KB、1MB等(1B即一个字节,也就是一个8位二进制数,是计算机数据的基本单位)。运算速度CPU处理速度,它和内部的工艺结构以及外接的时钟频率有关。时钟频率在CPU极限频率以下,时钟频率越高,执行指令速度越快,对单片机而言,有6MHz、12MHz、24MHz等。,0.2.1计算机中的数,计算机中的数字电路具有两种不同的稳定状态且能相互转换,即“0”和“1”两种状态。计算机处理的一切信息均用二进制数表示,但是二进制数书写起来太长,所以微型计算机中的二进制数都采用十六进制来缩写。十六进制数用0~9、A~F等16个数码表示十进制数0~15。为了区别十进制数、二进制数及十六进制数3种数制,在数的后面加一个字母以进行区别。用B(binary)表示二进制数制;D(decimal)或不带字母表示十进制数制;H(hexadecimal)表示十六进制数制。,表0-1不同进位记数制对照表,二进制数和十六进制数间的相互转换将二进制数从右(最低位)向左每4位为1组分组,若最后一组不足4位,则在其左边添加0,以凑成4位,每组用1位十六进制数表示。如1111111000111B→1111111000111B→0001111111000111B=1FC7H十六进制数转换位二进制数,只需用4位二进制数代替1位十六进制数即可。如3AB9H0011101010111001B,十六进制数和十进制数间的相互转换将十六进制数按权展开相加,如1F3DH1631+16215+1613+1601340961+25615+163+1134096+3840+48+137997十进制整数转换为十六进制数可用出16取余法,即用16不断地去除待转换的十进制数,直至商等于0为止。将所得的各次余数,依倒叙排列,即可得到所转换的十六进制数。如将38947转换为十六进制数,其方法及算式如下即389479823H,,,0.2.2计算机中数的几个概念,1.机器数与真值机器数机器中数的表示形式,它将数的正、负符号和数值部分一起进行二进制编码,其位数通常为8的整数倍。真值机器数所代表的实际数值的正负和大小,是人们习惯表示的数。2。数的单位位(bit)一个二进制数中的1位,其值不是1便是0。字节(Byte)一个字节,就是一个8位的二进制数。字(Word)两个字节,就是一个16位的二进制数。双字两个字,即四个字节,一个32位二进制数。只有8位、16位或32位机器数的最高位才是符号位。,0.2.3计算机中的有符号数的表示,有符号数有原码、反码和补码三种表示法。1.原码数值部分用其绝对值,正数的符号位用“0”表示,负数的符号位用“1”表示。如X1+500000101B[X1]原00000101BX2-5-00000101B[X2]原10000101B符号位,,8位原码数的范围为FFH~7FH(-127~127)。原码数00H和80H的数值部分相同、符号位相反,它们分别为0和-0。16位原码数的数值范围为FFFFH~7FFFH(-32767~32767)。原码数0000H和8000H的数值部分相同、符号位相反,它们分别为0和-0。原码表示简单易懂,而且与真值的转换方便。但若是两个异号数相加,或两个同号数相减,就要做减法。为了把减运算转换为加运算,从而简化计算机的结构,就引进了反码和补码。,,,(2)反码正数的反码与原码相同;负数反码符号位不变,数值部分按位取反。例求8位反码机器数x14[x1]原00000100B[x1]反00000100B=04Hx2-4[x2]原10000100B[x2]反11111011BFBH,,3补码正数的补码与原码相同;负数补码为其反码加1。例求8位补码机器数x14[x1]原[x1]反[x1]补0000010004Hx2-4[x2]原10000100[x2]反11111011[x2]补[x2]反11111100FCH8位补码数的数值范围为-128~127(80H~7FH)。16位补码数的数值范围为8000H~7FFFH(-32768~32767)。字节80H和字8000H的真值分别是-128-80H和-32768-8000H。补码数80H和8000H的最高位既代表了符号为负,又代表了数值为1。,快速求法将负数原码的最前面的1和最后一个1之间的每一位取反。例如x-4[x]原10000100[x]补11111100FCH取反②两数互补是针对一定的“模”而言,“模”即计数系统的过量程回零值,例如时钟以12为模(12点也称0点),4和8互补,一位十进制数3和7互补(因为3+7=10,个位回零,模为101=10),两位十进制数35和65互补(因为35+67=100,十进制数两位回零,模为102=100),而对于8位二进制数,模为28=100000000B100H,同理16位二进制数,模为216=10000H由此得出求补的通用方法一个数的补数=模-该数,这里补数是对任意的数而言,包括正、负数。而补码是针对符号机器数而言。,设有原码机器数X,X0,[X]补[X]原当X0,[X]补模-|X|例如对于八位二进制数x14[x1]补0000010004H;x2-4[x2]补100H-4FCH对于16二进制位数x24[x2]补0004H;x2-4[x2]补10000H-4FFFCH,几点说明①根据两数互为补的原理,对补码求补码就可以得到其原码,将原码的符号位变为正、负号,即是它的真值例如求补码数FAH的真值。因为FAH为负数求补码[FAH]补=86H-6例如求补码数78H的真值。因为78H为正数求补码[78H]补=78H120②一个用补码表示的机器数,若最高位为0,则其余几位即为此数的绝对值;若最高位为1,其余几位不是此数的绝对值,必须把该数求补(按位取反(包括符号位)加1),才得到它的绝对值。如X-15[-15]补=F1H=11110001B求补得00001110+1=00001111B15,③当数采用补码表示时,就可以把减法转换为加法。例164-1064-1054[64]补40H01000000B[10]补0AH00001010B[-10]补11110110B做减法运算过程用补码相加过程结果相同,其真值为36H(54)。由于数的八位限制,最高位的进位是自然丢失的(再计算机中。进位被存放在进位标志CY中的。)用补码表示后,减法均可以用补码相加完成。因此,在微机中,凡是符号数一律是用补码表示的。用加法器完成加、减运算,用加法器和移位寄存器完成乘、除运算,简化计算机硬件结构。,例234-6834-68=-343422H00100010B6844H01000100B[-68]补10111100B做减运算过程用补码相加过程结果相同。因为符号位为1,对其求补,得其真值-00100010B,即为-34(-22H)。由上面两个例子还可以看出,1用补码相加完成两数相减,相减若无借位,化为补码相加就会有进位;相减若有借位,化作补码相加就不会有进位。2补码运算后的结果为补码,需再次求补才能得到运算结果的真值。,0.2.4进位和溢出,例3105+50=155105=69H50=32H若把结果视为无符号数,为155,结果是正确的。若将此结果视为符号数,其符号位为1,结果为-101,这显然是错误的。其原因是和数155大于8位符号数所能表示的补码数的最大值127,使数值部分占据了符号位的位置,产生了溢出,从而导致结果错误。又如-105-50-155CY1两个负数相加,和应为负数,而结果01100101B却为正数,这显然是错误的。其原因是和数-155小于8位符号数所能表示的补码数的最小值-128,也产生了溢出。结论当两个补码数相加结果超出补码表示范围,就会产生溢出,导致结果错误。计算机中设立了溢出标志位OV,通过最高位的进位(符号位的进位)CY和次高位进位(低位向符号位的进位)CY-1异或产生。,,例474+74=4AH4AH01001010001100101010010100CYCY-1011..有溢出OV=1CYCY-1无进位CY0由上两例中,例3的OV1、CY1,例4中OV1、CY0,可见溢出和进位并非有必然的联系,这是由于两者产生的原因是不同的,两者判断的方法也是是不同的。重述如下溢出OV两个补码数相加结果超出补码表示范围而产生,OVCYCY-1进位CY当运算结果超出计算机位数的限制(8位、16位),会产生进位,它是由最高位计算产生的,在加法中表现为进位,在减法中表现为借位。,,,,0.2.5BCD码,生活中人们习惯于十进制数,计算机只能识别二进制数,为了将十进制数变为二进制数,出现了BCD码,即二进制代码表示的十进制数。故名思意,它即是逢十进一,又是一组二进制代码。用4位二进制数编码表示1位十进制数称为压缩的BCD码,8位二进制数可以放2个十进制数位。也可以用8位二进制数表示1个十进制数位,这种BCD码称为非压缩的BCD码。十进制数和BCD码的对照表见表0-2,表0-2BCD编码表,,例求十进制数876的BCD码压缩的BCD码[876]BCD100001110110B876H非压缩的BCD码[876]BCD000010000000011100000110B=080706H又如,十进制数1994的压缩的BCD码=1944H1994的非压缩的BCD码=01090404H,0.2.6BCD码的运算,BCD码运算应该得到BCD码结果,由于计算机是按二进制运算,结果不为BCD码,因此要进行十进制调整。调整方法为当计算结果有非BCD码或产生进位/借位时,加法进行6、减法进行-6调整运算。例计算BCD码78690111100078H0110100169H11100001E1H不调整,结果为二进制0110011066H调整,高4位产生非BCD码6,和低4位有半进位6101000111147调整结果147(带进位一起)为十进制结果,例计算BCD码38-290011100038H-00101001-29H000011110FH-00000110-06低4位有半借位-6调整高4位未产生非BCD且无借位不调整000010019结果9在计算机中,有专门的调整指令完成调整操作。,0.2.7ASCII码,表1-3常用字符的ASCII码)美国标准信息交换码ASCII码,用8位二进制编码表示字符,用于计算机与计算机、计算机与外设之间传递信息,每一个符号都有对应的ASCII码,常用数字和字母ASCII码如表1-4所列,在程序中,字符可用ASCII码表示,也可以用加引号的字符表示,例如字符4,可以用34H表示,也可以用’4’表示,此时,它只有符号的意义,而无数量的概念。,表1-3常用字符的ASCII码),0.3小结,1.了解计算机的系统结构,明确单片机是微机的一种。2.计算机的基本数制是二进制,所有的信息都是以二进制数的形式存放,为方便阅读,以十六进制表示,对于二、十、十六几种进制之间的转换要求十分熟练。3.计算机中的有符号数一律以补码表示,补码、原码。真值之间的转换要求十分熟练。4.计算机中的计算一律为二进制运算,符号位也参与运算,运算中会产生进位和溢出,应明确概念,掌握判断方法5.编码是用一组特定的数码表示一定的字符,计算机常用的编码有BCD码和ASCII码,应记住常用的字符编码。,特别提出的是,计算机只识别0和1,是有符号数还是无符号数、是补码还是原码、是BCD码、ASCII码还是一般的二进制数计算机是不能识别的,完全是人的认定,人根据不同的认定作不同的分析和处理。例如FFH作为无符号,它代表255,作为有符号原码,它代表-127,作为有符号补码,它代表-1;又如32H,视作ASCII码它是字符‘2’,视作BCD码,它是十进制数32,视作二进制数它是50这就是根据不同的认定作不同的分析,编程作不同的处理,如认定是BCD码,运算后加调整指令,如果认定不是BCD码,而是一般的二进制数,运算后不加调整指令。,