0章 计算机的基础知识.ppt_第1页
0章 计算机的基础知识.ppt_第2页
0章 计算机的基础知识.ppt_第3页
0章 计算机的基础知识.ppt_第4页
0章 计算机的基础知识.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

单片微型计算机与接口技术 第0章计算机的基础知识 内容提要 微型计算机的基本结构和工作原理 计算机中的数制与码制 小结 0 1 1微机的系统结构 微机系统 软件 硬件 主机 微计算机 外围设备 微处理器 CPU 运算器控制器寄存器 存储器 内存 RAMROM 输入 输出接口 I O接口 并行 串行接口定时器 A D D A 总线 系统软件应用软件程序设计语言 外部设备 辅助设备 输入设备输出设备辅助存储器 电源电路时钟电路 CPU是计算机的控制核心 它的功能是执行指令 完成算数运算 逻辑运算 并对整机进行控制 存储器用于存储程序和数据 输入 输出接口 又称I O接口 是CPU和外设之间相连的逻辑电路 外设必须通过接口才能和CPU相连 不同的外设所用接口不同 每个I O接口也有一个地址 CPU通过对不同的I O接口进行操作来完成对外设的操作 总线CPU 存储器 I O接口和之间相连的一组线 用于传送程序或数据的总线才数据总线 用于传送地址 以识别不同的存储单元或I O接口称为地址总线 控制总线用于传输控制信号 如CPU向存储器或I O接口电路输出的读 写信号 I O接口电路像CPU输入的中断 复位等信号 计算机系统的硬件结构如下图所示 CPU 输入接口 输入设备 总线 DB AB CB DB AB CB 输出接口 输出设备 0 1 2微机的基本工作原理 存储程序 执行程序是微机的工作原理 取指令 译码 执行是微机的基本工作过程 单片机是微型计算机的一种 是将计算机主机 CPU 存储器和I O接口 集成在一小块硅片上的微机 又称微控制器 它专为工业测量与设计而设计 具有三高优势 集成度高 可靠性高 性价比高 单片机的特点是小而全 体积小 功能全 主要应用于工业检测与控制 计算机外设 智能仪器 仪表 通信设备 家用电器等 特别适合于嵌入式微型机应用系统 嵌入式工程师的任务就是根据应用对象的需求 完成硬件和软件的设计 即选择合适的单片机 进行接口 存储器等电路的系统设计 并设计程序 以控制应用系统 使其按程序的指令完成规定的工作 这就是本门课要学习的内容 0 1 3微机的主要技术指标 微型计算机主要有如下一些技术指标 字长 CPU并行处理数据位 由此定为8位机 16位机 32位机等 注 现在的CPU都是64位机 但都兼容32位指令 所以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位十六进制数即可 如 3AB9H 0011101010111001B 十六进制数和十进制数间的相互转换十六进制数转换为十进制数 将十六进制数按权展开相加 如 1F3DH 163 1 162 15 161 3 160 13 4096 1 256 15 16 3 1 13 4096 3840 48 13 7997 十进制整数转换为十六进制数 可用出16取余法 即用16不断地去除待转换的十进制数 直至商等于0为止 将所得的各次余数 依倒叙排列 即可得到所转换的十六进制数 如将38947转换为十六进制数 其方法及算式如下 即38947 9823H 事实上 38947 9 163 8 162 2 161 3 160 0 2 2计算机中数的几个概念 1 机器数与真值机器数 机器中数的表示形式 它将数的正 负符号和数值部分一起进行二进制编码 其位数通常为8的整数倍 取决于机器的字长 真值 机器数所代表的实际数值的正负和大小 是人们习惯表示的数 如 1001B的机器数00001001 而 1001B对应100010012 数的单位位 bit 一个二进制数中的1位 其值不是1便0 字节 Byte 一个字节 就是一个8位的二进制数 字 Word 两个字节 就是一个16位的二进制数 双字 两个字 即四个字节 一个32位二进制数 只有8位 16位或32位机器数的最高位才是符号位 0 2 3计算机中的有符号数的表示 有符号数有原码 反码和补码三种表示法 计算机中的机器数分为有符号数和无符号数 有符号数 机器数的最高位为符号位 符号位为 0 表示正数 符号位为 1 表示负数 无符号数 机器数的最高位没有符号意义 只有数值意义 8位无符号数的表示范围为0 255 000000B 11111111B 16位无符号数的表示范围为0 65535 0000000000000000B 1111111111111111B 1 原码数值部分用其绝对值 正数的符号位用 0 表示 负数的符号位用 1 表示 如 X1 5 00000101B X1 原 00000101BX2 5 00000101B X2 原 10000101B8位原码数的范围为FFH 7FH 127 127 原码数00H和80H的数值部分相同 符号位相反 它们分别为 0和 0 16位原码数的数值范围为FFFFH 7FFFH 32767 32767 原码数0000H和8000H的数值部分相同 符号位相反 它们分别为 0和 0 原码表示简单易懂 而且与真值的转换方便 但若是两个异号数相加 或两个同号数相减 就要做减法 为了把减运算转换为加运算 从而简化计算机的结构 就引进了反码和补码 符号位 2 反码正数的反码与原码相同 负数反码 符号位不变 数值部分按位取反 或对应正数按位取反 包括符号位 例求8位反码机器数 X1 4 X1 原 00000100B 04H X1 反 00000100B 04HX2 4 X2 原 10000100B 84H X2 反 11111011B FBH 取反 3 补码 常规求补码法正数的补码与原码相同 负数补码为其反码加1 例 求8位补码机器数 X1 4 X1 原 X1 反 X1 补 00000100 04HX2 4 X2 原 10000100 X2 反 11111011 X2 补 X2 反 1 11111100 FCH 快速求补码法 将负数原码的最前面的1和最后一个1之间的每一位取反 例如x 4 x 原 10000100 x 补 11111100 FCH 取反 补码中 0 的唯一性 0 原码 反码 补码 00000000 0 原码 10000000 反码 11111111补码 11111111 1 00000000这样补码中就不会出现10000000 因此可用其表示 128 即补码数80H的真值是 128 80H 最高位既代表符号为负 又代表数值为1 同理8000H的真值 32768 8000H 所以 8位补码数值范围 128 127 80H 7FH 16位补码数值范围 32768 32767 8000H 7FFFH 4 补数与减法 补数设时钟现为10点 要拨至6点 可向后拨4格 也可向前拨8格 先前拨2到12点 再前拨6 即减4与加8等价 因为时钟以12为模 12点又称0点 4与8互为补数 同理3与9互补 5与7互补 8位二进制数以28 256 100H 为模 即 X的补数 模 X如 A4H 10100100B 的补数 100H A4H 5CH或者按二进制 100000000 10100100 01011100由于100000000 11111111 1 而11111111 10100100相当于按位取反 故 求补数的方法为按位求反再加1 计算机减法的实现利用补数的概念可以用加法运算代替减法运算 如计算X Y 可分为如下两步 I 求 Y 补数 II X Y 补数其借位可通过对步骤II中的进位取反得到 这仍然可由钟表得到解释 设表指向5点 现回拨3至2点 相当于减3 无需借位 按互补概念也可前拨9 即前拨7至0点 再前拨2至2点 显然5 9 12会产生进位 可见所需借位与进位相反 再如从5点回拨7至10点 相当于5 7 需要借位 而按互补概念可前拨5 5 5 12不会产生进位 同样 所需借位与加法的进位相反 计算机中没有设计减法电路 其减法指令实际上是相加前对减数进行了求补数的运算 利用补数求补码 即 模 X 求补码补数与补码是不同的概念 补数是针对无符号数而言的 而补码是针对有符号数而言的 即使是对一个正数 其补码与补数也不相同 补码是其自身 而补数 模 该数 但可利用补数求补码 求补数的方法之一是按位求反再加1 求负数的补码与此类似 对应正数按位求反加1 含符号位 而按位求反再加1等价于 模 X 故求数X的补码的方法为 X 0则 X 补 X 原 X 0则 X 补 模 X 即 负数的补码就是对应正数的补数例如对八位二进制数 X1 4 X1 补 00000100 04H X2 4 X2 补 100H 4 FCH 几点说明 一个用补码表示的机器数 若最高位为0 则其余几位即为此数的绝对值 若最高位为1 其余几位不是此数的绝对值 必须把该数求补 按位取反 包括符号位 加1 才得到它的绝对值 如 X 15 15 补 F1H 11110001B求补得00001110 1 00001111B 15 对补码再求补码 注意 符号位不变 数值部分按位取反加1 就可以得到其原码 将原码的符号位变为正 负号 即是它的真值 如求补码数FAH的真值 因为FAH为负数 求补码 FAH 补 86H 6 所以补码数FAH的真值为 6 例如求补码数78H的真值 因为78H为正数求补码 78H 补 78H 12078H的真值为120 补码的运算规则 规则I X 补 Y 补 X Y 补规则II X 补 Y 补 X Y 补由规则I 两数的补码可直接相加 由规则II 只要把减数变为其相反数的补码 就可以把减法转换为加法 此时相加的结果是差的补码 其真值可再次求补得到 例1 64 10 64 10 54 64 补 40H 01000000B 10 补 0AH 00001010B 10 补 11110110B做减法运算过程 用补码相加过程 结果均为 00110110 其真值 110110B 36H 54 例2 34 68 34 68 3434 22H 00100010B68 44H 01000100B 68 补 10111100B做减运算过程 用补码相加过程 结果相同 因为符号位为1 对其求补 得其真值 00100010B 即为 34 22H 由上面两个例子还可以看出 1 用补码相加完成两数相减 相减若无借位 化为补码相加就会有进位 相减若有借位 化作补码相加就不会有进位 2 补码运算后的结果为补码 需再次求补才能得到运算结果的真值 必须说明 机器并不认识什么补码 在机器的眼里只有二进制数 另外计算机只有一个减法指令 并没有专门的针对有符号数的减法指令 若参与减法运算的两个数分别是被减数X及减数Y的补码 由前述计算机减法实现的说明 结果是 X 补 Y 补 补数根据规则 X 补 Y 补 X Y 补 则必须证明 Y 补 补数 Y 补才能说明最终的结果是正确的 即结果 X Y 补 而事实上这是可以证明的 又由前面两个例子的结论 用补码相加代替相减 若相减无借位 则相加有进位 若相减有借位 则相加无进位 这与前面无符号数的结论一致 因此计算机无任何必要为符号数设计专门的指令及运算电路 由于用补码表示后 有符号数的加 减法都可以用无符号数的加法电路实现 所以微机中的符号数一律用补码表示 这样一个加法器即可用于无符号数加减 也可用于有符号数加减 同时加法电路结合移位寄存器可完成乘 除运算 这样大大简化了计算机的硬件设计 0 2 4进位和溢出 例3105 50 155105 69H50 32H若把结果视为无符号数 为155 结果正确 若结果视为符号数 结果为 101 这显然是错误的 其原因是和数155大于8位符号数所能表示的补码数的最大值127 使数值部分占据了符号位的位置 产生了溢出 又如 105 50 155CY 1两个负数相加 和应为负数 而结果01100101B却为正数 显然错误 其原因是和数 155小于8位符号数所能表示的补码数的最小值 128 也产生了溢出 结论 当两个补码数相加结果超出补码表示范围 就会产生溢出 导致结果错误 计算机中设立了溢出标志位OV 通过最高位的进位 符号位的进位 CY和次高位进位 低位向符号位的进位 CY 1异或产生 例474 74 4AH 4AH01001010001100101010010100CYCY 1 01 1 有溢出OV 1CYCY 1无进位CY 0由上两例中 例3的OV 1 CY 1 例4中OV 1 CY 0 可见溢出和进位并非有必然的联系 这是由于两者产生的原因是不同的 两者判断的方法也是是不同的 重述如下 溢出OV 两个补码数相加结果超出补码表示范围而产生 OV CY CY 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 BCD 100001110110B 876H非压缩的BCD码 876 BCD 000010000000011100000110B 080706H又如 十进制数1994的压缩的BCD码 1944H1994的非压缩的BCD码 01090404H 0 2 6BCD码的运算 BCD码运算应该得到BCD码结果 由于计算机是按二进制运算 结果不为BCD码 因此要进行十进制调整 调整方法为 当计算结果有非BCD码或产生进位 借位时 加法进行 6 减法进行 6调整运算 例 计算BCD码78 69 0111100078H 01101001 69H11100001E1H 不调整 结果为二进制 01100110 66H 调整 高4位产生非BCD码 6和101000111147低4位有半进位 6调整结果 147 带进位一起 为十进制结果 例 计算BCD码38 29 0011100038H 00101001 29H000011110FH00000110 06低4位有半借位 6调整高4位未产生非BCD且无借位不调整000010019结果 9在计算

温馨提示

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

评论

0/150

提交评论