页数:117页文件大小:4.16 MB来源: 数字电子技术ppt课件
本课件为数字电子技术课程 1-1 分册,沿数字与模拟量、数制与编码、算术运算三条主线展开,厘清数字量离散特征、常用进制互换方法与有符号数的补码表示,为后续逻辑代数与门电路学习打下基础。
本页为《数字电子技术基础》课件 1-1 分册封面,标示英文课程名称 Fundamentals of Digital Electronic Techniques 及分册编号 1-1。
面向未来就业与后续发展的电子技术基础课程群包括:
本课程内容覆盖以下九个模块:
第一章 逻辑代数基础 Basic Logic / Boolean Algebra 的小节安排:
Digital 一词源自计算机按数字计数执行运算的方式。早年数字电子技术仅局限于计算机系统,如今已广泛用于:
数字系统在日常生活中作用突出,是电子信息类学习者必须掌握的基础。
例如指针式手表用指针夹角表示时间,数字式手表直接用数字显示时间。
对温度这一模拟量按采样间隔 Δ 采样,得到的数字编码(采样表示)如下:
| 数字编码 | 温度(℃) |
|---|---|
| 000 | 0 |
| 001 | 10 |
| 010 | 20 |
| 011 | 30 |
| 100 | 40 |
| 101 | 50 |
| 110 | 60 |
| 111 | 70 |
Δ 为采样间隔 sampling interval,1/Δ 即采样率 sampling rate。
自然界生成的图像是模拟量而非数字量,需要经过采样(数字化)处理。分辨率用像素数表示,常见如 800×600、1024×768;分辨率越高,图像越清晰。本页给出原始图像与 7×7、14×14 数字化后的对比。
黑白图像可用位串表示:每个像素取 0 或 1,逐行排列形成二进制序列,再按十六进制分组记录,如 (01F0…)2、(00000007FA1…)2。本页给出 7×7 与 14×14 点阵的编码结果。
彩色图像在黑白点阵的基础上为每个像素增加颜色信息,更高的屏幕分辨率意味着更多像素,图像细节与色彩层次也随之提升。
声音在时间上连续变化,可用横轴为时间 time、纵轴为幅值 AMP 的波形表示,是最典型的模拟量之一。
将最大幅值 Max. AMP 作 16 等分(16=24),每个采样点用 4 位二进制表示:
| 采样点 | 量化值 | 四位编码 |
|---|---|---|
| t1 | 8 | 1000 |
| t2 | 9 | 1001 |
| t3 | 7 | 0111 |
| t4 | 2 | 0010 |
| t5 | 2 | 0010 |
采样率越高,音质越好,即 Quality vs sampling rate 的权衡关系。
数字技术经历了真空管电路 → 分立晶体管 → 复杂集成电路的发展过程。学习数字电路基础的同时也应了解模拟电路,因为许多应用二者兼有。
数字计算机只(并且只能)处理数字:
本页为典型的基于计算机的数据采集系统框图(引自 National Instruments 应用笔记 AN007),说明外界模拟信号经采集卡进入计算机处理的通路。
ENIAC(1946 年)设计者:John W. Mauchly(1907—1980)与 J. Presper Eckert(1919—1995)。
说明:源文件中机房尺寸英制单位写作 inches(英寸),与其所附米制数值 2.44×0.9×30.48 m 不符,此处按米制换算结果订正为 feet(英尺)。
本页展示 1946 年 ENIAC(Electronic Numerical Integrator And Computer)电子数字积分计算机的外观,直观反映早期电子计算机的庞大规模。
处理器工艺世代从 Intel 386 DX、486 DX、Pentium 到 Pentium II,特征尺寸依次为 1.5µ、1.0µ、0.8µ、0.6µ、0.35µ、0.25µ 逐级缩小,带来两项收益:
晶体管不断缩小,使芯片更小、单芯片可容纳的器件更多,单芯片晶体管数量每 1.5—2 年翻一番。技术缩放 Technology Scaling 带来投资增加、性价比提升与市场增长的正循环。
摩尔定律 Moore s Law 是一个著名观察结论:研究者倾向于每 18 个月将晶体管尺寸缩小一半。本页以 Intel Research 的晶体管样品图加以说明。
这是一次根本性的反转,同样的变化也将发生在电视、有线电视与音频领域。
拨号上网需要一台调制解调器,也就是 Modem。电话线只能传递模拟信号,而电脑信息都是数字信号:发送前必须把数字信号转换成模拟信号,接收时再转换回数字信号。前一个过程叫调制,后一个过程叫解调,在电话线两端完成这种信号转换的设备就是调制解调器。
数制用于枚举事物的状态,例如钱币、书本、星体、年份、小时等。人类习惯十进制(以 10 为基),但也有许多非十进制的情形:
本页展示古埃及数字 Egyptian Numerals,采用 10 进制记数,用不同符号表示 1、10、100 等数量级。
古巴比伦数字 Babylonians Numerals 采用 60 进制,其按权展开示例:
1×603 + 57×602 + 46×601 + 40×600 = 424000
说明:源文件中末项写作 40*600,按其位权含义应为 40×600(即 40),此处按标准位权写法订正,计算结果 424000 与原稿一致。
中文数字同样基于 10 进制,除 0—9 的壹、貳、參、肆、伍、陸、柒、捌、玖、拾外,还有佰、仟、萬、億、兆、京等更高数量级单位。
每个符号称为一个数位 digit;当要描述的状态数 M 大于 K 时,需要用多个数位组合表示,例如用两位 10 表示第十一个状态。
当状态数超过基数时,需要两位或多位组合表示,这就是为什么不直接用 10 而要写成两位数字。
以 6 进制(senary)为例,当要描述的状态大于 6 时,需要使用一个以上的符号组合:
6 进制(senary)数制中用多个数位表示更多状态的对应关系:
| 数码 | 状态 | 序数 |
|---|---|---|
| 0 | 状态 1(空状态) | 0 |
| 1 | 状态 2 | 1st |
| 2 | 状态 3 | 2nd |
| 3 | 状态 4 | 3rd |
| 4 | 状态 5 | 4th |
| 5 | 状态 6 | 5th |
| 10 | 状态 7 | 6th |
| 11 | 状态 8 | 7th |
| 12 | 状态 9 | 8th |
| 13 | 状态 10 | 9th |
| 14 | 状态 11 | 10th |
| 15 | 状态 12 | 11th |
| 20 | 状态 13 | 12th |
本页汇总数字电子技术中最常用的几种数制:二进制、八进制、十进制与十六进制,给出各自的数码集合与典型应用场合。
在 r 进制数制中,位数与可描述的状态数(0 至 rN−1)关系如下:
| 位数 | 可描述状态数 |
|---|---|
| 1 位 | r1 |
| 2 位 | r2 |
| 3 位 | r3 |
| N 位 | rN |
例如两位 3 进制可得 32=9 种组合,三位十进制可得 103=1000 种组合。
一般地,任意 K 进制数可写成 N=(Ap−1Ap−2…A1A0.A−1A−2…A−q)K,基数 K 写作下标。每个数码依据其位置携带确定位权,因此位置很关键:346.17 ≠ 463.71。
最左位 Ap−1 为最高有效位 MSD(二进制称 MSB),最右位 A−q 为最低有效位 LSD(二进制称 LSB)。
十进制(Base 10 / Radix 10)以小数点为界,向左依次为个位 100、十位 101、百位 102、千位 103、万位 104,向右依次为十分位 10−1、百分位 10−2。
二进制(Base 2 / Radix 2)以二进制小数点为界,向左依次为个位 20、二位 21、四位 22、八位 23、十六位 24,向右依次为二分之一位 2−1、四分之一位 2−2。
按权展开求和法 Sum-of-Weights Method:把数展开为幂级数后逐项相加。示例:
N = (251.41)10 = 2×102 + 5×101 + 1×100 + 4×10−1 + 1×10−2
另有单位换算:1 K = 210 = 1024,1 M = 220 = 1048576,1 G = 230 = 1073741824。
本页为把任意进制数转换为十进制的例题,配合上一页的按权展开求和法使用,用于课堂练习。
人类习惯十进制,但数字电子技术广泛使用二进制,原因是:
Bit 为二进制位,Byte 为字节,等于 8 bit 信息量。应学会按 2 的幂计数。
| n | 2n |
|---|---|
| 0 | 1 |
| 1 | 2 |
| 2 | 4 |
| 3 | 8 |
| 4 | 16 |
| 5 | 32 |
| 6 | 64 |
| 7 | 128 |
| 8 | 256 |
| 9 | 512 |
| 10 | 1024 |
| 11 | 2048 |
| 12 | 4096 |
| 20 | 1 M |
| 30 | 1 G |
二进制数过长且容易看错:(15)10 写成二进制 (1111)2 有 4 位,写成八进制 (17)8 只有 2 位,写成十六进制 (F)16 只有 1 位。
任意十进制数(整数部分与小数部分)转换为 r 进制:
本页给出十进制转二进制的示例:整数部分反复除 2 取余,自下而上读出即得 MSD 到 LSD;小数部分反复乘 2 取整。图中标出 MSD、LSD 与二进制小数点位置。
本页给出十进制转十六进制的示例:整数部分反复除 16 取余得到 MSD 至 LSD,小数部分乘 16 取整,图中标出十六进制小数点位置。
十进制整数转换为其他进制的示例:
十进制小数部分转换示例(乘基取整法):
例:将 (0.39)10 转换为二进制,要求精度达到 0.1%。
题意即需要几位二进制小数才能达到 0.1% 的转换精度。二进制的 1 K = 1024,即 1/2−10 = 1024,所以需要 10 位小数:
(0.39)10 = (0.0110001111)2
例:(18.6)9 = ( ? )11。任意两种进制 A 与 B 之间的转换步骤为:先把数从 A 进制转到十进制,再从十进制转到 B 进制。
本页演示二进制与八进制的互换:以小数点为界向左、向右每三位一组,不足三位补 0,再逐组换成八进制数码。
本页演示二进制与十六进制的互换:以小数点为界每四位一组,不足四位补 0,再逐组换成十六进制数码。
本页演示八进制与十六进制的互换,通常先转换为二进制作为中间桥梁,再按三位或四位重新分组得到目标进制。
当 B = Ak(k 为正整数)时,两种进制可直接分组替换:
例:(001 010 111.100)2 = (127.4)8(按三位分组);(B65F)16 = (1011 0110 0101 1111)2(每位对应四位)。
本页给出十进制、八进制、二进制与十六进制之间相互转换的便捷途径图,说明以二进制为枢纽时八进制与十六进制的转换最为简便。
BCD 码 Binary Coded Decimal 用 4 位二进制码表示十进制的 10 个数码 0—9。
BCD 占用位数较多,但与十进制之间的转换更容易。
人类习惯读写十进制,而二进制是计算机最自然的数制,BCD 在二者之间提供了良好的接口:
加权码中每个位被赋予固定权重,D = B3W3 + B2W2 + B1W1 + B0W0:
| 码制 | W3 | W2 | W1 | W0 |
|---|---|---|---|---|
| 8421 码 | 8 | 4 | 2 | 1 |
| 2421 码 | 2 | 4 | 2 | 1 |
| 84-2-1 码 | 8 | 4 | −2 | −1 |
其他四位 BCD 码还有 4221、5211、5421、7536 等。
计算下列 BCD 数相加:
84-2-1 码每个十进制数(0—9)用四位表示,权重从左到右依次为 8、4、−2、−1。示例:
无权码的各位没有被赋予固定权重,常见类型有:
余 3 码即在 8421 BCD 码基础上加 3:
优点:做 BCD 加法时,当数位之和大于 1001(9),余 3 码等于 8421 BCD 码加 0011,便于自动进位修正。
格雷码(单位距离码)与余 3 循环码的共同特点是:相邻两个数之间只有一位发生变化,可减少多位同时翻转带来的计数错误。例如二进制 7 到 8 是 0111 到 1000,全部位都要变化;而格雷码 0100 到 1100 只有一位变化,速度快且不易出错。
| 十进制 | 格雷码 | 余 3 循环码 |
|---|---|---|
| 0 | 0000 | 0010 |
| 1 | 0001 | 0110 |
| 2 | 0011 | 0111 |
| 3 | 0010 | 0101 |
| 4 | 0110 | 0100 |
| 5 | 0111 | 1100 |
| 6 | 0101 | 1101 |
| 7 | 0100 | 1111 |
| 8 | 1100 | 1110 |
| 9 | 1101 | 1010 |
说明:源文件编码表为图片化排版,部分行列粘连,此处按标准格雷码与余 3 循环码编码规则整理,建议对照原课件图片核对。
自补码 Self-complementing Codes 的特点是:某数码的编码与其 9 的补数的编码互为反码,二者相加结果相同。本页给出自补特性的示例与求和验证。
本页给出由十进制数转换为反射格雷码的方法:先写出对应的二进制数,再按相邻位异或(相同为 0、相异为 1)自左向右逐位生成格雷码,最高位保持不变。
本页给出由反射格雷码还原为十进制数的方法:从最高位起逐位向前累加异或,得到对应的二进制数,再按权展开转换为十进制。
字符编码用于处理字母、数字、特殊符号、标点与控制字符等信息,常见类型:
ASCII 码用 b6—b0 共 7 位表示字符,行列交叉定位。下表列出常用字符的编码:
| 字符 | b6b5b4 | b3b2b1b0 | 说明 |
|---|---|---|---|
| NUL | 000 | 0000 | 空字符,控制字符 |
| SP | 010 | 0000 | 空格 |
| 0 | 011 | 0000 | 数字 0,同区还有 1—9、: ; < = > ? |
| @ | 100 | 0000 | 同区为 @ 与大写 A—O |
| P | 101 | 0000 | 同区为大写 P—Z 与方括号、反斜杠、脱字符、下划线 |
| ` | 110 | 0000 | 同区为 ` 与小写 a—o |
| p | 111 | 0000 | 同区为小写 p—z 与 { | } ~ |
| DEL | 111 | 1111 | 删除字符,控制字符 |
说明:原课件为 16 列 × 8 行的完整 ASCII 码表图片,此处整理为按区归纳的常用字符对照,完整行列建议对照原课件图片查看。
ASCII(American Standard Code for Information Interchange)每字符用 7 位表示,共 27 = 128 种组合,对应 128 个字符。
扩展 ASCII(Extended ASCII)每字符用 8 位表示,共 28 = 256 种组合,可表示 256 个字符,用于补充制表符与各国字母等图形字符。
以单词 National 为例,各字符的十六进制与二进制编码如下:
| 字符 | 十六进制 | 二进制 |
|---|---|---|
| N | 4E | 00101110 |
| a | 61 | 01100001 |
| t | 74 | 01110100 |
| i | 69 | 01101001 |
| o | 6F | 01101111 |
| n | 6E | 01101110 |
| a | 61 | 01100001 |
| l | 6C | 01101010 |
说明:标准 ASCII 中 N 为 4EH、a 为 61H、l 为 6CH,源文件所列二进制串与十六进制值存在个别位差错,此处按十六进制值订正为标准二进制写法。
ASCII 过于简单,各厂商通过扩展字符集加以补充,既混乱又仍受限于 256 个字符。随着计算机在世界范围普及,需要显示日文、中文等文字以及各种符号,于是出现 Unicode:每个字符用 2 字节(16 位)表示。
Unicode 是 16 位字母数字编码,可表示 216 = 65536 种符号,每字符 2 字节。常见区段:
Web 浏览器、Java 与多数现代软件均采用 Unicode。
本页给出 Unicode Samples,展示拉丁字母、汉字、日文假名与各类符号在 16 位编码下的字符样例。
EBCDIC(Extended Binary Coded Decimal Interchange Code)每字符用 8 位表示:
本页给出 EBCDIC 编码表,按区位与数字位的组合列出各字符对应的 8 位编码,可与 ASCII 码表对照查看两者差异。
Big5 码用于繁体中文字符:1 个字符 = 2 字节(16 位)。本页给出 Big5 编码的示例字符及其字节表示。
本页展示 Big5 Code 的编码示例,给出若干繁体汉字所对应的十六进制双字节编码。
数据在读写或通过铜线、电话线、无线通信传输时可能出错,因此需要检错:在数据中附加冗余信息。常见做法是给 ASCII 字符增加一个奇偶校验位 Parity bit。
例:字符 A 原码 1000001,偶校验写作 01000001,奇校验写作 11000001。
数字电子系统的两个基本能力:用编码以数字形式表示真实数量,以及用布尔代数处理与判断二进制变量来控制系统。二进制运算分两类:
基本算术运算加、减、乘、除的步骤与十进制相同。二进制加法产生进位 carry,二进制减法产生借位 borrow:
| 算式 | 进位 | 和 | 借位 | 差 |
|---|---|---|---|---|
| 0 + 0 / 0 − 0 | 0 | 0 | 0 | 0 |
| 0 + 1 / 0 − 1 | 0 | 1 | 1 | 1 |
| 1 + 0 / 1 − 1 | 0 | 1 | 0 | 0 |
| 1 + 1 / 1 − 0 | 1 | 0 | 0 | 1 |
| 算式 | 积 | 算式 | 商 |
|---|---|---|---|
| 0 × 0 | 0 | 0 ÷ 0 | 无意义 |
| 0 × 1 | 0 | 0 ÷ 1 | 0 |
| 1 × 0 | 0 | 1 ÷ 0 | 无意义 |
| 1 × 1 | 1 | 1 ÷ 1 | 1 |
加法示例:101011(被加数)+ 011001(加数),进位为 111011,结果为 1000100。
减法示例:100101(被减数)− 011011(减数),借位为 0110010,结果为 001010。
乘法示例:11010(被乘数)× 1010(乘数),部分积依次为 00000、11010、00000、11010,移位相加得积 100000100。
四则运算示例:加法 1001+0101、减法 1001−0101、乘法 1001×0101、除法 1011÷0101。
由运算过程可以看出:
因此二进制数的加、减、乘、除运算都可以用加法运算电路来实现,关键问题是如何把减法运算变为加法运算。
数值数据包括整数与实数、正数与负数,基 r 数值数据的表示方式有:
有符号 n 位整数 I = (An−1An−2…A1A0)2 中,An−1 = 0 表示正,An−1 = 1 表示负。
可见 [N]r = [N]r−1 + 1,且补码的补码仍得原数。
(N)2 = (101001)2 的 2 的补码为 [N]2 = 26 − (101001)2 = (1000000)2 − (101001)2 = (010111)2。
基数补码数制用于把减法转化为加法,从而减少硬件需求(只需加法器)。M − N = M + (−N),即把 N 的 r 的补码加到 M 上:
用 10 的补码计算:
用反码(r−1 的补码)数制做减法时,若产生进位则要把该进位加到结果上(循环进位 end-around carry)。用 9 的补码计算:
n 位整数原码 Sign-Magnitude 的表示范围:
缺点:存在 +0 与 −0 两种不同的零,且不易用简单电路(通常是加法器)实现。
n 位整数反码 Sign-1 s Complement:正数与原码相同,负数由其正数表示逐位取反得到。以 4 位为例:
缺点:仍存在 +0 与 −0 两个零;虽易用加法器实现,但效率不如补码。
n 位整数补码 Sign-2 s Complement:正数与原码相同,负数为其正数表示取反后加 1。以 4 位为例:
优点:零只有一种表示。
原码、反码与补码三种表示对正数是相同的;原码与反码中 +0 和 −0 表示不同,补码中则统一为 0000。本页以 4 位整数的完整编码对照给出比较。
用一个字节(8 位)表示整数时,三种表示法的范围如下:
| 表示法 | 最小值 | 最大值(正) | 零的表示 |
|---|---|---|---|
| 原码 | −127(11111111) | +127(01111111) | +0 与 −0 两种 |
| 反码 | −127(10000000) | +127(01111111) | +0 与 −0 两种 |
| 补码 | −128(10000000) | +127(01111111) | 00000000 一种 |
一般地:原码与反码范围为 −(2n−1−1) ~ 0 ~ 2n−1−1,补码范围为 −2n−1 ~ 0 ~ 2n−1−1。
负数在算术运算中采用符号—补码形式更方便,实际多用补码。
用补码做四道例题:
运算只需加法,无需比较符号;所有进位均舍弃。若答案为负,则它是补码形式,需再求补码并冠以负号,例如 11111001 求补得 00000111,即 −7。
计算机中实数都以浮点数形式表示,不同 CPU 的表示方式各异。Intel 80486 按 ANSI/IEEE 标准 754-1985 定义三种形式:
单精度浮点数共 32 位:
把 (241506800)10 表示为浮点数:
规格化的含义:把小数点移到所有数字的最左侧,使尾数成为纯小数,阶码即为 10 的幂次。
把 (1011010010001)2 表示为单精度浮点数:= 1.011010010001 × 212。
IEEE 754 中的特殊值示例:无穷大 ∞ 用阶码全为 1、尾数全为 0 的位模式表示。
本页为浮点数表示的例题,配合单精度格式与偏置阶码的说明使用,用于课堂练习。
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}