• 1. 单片机原理与接口技术电子工业出版社主 编 吴亦锋 陈德为 副主编 冯维杰 曹双贵 吴海彬 (第二版)1
    • 2. 课程主要学习内容:教材前9章微型计算机基础知识(4学时) MCS-51单片机的结构(2学时) MCS-51单片机指令系统(8学时) 汇编语言程序设计(8学时) MCS-51单片机的中断与定时(4学时) 存储器扩展与并行I/O接口扩展(8学时) 显示器与键盘接口技术(4学时) 模拟量通道接口(6学时) MCS-51单片机的串行接口(2学时) 2
    • 3. 主要学习方法: 理论学习(课本学习) 实践(实物实验+仿真实验) 要掌握: Keil C51高级语言集成开发环境 基于Proteus的单片机系统仿真3
    • 4. 课程考核评分规则评定条目评定标准1出勤 (5 分)(1)缺勤1次,扣1分;(2)发现代签扣5分; (3)无故旷课5次以上,取消本课程成绩。2作业 (5 分)缺交1次扣1分,迟交、补交不给分,抄袭均为0分。3实物制作 (10 分)题目自定,内容必须包括“矩阵式键盘”、“LED发光二极管”、“数码管”等; 4期末笔试 (80 分)依据卷面成绩按 80% 折算。5奖励分 (6 分)奖励分实物制作题目自定,内容必须包括 “中断编程”、A/D转换编程等。 (注:包括奖励分在内,期末总评成绩封顶100分。)4
    • 5. 第1章 微型计算机基础知识微型计算机和单片机发展概述计算机中的数制及数的转换计算机中二进制数的运算计算机中有符号数的表示方法计算机中的字符编码微型计算机组成原理5
    • 6. 1.1 微型计算机和单片机发展概述一、微型计算机的发展 1.电子计算机的发展 1946年美国研制出世界上第一台电子计算机ENIAC 第一代:电子管电子计算机(1946年~1958年) 逻辑元件:电子管 内存储器:水银延迟线 外存储器:磁鼓、纸带、卡片、磁带 程序语言:机器语言,汇编语言第二代:晶体管电子计算机(1958年~1965年)逻辑元件:晶体管 内存储器:磁芯 外存储器:磁鼓、纸带、卡片、磁带 程序语言:机器语言,汇编语言、 高级语言第一台晶体管计算机 6
    • 7. 第三代:中小规模集成电路电子计算机(1965年~1970年) 逻辑元件:中、小规模集成电路 内存储器:磁芯、半导体存储器 外存储器:磁盘、磁带 程序语言:汇编语言、高级语言第一台集成电路通用计算机 第四代:大规模、超大规模集成电路电子计算机(1971年开始)逻辑元件:大规模集成电路 内存储器:半导体存储器 外存储器:磁盘、磁带、光盘 程序语言:汇编语言、高级语言 第五代:智能计算机(20世纪80年代中期至今) 把信息采集、存储、处理、通信和人工智能结合一起,具有形式推理、联想、学习和解释能力。现正在研制发展中。7
    • 8. 2.微型计算机的发展以大规模、超大规模微处理器为核心,配以存储器、输入/输出接口电路以及系统总线所构成的计算机。什么是微型计算机? 第一代(1971~1973年)4位和低档8位微处理器Intel4004 — 4位微处理器 Intel8008 — 低档8位微处理器Intel 8008 Intel8080、MC6800 — 8位微处理器 Intel8085、Z80 — 高档8位微处理器 指令比较完善,有中断与DMA,频率2~4MHz Intel 8080 第二代: (1973~1977年)中高档8位微处理器8
    • 9. 第三代(1978~1982年)16位微处理器 Intel8086 、Z8000、MC68000 — 16位 CPU字长16位,16位数据线,20位地址线Intel 80861981年,IBM公司采用Intel 8086微处理器生产了第一台通用微型计算机IBM PC Intel80286 — 高档16位,24位地址线 第四代(1982~1992年)32位微处理器Intel 80386 — 32位微处理器,数据总线32位, 地址总线32位,时钟频率33MHz Intel 80486 — 32位微处理器 80486 = 80386+80387+8KBCache 部分采用RISC、突发总线技术、时钟倍频技术Intel 804869
    • 10. 第五代(1993~1995年)32位奔腾微处理器Pentium(奔腾)— 32位微处理器 CPU字长32位,64位数据线,32位地址线 Pentium MMX(多能奔腾) — 32位微处理器 增加了57条 MMX(多媒体增强指令集)指令 第六代(1995~1999年)增强型Pentium微处理器Pentium Pro(高能奔腾) — 32位微处理器 36位地址线,时钟频率300MHz。 Pentium II — 32位,增加MMX技术。 Pentium III — 32位,时钟频率达1GHZ Pentium 4 — 32位,时钟频率高达3.8GHzIntel Pentium III 第六代后(2000年至今)和多核处理器 Intel Itanium 2 — 64位微处理器 Intel Core i7 — 4核处理器10
    • 11. 二、单片机的发展 将CPU、ROM、RAM、输入/输出(I/O)接口电路以及定时器/计数器等主要部件集成在一块集成电路芯片上。称为单片微型计算机(Single Chip Microcomputer),简称单片机。单片机虽然只是一片集成电路,但从组成和功能上看,已具有了一台微型计算机的基本功能。单片机的特点: 性价比高:高性能、低价格; 针对性强:适用于各种控制用途; 集成度高:体积小、可靠性高 ; 功耗较小:低电压、低功耗; 品种多样:型号多,发展更新快。什么是单片机?11
    • 12. 1.单片机的发展简史第一阶段(1971~1974)单片机萌芽阶段 典型代表:美国仙童公司的FS系列单片机,8位CPU、64字节RAM和两个并行端口,需外接ROM。第二阶段(1974~1978)初级单片机阶段 以Intel公司的MCS-48系列为代表。8位CPU、2个8位并行I/O口、8位定时器/计数器和64字节的RAM,寻址范围4KB。 第三阶段(1978~1983)高性能单片机阶段这时期代表产品有Intel公司的MCS-51系列、Motorola公司的MC6801系列、Zilog公司的Z80系列等。第四阶段(1983~)8位单片机巩固发展及16位单片机推出8位单片机功能越来越强大,集成较多RAM/ROM、I/O接口、还带A/D转换器等。16位单片机如MCS-96等也开始推出12
    • 13. 现阶段:32位单片机系列采用RISC,主频33MHz以上,强大的中断控制系统、定时/事件控制系统和同步/异步通信系统。代表产品MCS-80960由于8位单片机性价比高,能满足一般的应用需求,而且增强型8位单片机在性能上也已接近16位单片机。因此在今后相当长的时期内,主流机型仍是8位单片机。 2.单片机的发展趋势CMOS化 低功耗化 低电压化 低噪声与高可靠性大容量、高性能化 小容量、低价格化 外围电路内装化 串行扩展技术13
    • 14. 1.2 计算机中的数制及数的转换 一、计算机中的数制 数是客观事物的量在人们头脑中的反映。数制是人们对事物的量进行计量的一种规律。用一组数码表示数时,如果每个数码所表示的大小不仅决定于数码本身而且还决定于这个数码所处的位置,这种表示法就称为数的位置表示法。例如:999 1.数的位置表示法权:在位置表示法中每一个数位的位值。 基数:相邻两位中高位的权与低位的权之比。14
    • 15. 表示数量N,则用位置表示法可表示为:如用一组数码其中: X ——为基数(X≥2)。取值不同就可以得到不同进制数 ai——表示各数位上的数码,称为系数。ai={0,1,…,X-1}【例1-1】 123.456 = 1×102+2×101+3×100+4×10-1+5×10-2+6×10-315
    • 16. 2.各种不同进制的数十进制(Decimal) 计数规律:逢十进一,借一当十; 基数X=10;系数ai = { 0, 1, … , 9 }; 一般表达式:特点:日常生活习惯16
    • 17. 特点:1. 电路实现方便,计算机中使用; 2. 运算规则简单。运算规则: 加(+):0 +0 = 0 0 +1 = 1 1+0 = 1 1+1 =10 (逢二进一) 减(-):0-0 = 0 10-1 =1 (借位) 1-0 = 1 1-1 =0 乘(×):0 × 0 =0 0 × 1 =0 1 × 0 =0 1 × 1 =1 除(/):0 / 1 =0 1 / 1 =1二进制(Binary) 计数规律:逢二进一,借一当二; 基数X=2;系数ai = { 0, 1 }; 一般表达式:【例1-2】(1011.1)2 = ( 1×23 + 0×22 + 1×21 + 1×20 +1× 2-1)10为什么计算机内部都采用二进制?17
    • 18. 十六进制(Hexadecimal) 计数规律:逢十六进一,借一当十六; 基数X=16; 系数 ai = { 0, 1, … , 9, A, B, C, D, E, F }; 一般表达式:特点:24=16,4位二进制数对应1位十六进制数。【例1-4】(56D.3)H = (5×162 + 6×161 + 13×160 + 3×16-1)1018
    • 19. 3.各种不同进制数的表示Decimal: 后跟D或省略不写; Binary: 后跟B; Hexadecimal:后跟H,若以 A~F开头,需加前导019
    • 20. 方法:按权展开;二、数制间的转换1.N进制 (N≠10)  十进制【例1-9】 1011.110B= 1×23+0×22+1×21+1×20+1×2-1+1×2-2=11.75 3BEF.E6H= 3×163 +11×162 +14×161 +15×160 +14×16-1 +6×16-2 = 15039.898437520
    • 21. (1)整数部分 ── 除N取余 2.十进制 N进制(N≠10)整数部分、小数部分必须分开,分别求出系数ai余数2125---1最低位2 62---02 31---12 15---12 7---12 3---12 1---1最高位 0【例1-10】 将125转换为二进制数余数1615536--- 0最低位16 971---1116 60---12 3--- 3最高位【例1-11】 将15536转换为16进制数转换结果:125 = 1111101B转换结果:15536 = 3CB0H21
    • 22. (2)小数部分转换 ── 乘N取整【例1-12】将0.6875转换为二进制数整数2×0.6875=1.375---1最高位2×0.375=0.75---02×0.75=1.5---12×0.5=1.0---1最低位转换结果:0.6875 = 0.1011B整数16×0.78125=12.5---12(C)最高位16×0.5=8.0---8最低位转换结果:0.78125 = 0.C8H 【例1-13】将0.78125转换为十六进制数22
    • 23. (1)二进制数到十六进制数的转换 ── 四位化一位 从小数点处向两边分节,整数部分不够前面补0,小数部分不够后面补0。1000110. 01→01000110.0100(46.4)16 3. 二进制数和十六进制数间的转换【例1-14】将(1000110.01)B转换为十六进制数。 23
    • 24. 不同进制数之间的对照关系24
    • 25. (2)十六进制数到二进制数的转换 方法:一位化四位。按顺序写出每位十六进制数对应的二进制数,所得结果即为相应的二进制数。【例1-15】 将(352.6)H转换为二进制数。 3 5 2 . 6 H 0011 0101 0010 . 0110 = (11 0101 0010 . 011)BCPU能否识别十六进制数?使用十六进制数的目的是什么?25
    • 26. 三种数制间的转换小结N进制十进制:按权展开相加 N进制←十进制整数:除N取余 N进制←十进制小数:乘N取整26
    • 27. 1.3 计算机中二进制数的运算一、二进制数的算术运算 二进制数的计数规律:加法“逢二进一”,减法“借一当二”被加数10110101B加数00001011B进位+01111110B 和11000000B被减数10110101B减数00001011B借位-00010100B 差10101010B【例1-18】 减法运算 10110101B - 1011B结果: 10110101B + 1011B = 11000000B【例1-17】 加法运算 10110101B + 1011B结果: 10110101B - 1011B = 10101010B27
    • 28. 【例1-19】二进制乘法运算,10110101B × 1011B被乘数10110101B乘数×1011B10110101部分积1011010100000000+10110101积11111000111B结果:10110101B × 1011B = 11111000111B28
    • 29. 【例1-20】二进制除法运算,10111111B÷1001B10101B商除数100110111111B被除数-10011011-10011011-100110B余数结果:10111111B÷1001B  商=10101B,余数=10B29
    • 30. 二、二进制数的逻辑运算二进制数的逻辑运算常用的有“与”、“或”、“异或”和“非”四种。分别用符号“AND”、“OR”、“XOR”和“NOT”作为运算符,在数字上面加横线“—”表示该数的非运算。 二进制数的逻辑运算按位进行运算,没有进位问题。取值逻辑运算结果与运算(AND)或运算(OR)异或运算(XOR)非运算(NOT)000000101011100111011110表1-1 1位二进制数逻辑运算规则30
    • 31. 【例1-21】求二进制数10010111B和00111000B的“与”、“或”、“异或”运算10010111BAND00111000B00010000B结果:10010111B AND 00111000B = 00010000B10010111BOR00111000B10111111B结果:10010111B OR 00111000B = 10111111B10010111BXOR00111000B10101111B结果:10010111B XOR 00111000B = 10101111B31
    • 32. 1.4 计算机中有符号数的表示方法无符号数:不涉及符号问题的数,统称为无符号数; 有符号数:最高位表示数的符号,0—正数,1—负数; 例如字长8位:D7 —— 符号位,D6~D0 —— 数值位;两个概念:机器数和机器数的真值(简称真值)。 机器数:数值数据在计算机中的编码。 机器数的真值:机器数所代表的实际数值。在计算机中,有符号数常用原码、反码、补码等形式表示32
    • 33. 一、原码、反码和补码1.原码 原码:最高位表示符号,其中:0 ─ 正数、1 ─ 负数 其他位表示数值的绝对大小。【例1-24】求X1= +1010B,X2= -1010B的原码(8位) 解:[X1]原 = 00001010B [X2]原 = 10001010Bn位原码能够表示的数值的范围:-(2n-1-1)~+(2n-1-1); 0的原码不唯一,有[+0]原 和[-0]原之分,处理运算不方便。 原码与真值的对应关系简单,真值=符号+绝对值。真值: 用“+”和“-”表示的有符号数33
    • 34. 2.反码若X>0,则[X]反=[X]原; 若X<0,则[X]反=符号位为1,原码数值部分按位取反;n位反码能够表示的数值的范围:-(2n-1-1)~+(2n-1-1); 0的反码不唯一,有[+0]反和[-0]反之分,处理运算不方便; 反码与真值不直接对应。【例1-25】设X=+105,Y=-105,求字长为8位的反码[X]反和[Y]反 解:∵X=+105=+1101001B,∴ [X]反=[X]原=01101001B。 ∵Y=-105=-1101001B,∴ [Y]原=11101001B,[Y]反=10010110B34
    • 35. 3. 补码模:计量容器或一个计量单位称为模或模数,记作M或Mode, n位寄存器(计数器)以2n为模。如n=8,则M=28=256标准时间 5:00待校时钟时间 2:00慢3小时校准方法1 顺时针拨3小时 加3小时校准方法2 逆时针拨9小时 减9小时2+3=5 Mod 122-9=5 Mod 12结论:① 2-9 = 2+3 = 5(Mod 12) ② 补码可以变减法运算为加法运算指针式时钟小时计时Mode=12补的概念:以校时钟为例:35
    • 36. 【例1-26】求 X=+52 和 Y=-52 的补码。 解:X=+52=+0110100B,∵X>0,∴[X]补=[X]原=00110100B Y=-52=-0110100B,∵Y<0,∴[Y]原=10110100B [Y]反=11001011B [Y]补=[Y]反+1 = 11001011B+1=11001100B若X>0,则[X]补=[X]原; 若X<0,则[X]补=符号位为1,原码数值部分取反加1;n位补码能够表示的数值的范围:-(2n-1)~+(2n-1-1); 0的补码是唯一的,处理运算方便; 规定补码10000000B,其真值为-128 负数的补码与原码的关系:[[X]补]补=[X]原;(由补码求真值)36
    • 37. 4. 关于原码、反码、补码的几点说明8位n位无符号数0~2550~(2n-1)有符号数原码-127~ +127-(2n-1-1) ~ +(2n-1-1)反码-127~ +127-(2n-1-1) ~ +(2n-1-1)补码-128~ +127-2n-1 ~ +(2n-1-1)1)对有符号数才有原码、反码和补码; 2)正数的原码、反码和补码都相同; 3)在计算机中未加特别说明,有符号数均采用补码表示。在计算机中,8位二进制数可表示的范围是多少?37
    • 38. 下次课前请预习1.4~1.6节,并思考下列问题1. 为什么在计算机中有符号数多用补码表示? 2. BCD码和ASCII码分别用于表示什么? 3. 计算机的硬件结构是由哪几个基本部分组成的? 4. 微型计算机与传统计算机的主要区别是什么? 5. 单片机与微型计算机的主要区别在哪里?38
    • 39. 练 习 题 一1.将下列二进制数转换为十进制数和十六进制数。 (1) 0011 0100 B (2) 1010 1011 B 2.将下列十进制数转换成十六进制数。 (1)29 (2)53 (3)35.75 (4)47.5 3.已知原码如下,写出其反码和补码。 (1) [X]原=0101 1001 (2) [X]原=1101 1011 (3) [X]原=0011 1110 (4) [X]原=1111 1100 39
    • 40. 二、补码的加减运算1.补码加法运算 补码加法运算的通式为:[X+Y]补=[X]补 + [Y]补(mod 2n)【例1-26】已知 X=+52 和 Y=-7,试用8位二进制补码运算求 X+Y的二进制值。 解:[X]补=[+52]补=[+52]原= 00110100B; [Y]原=[-7]原=10000111B,[Y]反=11111000B,[Y]补=11111001B[X]补00110100B[Y]补11111001B[X+Y]补100101101B 故有:[X + Y]补=[X]补 + [Y]补=00101101B = [X + Y]原 真值为:+0101101B = +45 在计算机中有符号数为什么 多采用补码表示法?40
    • 41. 2.补码减法运算补码减法运算的通式为:[X-Y]补=[X]补 + [-Y]补(mod 2n)【例1-27】已知 X=+6 和 Y=+25,试用8位二进制补码运算求X-Y的二进制值。 解:[X]补=[+6]补=[+6]原=00000110B; [-Y]原=[-25]原=10011001B, [-Y]反=11100110B,[-Y]补=11100111B 故有:[X-Y]补=[X]补 + [-Y]补=11101101B [X-Y]原= [[X-Y]补]补 = 10010011B 真值为:-0010011B = -19 [X]补00000110B[-Y]补 +11100111B[X-Y]补011101101B41
    • 42. 3.加减法运算溢出的判别计算机在运算时,若运算结果超出数的表示范围,则称为计算溢出,发生溢出时结果不正确,若不处理是不能直接使用。有符号数运算溢出的判别 “双进位位”判别法:1 溢出0 无溢出OV=Cn-2⊕Cn-1=最高数值位Dn-2向符号位Dn-1的进位为Cn-2 若有进位或借位 Cn-2=1,否则Cn-2=0; 符号位Dn-1向进位标志位Cy的进位为Cn-1, 若有进位或借位 Cn-1=1,否则Cn-1=0。42
    • 43. 二进制补码运算溢出判别举例[55]补=00110111B+[66]补=01000010B[55+66]补001111001B=[+121]补√【例1-27】用二进制补码运算,计算55 + 66,并判别是否溢出因为C7 = 0,C6 = 0,OV = C7⊕C6 = 0,所以无溢出,结果正确【例1-30】用二进制补码运算,计算 (-93)+(-59),并判别是否溢出。因为C7 = 1,C6 = 0,OV = C7⊕C6 = 1,所以有溢出,结果不正确[-93]补=10100011B+[-59]补=11000101B[-93-59]补101101000B=[+104]补 ×43
    • 44. 无符号数运算溢出的判别无符号数没有符号位,全部二进制代码都用于表示数值 无符号数运算溢出的判别是看最高数值位有无进位(借位) 如果加法运算有进位(或减法运算有借位)则运算溢出【例1-31】 8位无符号数198和145相加,并判别是否溢出。 因为C7 = 1,所以溢出,即本单元的结果超出8位无符号数的表示范围0~255,结果不正确! 如果将进位考虑进去,则结果正确!198=11000110B+145=10010001B198+145101010111B= 87 ×44
    • 45. 1.5 计算机中的字符编码一、BCD码BCD码是用4位二进制数来表示一位十进制数的编码 BCD码的编码方案约有 种编码方法 每一种BCD码编码方案仅使用10个编码,剩下6个未使用 未使用的编码称为非法码或冗余码1.8421 BCD码 8421 BCD码是用四位二进制数来表示一位十进制数0~9。从高位到低位各位的权分别是8、4、2、1,故称为8421码。2.2421 BCD码 2421 BCD码,从高位到低位各位的权分别是2、4、2、1。 2421 BCD码又分为(A)和(B)两种代码。45
    • 46. 3.余3码这种代码所组成的四位二进制数,正好比它所代表的十进制数多3,故称为余3码。十进数8421 BCD2421 BCD(A)2421 BCD(B)余3十进数8421 BCD2421 BCD(A)2421 BCD(B)余30000000000000001181000111011101011100010001000101009100111111111110020010001000100101非法 编码 禁用1010100001010000300110011001101101011100101100001401000100010001111100101001110010501010101101110001101101110001101601100110110010011110110010011110701110111110110101111110110101111表1-2 几种常用的BCD码46
    • 47. 二、ASCII码──美国标准信息交换代码(American Standard Code for Information Interchange)要求记住0~9、A~F的ASCII码高3位 MSDb6b5b4低4位01234567LSDb3b2b1b000000101001110010111011100000NULDLESP0@P`p10001SOHDC1!1AQaq20010STXDC2"2BRbr30011ETXDC3#3CScs40100EOTDC4$4DTdt50101ENQNAK%5EUeu60110ACKSYN&6FVfv70111BELETB'7GWgw81000BSCAN(8HXhx91001HTEM)9IYiyA1010LFSUB*:JZjzB1011VTESC+;K[k{C1100FFFS,N  n~F1111SIUS/?O  oDEL47
    • 48. 1.6 微型计算机组成原理一、微型计算机的基本组成1.计算机的基本结构运算器:进行算术运算和逻辑运算; 存储器:存放程序、数据和中间结果; 控制器:协调计算机各部件之间的工作, 实现程序控制; 输入设备:把数据和相应的程序通过输入 设备输入到计算机中; 输出设备:输出结果。冯•诺依曼计算机的基本结构计算机的硬件结构是由哪几个基本部分组成的?48
    • 49. 2.微型计算机的硬件组成微处理器 (即中央处理器CPU):基本功能是按指令的要求运行程序和指挥其他部件协调工作。 存储器:用来存放程序、数据及中间结果。 RAM:信息可以读出和写入,断电后,储存的信息自动消失 ROM:信息在工作情况下只能读出,断电后信息不会丢失。微型计算机与传统计算机的主要区别是什么? 49
    • 50. 输入/输出(I/O)接口电路 介于计算机CPU和外部设备之间的电路称为I/O接口电路,具有对数据缓存作用,以及信号的变换作用等。 外部设备必须通过I/O接口才能与CPU相连接并交换信息。系统总线 所谓总线,是计算机中传送信息的一组公用导线。按所传送信息的不同类型,系统总线可以分为: 数据总线DB:传送数据信息,双向总线; 地址总线AB:传送地址信息,是单向总线,由CPU发出; 控制总线CB:传送各种控制信号和状态信号。50
    • 51. 3.微型计算机系统的组成 微型计算机系统 = 硬件系统 + 软件系统硬件系统(Hardware System) 硬件是指构成微型计算机系统的物理实体或称物理装置。软件系统(Software System) 软件是运行、管理和维护计算机的各种程序及数据的总和,分为系统软件和应用软件两大类。 ①系统软件:是为方便用户使用和管理计算机,以及为生成和执行其他程序所需要的一系列程序和文件的总称。 ②应用软件:也称应用程序或用户程序,它是用户在各自的应用领域中开发和使用的程序。51
    • 52. 硬件和软件的关系硬件和软件是微型计算机系统的两个不可缺少的组成部分,它们互相配合,协调一致地工作。对整个系统来说,硬件是基础,是软件赖以运作的平台,决定了系统的能力,即系统能做什么;软件是关键,决定了在系统的能力范围内,系统具体做什么以及怎么做。52
    • 53. 微型计算机系统的组成微机 系统硬件软件主机系统软件:操作系统CPU 存储器 I/O接口外设应用软件:用户编写的程序53
    • 54. 54
    • 55. 4.单片机系统单片机系统与微型计算机系统一样,也由硬件系统和软件系统两部分组成。但其硬件和软件要比微型计算机系统简单得多。其硬件系统主要由单片机芯片配上少量的外围元件以及被控对象组成。 单片机可认为是简单化和功能专一化的微型计算机系统。5.嵌入式系统 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有特别要求的专用计算机系统。嵌入式系统一般由嵌入式微处理器、特定的外部设备、嵌入式操作系统以及用户的应用程序等四个部分组成。 事实上,单片机就是一种典型的嵌入式系统。55
    • 56. 二、微型计算机的工作原理1.CPU的内部结构与基本功能 典型的8位CPU主要包括:算术逻辑单元ALU、累加器A、程序状态字寄存器PSW、程序计数器PC、地址寄存器AR、数据寄存器DR、指令寄存器IR、指令译码器ID和时序逻辑部件典型8位CPU内部结构框图56
    • 57. 算术逻辑运算部件ALU:完成数据的算术运算和逻辑运算; 累加器A:CPU中最重要的寄存器,很多操作都与它有关; 程序计数器PC:用于存放将要执行的指令代码所在存储单元的地址。PC具有自动加1的功能,即自动指向下一个存储单元。程序状态字寄存器PSW:用于保存指令执行后的状态; 通用寄存器组R0~R7:可由用户随机读写的寄存器; 地址寄存器AR:专门用来存放地址信息的寄存器; 数据寄存器DR:存放写入存储器或I/O端口的数据; 指令寄存器IR:存放当前正在执行的指令代码; 指令译码器ID:对指令进行译码分析 ,得知该指令的功能 时序逻辑部件:产生完成指令功能所需的控制信号。57
    • 58. 2.微型计算机的工作原理 指令:指挥计算机工作的命令。 程序:是指令和数据的有序集合。微机基本工作原理 微机按照“存储程序,程序控制”的方式工作。 将程序和数据存放在存储器中,计算机的控制器按照程序中指令序列,从存储器中取出指令,然后分析指令的功能,再发出各种控制信号,指挥计算机的各类部件完成该指令规定的操作。 简单地讲,计算机的工作过程是取指令,分析指令,执行指令的不断循环的过程。“存储程序,程序控制” 原理,就是著名的冯 •诺依曼概念(原理),也称为冯 •诺依曼计算机基本原理。58
    • 59. 3.微型计算机的工作过程 通过在微机上执行“6+5”运算来说明计算机的工作过程①用汇编语言编制完成“6+5”运算的程序。 ②把完成“6+5”运算的汇编语言程序“翻译”成机器语言程序 ③将机器语言程序顺序放入存储器,假设从内存中地址为 0000H的单元开始存放,实现存储程序。59
    • 60. 表1-3 完成“6+5”运算所需的汇编语言程序和机器语言程序存储器机器语言程序汇编语言程序指令功能说明地址内容2进制16进制0000H74H01110100B74HMOV A,#06H双字节指令,立即数6送累加器A0001H06H00000110B06H0002H24H00100100B24HADD A,#05H双字节指令,累加器A内容加立即数5,结果送累加器A0003H05H00000101B05H0004H75H01110101B75HMOV PCON,#02H三字节指令,停止所有操作0005H87H10000111H87H0006H02H00000010B02H为什么要将汇编语言程序“翻译”成机器语言程序? 60
    • 61. MOV A,#06H 取指阶段操作示意取指过程结束 CPU进入执行阶段①(PC)AR②(PC)+1(PC)③(AR)地址总线④CPU读命令⑤(存储器)数据总线⑥数据总线数据缓冲器⑦(DR)(IR)⑧(IR)(ID)⑨译码: 数据传送指令61
    • 62. MOV A,#06H 执行指令阶段示意执行过程结束 CPU执行下一指令 不断循环… …①(PC)AR②(PC)+1(PC)③(AR)地址总线④CPU读命令⑤ (存储器)数据总线⑥数据总线数据缓冲器⑦(DR)(A)可见,计算机的工作过程是取指令,分析指令,执行指令的不断循环的过程62
    • 63. 下次课前请预习第2章,并思考下列问题1. 程序计数器PC的作用是什么?PC里面存放的是什么? 2. 什么是堆栈?堆栈指针SP的作用是什么? 3. 什么叫当前工作寄存器组?MCS-51系列单片机如何选择当前工作寄存器组? 4. 什么是位地址?什么是字节地址?位地址20H在片内RAM的哪一个单元? 5. 8031单片机有接片外存储器RAM/ROM时,P0口和P2口各用来传送什么信号?63
    • 64. 练 习 题 二1.当微机把下列数看成无符号数时,它们相应的十进制数为多少? 若把它们看成是补码,最高位为符号位,求其真值? (1)1000 1110 (2)1011 0000 (3)0001 0001 (4)0111 0101 2.将下列十进制数转换成BCD码 (1)29 (2)83 (3)35.76 (4)47.5 3.用十六进制形式写出下列字符的ASCII码 (1)FB803 (2)AT89C5164