流水灯程序设计与调试概要PPT学习教案.pptx
会计学1流水流水(lishu)灯程序设计与调试概要灯程序设计与调试概要第一页,共87页。2流水灯程序设计流水灯程序设计(chn x sh j)与调与调试试 一、任务说明一、任务说明一、任务说明一、任务说明1 1、要求、要求、要求、要求 P1P1口作为输出口。口作为输出口。口作为输出口。口作为输出口。P1.0P1.0至至至至P1.7P1.7接接接接8 8个发光二极管。要求编写程序实现如下功个发光二极管。要求编写程序实现如下功个发光二极管。要求编写程序实现如下功个发光二极管。要求编写程序实现如下功能:能:能:能:8 8个发光二极管依次亮灭并循环,延时个发光二极管依次亮灭并循环,延时个发光二极管依次亮灭并循环,延时个发光二极管依次亮灭并循环,延时0.10.1秒(已知秒(已知秒(已知秒(已知fosc=12MHzfosc=12MHz)。)。)。)。2 2、重点、重点、重点、重点(zhngdi(zhngdi n)n)1 1、学习、学习、学习、学习P1P1口作为输出口的使用方法。口作为输出口的使用方法。口作为输出口的使用方法。口作为输出口的使用方法。2 2、学习延时程序的设计方法。、学习延时程序的设计方法。、学习延时程序的设计方法。、学习延时程序的设计方法。第1页/共87页第二页,共87页。3二、硬件二、硬件(yn jin)电路电路1、硬件分析 发光二极管采用(ciyng)共阳极连接,P1口某个引脚输出“0”则对应的灯点亮。第2页/共87页第三页,共87页。42 2、软件分析、软件分析、软件分析、软件分析 (1 1)整体任务分析:控制字始终是)整体任务分析:控制字始终是)整体任务分析:控制字始终是)整体任务分析:控制字始终是7 7个个个个“1”“1”和和和和1 1个个个个“0”“0”,“0”“0”的位置每隔的位置每隔的位置每隔的位置每隔0.10.1秒左移秒左移秒左移秒左移1 1位,然后位,然后位,然后位,然后(rnhu)(rnhu)由由由由P1P1口输出控制字点灯。口输出控制字点灯。口输出控制字点灯。口输出控制字点灯。(2 2)程序流程图)程序流程图)程序流程图)程序流程图控制字初值控制字初值0FEH送送A控制字送控制字送p1口点灯口点灯调用延时子程序调用延时子程序将控制字左移一位将控制字左移一位开始开始第3页/共87页第四页,共87页。5涉及涉及(shj)的指令的指令n nMOV类指令类指令(zhlng)n nRL指令指令(zhlng)n nDJNZ延时子程序延时子程序 第4页/共87页第五页,共87页。6(3 3)关于左移运算:可以利用循环左移指令实现)关于左移运算:可以利用循环左移指令实现)关于左移运算:可以利用循环左移指令实现)关于左移运算:可以利用循环左移指令实现 指令性质:逻辑运算指令指令性质:逻辑运算指令指令性质:逻辑运算指令指令性质:逻辑运算指令 指令格式:指令格式:指令格式:指令格式:RL A RL A 注意:操作数只能是累加器。注意:操作数只能是累加器。注意:操作数只能是累加器。注意:操作数只能是累加器。指令说明:执行时累加器指令说明:执行时累加器指令说明:执行时累加器指令说明:执行时累加器A A的存储内容的存储内容的存储内容的存储内容(nirng)(nirng)(8 8位位位位2 2进进进进制数),整体向左移动制数),整体向左移动制数),整体向左移动制数),整体向左移动1 1位(低位移动到相邻的高位),最高位(低位移动到相邻的高位),最高位(低位移动到相邻的高位),最高位(低位移动到相邻的高位),最高位补回到最低位。位补回到最低位。位补回到最低位。位补回到最低位。指令应用:常用于完成快速乘法,每次执行累加器内容指令应用:常用于完成快速乘法,每次执行累加器内容指令应用:常用于完成快速乘法,每次执行累加器内容指令应用:常用于完成快速乘法,每次执行累加器内容(nirng)(nirng)扩大扩大扩大扩大2 2倍。倍。倍。倍。相关指令:相关指令:相关指令:相关指令:RR A;RLC A;RRC ARR A;RLC A;RRC A第5页/共87页第六页,共87页。7延时子程序实例延时子程序实例(shl)n n若单片机的主频为若单片机的主频为若单片机的主频为若单片机的主频为12MHz,12MHz,使用循环转移指令编写使用循环转移指令编写使用循环转移指令编写使用循环转移指令编写(binxi)(binxi)延时延时延时延时20ms20ms的子的子的子的子程序。程序。程序。程序。(双重循环结构双重循环结构双重循环结构双重循环结构)n n一个机器周期:一个机器周期:一个机器周期:一个机器周期:12/12M=1us 12/12M=1us 次数次数次数次数 周期周期周期周期n nDELAY:MOV R6,#0C8H 1 1 DELAY:MOV R6,#0C8H 1 1 n nLOOP2:MOV R7#x 200 1LOOP2:MOV R7#x 200 1n n NOP 200 1 NOP 200 1n nLOOP1:DJNZ R7,LOOP1 200 x 2LOOP1:DJNZ R7,LOOP1 200 x 2n n DJNZ R6,LOOP2 200 2 DJNZ R6,LOOP2 200 2n n RET 1 2 RET 1 2n n200+200+400 x+400+2=20 000200+200+400 x+400+2=20 000n n求出求出求出求出x=48x=48第6页/共87页第七页,共87页。8三、任务实施三、任务实施三、任务实施三、任务实施 步骤步骤步骤步骤1 1:各小组按照:各小组按照:各小组按照:各小组按照(nzho)(nzho)流程图设计各部分程流程图设计各部分程流程图设计各部分程流程图设计各部分程序。序。序。序。步骤步骤步骤步骤2 2:程序汇编无误后,利用:程序汇编无误后,利用:程序汇编无误后,利用:程序汇编无误后,利用ISPISP软件和下载线软件和下载线软件和下载线软件和下载线将目标文件(将目标文件(将目标文件(将目标文件(.HEX.HEX)程序代码写入本组的单片机芯片)程序代码写入本组的单片机芯片)程序代码写入本组的单片机芯片)程序代码写入本组的单片机芯片中。中。中。中。步骤步骤步骤步骤3 3:接通直流电源,启动电路板观察现象,如:接通直流电源,启动电路板观察现象,如:接通直流电源,启动电路板观察现象,如:接通直流电源,启动电路板观察现象,如现象不对则重复步骤现象不对则重复步骤现象不对则重复步骤现象不对则重复步骤1 1、2 2。步骤步骤步骤步骤4 4:现象无误,请求教师检查、评价。:现象无误,请求教师检查、评价。:现象无误,请求教师检查、评价。:现象无误,请求教师检查、评价。步骤步骤步骤步骤5 5:编制项目报告并提交。:编制项目报告并提交。:编制项目报告并提交。:编制项目报告并提交。第7页/共87页第八页,共87页。9四、任务扩展四、任务扩展 思考:若想实现思考:若想实现8个灯累加点亮个灯累加点亮并循环,则程序该如何并循环,则程序该如何(rh)设计设计?第8页/共87页第九页,共87页。10一、任务说明一、任务说明一、任务说明一、任务说明 P1 P1口作为口作为口作为口作为(zuwi)(zuwi)输入、输出口。输入、输出口。输入、输出口。输入、输出口。P1.0P1.0、P1.1P1.1接开接开接开接开关关关关K1K1、K2K2;P1.2P1.2、P1.3P1.3接发光二极管接发光二极管接发光二极管接发光二极管L1L1、L2L2;P1.4P1.4、P1.5P1.5接接接接L5L5、L6L6。K1K1作为作为作为作为(zuwi)(zuwi)左转弯开关,左转弯开关,左转弯开关,左转弯开关,K2K2作为作为作为作为(zuwi)(zuwi)右转弯开关。右转弯开关。右转弯开关。右转弯开关。L1L1、L2L2作为作为作为作为(zuwi)(zuwi)左转弯灯,左转弯灯,左转弯灯,左转弯灯,L5L5、L6L6作为作为作为作为(zuwi)(zuwi)右转弯灯。要求编写程序实现如右转弯灯。要求编写程序实现如右转弯灯。要求编写程序实现如右转弯灯。要求编写程序实现如下功能:向上打下功能:向上打下功能:向上打下功能:向上打K1K1时时时时(K1=1)(K1=1),左转弯灯以一定频率闪,左转弯灯以一定频率闪,左转弯灯以一定频率闪,左转弯灯以一定频率闪烁,向上打烁,向上打烁,向上打烁,向上打K2K2时时时时(K2=1)(K2=1),右转弯灯以一定频率闪烁,右转弯灯以一定频率闪烁,右转弯灯以一定频率闪烁,右转弯灯以一定频率闪烁,两开关同时向上或向下,四灯都灭。两开关同时向上或向下,四灯都灭。两开关同时向上或向下,四灯都灭。两开关同时向上或向下,四灯都灭。灯闪烁一次即可,闪烁时先亮灯闪烁一次即可,闪烁时先亮灯闪烁一次即可,闪烁时先亮灯闪烁一次即可,闪烁时先亮0.5S0.5S再灭再灭再灭再灭0.5S0.5S。转弯转弯(zhun wn)灯控制程序设计与调灯控制程序设计与调试试 第9页/共87页第十页,共87页。11重点:重点:重点:重点:1 1、学习、学习、学习、学习P1P1口既作为口既作为口既作为口既作为(zuwi)(zuwi)输入,又作为输入,又作为输入,又作为输入,又作为(zuwi)(zuwi)输出的使用方法。输出的使用方法。输出的使用方法。输出的使用方法。2 2、学习数据输入、输出程序的设计方法。、学习数据输入、输出程序的设计方法。、学习数据输入、输出程序的设计方法。、学习数据输入、输出程序的设计方法。第10页/共87页第十一页,共87页。12二、任务分析二、任务分析1、硬件分析、硬件分析P1口为准双向口为准双向I/O接口,输出单条接口,输出单条指令完成,输入时应当先向对应指令完成,输入时应当先向对应(duyng)的端口锁存器写入的端口锁存器写入1,然后读入数据。然后读入数据。第11页/共87页第十二页,共87页。132 2、软件说明、软件说明、软件说明、软件说明 (1 1)整体分析:先读入开关的状态,根据开关的四种状态分情况控制灯)整体分析:先读入开关的状态,根据开关的四种状态分情况控制灯)整体分析:先读入开关的状态,根据开关的四种状态分情况控制灯)整体分析:先读入开关的状态,根据开关的四种状态分情况控制灯的亮灭。控灯完成后返回开始继续读开关,保证开关持续有效。的亮灭。控灯完成后返回开始继续读开关,保证开关持续有效。的亮灭。控灯完成后返回开始继续读开关,保证开关持续有效。的亮灭。控灯完成后返回开始继续读开关,保证开关持续有效。(2 2)多分支判断的实现:开关有四种状态,对应灯有四种控制规律。可采取逐点)多分支判断的实现:开关有四种状态,对应灯有四种控制规律。可采取逐点)多分支判断的实现:开关有四种状态,对应灯有四种控制规律。可采取逐点)多分支判断的实现:开关有四种状态,对应灯有四种控制规律。可采取逐点检测的方式实现分支控制。即读入开关状态后先判断是否为检测的方式实现分支控制。即读入开关状态后先判断是否为检测的方式实现分支控制。即读入开关状态后先判断是否为检测的方式实现分支控制。即读入开关状态后先判断是否为0000,若为,若为,若为,若为0000则灯全灭;则灯全灭;则灯全灭;则灯全灭;若不为若不为若不为若不为0000则判断开关是否为则判断开关是否为则判断开关是否为则判断开关是否为0101,若为,若为,若为,若为0101则左转弯则左转弯则左转弯则左转弯(zhu(zhu n wn)n wn)灯闪烁;若不为灯闪烁;若不为灯闪烁;若不为灯闪烁;若不为0101则判断开关是则判断开关是则判断开关是则判断开关是否为否为否为否为1010,若为,若为,若为,若为1010则右转弯则右转弯则右转弯则右转弯(zhu(zhu n wn)n wn)灯闪烁;若不为灯闪烁;若不为灯闪烁;若不为灯闪烁;若不为1010则必然为则必然为则必然为则必然为1111,灯全灭。,灯全灭。,灯全灭。,灯全灭。K1K0状态状态控灯规律控灯规律控制字控制字00全灭全灭0FFH01左转弯灯闪烁左转弯灯闪烁0F3H,0FFH10右转弯灯闪烁右转弯灯闪烁0CFH,0FFH11全灭全灭0FFH第12页/共87页第十三页,共87页。14(3 3)实现分支)实现分支)实现分支)实现分支(fnzh)(fnzh)判断的关键指令:条件转移指令判断的关键指令:条件转移指令判断的关键指令:条件转移指令判断的关键指令:条件转移指令CJNECJNE指令名称:比较不相等转移。指令名称:比较不相等转移。指令名称:比较不相等转移。指令名称:比较不相等转移。指令格式:指令格式:指令格式:指令格式:CJNE A,#data,rel;CJNE A,#data,rel;若若若若(A)data,(A)data,则跳到标号处执行指令,否则顺序执行。对借位标志有影响:则跳到标号处执行指令,否则顺序执行。对借位标志有影响:则跳到标号处执行指令,否则顺序执行。对借位标志有影响:则跳到标号处执行指令,否则顺序执行。对借位标志有影响:若若若若 (A A)data0 X0Y=Y=100100 X=0 X=0 求求求求出出出出Y Y值值值值,将将将将Y Y值值值值存存存存入入入入(cn(cn r)31Hr)31H单元。单元。单元。单元。X X X0 X0解解解解:根根根根据据据据数数数数据据据据的的的的符符符符号号号号位位位位判判判判别别别别该该该该数数数数的的的的正正正正负负负负,若若若若最最最最高高高高位位位位为为为为0 0,再判别该数是否为,再判别该数是否为,再判别该数是否为,再判别该数是否为0 0。程序流程如图。程序流程如图。程序流程如图。程序流程如图2-22-2所示。所示。所示。所示。参考程序如下:参考程序如下:参考程序如下:参考程序如下:ORGORG 1000H 1000H 第20页/共87页第二十一页,共87页。22 MOV A MOV A,30H30H ;取数;取数 JB ACC.7 JB ACC.7,NEG NEG ;负数,转;负数,转NEG NEG JZ JZ ZER0 ZER0 ;为零,转;为零,转ZER0 ZER0 ADD A ADD A,#02H#02H;为正数,求;为正数,求X+2X+2 AJMP SAVE AJMP SAVE ;转到;转到SAVESAVE,保存,保存(b(b ocn)ocn)数据数据ZER0ZER0:MOV AMOV A,#64H#64H ;数据为零,;数据为零,Y=100 Y=100 AJMP SAVE AJMP SAVE ;转到;转到SAVESAVE,保存,保存(b(b ocn)ocn)数据数据 NEGNEG:DEC DEC A A ;CPL CPLA A ;求;求 X X SAVESAVE:MOV 31HMOV 31H,A A ;保存;保存(b(b ocn)ocn)数据数据 SJMP SJMP ;暂停;暂停 END END第21页/共87页第二十二页,共87页。23A为负数?取数,A(30H)开始结束A=0?YNNA|X|A64HAX+2存数,(31H)A(30H)图2-2 例4.3程序(chngx)流程图第22页/共87页第二十三页,共87页。24多向分支程序设计举例多向分支程序设计举例多向分支程序设计举例多向分支程序设计举例【例【例【例【例4.44.4】根据根据根据根据R0R0的值转向的值转向的值转向的值转向7 7个分支程序。个分支程序。个分支程序。个分支程序。R010R010,转向,转向,转向,转向SUB0SUB0;R020R020,转向,转向,转向,转向SUB1SUB1;R060R060R060,转向,转向,转向,转向SUB6SUB6;解:利用解:利用解:利用解:利用JMP A+DPTR JMP A+DPTR 指令直接指令直接指令直接指令直接(zhji)(zhji)给给给给PCPC赋值,使程序实现转移。程序流程如图赋值,使程序实现转移。程序流程如图赋值,使程序实现转移。程序流程如图赋值,使程序实现转移。程序流程如图2-32-3所所所所示。示。示。示。第23页/共87页第二十四页,共87页。25n nORG 2000HORG 2000Hn nMOV DPTRMOV DPTR,#TAB#TAB;转移;转移(zhu(zhu ny)ny)指令指令表首地址表首地址n n MOV AMOV A,R0R0;取数;取数 n n MOV B MOV B,#10#10 n n DIVDIV AB AB ;A A除以除以1010,商在,商在A A中中 n n CLR C CLR Cn n RLC ARLC A ;A2AA2An n JMP A+DPTRJMP A+DPTR;PC A+DPTRPC A+DPTRn n AJMP SUB0 AJMP SUB0;转移;转移(zhu(zhu ny)ny)指令表指令表n n AJMP SUB1 AJMP SUB1 n n n n AJMP SUB6AJMP SUB6TAB:第24页/共87页第二十五页,共87页。26K=?转SUB0转SUB1转SUB6K=0 K=1 K=6开始图图2-3多向分支多向分支(fnzh)程序流程图程序流程图返回(fnhu)本节第25页/共87页第二十六页,共87页。27交通灯程序设计交通灯程序设计(chn x sh j)与调与调试试 一、任务说明一、任务说明 P1口控制口控制6个灯,红、黄、绿各两个个灯,红、黄、绿各两个(lin),编程实现交通灯控制规律。,编程实现交通灯控制规律。第26页/共87页第二十七页,共87页。28四四红红灯灯亮亮延延时时1秒秒东东西西路路口口绿绿灯灯亮亮,南南北北路路口口红红灯灯亮亮延延时时6秒秒东东西西路路黄黄灯灯闪闪烁烁8次次,南南北北路路口口红红灯灯亮亮每每次次延延时时1秒秒四四红红灯灯亮亮延延时时1秒秒东东西西路路口口红红灯灯亮亮,南南北北路路口口绿绿灯灯亮亮延延时时6秒秒东东西西路路红红灯灯亮亮,南南北北路路口口黄黄灯灯闪闪烁烁8次次每每次次延延时时1秒秒第27页/共87页第二十八页,共87页。29u教学提示:教学提示:u 指令是指令是CPUCPU用于控制功能部件完成用于控制功能部件完成(wn chng)(wn chng)某一指定动作的指示和命令。一台计算机全部指令的某一指定动作的指示和命令。一台计算机全部指令的集合称为指令系统。指令系统体现了计算机的性能,集合称为指令系统。指令系统体现了计算机的性能,也是计算机重要的组成部分,应用计算机进行程序设也是计算机重要的组成部分,应用计算机进行程序设计的基础。单片机应用系统的运行,是依靠合理的硬计的基础。单片机应用系统的运行,是依靠合理的硬件接口、用户程序和监控程序的完美结合实现的,所件接口、用户程序和监控程序的完美结合实现的,所以掌握单片机需要学习多样的汇编程序设计方法实现以掌握单片机需要学习多样的汇编程序设计方法实现运算和控制功能。运算和控制功能。第28页/共87页第二十九页,共87页。3080C5180C51单片机具有单片机具有单片机具有单片机具有111111条指令,指令系统条指令,指令系统条指令,指令系统条指令,指令系统(zh(zh ln ln x t x t n n)特点特点特点特点如下:如下:如下:如下:n n(1)指令执行时间快。)指令执行时间快。1个机器个机器周期指令有周期指令有64条,条,2个机器周期指个机器周期指令有令有45条,而条,而4个机器周期指令仅个机器周期指令仅2条(乘除条(乘除(chngch)指令)。指令)。n n(2)指令短,指令编码字节少,)指令短,指令编码字节少,单字节的指令有单字节的指令有49条条(约有一半的约有一半的指令为单字节指令指令为单字节指令),双字节的有,双字节的有45条,三字节的仅有条,三字节的仅有17条。条。n n(3)具有丰富的位操作指令。)具有丰富的位操作指令。n n(4)可直接用传送指令实现端)可直接用传送指令实现端口的输入输出操作。口的输入输出操作。第29页/共87页第三十页,共87页。31n n以以80C5180C51为内核的单片机指令系统为内核的单片机指令系统(zh(zh ln ln x t x t n n)为例,为例,用用4444种操种操n n作码助记符来描述作码助记符来描述3333种操作功能,构成了种操作功能,构成了111111条基本指令。条基本指令。n n 单字节指令单字节指令4949条;条;n n按字节分双字节指令按字节分双字节指令4545条;条;n n三字节指令三字节指令1717条;条;n nn n单周期指令单周期指令6464条;条;n n按指令执行时间分双周期指令按指令执行时间分双周期指令4545条;条;n n111111条基本指令条基本指令4 4个机器周期指令个机器周期指令2 2条;条;n n n n数据传送类指令数据传送类指令(2929););n n算术运算类指令算术运算类指令(2424););n n按功能分逻辑运算及移位类按功能分逻辑运算及移位类指令(指令(2424););n n控制转移类指令控制转移类指令(1717););n n布尔变量操作类指布尔变量操作类指令(令(1717)。)。第30页/共87页第三十一页,共87页。32.1指令指令(zhlng)格格式及常用符号式及常用符号n n80C5180C5180C5180C51单片机指令格式单片机指令格式单片机指令格式单片机指令格式 n n)指令由操作码助记符和操作数两部组成。)指令由操作码助记符和操作数两部组成。)指令由操作码助记符和操作数两部组成。)指令由操作码助记符和操作数两部组成。n n)指令格式如下:)指令格式如下:)指令格式如下:)指令格式如下:n n 标号:标号:标号:标号:操作码助记符操作码助记符操作码助记符操作码助记符 目的操作数目的操作数目的操作数目的操作数 ,源操作数,源操作数,源操作数,源操作数;注释;注释;注释;注释 n n 符号符号符号符号(fho)“”(fho)“”(fho)“”(fho)“”其包含的内容因指令的不同可有其包含的内容因指令的不同可有其包含的内容因指令的不同可有其包含的内容因指令的不同可有可无。可无。可无。可无。n n 特例:子程序返回指令特例:子程序返回指令特例:子程序返回指令特例:子程序返回指令RETRETRETRET、中断返回指令、中断返回指令、中断返回指令、中断返回指令RETIRETIRETIRETI、空、空、空、空操作指令操作指令操作指令操作指令NOPNOPNOPNOP,皆无目的操作数和源操作数,皆无目的操作数和源操作数,皆无目的操作数和源操作数,皆无目的操作数和源操作数n n 标号:根据编程需要给指令设定的符号标号:根据编程需要给指令设定的符号标号:根据编程需要给指令设定的符号标号:根据编程需要给指令设定的符号(fho)(fho)(fho)(fho)地址,地址,地址,地址,可有可无;通常在子程序入口或转移指令的目标地址处才可有可无;通常在子程序入口或转移指令的目标地址处才可有可无;通常在子程序入口或转移指令的目标地址处才可有可无;通常在子程序入口或转移指令的目标地址处才赋予标号。标号由赋予标号。标号由赋予标号。标号由赋予标号。标号由1 1 1 18 8 8 8个字符组成,第一个字符必须是英个字符组成,第一个字符必须是英个字符组成,第一个字符必须是英个字符组成,第一个字符必须是英文字母,不能是数字或其他符号文字母,不能是数字或其他符号文字母,不能是数字或其他符号文字母,不能是数字或其他符号(fho)(fho)(fho)(fho),标号后必须用冒,标号后必须用冒,标号后必须用冒,标号后必须用冒号。号。号。号。第31页/共87页第三十二页,共87页。33n n操作码助记符:指令的核心部分,用于指示机器执行何种操作,操作码助记符:指令的核心部分,用于指示机器执行何种操作,操作码助记符:指令的核心部分,用于指示机器执行何种操作,操作码助记符:指令的核心部分,用于指示机器执行何种操作,如加、减、乘、除、传送等。如加、减、乘、除、传送等。如加、减、乘、除、传送等。如加、减、乘、除、传送等。n n操作数:是指令操作的对象,可以是一个具体的数据,也可以操作数:是指令操作的对象,可以是一个具体的数据,也可以操作数:是指令操作的对象,可以是一个具体的数据,也可以操作数:是指令操作的对象,可以是一个具体的数据,也可以是参加运算的数据所在的地址。操作数一般有以下几种形式:是参加运算的数据所在的地址。操作数一般有以下几种形式:是参加运算的数据所在的地址。操作数一般有以下几种形式:是参加运算的数据所在的地址。操作数一般有以下几种形式:n n没有操作数,操作数隐含在操作码中,如没有操作数,操作数隐含在操作码中,如没有操作数,操作数隐含在操作码中,如没有操作数,操作数隐含在操作码中,如RETRETRETRET指令;指令;指令;指令;n n只有一个操作数,如只有一个操作数,如只有一个操作数,如只有一个操作数,如INC AINC AINC AINC A指令;指令;指令;指令;n n有两个操作数,如有两个操作数,如有两个操作数,如有两个操作数,如MOV AMOV AMOV AMOV A,30H30H30H30H指令,操作数之间以逗号相隔;指令,操作数之间以逗号相隔;指令,操作数之间以逗号相隔;指令,操作数之间以逗号相隔;n n有有有有3 3 3 3个操作数,如个操作数,如个操作数,如个操作数,如 CJNE A CJNE A CJNE A CJNE A,#00H#00H#00H#00H,10H10H10H10H指令。指令。指令。指令。n n注释:对指令的解释说明,用以提高程序注释:对指令的解释说明,用以提高程序注释:对指令的解释说明,用以提高程序注释:对指令的解释说明,用以提高程序(chngx)(chngx)(chngx)(chngx)的可读性,的可读性,的可读性,的可读性,注释前必须加分号,注释换行时行前也要加分号。注释前必须加分号,注释换行时行前也要加分号。注释前必须加分号,注释换行时行前也要加分号。注释前必须加分号,注释换行时行前也要加分号。第32页/共87页第三十三页,共87页。34n n指令的字节指令的字节 n n1.单字节指令单字节指令(49条条)n n 在在MCS-5l指令系统中,单字指令系统中,单字节指令可分为节指令可分为(fn wi)两类:两类:n n无操作数的单字节指令无操作数的单字节指令n n含有操作数寄存器编号的单字含有操作数寄存器编号的单字节指令。节指令。n n1)无操作数单字节指令无操作数单字节指令n n 这类指令只有操作码字段,这类指令只有操作码字段,操作数隐含在操作码中。例如:操作数隐含在操作码中。例如:INC DPTR 第33页/共87页第三十四页,共87页。35n n 指令码为指令码为n n 2)2)含有操作码、寄存器编码的单字节指令含有操作码、寄存器编码的单字节指令 n n 单字节的指令码由操作码和指示操作数所在寄存器编码组成单字节的指令码由操作码和指示操作数所在寄存器编码组成(z(z chnchn)。n n 例如:例如:MOV AMOV A,Rn Rn n n 指令码为(其中指令码为(其中r r rr r r为寄存器为寄存器RnRn的编码)的编码)位D7D6D5D4D3D2D1D0十六进制码操作码10100011A3H位D7D6D5D4D3D2D1D0十六进制码操作码+操作数11101rrrE8HEFH例如例如(lr)(lr):INC INC DPTRDPTR第34页/共87页第三十五页,共87页。36n n2.2.双字节指令双字节指令双字节指令双字节指令(46(46条条条条)n n 双字节指令的操作码字节在前,其后的操作数字节双字节指令的操作码字节在前,其后的操作数字节双字节指令的操作码字节在前,其后的操作数字节双字节指令的操作码字节在前,其后的操作数字节可以是立即数,也可以是操作数所在可以是立即数,也可以是操作数所在可以是立即数,也可以是操作数所在可以是立即数,也可以是操作数所在(su(su zi)zi)的片内的片内的片内的片内RAMRAM地址。地址。地址。地址。n n例如:例如:例如:例如:MOV AMOV A,#23H#23H n n指令码为指令码为指令码为指令码为位D7D6D5D4D3D2D1D0十六进制码操作码0111010074H 23H操作数(立即数)00100011第35页/共87页第三十六页,共87页。371 1实训目的实训目的(1 1)掌握)掌握(zhngw)(zhngw)指令格式及表示方法:助记符表示和机器码表指令格式及表示方法:助记符表示和机器码表示。示。(2 2)了解人工汇编与机器汇编的方法。)了解人工汇编与机器汇编的方法。(3 3)了解寻址方式的概念。)了解寻址方式的概念。(4 4)掌握)掌握(zhngw)(zhngw)常用指令的功能及应用。常用指令的功能及应用。实训实训3 3 指令指令(zhlng)(zhlng)的应用的应用2 2实训引入实训引入MOV P1,#55H MOV P1,55H 请比较以上请比较以上(yshng)(yshng)两条两条指令执行后指令执行后P1P1口的状况口的状况?为为什么什么?第36页/共87页第三十七页,共87页。383 3实训表格实训表格(biog)(biog)表3.1 实验(shyn)表格题号助记符指令机器码指令检查数据发光二极管状态MOV P1,#55H MOV 20H,#0F0H(20H)=MOV P1,20H MOV A,#0F0HA=MOV P1,AMOV R4,#0FHR4=MOV P1,R4MOV 20H,#0AAH(20H)=MOV R0,#20HR0=MOV P1,R0MOV A,#55H A=MOV P1,A AND A,#0FHA=MOV P1,A 第37页/共87页第三十八页,共87页。39MOV A,#55H A=MOV P1,AAND A,#0FHA=MOV P1,A OR A,#0F0HA=MOV P1,A CLR A A=MOV P1,ACPL AA=MOV P1,AMOV A,#01H A=MOV P1,A RL AA=MOV P1,ARL AA=MOV P1,A 第38页/共87页第三十九页,共87页。404.4.实训分析实训分析(fnx)(fnx)与总结与总结 在实训中看到以下现象(xinxing):往P1口传送数据的指令中,数据的来源不尽相同。数据是指令的操作对象,叫做操作数。指令必须给出操作数所在的地方,才能进行数据传送。寻找操作数地址的方法,称为寻址方式。寻找操作数到底寻找操作数到底(do(do d)d)有多少种方式呢有多少种方式呢?第39页/共87页第四十页,共87页。41指令指令(zhlng)(zhlng)概概述述操作码操作码操作码操作码7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0双字节指令:双字节指令:双字节指令:双字节指令:标号:标号:标号:标号:操作码操作码操作码操作码操作数或操作数地址操作数或操作数地址操作数或操作数地址操作数或操作数地址;注释;注释;注释;注释单字节指令:单字节指令:单字节指令:单字节指令:操作码操作码操作码操作码7 07 07 07 0三字节指令:三字节指令:三字节指令:三字节指令:操作码操作码操作码操作码7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0数据或寻址方式数据或寻址方式数据或寻址方式数据或寻址方式7 07 07 07 0指令按字节指令按字节指令按字节指令按字节(z ji)(z ji)(z ji)(z ji)长度可以分为三种:长度可以分为三种:长度可以分为三种:长度可以分为三种:指令指令指令指令(zhlng)(zhlng)格式格式格式格式指令的格式:指令的格式:指令的格式:指令的格式:例如:例如:例如:例如:MOV AMOV A,R0R0例如:例如:例如:例如:MOV AMOV A,30H30H例如:例如:例如:例如:MOV DPTRMOV DPTR,#2010H#2010H第40页/共87页第四十一页,共87页。42一、寻址方式一、寻址方式(fngsh)(找信方式找信方式(fngsh)我的信在他我的信在他我的信在他我的信在他那那那那!找信找信找信找信去去去去!注注:找信是寻找找信是寻找(xnzho)(xnzho)信信的的“地址地址”!”!你能说出第二你能说出第二你能说出第二你能说出第二(d r)(d r)封信的封信的封信的封信的“地址地址地址地址”吗?吗?吗?吗?第41页/共87页第四十二页,共87页。43目的地目的地目的地目的地#XXHXXH操作数操作数MOV P1,MOV P1,#55H55HMOV A,MOV A,#01H01H#55H55H目的地目的地信信寄存器寻址直接(zhji)寻址立即(lj)数寻址寄存器间接(jin ji)寻址变址寻址相对寻址位寻址第42页/共87页第四十三页,共87页。44目的地目的地目的地目的地寄存器寻址直接(zhji)寻址立即(lj)数寻址寄存器间接(jin ji)寻址变址寻址相对寻址位寻址内部内部内部内部RAMRAM或或或或SFRSFR区区区区操作数操作数XXHXXHMOV P1,20HMOV P1,20H20H20H目的地目的地20H20H注注:寻址是寻寻址是寻操作数操作数的的“地址地址”!直接给出地址直接给出地址20H20H直接寻址直接寻址直接寻址直接寻址第43页/共87页第四十四页,共87页。45目的地目的地目的地目的地寄存器寻址直接(zhji)寻址立即(lj)数寻址寄存器间接(jin ji)寻址变址寻址相对寻址位寻址寄存器寄存器寄存器寄存器目的地目的地操作数操作数XXHXXHMOV P1,AMOV P1,A寄存器寄存器寄存器寄存器R0-R7ABDPTR你能说出为什么叫寄你能说出为什么叫寄你能说出为什么叫寄你能说出为什么叫寄存器寻址吗?存器寻址吗?存器寻址吗?存器寻址吗?第44页/共87页第四十五页,共87页。46寄存器寻址直接(zhji)寻址立即(lj)数寻址寄存器间接(jin ji)寻址变址寻址相对寻址位寻址MOV P1,R0MOV P1,R0目的地目的地目的地目的地寄存器寄存器寄存器寄存器操作数操作数3AH3AH内部内部内部内部RAMRAM3AH3AH65H65H3AH3AHR0R1DPTR寄寄存存器器间间接接寻寻址址寄寄存存器器目的地目的地2 2号号号号信在信在2 2号箱子里号箱子里1 1号号号号你能说出你能说出你能说出你能说出1 1 1 1号箱子号箱子号箱子号箱子和和和和2 2 2 2号箱子分别对号箱子分别对号箱子分别对号箱子分别对应内存中哪一部应内存中哪一部应内存中哪一部应内存中哪一部分吗分吗分吗分吗?第45页/共87页第四十六页,共87页。47寻址比较寻址比较(bjio)MOV P1MOV P1,R0R0 地址是寄存器地址是寄存器地址是寄存器地址是寄存器R0R0MOV P1MOV P1,R0R0 地址在寄存器地址在寄存器地址在寄存器地址在寄存器R0R0里里里里MOV P1MOV P1,20H20H 地址是内存地址是内存地址是内存地址是内存20H20HMOV P1MOV P1,#20H#20H 直接将直接将直接将直接将20H20H这个数送这个数送这个数送这个数送P1P1口口口口错!错!错!MOV P1MOV P1,R0R0对!第46页/共87页第四十七页,共87页。48寻址比较寻址比较(bjio)MOV P1MOV P1,R0R0 地址是寄存器地址是寄存器R0R0MOV P1MOV P1,R0R0 地址在寄存器地址在寄存器R0R0里面里面MOV P1MOV P1,20H20H 地址是内存地址是内存20H20HMOV P1MOV P1,#20H#20H 直接将直接将20H20H这个数送这个数送P1P1口口错!错!错!MOV P1MOV P1,R0R0对!第47页/共87页第四十八页,共87页。49寻址比较寻址比较(bjio)MOV P1MOV P1,R0R0