单片机期末复习资料完全版复习过程_第1页
单片机期末复习资料完全版复习过程_第2页
单片机期末复习资料完全版复习过程_第3页
单片机期末复习资料完全版复习过程_第4页
单片机期末复习资料完全版复习过程_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、器和指令译码器组成。6. 总线是用于传送信息的公共途径。总线可以分为数据总线、地址总线、控制总线。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、 E

4、A 和 PSEN 组成。10. 存储器是用来存储数据和程序的部件。按其功能来分,存储器可以分为随机存储器(RAM)和只读存储器( ROM)两大类。更多精品文档学习 好资料11. RAM:可以随机写入读出,读写速度快,读写方便。缺点是电源断电后,被存储的信息会丢 失。 RAM主要用于存放各种数据。12. ROM:一般用来存放固定的数据和程序。其特点是信息写入后,能长期保存,不会因断电而 丢失。所谓“只读”指不能写入。13. (基本了解) ROM的 5 种不同形式: MaskROM淹( 膜 ROM) OTPROM EPROM E2PROM FlashROM14. 单片机程序设计语言可分为三类:机器

5、语言、汇编语言和高级语言 机器语言:机器语言是计算机可以识别和直接执行的语言,它由一组二进制代码组成,不同 的微处理器机器语言也不同。 汇编语言:用助记符替代机器语言中的操作码,用十六进制数代替二进制数。计算执行时, 必须将汇编语言翻译成机器语言。汇编语言和机器语言一样,微处理器不同,汇编语言也不 同,即不同的微处理器采用不同的汇编语言。思考与练习: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口是一个双功能的 8位

7、并行 I/O ,可用作通用的输入 /输出口,又可用作高 8位地 址总线。 P3口: P3口是一个双功能的 8 位并行 I/O 口,它的第一功能是通用输入 /输出口,作第二功 能用时,各引脚定义如下:P3.0 :RXD串行口输入; P3.1:TXD串行口输出; P3.2 :外部中断 0 输入;更多精品文档学习 好资料P3.3 :外部中断 1输入; P3.4 :T0定时/ 计数器 0外部计数脉冲输入;P3.5 :T1定时 /计数器 1外部计数脉冲输入; P3.6 :片外数据存储器写选通讯号输出; P3.7 :片外数据存储器读选通讯号输出。16. 基本时序单位 单片机的时序单位有: 振荡周期:晶振的

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

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

10、从逻辑上(使用角度)看 ,MCS-51 有三个存储器空间: 片内、片外统一编址的程序存储器,片外数据存储器,片内数据存储器20. 程序存储器中的几个特殊地址的使用:地址用途0000H复位操作后的程序入口0003H外部中断 0 服务程序入口000BH定时器 0 中断服务程序入口0013H外部中断 1 服务程序入口更多精品文档学习 好资料001BH定时器 1 中断服务程序入口0023H串行口中断服务程序入口21. 外部数据存储器作用:用于存放随机读写的数据。 外部数据存储器包括两部分空间:外部RAM 扩展的 I/O 口地址内部数据存储器(单元数少,但最复杂)特殊功能寄存器空间,离散分布,作数据缓冲

11、器、 标志位等22. 程序存储器与外部数据存储器的比较相同:地址线 A15A0不同:访问的指令不同,读写信号不同。访问程序寄存器的指令为MOVC指令,访问外部数据存储器的指令为 MOVX指令;程序寄存器:只读, PSEN作为外部 ROM读信号;外部数据存储器:可读写, RD作为读信号, WR作为写信号。23. 工作寄存器区的选择RS1:程序状态寄存器 PSW的 D4位; RS0:程序状态寄存器 PSW的 D3 位;RS1 RS0寄存器区R0 R7所占单元的地址0 00区00H 07H0 11区08H 0FH1 02区10H 17H1 13区18H 1FH复位时,自动选中 0 区。一旦选中其中一

12、个区,其它三区只能作为普通RAM单元使用,而不能作为工作寄存器使用。设置多个工作寄存器区可以方便保护现场。24. 字节地址与位地址在使用上如何区别 ?例:MOV C,20HMOV A,20H位操作指令 MOV C,20H 位地址只有 1bit (小圆区域) 字节操作指令 MOV A,20H 字节地址共 8bit (大椭圆区域)25. 位地址空间组成及位地址表示法 内部数据存储器的 20H2FH共 16 个单元可按位寻址, 128 位; 例 1:位地址 1EH= 23H . 6 即字节单元 23H 的 D6位更多精品文档学习 好资料 专用寄存器地址能被 8 整除的可按位寻址。 例 2: 位地址

13、D4H= D0H . 4= PSW. 4= RS126. 特殊功能寄存器的地址分配(名称必须记住)27. 累加器 ACC:累加器为 8位的寄存器,是程序中使用最频繁的寄存器,是用于存放中间 结果和数据传送的渠道。程序状态字寄存器 PSW: PSW也称为标志寄存器 CY:进 / 借位标志。 CY=1,有进 / 借位 ; CY=0,无进 / 借位。AC:辅助进位标志,反映高半字节与低半字节之间的进/借位。 AC=1有进/借位; AC=0无进 /借位 。更多精品文档学习 好资料F0:用户标志位 RS1,RS0:工作寄存器的控制位 OV:溢出标志位。有溢出 OV=1,无溢出 OV=0。P:奇偶标志位。

14、运算结果有奇数个“1”, P=1;偶数个“ 1”, P=0。D1:无效位,一般不用。 数据指针 DPTR:数据指针 DPTR是一个 16 位的专用寄存器, DPTR主要用来存放 16 位地址。 PC用于存放 CPU下一条要执行的指令地址,是一个16 位的专用寄存器。27. 访问不同的存储器空间使用不同的指令:程序存储器,使用 MOVC指令;外部数据存储器 ,使用 MOVX指令;内部数据存储器 ,使用 MOV指 令;特殊功能寄存器 , 使用 MOV指令;位地址空间,使用 MO、V SETB、CLR等指令。28. 堆栈是在单片机内部 RAM中从某个选定的存储单元开始划定的一个地址连续的区域。堆栈

15、操作是在内存 RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一种工作方式,主 要用于子程序调用及返回和中断处理断点的保护和返回。SP用来指示堆栈所处的位置。当数据堆入栈区后, SP的值也自动随之变化。 51 单片机属于向上生长型堆栈(即向高地址方向生 成)。29. 用一个称为堆栈指针 SP的特殊功能寄存器来给出栈顶存储单元的地址。堆栈指针SP中存储的总是堆栈栈顶存储单元的地址,即堆栈指针SP总是指向堆栈栈顶。30. 向上生长型堆栈出栈入栈的操作原则是“先进后出”或“后进先出”。31. 实现复位操作,必须使 RST引脚( 9)保持两个机器周期以上的高电平。32. 复位是单片机的初始化操

16、作,其主要功能是程序计数器PC值变为 0000 好,使单片机从0000H开始执行程序。上电复位后,RAM的内容是随机的。寄存器初始状态寄存器初始状态PC0000HACC00HPSW00HSP07H思考与练习:2.1 51 单片机内部包括哪些主要部件?答:51 单片机包括中央处理器 CPU、数据存储器 RAM、只读存储器 ROM、并行输入输出口 P1P3口、串行口、并行口、定时 / 计数器、中断系统及特殊功能寄存器等8 个部件。2.2 80C51 单片机的存储器有哪几种类型?可以划分为哪几个部分?更多精品文档学习 好资料答: 80C51单片机的存储器按功能可以划分为两大类:随机存储器(RAM)和

17、只读存储器(ROM)。可以划分为以下五部分:片内程序存储器、片外程序存储器、片内数据存储器、特 殊功能寄存器、片外数据存储器。2.3 80C51 如何确定和改变当前工作寄存器区? 答:在选择工作寄存器区时,可通过对特殊功能寄存器中的程序状态寄存器PSW的 RS1和 RS0的状态设置,来选择哪一组工作寄存器作为当前的工作寄存器组。单片机复位时,当前工作寄 存器默认为 0 组。2.4 位地址和字节地址如何区分? 位地址 00H7FH与片内 RAM的字节地址编址相同,容易混淆。 区分方法 : 在 80C51的指令系统中,有专门的位操作指令和字节操作指令来区分。(位操作指 令 MOV C,20H 位地

18、址只有 1bit ;字节操作指令 MOV A,20H 字节地址共 8bit )。2.6 PC 在执行指令过程中,起什么作用?答: PC在执行指令过程中, PC用于存放 CPU下一条要执行的指令地址,是一个 16 位的专用寄 存器。第三章 51单片机的指令系统33. 计算机所有的指令集合称为该计算机的指令系统。34. 指令是基本格式: 标号: 操作码 目的操作数 ,源操作数 ;注释 标号:指令的符号地址;操作码:规定指令的操作功能,是指令格式中唯一不能空缺的部分; 操作数:用于给指令的操作提供数据或地址。把左边的操作数称为目的操作数,右边的操作 数称为源操作数;注释:注释是对语句或程序段功能的说

19、明。注释用“:”开头,可空缺。35. 按指令的功能分类:数据传送指令( 28 条)、算术运算类指令( 24 条)、逻辑运算与移位 类指令( 25 条)、控制转移类指令( 17 条)、位操作类指令( 17 条)。36. 寻址方式 ?立即寻址 指令中跟在操作码后面的数据就是实际参与运算的操作数,称为立即数。MCS-51指令系统中允许使用 8 位和 16位立即数,立即数之前加“ #”予以标识。例:MOV A,#6DH MOV A,#3AH MOV DPTR,#0DFFFH MOV 40H,#30HMOV A,#60H MOV DPTR,#3400H MOV 30H,#40H ?直接寻址更多精品文档学

20、习 好资料指令中包含了操作数的地址,该地址直接给出了参加运算或传送的单元的地址。 直接寻址可访问两种地址空间: 特殊功能寄存器 SFR(又叫做专用寄存器) 内部数据存 储器 RAM中的 128 个字节单元。例:MOV A,52H MOV A,P1 MOV 30H,20H MOV P0,P1?寄存器寻址 把指定的某一可寻址的工作寄存器R0 R7或 A,B(乘、除指令中), DPTR,的内容作为操作数。例: MOV 53H,A MOV B,A MOV 20H,R1 MOV P0,R0?寄存器间接寻址 指令指定的某一寄存器的内容作为操作数地址。可用来间接寻址的寄存器有R0、 R1 和数据指针 DPT

21、R,前面加表示间接寻址。可访问内部RAM或外部数据存储器。堆栈指针SP 在执行指令中也起到寄存器间接寻址的作用,但它不出现在指令表达形式中。实现间接寻址的地址指针:( 1) Ri ( R0、 R1):寻址对象为片内 RAM的 128 个单元;( 1) DPTR:寻址对象为外部数据存储器。例:MOV A,R0 MOV B,R1 MOVX A,DPTR PUSH 20HPOP ACC MOV R0,A MOVX A,R1 MOVX DPTR,A?变址寻址基址寄存器 (DPTR或 PC):存放基准地址 ;变址寄存器 (A): 存放偏移量 ; 基址寄存器的内容与变址 寄存器的内容的和为可寻址单元的地址

22、。该类寻址方式用于访问程序存储器,对查表访问特别 有用。注意: A 中内容为无符号数。例:MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR?位寻址 采用位寻址方式的操作数是 8 位二进制数中的某 1 位,指令中给出的是位址。 寻址对象:片内数据存储器位寻址区中,位地址为00H7FH的 128 位 11 个可位寻址的特殊功能寄存器中的 82 个有效可寻址位。例: MOV C,3AHSETB PSW,4 MOV C,00H MOV C,20H思考与练习:3.4 下列哪些指令是非法指令,并改正。CJNE A,#30H,ABCCJNE A,30H,ABCCJNE 30H,A,A

23、BC;合法;合法;非法 CJNE A,30H,ABC更多精品文档学习 好资料CJNE R7,#30H,ABC;合法CJNE R5,#30H,ABC;合法CJNE A,R4,ABC;非法不存在这种格式CJNE A,R4,ABC;非法不存在这种格式 (CJNE A,#data,rel/CJNEA,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/IN

24、C 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(直接寻址)MOV P0,P

25、1(直接寻址)DIV AB(寄存器寻址)MOVC A,A+DPTR( 变址寻址)MOV 30H,A(寄存器寻址)PUSH 30H(直接寻址)PUSH B(寄存器寻址)POP ACC(寄存器间接寻址)MOV 50,#40HMOV R1,#50HMOV A,R1MOV R0,AMOV 60H,R0MOV 30H,60H;( 50H) =40H;R1=50H;A=40H;R0=40H; (60H)=FFH; (30H)=FFH3.7 写出下列程序执行的结果。 (40H) =FFH更多精品文档学习 好资料3.9 分析下面程序执行的结果。MOV SP,#2FH; SP=2FHMOV A,#30H; A=

26、30HMOV B,#31H; B=31HPUSH A; SP=30H,(30H)=30HPUSH B; SP=31H,(31H)=31HPOP A; SP=30H,A=31HPOP B; SP=2FH,B=30H3.10 分析执行下列程序后 A 和标志位 C,AC,OV及 P 的结果。MOV A,#0DH; A=0DHMOV R7,#3DH; R7=3DHADD A,R7; A=4AH,C=0,AC=1,OV=0,P=1第四章 51单片机的汇编语言程序设计37.伪指令 :在对汇编语言进行翻译的过程中,需要提供一些有关汇编的信息指令。这些指令 在汇编时起到控制作用,但其自身不产生机器代码。伪指令

27、就是汇编程序能够识别的汇编命 令,它是程序员发给汇编程序的命令,只在汇编过程中起作用,它不是单片机要执行的指令, 所以没有机器码。起始伪指令 ORG(ORIGIN)格式: ORG 功能:出现在源程序的开头,用于规定目标程序存放的起始地址。例:程序如下: ORG 0000HSTART:MOV A,#20HADD A,#08HMOV 20H,AHERE:SJMP HERE结束伪指令 END( END OF ASSEMBLY)格式: END功能:汇编终止命令,本命令用于终止源程序的汇编工作。例:程序如下: ORG 0000HSTART:MOV A,#20HADD A,#08H更多精品文档学习 好资料

28、MOV 20H,AHERE:SJMP HEREEND赋值伪指令 EQU(EQUATE) 格式: EQU 功能:本命令用于给标号赋值。例:程序如下: PP EQO R0QQ EQU 30HMOV A,PP;把 R0 中的值送给 AMOV B,QQ;把 30H 中的值送给直接地址 F0H定义字节伪指令 DB(DEFINE BYTE) 格式: DB 功能:定义字节命令,本命令用于从指定的地址开始,在程序存储器的连续单元中定义字节数 据。例:程序如下: ORG 0000HTAB:DB 00H,45H,67H,78HDB 78H,58H,90H,57H汇编后结果:( 0000H) =00H (0001H

29、)=45H (0002H)=67H (0003H)=78H16 位(0004H) =78H (0005H)=58H (0006H)=90H (0007H)=57H 定义字伪指令 DW(DEFINE WORD) 格式: DW 功能:定义数据字命令,本命令用于从指定地址开始,在程序存储器的连续单元中定义 的数据字。该命令将字数据表中的数据依从左到右的顺序存放在指定的存储单元中,数据字的 高 8 位放在低地址单元,低 8 位放在高地址单元。例:程序如下: ORG 0030HTAB:DW 6789H,3456HDW 1234H,5678H汇编后的结果:( 0030H) =67H,(0031H)=89H

30、(0032H) =34H,(0033H)=56H(0034H) =12H,(0035H)=34H(0036H) =56H,(0037H)=87H更多精品文档学习 好资料位定义命令 BIT格式: BIT 功能:本命令用于给字符名称赋以位地址。例:程序如下: AQ BIT P0.0DEF BIT P1.0汇编结果:把 P0.0 的位地址赋给 AQ,把 P1.0 的位地址赋给 DEF。38. 程序设计举例:【例 4-2 】设在片内 RAM中, 20H和 21H单元各存放有一个 8 位数据,要求拼装一个新字节 并送 30H保存,其低 5 位取自 20H单元中的低 5位,高 3 位取自 21H单元中的低

31、 3 位。实现程序如下:MOV 30H,20H;20H 单元中的数据送入 30H单元ANL 30H,#00011111B;屏幕高 3 位MOV A,21H;21H 单元中的数据送入 ASWAP A;将 A 中的数据高低 3 位交换,循环左移 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;进位位清 0MOV

32、DPTR,#ST1;设置数据指针MOVX A,DPTR;取第一个数MOV R7,A;暂存 R7INC DPTR;数据指针加 1MOVX A,DPTR;取第二个数SUBB R7;比较两数的大小JNC BIG1;第二个数大转移XCH A,R7;第一个数大送 ABIG0: INC DPTR;数据指针加 1MOVX DPTR,A;存大数RET更多精品文档学习 好资料BIG1: MOVX A,DPTR;第二个数送 A【例 4-11 】有一数据块从片内 RAM的 30H单元开始存入,设数据块长度为10个单元。根据下式:求出 Y 的值,将 Y 值存入 31H单元。程序如下:ORG 1000HMOV A,30

33、HJB ACC.7,NEGJZ ZEROADD A,#02H AJMP SAVE ZERO:MOV A,#64HAJMP SAVE NEG:DEC ACPL A SAVE:MOV 31H,ASJMP $;取数;负数,转 NEG;为零,转 ZERO;为正数,求 X+2 ;转到 SAVE,保存数据;数据为零, Y=100 ;转到 SAVE,保存数据;求 |X|;保存数据;暂停10 个字节的数据,编程将每个字节【例 4-13 】在外部 RAM首地址为 table 的数据表中,有的最高位无条件的置 1。 实现程序如下:MOV DPTR,#tableMOV R7,#OAHLOOP:MOVX A,DPTR

34、ORL A,#10000000BMOV X DPTR,AINC DPTRDJNZ R7,LOOP;送数据表首地址 ;置处理次数 ;取数据 ;最高位置 1 ;送回 ;地址加 1 ;未处理完返回SJMP $更多精品文档学习 好资料【例 4-20 】编写一程序,实现下图中逻辑运算电路。其中P3.1 、P1.1 、 P1.0 分别是单片机端口线上的信息, 由 P1.0 输出。RS0、 RS1是 PSW寄存器的两个标志位, 30H、31H是两个位地址,运算结果程序如下:ORG 0000HMOV C,P3.1ANL C,P1.1CPL CMOV 20H,CMOV C,30HORL C,/31HANL C,

35、RS1ANL C,20HANL C,RS0MOV P1.0,CSJMP $思考与练习:;暂存数据;输出结果4.5 编程:把内部RAM20H单元开始有 8 个数,试找出其中最大的数,送入MAX单元。答:程序如下:MAX EQU 2AHSMAX:MOV R0,#20HMOV MAX,R0MOV R7,#7LOOP:INC R0MOV A,R0CJNE A,MAX,NEXTNEXT:JC LOP1;置数据区首地址 ;读第一个数暂作最大数 ;置数据长度( N-1) ;指向下一个数 ;读下一个数;数值比较,在 C 中产生大小标志;C=1,表明 A 值小,转更多精品文档学习 好资料MOV MAX,A;C=

36、0,表明 A 值大,大数送 MAXLOP1: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;取来 HORL C, P1.3;或上 CANL C, P1.1;与上 GMOV PSW.5, C;暂时存放MOV C, P1.5;取来 EORL C, P1.6;或上 XANL C, P1.4;与上 DO

37、RL C, PSW.5;或上前面结果MOV P1.0,C;输出到 Y第五章 51单片机的中断系统39.51 单片机共有 5个中断源, 2 个中断优先级,可以实现两级中断嵌套。40. 中断源就是引起中断的来源,也可认为是中断的原因。 51单片机提供了 5 个中断源:两个 外部中断请求 INT 0和 INT 1,两个片内计数器 /定时器中断 T0和 T1,另一个为片内串行口中 断。41. 外部中断源:表 TCON寄存器位结构位置D7D6D5D4D3D2D1D0位地址8F8E8D8C8B8A8988位符号TF1TR1TF0TR0IE1IT1IE0IT0IT0 是 INT 0触发方式控制位,即选择外部

38、中断 0 是电平触发方式还是下降沿触发方式,此位可由软件置位和复位; IE0 是INT 0中断下降沿请求标志位; IT1 和IE1 分别为外部中断 1的 触发方式控制位和下降沿中断请求标志位。42. 内部中断源:(1) 定时器 / 计数器中断源更多精品文档学习 好资料TF0是片内定时器 / 计数器 0溢出时中断申请标志位。TF1是片内定时器 / 计数器 1溢出时中断申请标志位,功能与 TF0相同。(2)串行口中断:表 SCON寄存器位结构:位置D7D6D5D4D3D2D1D0位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENIB8RB8TIRI TI 是串行口

39、发送完毕中断标志位。当 TI=1 时,就向 CPU申请中断,表示数据发送完毕; RI 是串行口接收完毕中断标志位。 RI=1 表示串行口接收器向 CPU申请中断。43. 计算机中断系统中有两种不同类型的中断:一种称为非屏蔽中断 ,另一种称为 可屏蔽中断。对非屏蔽中断,用户不能用软件方法加以禁止,一旦有中断申请,CPU必须予以响应。但对可屏蔽中断,用户则可以通过软件方法来控制是否允许某中断源的中断。 51 系列单片机的 5 个中断源都是可屏蔽中断的。44. 表中断允许寄存器 IE 的位结构位置D7D6D5D4D3D2D1D0位地址AFHADHACHABHAAHA9HA8H位符号EA-ESET1E

40、X1ET0EX0EA 是 CPU中断总允许位。当 EA=1时,开放中断,而每个中断是开放还是屏蔽分别由各自的 允许位确定。 EA=0,禁止所有中断,不论其他为是否为1。ES 是串行口中断允许位。 ES=1,允许串行口的接收和发送中断; ES=0,禁止串行口中断。 ET1是开放或禁止定时器 1 溢出中断位。 ET1=0则禁止定时器 1 中断,置位则开启其中断。 EX1是外部中断 1的中断允许位。 EX1=0,则禁止外部中断 1中断, EX=1,则开启其中断。 ET0是开放或禁止定时器 0 溢出中断位。 ET0=0则禁止定时器 0 中断,置位则开启其中断。 EX0是外部中断 0的中断允许位。 EX

41、0=0,则禁止外部中断 0 中断,置位则开启其中断。45. 表中断优先级寄存器 IP 的位结构位置D7D6D5D4D3D2D1D0位地址BDHBCHBBHBAHB9HB8H位符号-PSPT1PX1PT0PX0PS:串行口优先级设定位。 PS=1时,则编程为高优先级。 PT1:定时器 1 优先级设定位。 PT1=1 时,则编程为高优先级。更多精品文档学习 好资料PX1:外部中断 1 优先级设定位。 PX1=1时,则编程为高优先级。PT0: 定时器 0 优先级设定位。 PT0=1 时,则编程为高优先级。PX0:外部中断 0 优先级设定位。 PX0=1时,则编程为高优先级。46. 单片机对中断优先级

42、的处理原则: CPU同时接收到几个相同优先级的中断请求时,首先响应优先权最高的中断请求;低优先级中断可以被高优先级中断所中断;中断不能被与它同级和比它低级的中断所中断;当同一级中断同时申请中断时,按单片机系统内部硬件查询顺序确定优先级,用户无法自行 更改。47. 各中断源的入口地址:(熟记)中断源入口地址外部中断 00003H定时器 / 计数器 T0000BH外部中断 10013H定时器 / 计数器 T1001BH串行口中断0023H48. 中断响应条件: 相应的中断是开放的; 没有同级的中断或更高级别的中断正在处理; 正在执行的指令必须执行完最后 1 个机器周期 若正在执行 RETI,或正在

43、访问 IE 或 IP 寄存器 , 则必须执行完当前指令的下一条指令。后方 能响应中断。49. 设置中断的初始化工作:单片机中断系统初始化包括设置堆栈、选择中断触发方式(对外 中断而言)、开中断、设置中断优先级等,对定时器 / 计数器还要对运行控制位 TR置位。50. 中断服务程序的编写: 在中断入口地址处设置一条跳转指令,转移到中断服务程序的实际入口处;保护现场; 中断服务主体程序;若是外中断电平触发方式,应有中断信号撤除操作;若是串行收发中 断,应有对 RI、TI 清 0 指令;恢复现场;中断返回。思考与练习:5.7 简述中断初始化过程。更多精品文档学习 好资料答: 设置堆栈指针 SP;定义

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

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

46、为 0FFFFH),加 1 计数器不断进行对脉冲个 数的累加,最终会达到这个最大值,如果此时计数器再加1,就会使 16 位计数器的值变为 0,并使中断标志位 TFx 置 1,触发中断,这就是定时器 / 计数器的“溢出”。55. 定时方式寄存器 TMOD的位结构位置D7D6D5D4D3D2D1D0更多精品文档学习 好资料位地址GATEC/TM1M0GATEC/TM1M0位符号定时器 T1定时器 T0GATE选通控制位。当 GATE=0时,由寄存器 TCON中的运行控制位 TRx 启动定时器 X;当 DATE=1时,只有外中断请求信号 INT x 为高电平且 TRx置位时,才启动定时器 X。 C/

47、 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 既参与中断控制又参与定时控制。TF0定时器 0 计数溢出标志位。TR0定时器 0 运

48、行控制位。TR=0,关闭定时器 / 计数器 0,反之则开启。TF1定时器 1 计数溢出标志位。TR1定时器 1 运行控制位。57. 定时器 / 计数器初值计算(1)计数初值计算:方式 0:X=213 S方式 1:X=216 S方式 2 或方式 3:X=28 S(其中 X值计数初值,即时间常数; S指输入脉冲数)(2)定时初值计算:更多精品文档学习 好资料定时时间 t=S TM=(2N-X) 12/fosc (其中 t 指计满溢出时间; S指输入脉冲数; T M指 机器周期; 2N指计数器位数; X 指计数初值即时间常数; fosc 指振荡频率) 定时方式 0 计数初值 X= 2 13 t fo

49、sc/12定时方式 1 计数初值 X= 216 tfosc/12定时方式 2 或 3 计数初值 X= 28 tfosc/1258. 定时器 /计数器初始化步骤:(1)根据定时器 / 计数器的工作方式,设置 TMOD;(2)计算定时器 / 计数器的初值,写入 T0(TH0、TL0), T1 (TH1、 TL1);(3)设置 IE 、IP ,以开放相应的中断和设定中断优先级;(4)使 TR0/TR1置位,启动定时 / 计数器。59. 定时器 /计数器的工作方式:方式 0:此时的计数器是一个 13 位寄存器结构;方式 1:方式 1 是 16 位计数结构的工作方式;方式 2:方式 2与方式 0、1的区

50、别除了计数位数不一样外(方式2是 8位计数结构),最显著的区别就是计数器计数溢出时,能够自动装载初值。思考与练习:6.7 已知单片机系统时钟频率为 6MHz,利用定时器 0控制 P2.1 口,使其输出周期为 60ms,占空比为 2:1 的方波。答:设定时间基准为 20ms,即定时时间为 20ms。则定时初值X 216 t /T机 216 20*10 3* 6*106 /12 55536 D8F0H高电平的软件计数为 2,低电平的软件计数为ORG 0000HLJMP MAINORG 000BHLJMP INT0MAIN:SETB P2.1MOV R2,#02H1. 主程序如下:MOV TMOD,

51、#01HMOV TH0,#D8HMOV TL0.#0F0HSETB ET0SETB EASETB TR0更多精品文档学习 好资料SJMP $MOV R2,#02HINT0:PUSH PSWSJMP EXITPUSH ACCL1:MOV R2.#01HMOV TH0.#D8HPOP ACCMOV TL0,#0F0HPOP PSWDJNE R2,EXITEXIT:RETICPL P2.1ENDJNB P2.16.9 利用定时器定 0,循环点亮 8 个发光二极管,每个持续时间 0.5s 。试画出电路图并编 写程序。答:假设单片机晶振频率为 12MHZ ,那么模式 1 最多能定时 65.526ms,对于 1 秒的定 时,必须设置一个软件计数器,进行软硬结合进行定时。假定让定时器定时50ms,软件计数器 R7初值为 10,这样定时中断 10 次就是 0.5 秒,0.5 秒后才让 P1闪一次,如此循 环。ORG 0000HSJMP MAINORG 000BHSJMP ISO_T0ORG 0030HMAIN: MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB TR0MOV R7,#10MOV A,#01HSJMP $ISO_T0:MOV TH0,#3C

温馨提示

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

评论

0/150

提交评论