2022年单片机期末复习资料 .pdf

上传人:Che****ry 文档编号:25196940 上传时间:2022-07-10 格式:PDF 页数:25 大小:1.12MB
返回 下载 相关 举报
2022年单片机期末复习资料 .pdf_第1页
第1页 / 共25页
2022年单片机期末复习资料 .pdf_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《2022年单片机期末复习资料 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机期末复习资料 .pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、- 1 -主要复习知识点:第一章 微机计算机系统的基本知识1. 单片机就是在一片硅片上集成了中央处理器、随机存储器、只读存储器、中断系统、定时/计数器和多种I/O 口的微型计算机系统,该系统不带外部设备。从组成和功能上看,它已经具备了计算机系统的基本属性,所以也可以称其为单片微型计算机,简称单片机。2. 微型处理器是单片机的核心。它主要由三部分组成:寄存器阵列、运算器和控制器、3. 程序计数器PC,专门用于存放现行指令的16 位地址。 CPU就是根据PC中的地址到ROM 中读取程序指令。每当取出现行指令一个字节后,PC就自动加1,PC+1 PC ,当遇到转移指令或子程序时, PC内容会被指定的

2、地址取代,实现程序转移。PC用于存放 CPU下一条要执行的指令地址,是一个16 位的专用寄存器。(PC的功能与作用)4. 运算器用来完成算术运算和逻辑运算操作,是处理信息的主要部件。运算器主要由累加器A、状态寄存器PSW 、算术运算单元ALU组成。累加器 A,用来存放参与算术运算和逻辑运算的一个操作数和运算结果。状态字寄存器,用来保存ALU操作运算的条件标志,如进位标志、奇偶标志等。算术运算单元ALU ,由加法器和其他逻辑电路组成,其基本功能是进行加法和移位运算,由此实现其他各种算术和逻辑运算。5. 控制器是分析和执行指令的部件,控制器只要由程序计数器PC 、指令寄存器和指令译码器组成。6.

3、总线是用于传送信息的公共途径。总线可以分为数据总线、地址总线、控制总线。7. 数据总线DB :数据线D0D7共 8 位,由 P0提供,分时输送低8 位地址(通过地址锁存器锁存)和 8 位数据信息。数据总线是双向的,可以从CPU输出,也可以从外部输入到CPU 。8. 地址总线AB :地址线A0A15共 16 位, P2 口提供高8 位地址 A8A15,P0口经地址锁存器提供低 8 位地址 A0A7 。片外存储器可寻址范围达到64KB(即 65536 字节)。9. 控制总线CB :控制总线由P3口的第二功能P3.6 、P3.7H 和 3 根独立的控制线ALE、EA和PSEN组成。10. 存储器是用

4、来存储数据和程序的部件。按其功能来分,存储器可以分为随机存储器(RAM )和只读存储器(ROM )两大类。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 25 页- 2 -11.RAM :可以随机写入读出,读写速度快,读写方便。缺点是电源断电后,被存储的信息会丢失。 RAM 主要用于存放各种数据。12.ROM :一般用来存放固定的数据和程序。其特点是信息写入后,能长期保存,不会因断电而丢失。所谓“只读”指不能写入。13. (基本了解)ROM 的 5 种不同形式:MaskROM( 淹膜 ROM) OTPROM EPROM E2PROM F

5、lashROM 14. 单片机程序设计语言可分为三类:机器语言、汇编语言和高级语言机器语言:机器语言是计算机可以识别和直接执行的语言,它由一组二进制代码组成,不同的微处理器机器语言也不同。汇编语言:用助记符替代机器语言中的操作码,用十六进制数代替二进制数。计算执行时,必须将汇编语言翻译成机器语言。汇编语言和机器语言一样,微处理器不同,汇编语言也不同,即不同的微处理器采用不同的汇编语言。思考与练习:1.1 什么是单片机?答:单片机就是在一片硅片上集成了中央处理器、随机存储器、只读存储器、中断系统、定时/ 计数器和多种I/O 口的微型计算机系统,该系统不带外部设备。从组成和功能上看,它已经具备了计

6、算机系统的基本属性,所以也可以称其为单片微型计算机,简称单片机。1.2 单片机的基本组成有哪些?答:单片机由中央处理器、随机存储器、只读存储器、中断系统、定时/ 计数器和多种I/O 口组成。第二章 单片机的硬件结构 (重点复习)15. (简答题) 80C51单片机有4 个 8 位的双向并行输入/ 输出( I/O )端口,称为P0口、 P1口、 P2口和 P3口。P0 口: P0口是一个双功能的8 位并行 I/O 口,可用作输入/ 输出端口,又可作地址/ 数据总线分时传输时低8 位地址和 8 位数据。P1 口: P1口是单一功能的并行I/O 口,只用作通用的数据输入/ 输出口。P2 口: P2口

7、是一个双功能的8 位并行 I/O ,可用作通用的输入/输出口,又可用作高8 位地址总线。P3 口: P3口是一个双功能的8 位并行 I/O 口,它的第一功能是通用输入/输出口,作第二功能用时,各引脚定义如下:P3.0 :RXD串行口输入;P3.1:TXD串行口输出;P3.2 :外部中断0 输入;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 25 页- 3 -P3.3 :外部中断1 输入; P3.4 :T0定时 / 计数器 0 外部计数脉冲输入;P3.5 :T1定时 / 计数器 1 外部计数脉冲输入;P3.6 :片外数据存储器写选通讯号

8、输出;P3.7 :片外数据存储器读选通讯号输出。16. 基本时序单位单片机的时序单位有:振荡周期:晶振的振荡周期,又称时钟周期,为最小的时序单位。状态周期:振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含2 个振荡周期。机器周期: 1 个机器周期由6 个状态周期即12 个振荡周期组成。是计算机执行一种基本操作(如取指令,读存储器,写存储器等)的时间单位。指令周期:执行一条指令所需的时间。一个指令周期由14 个机器周期组成,依据指令不同而不同。 4种时序单位中,振荡周期和机器周期是单片机内计算其他时间值(例如,波特率、定时器的定时时间等)的基本时序单位。例:单

9、片机外接晶振频率fosc= 12MHZ 时的各种时序单位:振荡周期 =1/fosc=1/12MHZ=0.0833us;状态周期 =2/fosc=2/12MHZ=0.167us;机器周期 =12/fosc=12/12MHZ=1us ;指令周期 =(1 4)机器周期 =14us 。17.MCS-51 的存储器结构与常见的微型计算机的配置方法不同, 采用哈佛结构它将程序存储器和数据存储器分开,各有自己的寻址方式、控制信号和功能。程序存储器用来存放程序、始终要保留的表格、常数。数据存储器存放程序运行中所需要的数据和结果(常数和变量)。18. 从物理空间(实际结构)看,MCS-51 有四个存储器地址空间

10、:片内数据存储器、片外数据存储器、片内程序存储器、片外程序存储器19. 从逻辑上(使用角度)看,MCS-51 有三个存储器空间:片内、片外统一编址的程序存储器,片外数据存储器,片内数据存储器20. 程序存储器中的几个特殊地址的使用:地址用途0000H 复位操作后的程序入口0003H 外部中断0 服务程序入口000BH 定时器 0 中断服务程序入口0013H 外部中断1 服务程序入口精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 25 页- 4 -001BH 定时器 1 中断服务程序入口0023H 串行口中断服务程序入口21. 外部数据存

11、储器作用:用于存放随机读写的数据。外部数据存储器包括两部分空间:外部RAM 扩展的I/O 口地址内部数据存储器(单元数少,但最复杂)特殊功能寄存器空间,离散分布,作数据缓冲器、标志位等22. 程序存储器与外部数据存储器的比较相同:地址线A15A0 不同:访问的指令不同,读写信号不同。访问程序寄存器的指令为MOVC 指令,访问外部数据存储器的指令为MOVX 指令;程序寄存器:只读,PSEN作为外部ROM 读信号;外部数据存储器:可读写, RD作为读信号, WR作为写信号。23. 工作寄存器区的选择RS1 :程序状态寄存器PSW 的 D4位; RS0 :程序状态寄存器PSW 的 D3位;RS1 R

12、S0 寄存器区R0R7 所占单元的地址0 00区00H07H0 11区08H0FH1 02区10H17H1 13区18H1FH复位时,自动选中0 区。一旦选中其中一个区,其它三区只能作为普通RAM 单元使用,而不能作为工作寄存器使用。设置多个工作寄存器区可以方便保护现场。24. 字节地址与位地址在使用上如何区别? 例: MOV C,20H MOV A,20H位操作指令 MOV C,20H 位地址只有1bit (小圆区域)字节操作指令 MOV A,20H 字节地址共8bit (大椭圆区域)25. 位地址空间组成及位地址表示法 内部数据存储器的20H2FH共 16 个单元可按位寻址,128 位;例

13、 1:位地址 1EH= 23H . 6即字节单元23H的 D6位精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 25 页- 5 - 专用寄存器地址能被8 整除的可按位寻址。例 2: 位地址 D4H= D0H . 4= PSW. 4= RS1 26. 特殊功能寄存器的地址分配(名称必须记住)27. 累加器ACC :累加器为8 位的寄存器,是程序中使用最频繁的寄存器,是用于存放中间结果和数据传送的渠道。程序状态字寄存器PSW :PSW 也称为标志寄存器CY:进 /借位标志。 CY=1,有进 / 借位 ; CY=0 ,无进 / 借位。AC:辅

14、助进位标志,反映高半字节与低半字节之间的进/ 借位。 AC=1有进 /借位; AC=0无进 /借位。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 25 页- 6 -F0:用户标志位RS1,RS0:工作寄存器的控制位OV :溢出标志位。有溢出 OV=1,无溢出OV=0 。P:奇偶标志位。运算结果有奇数个“1”, P=1;偶数个“ 1”, P=0 。D1:无效位,一般不用。数据指针DPTR :数据指针DPTR是一个 16 位的专用寄存器,DPTR 主要用来存放16 位地址。PC用于存放CPU下一条要执行的指令地址,是一个16 位的专用寄存

15、器。27. 访问不同的存储器空间使用不同的指令:程序存储器,使用MOVC 指令;外部数据存储器,使用 MOVX 指令;内部数据存储器, 使用 MOV 指令;特殊功能寄存器, 使用 MOV 指令;位地址空间,使用MOV 、 SETB 、CLR等指令。28. 堆栈是在单片机内部RAM 中从某个选定的存储单元开始划定的一个地址连续的区域。堆栈操作是在内存RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一种工作方式,主要用于子程序调用及返回和中断处理断点的保护和返回。SP用来指示堆栈所处的位置。当数据堆入栈区后,SP的值也自动随之变化。51 单片机属于向上生长型堆栈(即向高地址方向生成)。29

16、. 用一个称为堆栈指针SP的特殊功能寄存器来给出栈顶存储单元的地址。堆栈指针SP中存储的总是堆栈栈顶存储单元的地址,即堆栈指针SP总是指向堆栈栈顶。30. 向上生长型堆栈出栈入栈的操作原则是“先进后出”或“后进先出”。31. 实现复位操作,必须使RST引脚( 9)保持两个机器周期以上的高电平。32. 复位是单片机的初始化操作,其主要功能是程序计数器PC值变为 0000 好,使单片机从0000H开始执行程序。上电复位后,RAM 的内容是随机的。寄存器初始状态寄存器初始状态PC 0000H ACC 00H PSW 00H SP 07H 思考与练习:2.1 51单片机内部包括哪些主要部件?答: 51

17、 单片机包括中央处理器CPU 、数据存储器RAM 、只读存储器ROM 、并行输入输出口P1P3口、串行口、并行口、定时/ 计数器、中断系统及特殊功能寄存器等8个部件。2.2 80C51 单片机的存储器有哪几种类型?可以划分为哪几个部分?精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 25 页- 7 -答: 80C51单片机的存储器按功能可以划分为两大类:随机存储器(RAM )和只读存储器(ROM )。可以划分为以下五部分:片内程序存储器、片外程序存储器、片内数据存储器、特殊功能寄存器、片外数据存储器。2.3 80C51 如何确定和改变当

18、前工作寄存器区?答:在选择工作寄存器区时,可通过对特殊功能寄存器中的程序状态寄存器PSW 的 RS1和 RS0的状态设置,来选择哪一组工作寄存器作为当前的工作寄存器组。单片机复位时,当前工作寄存器默认为0 组。2.4 位地址和字节地址如何区分?位地址 00H7FH与片内 RAM 的字节地址编址相同,容易混淆。区分方法 :在 80C51的指令系统中,有专门的位操作指令和字节操作指令来区分。(位操作指令 MOV C,20H 位地址只有1bit ;字节操作指令 MOV A,20H 字节地址共8bit )。2.6 PC 在执行指令过程中,起什么作用?答: PC在执行指令过程中,PC用于存放CPU下一条

19、要执行的指令地址,是一个16 位的专用寄存器。第三章 51单片机的指令系统33. 计算机所有的指令集合称为该计算机的指令系统。34. 指令是基本格式: 标号: 操作码 目的操作数 ,源操作数 ;注释 标号:指令的符号地址;操作码:规定指令的操作功能,是指令格式中唯一不能空缺的部分;操作数:用于给指令的操作提供数据或地址。把左边的操作数称为目的操作数,右边的操作数称为源操作数;注释:注释是对语句或程序段功能的说明。注释用“:”开头,可空缺。35. 按指令的功能分类:数据传送指令(28 条)、算术运算类指令(24 条)、逻辑运算与移位类指令( 25 条)、控制转移类指令(17 条)、位操作类指令(

20、17 条)。36. 寻址方式?立即寻址指令中跟在操作码后面的数据就是实际参与运算的操作数,称为立即数。MCS-51指令系统中允许使用8 位和 16 位立即数,立即数之前加“#”予以标识。例:MOV A,#6DH MOV A,#3AH MOV DPTR,#0DFFFH MOV 40H,#30H MOV A,#60H MOV DPTR,#3400H MOV 30H,#40H ?直接寻址精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 25 页- 8 -指令中包含了操作数的地址,该地址直接给出了参加运算或传送的单元的地址。直接寻址可访问两种地址

21、空间:特殊功能寄存器SFR (又叫做专用寄存器)内部数据存储器 RAM 中的 128 个字节单元。例:MOV A,52H MOV A,P1 MOV 30H,20H MOV P0,P1 ?寄存器寻址把指定的某一可寻址的工作寄存器R0R7或 A,B (乘、除指令中),DPTR ,的内容作为操作数。例: MOV 53H,A MOV B,A MOV 20H,R1 MOV P0,R0 ?寄存器间接寻址指令指定的某一寄存器的内容作为操作数地址。可用来间接寻址的寄存器有R0、R1和数据指针 DPTR ,前面加表示间接寻址。可访问内部RAM 或外部数据存储器。堆栈指针SP在执行指令中也起到寄存器间接寻址的作用

22、,但它不出现在指令表达形式中。实现间接寻址的地址指针:(1)Ri(R0 、 R1):寻址对象为片内RAM 的 128 个单元;( 1)DPTR :寻址对象为外部数据存储器。例:MOV A,R0 MOV B,R1 MOVX A,DPTR PUSH 20H POP ACC MOV R0,A MOVX A,R1 MOVX DPTR,A ?变址寻址基址寄存器 (DPTR或 PC): 存放基准地址;变址寄存器 (A): 存放偏移量 ; 基址寄存器的内容与变址寄存器的内容的和为可寻址单元的地址。该类寻址方式用于访问程序存储器,对查表访问特别有用。注意: A中内容为无符号数。例:MOVC A,A+DPTR

23、MOVC A,A+PC JMP A+DPTR ?位寻址采用位寻址方式的操作数是8 位二进制数中的某1 位,指令中给出的是位址。寻址对象:片内数据存储器位寻址区中,位地址为00H7FH的 128 位 11 个可位寻址的特殊功能寄存器中的82 个有效可寻址位。例: MOV C,3AH SETB PSW,4 MOV C,00H MOV C,20H 思考与练习:3.4 下列哪些指令是非法指令,并改正。CJNE A,#30H,ABC ;合法CJNE A,30H,ABC ;合法CJNE 30H,A,ABC ;非法 CJNE A,30H,ABC 精选学习资料 - - - - - - - - - 名师归纳总结

24、 - - - - - - -第 8 页,共 25 页- 9 -CJNE R7,#30H,ABC ;合法CJNE R5,#30H,ABC ;合法CJNE A,R4,ABC ;非法不存在这种格式CJNE A,R4,ABC ;非法不存在这种格式(CJNE A,#data,rel/CJNE A,direct,rel/CJNE Ri,#data,rel/CJNE Rn,#data,rel) DJNZ ACC,ABC ;合法DJNZ 30H,ABC ;合法 (DJNZ Rn,rel/DJNZ direct,rel) INC DPTR ;合法 (INC A/INC direct/INC Ri/INC Rn/

25、INC DPTR) MOV A,R3 ;合法MOVX A,DPTR ;非法 MOVX A,DPTR (MOVX A,DPTR/MOVX A,Ri/MOVX DPTR,A/MOVX Ri,A) DEC DPTR ;非法不存在这种格式(DEC A/DEC direct/DEC Ri/DEC Rn )JB 70H ;非法不存在这种格式(JB bit,rel )ADDC B,DIRECT1 ;非法不存在这种格式(ADDC A,#data/ADDC A,direct/ADDC A,Ri/ADDC A,Rn)3.5 指出源操作数的寻址方式。MOV A,#30H (立即寻址)MOV A,B (直接寻址)MO

26、V P0,P1 (直接寻址)DIV AB (寄存器寻址)MOVC A,A+DPTR (变址寻址)MOV 30H,A (寄存器寻址)PUSH 30H (直接寻址)PUSH B (寄存器寻址)POP ACC (寄存器间接寻址)3.7 写出下列程序执行的结果。(40H)=FFH MOV 50,#40H ;( 50H)=40H MOV R1,#50H ;R1=50H MOV A,R1 ;A=40H MOV R0,A ;R0=40H MOV 60H,R0 ;(60H)=FFH MOV 30H,60H ;(30H)=FFH 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - -

27、 - -第 9 页,共 25 页- 10 -3.9 分析下面程序执行的结果。MOV SP,#2FH ;SP=2FH MOV A,#30H ;A=30H MOV B,#31H ;B=31H PUSH A ;SP=30H,(30H)=30H PUSH B ;SP=31H,(31H)=31H POP A ;SP=30H,A=31H POP B ;SP=2FH,B=30H 3.10 分析执行下列程序后A和标志位C,AC,OV及 P的结果。MOV A,#0DH ;A=0DH MOV R7,#3DH ;R7=3DH ADD A,R7 ;A=4AH,C=0,AC=1,OV=0,P=1 第四章 51单片机的汇

28、编语言程序设计37. 伪指令 :在对汇编语言进行翻译的过程中,需要提供一些有关汇编的信息指令。这些指令在汇编时起到控制作用,但其自身不产生机器代码。伪指令就是汇编程序能够识别的汇编命令,它是程序员发给汇编程序的命令,只在汇编过程中起作用,它不是单片机要执行的指令,所以没有机器码。起始伪指令ORG (ORIGIN)格式: ORG 功能:出现在源程序的开头,用于规定目标程序存放的起始地址。例:程序如下: ORG 0000H START:MOV A,#20H ADD A,#08H MOV 20H,A HERE:SJMP HERE 结束伪指令END (END OF ASSEMBLY) 格式: END

29、功能:汇编终止命令,本命令用于终止源程序的汇编工作。例:程序如下: ORG 0000H START:MOV A,#20H ADD A,#08H 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 25 页- 11 - MOV 20H,A HERE:SJMP HERE END 赋值伪指令EQU(EQUATE) 格式: EQU 功能:本命令用于给标号赋值。例:程序如下:PP EQO R0 QQ EQU 30H MOV A,PP ;把 R0中的值送给A MOV B,QQ ;把 30H中的值送给直接地址F0H 定义字节伪指令DB(DEFINE B

30、YTE) 格式: DB 功能:定义字节命令,本命令用于从指定的地址开始,在程序存储器的连续单元中定义字节数据。例:程序如下:ORG 0000H TAB:DB 00H,45H,67H,78H DB 78H,58H,90H,57H 汇编后结果:(0000H)=00H (0001H)=45H (0002H)=67H (0003H)=78H (0004H) =78H (0005H)=58H (0006H)=90H (0007H)=57H 定义字伪指令DW(DEFINE WORD) 格式: DW 功能:定义数据字命令,本命令用于从指定地址开始,在程序存储器的连续单元中定义16 位的数据字。该命令将字数据

31、表中的数据依从左到右的顺序存放在指定的存储单元中,数据字的高 8 位放在低地址单元,低8 位放在高地址单元。例:程序如下:ORG 0030H TAB:DW 6789H,3456H DW 1234H,5678H 汇编后的结果:(0030H ) =67H,(0031H)=89H (0032H) =34H,(0033H)=56H (0034H) =12H,(0035H)=34H (0036H) =56H,(0037H)=87H 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 25 页- 12 -位定义命令BIT 格式: BIT 功能:本命令

32、用于给字符名称赋以位地址。例:程序如下:AQ BIT P0.0 DEF BIT P1.0 汇编结果:把P0.0 的位地址赋给AQ ,把 P1.0 的位地址赋给DEF 。38. 程序设计举例:【例 4-2 】设在片内RAM 中, 20H和 21H单元各存放有一个8 位数据,要求拼装一个新字节并送 30H保存,其低5 位取自 20H单元中的低5 位,高 3 位取自 21H单元中的低3 位。实现程序如下:MOV 30H,20H ;20H单元中的数据送入30H单元ANL 30H,#00011111B ;屏幕高3 位MOV A,21H ;21H单元中的数据送入A SWAP A ;将 A中的数据高低3 位

33、交换,循环左移4 次RL A ;将 A中数据再循环左移1 次ANL A,#11100000B ;屏蔽 A中数据的低5 位ORL 30H,A ;完成拼装【例 4-6 】设在外部RAM 的 3 个连续存储单元ST1/ST2 和 ST3中, ST1和 ST2存放着两个不带符号的二进制数,请找出其中的大数并存在ST3中。程序如下:START:CLR C ;进位位清0 MOV DPTR,#ST1 ;设置数据指针 MOVX A,DPTR ;取第一个数 MOV R7,A ;暂存 R7 INC DPTR ;数据指针加1 MOVX A,DPTR ;取第二个数 SUBB R7 ;比较两数的大小 JNC BIG1

34、;第二个数大转移 XCH A,R7 ;第一个数大送A BIG0: INC DPTR ;数据指针加1 MOVX DPTR,A ;存大数 RET 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 25 页- 13 -BIG1: MOVX A,DPTR ;第二个数送A 【例 4-11】有一数据块从片内RAM 的 30H单元开始存入,设数据块长度为10 个单元。根据下式:求出 Y的值,将Y值存入 31H单元。程序如下: ORG 1000H MOV A,30H ;取数 JB ACC.7,NEG ;负数,转NEG JZ ZERO ;为零,转ZERO

35、 ADD A,#02H ;为正数,求X+2 AJMP SAVE ;转到 SAVE ,保存数据ZERO:MOV A,#64H ;数据为零,Y=100 AJMP SAVE ;转到 SAVE ,保存数据NEG:DEC A CPL A ;求 |X| SAVE:MOV 31H,A ;保存数据 SJMP $ ;暂停【例 4-13】在外部RAM 首地址为table的数据表中,有10 个字节的数据,编程将每个字节的最高位无条件的置1。实现程序如下: MOV DPTR,#table ;送数据表首地址 MOV R7,#OAH ;置处理次数LOOP:MOVX A,DPTR ;取数据 ORL A,#10000000B

36、 ;最高位置1 MOV X DPTR,A ;送回 INC DPTR ;地址加1 DJNZ R7,LOOP ;未处理完返回 SJMP $ 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 25 页- 14 -【例 4-20】编写一程序,实现下图中逻辑运算电路。其中P3.1 、P1.1 、 P1.0 分别是单片机端口线上的信息,RS0 、RS1是 PSW 寄存器的两个标志位,30H、31H是两个位地址,运算结果由 P1.0 输出。程序如下:ORG 0000H MOV C,P3.1 ANL C,P1.1 CPL C MOV 20H,C ;暂存

37、数据MOV C,30H ORL C,/31H ANL C,RS1 ANL C,20H ANL C,RS0 MOV P1.0,C ;输出结果SJMP $ 思考与练习:4.5 编程:把内部RAM20H 单元开始有8 个数,试找出其中最大的数,送入MAX单元。答:程序如下: MAX EQU 2AH SMAX:MOV R0,#20H ;置数据区首地址 MOV MAX,R0 ;读第一个数暂作最大数 MOV R7,#7 ;置数据长度(N-1)LOOP:INC R0 ;指向下一个数 MOV A,R0 ;读下一个数 CJNE A,MAX,NEXT ;数值比较,在C中产生大小标志NEXT:JC LOP1 ;C=

38、1,表明 A值小,转精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 25 页- 15 - MOV MAX,A ;C=0,表明 A值大,大数送MAX LOP1:DJNZ R7,LOOP ;判数据比完否?未完比较下一个 RET ;数据比完,退出循环4.11 编程实现逻辑运算:Y=G ?(H+C)+D?(E+X)答:假设各个变量,对应的计算机引脚如下两式: Y = G ? (H + C) + D ? (E + X) P1.0=P1.1*(P1.2+P1.3)+P1.4*(P1.5+P1.6) 程序如下 MOV C, P1.2 ;取来 H O

39、RL C, P1.3 ;或上 C ANL C, P1.1 ;与上 G MOV PSW.5, C ;暂时存放 MOV C, P1.5 ;取来 E ORL C, P1.6 ;或上 X ANL C, P1.4 ;与上 D ORL C, PSW.5 ;或上前面结果 MOV P1.0,C ;输出到Y 第五章 51单片机的中断系统39.51 单片机共有5个中断源, 2 个中断优先级,可以实现两级中断嵌套。40. 中断源就是引起中断的来源,也可认为是中断的原因。51 单片机提供了5 个中断源:两个外部中断请求0INT和1INT,两个片内计数器/ 定时器中断T0 和 T1,另一个为片内串行口中断。41. 外部

40、中断源:表TCON 寄存器位结构位置D7 D6 D5 D4 D3 D2 D1 D0 位地址8F 8E 8D 8C 8B 8A 89 88 位符号TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IT0 是0INT触发方式控制位,即选择外部中断0 是电平触发方式还是下降沿触发方式,此位可由软件置位和复位;IE0 是0INT中断下降沿请求标志位;IT1 和 IE1 分别为外部中断1 的触发方式控制位和下降沿中断请求标志位。42. 内部中断源:(1)定时器 / 计数器中断源精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 25

41、页- 16 -TF0 是片内定时器 / 计数器 0 溢出时中断申请标志位。TF1 是片内定时器 / 计数器 1 溢出时中断申请标志位,功能与TF0相同。(2)串行口中断:表 SCON 寄存器位结构:位置D7 D6 D5 D4 D3 D2 D1 D0 位地址9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 位符号SM0 SM1 SM2 REN IB8 RB8 TI RI TI 是串行口发送完毕中断标志位。当TI=1 时,就向CPU申请中断,表示数据发送完毕;RI 是串行口接收完毕中断标志位。RI=1 表示串行口接收器向CPU申请中断。43. 计算机中断系统中有两种不同类型的中断:一

42、种称为非屏蔽中断 ,另一种称为 可屏蔽中断。对非屏蔽中断,用户不能用软件方法加以禁止,一旦有中断申请,CPU必须予以响应。但对可屏蔽中断,用户则可以通过软件方法来控制是否允许某中断源的中断。51 系列单片机的5个中断源都是可屏蔽中断的。44. 表中断允许寄存器IE 的位结构位置D7 D6 D5 D4 D3 D2 D1 D0 位地址AFH ADH ACH ABH AAH A9H A8H 位符号EA - - ES ET1 EX1 ET0 EX0 EA是 CPU中断总允许位。当EA=1时,开放中断,而每个中断是开放还是屏蔽分别由各自的允许位确定。 EA=0,禁止所有中断,不论其他为是否为1。ES是串

43、行口中断允许位。ES=1,允许串行口的接收和发送中断;ES=0,禁止串行口中断。ET1是开放或禁止定时器1 溢出中断位。 ET1=0则禁止定时器1 中断,置位则开启其中断。EX1是外部中断1的中断允许位。EX1=0 ,则禁止外部中断1 中断, EX=1 ,则开启其中断。ET0是开放或禁止定时器0 溢出中断位。 ET0=0则禁止定时器0 中断,置位则开启其中断。EX0是外部中断0的中断允许位。EX0=0 ,则禁止外部中断0 中断,置位则开启其中断。45. 表中断优先级寄存器IP 的位结构位置D7 D6 D5 D4 D3 D2 D1 D0 位地址BDH BCH BBH BAH B9H B8H 位符

44、号- - - PS PT1 PX1 PT0 PX0 PS:串行口优先级设定位。PS=1时,则编程为高优先级。PT1:定时器1 优先级设定位。PT1=1时,则编程为高优先级。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 25 页- 17 -PX1:外部中断1 优先级设定位。PX1=1时,则编程为高优先级。PT0: 定时器 0 优先级设定位。PT0=1时,则编程为高优先级。PX0:外部中断0 优先级设定位。PX0=1时,则编程为高优先级。46. 单片机对中断优先级的处理原则:CPU同时接收到几个相同优先级的中断请求时,首先响应优先权最高

45、的中断请求;低优先级中断可以被高优先级中断所中断;中断不能被与它同级和比它低级的中断所中断;当同一级中断同时申请中断时,按单片机系统内部硬件查询顺序确定优先级,用户无法自行更改。47. 各中断源的入口地址:(熟记)中断源入口地址外部中断0 0003H 定时器 / 计数器 T0 000BH 外部中断1 0013H 定时器 / 计数器 T1 001BH 串行口中断0023H 48. 中断响应条件:相应的中断是开放的;没有同级的中断或更高级别的中断正在处理;正在执行的指令必须执行完最后 1 个机器周期若正在执行RETI,或正在访问IE 或 IP 寄存器 , 则必须执行完当前指令的下一条指令。后方能响

46、应中断。49. 设置中断的初始化工作:单片机中断系统初始化包括设置堆栈、选择中断触发方式(对外中断而言)、开中断、设置中断优先级等,对定时器/ 计数器还要对运行控制位TR置位。50.中断服务程序的编写:在中断入口地址处设置一条跳转指令,转移到中断服务程序的实际入口处;保护现场;中断服务主体程序;若是外中断电平触发方式,应有中断信号撤除操作;若是串行收发中断,应有对RI、 TI 清 0 指令;恢复现场;中断返回。思考与练习:5.7 简述中断初始化过程。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 25 页- 18 -答:设置堆栈指针S

47、P ;定义中断优先级(IP );选择外中断触发方式(TCON );开放相应中断允许(IE);安排好等待中断或中断发生前主程序应完成的操作内容,如设置计数器、串行口的有关参数等。5.8 中断服务程序的设计要考虑哪些因素?答:在中断入口地址处设置一条跳转指令,转移到中断服务程序的实际入口处;保护现场;中断服务主体程序;若是外中断电平触发方式,应有中断信号撤除操作;若是串行收发中断,应有对RI、TI 清 0 指令;恢复现场;中断返回。第六章 51单片机的定时器 /计数器51.定时器 /计数器结构框图从图中可以看出,51 计数器是一个加1 计数器,其计数源来自两个,一个是端口T0 的外部中断源,另一个

48、是系统振荡器的12 分频,“计数源开关”可实现两个计数源的转换,另一个开关为“控制开关”,用来决定加1 计数器的开启。这两个模拟开关都是位开关,通过对特殊功能寄存器( TMOD 与 TCON )的对应位置1 或清 0 来实现开关功能。52. 所谓计数是指对外部事件进行的计数。计数功能的实质就是对外部输入脉冲进行计数。53. 定时功能实际上也是通过计数器的计数来实现的。此时的计数脉冲源是通过对振荡器12 分频得到,即一个机器周期产生一个计数脉冲,换句话说就是每个机器周期计数器加1,因此计数频率为振荡频率的1/12 。54.16 位计数器,它的最大值为65535(16 进制数为0FFFFH ),加

49、 1 计数器不断进行对脉冲个数的累加,最终会达到这个最大值,如果此时计数器再加1,就会使 16 位计数器的值变为0,并使中断标志位xTF置 1,触发中断,这就是定时器/计数器的“溢出”。55. 定时方式寄存器TMOD 的位结构位置D7 D6 D5 D4 D3 D2 D1 D0 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 25 页- 19 -位地址GATE C/TM1 M0 GATE C/TM1 M0 位符号定时器 T1 定时器 T0 GATE 选通控制位。当 GATE=0 时,由寄存器TCON 中的运行控制位TRx启动定时器X;当

50、 DATE=1 时,只有外中断请求信号xINT为高电平且TRx置位时,才启动定时器X。C/T定时方式或计数方式选择位。C/T=0 为定时器工作方式;C/T=1 为计数器工作方式。M1M0 工作方式选择位。当 M1M0=00 时,为方式0 13 位定时器 /计数器工作方式;当 M1M0=01 时,为方式1 16 位定时器 /计数器工作方式;当 M1M0=10 时,为方式2常数自动装入的8 位定时器 /计数器工作方式;当 M1M0=11 时,为方式3仅适用于定时器T0,为两个 8 位定时器 /计数器工作方式。在方式 3 时,定时器T1 停止计数。56.定时控制寄存器TCON 既参与中断控制又参与定

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁