(单片机应用实例开发)实例三循环、查表和中断系统

上传人:au****y 文档编号:118849977 上传时间:2019-12-27 格式:PPT 页数:190 大小:3.23MB
返回 下载 相关 举报
(单片机应用实例开发)实例三循环、查表和中断系统_第1页
第1页 / 共190页
(单片机应用实例开发)实例三循环、查表和中断系统_第2页
第2页 / 共190页
(单片机应用实例开发)实例三循环、查表和中断系统_第3页
第3页 / 共190页
(单片机应用实例开发)实例三循环、查表和中断系统_第4页
第4页 / 共190页
(单片机应用实例开发)实例三循环、查表和中断系统_第5页
第5页 / 共190页
点击查看更多>>
资源描述

《(单片机应用实例开发)实例三循环、查表和中断系统》由会员分享,可在线阅读,更多相关《(单片机应用实例开发)实例三循环、查表和中断系统(190页珍藏版)》请在金锄头文库上搜索。

1、实例三 循环、查表和中断系统 3.1 多彩流水灯电路的设计 3.2 多彩流水灯程序的设计 3.3 按键控制彩灯的设计 3.4 单个数码管显示接口的设计 3.5 习题 实例三 循环、查表和中断系统 实例三 循环、查表和中断系统 学习目标 理解多彩流水灯控制电路的构成、工作原理和电路中各 元器件的作用,并对电路进行分析和计算。 理解51单片机的时序概念和内部数据/程序存储器结构 ,掌握工作寄存器的使用方法。 正确使用MedWin软件的端口、查看寄存器、特殊功能 、设置断点、执行到光标处等调试功能,调整指令的执行时间 。 正确理解程序设计框架,掌握循环结构程序的编写方法 ,掌握EQU、DATA等伪指

2、令的使用方法。 掌握特殊功能寄存器中累加器ACC和状态寄存器PSW 的使用。 实例三 循环、查表和中断系统 理解51单片机的内部定时器/计数器结构,掌握定时器 的工作原理和TMOD的使用。 正确使用RR、RL、RRC、RLC等逻辑运算指令和 MOVC查表指令。 正确使用DJNZ、CJNE、NOP、ACALL/LCALL、RET 和INC等指令。 正确使用Proteus仿真软件调试电动车转向灯控制系统。 设计和制作多彩流水灯控制系统,对电路中的故障现 象进行分析判断并加以解决,通过调试得到正确结果。 实例三 循环、查表和中断系统 工作任务 测试多彩流水灯控制电路并进行结果描述。 设计、制作与调试

3、多彩流水灯控制系统。 撰写设计文档与测试报告。 大街上人们经常能看见各式各样的霓虹灯,五颜六色的灯 以不同的闪亮方式装点着城市,下面我们就从控制彩灯开始学 习单片机编程的旅程。本实例以彩灯控制为例介绍LJ_2 彩灯控 制板的应用,并以此为引子逐步引导大家掌握单片机的基本结 构及开发方法。 实例三 循环、查表和中断系统 3.1 多彩流水灯电路的设计 学习目标 理解多彩流水灯控制电路的构成、工作原理和电路 中各元器件的作用,并对电路进行分析和计算。 工作任务 测试多彩流水灯控制电路并进行结果描述。 实例三 循环、查表和中断系统 多彩流水灯的控制电路根据不同的设计要求有不同的设计 ,我们先学习较简单

4、的控制电路设计。在实例二中我们学习了 单个发光二极管的控制,因此不难想象多彩流水灯的控制电路 可以采用和2.1.2节中单个发光二极管控制电路类似的设计。假 设多彩流水灯由8个发光二极管构成,那么,就可以采用如图3 1所示的电路设计。 实例三 循环、查表和中断系统 图31 8盏流水灯仿真图 实例三 循环、查表和中断系统 【练习】 项目:16盏流水灯控制电路的设计。 项目编号:EX3_1。 任务要求:在Proteus平台中绘制单灯点亮控制电路,撰写 练习报告(格式要求见附录A)。 设计设备与软件:计算机1台,Proteus软件1套。 实例三 循环、查表和中断系统 设计步骤: (1) 打开Prote

5、us软件。 (2) 取用所需元器件,并摆放好位置。 (3) 连接好电路。 (4) 计算电路中的主要参数值,并设置好相关器件。 仿真图如图32所示。 实例三 循环、查表和中断系统 图32 16盏流水灯仿真图 实例三 循环、查表和中断系统 3.2 多彩流水灯程序的设计 学习目标 正确使用MedWin软件的端口、设置断点、执行到光 标处等调试功能,调整指令的执行时间。 正确使用MedWin软件的查看寄存器、特殊功能寄存 器等功能。 正确理解程序设计框架,掌握循环结构程序的编写方 法,掌握EQU、DATA等伪指令的使用方法。 掌握特殊功能寄存器中累加器ACC和状态寄存器PSW 的使用。 正确使用RR、

6、RL、RRC、RLC等逻辑运算指令和 MOVC查表指令。 实例三 循环、查表和中断系统 工作任务 设计与调试多彩流水灯控制程序。 撰写设计文档与测试报告。 实例三 循环、查表和中断系统 3.2.1 8盏灯轮流式点亮 假设将要实现如下要求:P1口作输出口,编写程序控制P1 口各发光二极管依次向左轮流点亮,每次点亮的时间为0.5 s。 1设计思路 (1) 通过前面2.2.1节寻址方式的介绍,不难想到,若要控 制P1口的发光二极管的亮灭,则使用立即寻址方式的指令,将 相应的控制代码直接送给P1口就可以实现,所以很显然我们将 要用到立即寻址方式的指令“MOV P1,#data”。 实例三 循环、查表和

7、中断系统 (2) 设计要求中提到各发光二极管的点亮时间为0.2 s,故 彩灯状态控制代码需保持0.2 s后再修改,所以我们需要有能延 时0.2 s的延时子程序。 (3) 由于设计要求中各发光二极管是依次轮流点亮的,因 此通过分析控制代码之间的关系,不难发现它们之间的循环移 位的特点。 实例三 循环、查表和中断系统 2基本知识 1) 寄存器寻址(Rn) 由指令指出某一个寄存器的内容作为操作数,这种寻址方 式称为寄存器寻址。 理解:以去图书馆借书为例,一般图书馆都会设置一个新 书架,近期买的书都放在新书架上,以便于读者借阅。新书架 和其他的书架都是统一编号的,只是为了读者借阅方便,通常 不说它的编

8、号而直接称其为新书架。这和寄存器及其他的直接 地址单元统一编址是一样的。为了使用方便,给指定的一些直 接地址单元另取了名称(R0R7),这样我们就可以不用记它们 的地址了。 实例三 循环、查表和中断系统 例如: MOV P1,R2;机器码为8AH,90H图33 寄存器 寻址方式指令执行示意图 这条指令的功能是把寄存器R2中存放的数送到P1端口。至 于这里的寄存器R2属于哪一个寄存器组,则由PSW中RS1和 RS0的值来确定。假设PSW中RS1和RS0的值分别为0和1,可知 此时的R2属于第一组,那么它的地址为0AH。假设0AH中存放 的数据为7FH,则执行该指令后,P1端口的值为7FH。该指令

9、 执行示意图如图33所示。 实例三 循环、查表和中断系统 图33 寄存器寻址方式指令执行示意图 实例三 循环、查表和中断系统 可以通过在MedWin中仿真以下程序来帮助理解寄存器寻 址方式指令的执行情况。 ORG 0000H ;程序头 LJMP MAIN ORG0030H MAIN: MOVP1,R2 ;寄存器R2的值送P1端口 SJMP $;“$”的含义为包含该符号的指令的 地址,动态暂停 END;程序尾 实例三 循环、查表和中断系统 仿真过程如下: (1) 在MedWin中编辑好上面这段程序,然后选择“项目管 理”/“编译汇编”编译代码。若没有语法错误,则选择“调试”/“开 始调试”进行调

10、试。 (2) 为了观察数据方便,读者可以选择“外围部件”/“端口” ,打开“端口”窗口;选择“查看”/“寄存器”,打开“寄存器”窗口 ;选择“查看”/“特殊功能寄存器”,打开“特殊功能寄存器”窗口 。寄存器窗口中的值可以通过在数据区双击鼠标修改,如图3 4(b)所示。 实例三 循环、查表和中断系统 图34 “MOV P1,R2”执行过程 (a) “MOV P1,R2”执行前1;(b) “MOV P1,R2”执行前2;(c) “MOV P1,R2”执行后 实例三 循环、查表和中断系统 图34 “MOV P1,R2”执行过程 (a) “MOV P1,R2”执行前1;(b) “MOV P1,R2”执

11、行前2;(c) “MOV P1,R2”执行后 实例三 循环、查表和中断系统 图34 “MOV P1,R2”执行过程 (a) “MOV P1,R2”执行前1;(b) “MOV P1,R2”执行前2;(c) “MOV P1,R2”执行后 实例三 循环、查表和中断系统 (3) 为观察程序运行每一步的结果,读者可以选择“调试”/“ 单步”,使程序单步运行。调试过程如图34(a)(c)所示。 (4) 调试成功后,可产生代码。将代码下载到实验板LJ_2 ,观察效果。 实例三 循环、查表和中断系统 2) 伪指令 (1) 为标号赋值伪指令EQU(Equate)。 伪指令格式: 标号(字符名称) EQU 数或汇

12、编符号 该指令的作用是将操作数中的地址或数据赋给标号字段中 的标号。 例如: HOUREQU30H;HOUR与30H等值 INCHOUR;HOUR加1,实际为30H存储单元 的数据加1 实例三 循环、查表和中断系统 (2) 数据地址赋值伪指令DATA。 伪指令格式: 标号(字符名称) DATA 数或表达式 该指令的作用是给标号段中的标号赋值,与EQU类似,但 也有差别。 用DATA定义的标识符汇编时将作为标号登记在符号表 中,故可以先使用后定义;EQU定义的标识符必须先定义后使 用。 用DATA只能将数据或表达式的值赋给字符名,而用 EQU可以将一个汇编符号赋给字符名,但不能将表达式的值赋 给

13、字符名。 实例三 循环、查表和中断系统 DATA常用来定义数据地址。 例如: XRAMDATA 20F0H 汇编后XRAM的值为20F0H。 实例三 循环、查表和中断系统 3) 逻辑运算类指令 逻辑运算类指令主要包括逻辑与、逻辑或、逻辑异或、移 位、取反和清零等指令,涉及的助记符包括ANL(逻辑与)、 ORL(逻辑或)、XRL(逻辑异或)、RL(左环移)、RR(右环移)、 RLC(带进位左环移)、RRC(带进位右环移)、CPL(取反)、CLR( 清零)等。这类指令一般不影响PSW中的标志位,仅当目的操 作数为A时会影响P。采用的寻址方式有立即寻址、直接寻址 、寄存器寻址和寄存器间接寻址,其指令

14、格式如下: 实例三 循环、查表和中断系统 ANL目的操作数,源操作数 ORL目的操作数,源操作数 XRL目的操作数,源操作数 RLA RRA RLCA RRCA CPLA CLRA 实例三 循环、查表和中断系统 逻辑运算类指令的助记图如图35所示。 图35 逻辑运算指令的助记图 实例三 循环、查表和中断系统 循环移位指令示意图如图36所示。 图36 循环移位指令示意图 实例三 循环、查表和中断系统 下面通过一个例子来加以说明。 设(A)=0C5H(1100 0101B),C=0,(R0)=47H,(47H)=39H。 RL A;执行指令后,A=8BH(1000 1011B),C=0 RLC A

15、;执行指令后,A=8AH(1000 1010B),C=1 ANL A,40H ;执行指令后,A=00H(0000 0000B),C=0 ORL A,R0 ;执行指令后,A=39H XRL A,47H ;执行指令后,A=00H(0000 0000B) CPL A;执行指令后,A=0FFH CLR A;执行指令后,A=0 实例三 循环、查表和中断系统 3设计步骤 (1) 设计仿真图如图31所示,流程图如图37所示。 图37 8盏灯轮流点亮的流程图 实例三 循环、查表和中断系统 (2) 程序设计所需指令表如表31所示。 实例三 循环、查表和中断系统 实例三 循环、查表和中断系统 实例三 循环、查表和中断系统 若在MedWin软件中仿真调试,则可以在“端口”窗口中观 察到P1口跑马灯的效果。调试好的程序代码可以加载到Protues 仿真电路中调试,调试过程中可以看见实际的流水灯效果,然 后下载到目标板上查看实际的效

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号