




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用技术教案单片机应用技术电子教案佛山职业技术学院Foshan Polytechnic 教学单元:程序设计基础教学时数: 2学时教学方法: 一体化教学教学目的:1、掌握89C51单片机存储器结构; 2、掌握89C51单片机片内数据存储器结构; 3、掌握51单片机七种寻址方式。教学重点:89C51单片机片内数据存储器结构,51单片机七种寻址方式。教学难点:51单片机七种寻址方式。教学过程模块二 单片机指令系统及汇编语言程序设计课题一 程序设计基础任务一 存储器认识一、任务目标 通过本任务的学习掌握单片机的存储器结构及作用。二、任务分析 51系列单片机有两种存储器(程序存储器和数据存储器)和4个存储空间(内部程序存储器、外部程序存储器、内部数据存储器、外部数据存储器)。 89C51单片机片内程序存储器容量为4KB,地址为0000H0FFFH;片外程序存储器最大容量为64KB,地址为0000H FFFFH;内部数据存储器容量为256B,地址为00HFFH;外部数据存储器最大容量为64KB,地址为0000HFFFFH。 内部数据存储器根据其用途的不同又分为两部分:低128字节为用户使用,称为RAM区;高128字节为单片机功能控制用,称为特殊功能寄存器区(简称SFR区)。89C51单片机存储器的配置图如图2-1所示。图2-1 89C51单片机存储器的配置图三、相关知识1、 程序存储器 89C51单片机程序存储器为16位地址,可寻址的范围为64KB,因此片外程序存储器最大容量为64KB,而片内程序存储器容量为4KB。在物理结构上分为片内程序存储器和片外程序存储器两个部分,在逻辑结构上(即用户使用角度)为一个部分,采用同一指令(MOVC指令)进行访问,用外部引脚电平高低区分低4KB空间访问的是内部程序存储器还是外部程序存储器。2、数据存储器51系列单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个是片内数据存储器,另一个是片外数据存储器。(1) 片内数据存储器89C51单片机片内256个字节数据存储器分为两部分:低128字节为用户数据RAM单元,地址为00H7FH,该部分为用户数据存取使用;高128字节为特殊功能寄存器(SFR)单元,地址为80HFFH,该部分为单片机功能控制用。片内数据存储器低128字节根据用途的不同,又可分为3个区:工作寄存器区,地址为00H1FH,共32个字节,该区为工作寄存器用;位寻址区,地址为20H2FH,共16个字节128位,位地址为00H7FH,该区单元既可按字节操作,又可按位操作;用户RAM区,地址为30H7FH,共80个字节,该区为用户数据存取用,只能按字节操作。工作寄存器区32个字节被均匀地分为4个组:第0组工作寄存器,地址为00H07H;第1组工作寄存器,地址为08H0FH;第2组工作寄存器,地址为10H17H;第3组工作寄存器,地址为18H 1FHH。每组工作寄存器有8个寄存器,均以R0R7来命名。在程序运行时,究竟用哪组工作寄存器,要通过特殊功能寄存器中的程序状态字寄存器(PSW)的第3和第4位(RS0和RS1)的值来加以区分。特殊功能寄存器区离散地分布了21个特殊功能寄存器,这些寄存器反映了51单片机的运行状态,很多功能均是通过特殊功能寄存器来定义和控制执行的,这些寄存的功能已作了专门的规定,用户不能修改其结构。如累加器A、寄存器B、程序状态字寄存器PSW、数据指针DPTR、I/O口寄存器P0、P1、P2、P3等均为特殊功能寄存器。89C51单片机片内数据存储器结构如下图所示。(2)片外数据存储器结构 51单片机片外数据存储器为16位地址空间,因此最多可扩充64KB。四、任务实施1、单片机存储器总体分配51单片机存储器程序存储器数据存储器片内程序存储器4KB地址:0000H0FFFH片外程序存储器64KB地址:0000HFFFFH片内数据存储器256B地址:00HFFH片外数据存储器64KB地址:0000HFFFFHRAM区128B地址:00H7FHSFR区128B地址:80HFFH工作寄存器区32B地址:00H1FH位寻址区16B地址:20H2FH用户RAM区80B地址:30H7FH第0组工作寄存器8B地址:00H07H第1组工作寄存器8B地址:08H0FH第2组工作寄存器8B地址:10H17H第3组工作寄存器8B地址:18H1FH数据存储器功能:存放用户数据访问方式:即能读又能写片内数据存储器访问指令:MOV片外数据存储器访问指令:MOVXRAM区用途:用户使用工作寄存器区用途:工作寄存器用位寻址区用途:位寻址用用户RAM区用途:用户存取数据用2、单片机存储器各部分的功能及使用注意任务二 寻址方式一、任务目标 通过本任务的学习,应熟练掌握单片机的7种寻址方式。二、任务分析51单片机有7种寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。三、相关知识1、特殊功能寄存器(1) 累加器ACC 累加器ACC是一个最常用的特殊功能寄存器,累加器的地址为E0H,在指令中常将ACC简写为A。大部分单操作数指令的操作数取自累加器,很多双操作数指令中的一个操作数也取自累加器。加、减、乘、除运算指令的运算结果都存放于累加器A或累加器A和寄存器B中。(2) 程序状态字寄存器PSW 程序状态字也是一个特殊功能寄存器,它在SFR中的地址为D0H,用于存放程序运行的状态信息。寄存器的各位定义及功能见表2-1。表2-1 程序状态字PSW各位定义及位功能表位序位标志位名称功能PSW.0P奇偶校验位表示累加器A内容的奇偶性,改变A中内容的指令会影响奇偶标志位。若A中有奇数个“1”,则P置“1”,否则清“0”。PSW.1PSW.2OV溢出标志位执行加法指令时,当位6向位7有进位或借位,而位7向CY没有进位或借位时,OV=1。或者位6向位7没有进位或借位,而位7向CY有进位或借位时,同样OV=1。所以OV为位6的进位或借位与位7的进位或借位的异或,即OV=CY6CY7 (其中CY6表示位6的进位或借位,CY7表示位7的进位或借位)。执行乘法指令时,乘积超过255时,OV=1,乘积在AB寄存器对中。若OV=0,则说明乘积没有超过255,乘积只在累加器A中。 执行除法指令时,OV=1,表示除数为0,运算不被执行;否则OV=0。PSW.4PSW.3RS1RS0工作寄存器组选择控制位RS1 RS0 工作寄存器组0 0 第0组(00H07H)0 1 第1组(08H0FH)1 0 第2组(10H17H)1 1 第3组(18H1FH)PSW.5F0用户标志位 供用户设置的标志位,由软件置“1”或清“0”。PSW.6AC辅助进位标志位进行加、减运算时,当低4位向高4位有进位或借位时,AC置“1”,否则清“0”。该位主要用于十进制调整。PSW.7CY进位标志位 此位有两个功能:一是执行加法或减法运算时,存放运算结果的进位或借位标志,当运算结果的最高位有进位或借位时置“1”,否则清“0”。二是在位操作中作累加位使用,在指令中常简写为C。 (3) 数据指针DPTR 数据指针为16位寄存器,其地址为83H和82H,编程时既可以按16位寄存器来使用,也可以按2个8位寄存器来使用,即高字节寄存器DPH(地址为83H)和低字节寄存器DPL(地址为82H)。DPTR主要是用来存放16位地址,当对64KB外部数据存储器寻址时,作为间址寄存器使用。当访问程序存储器时,DPTR可用来作基址寄存器,采用基址+变址寻址方式访问程序存储器。2、程序计数器PC 程序计数器在物理上是独立的,它不属于特殊功能寄存器区中的寄存器。PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64KB,PC有自动加1功能,即执行完一条指令后,其内容自动加1。PC本身并没有地址,因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序按用户要求去执行。3、片内RAM位寻址区位地址片内RAM位寻址区20H2FH单元,共有16个字节,128个位,位地址为00H7FH,位地址分配见表2-2,CPU能直接寻址这些位,执行例如置“1”、清“0”、取反、位传送和位逻辑运算等操作。表2-2 片内RAM位寻址区位地址表单元地址MSB位地址LSB2FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00H 4、七种寻址方式(1) 立即寻址 立即寻址就是把操作数(指令的操作对象)直接在指令中给出,即操作数包含在指令中,指令操作码的后面紧跟着参与运算的操作数,一般把指令中的操作数称为立即数。为了与直接寻址相区别,在立即数前加上“#”号。 例如:MOVX A, #20H这条指令的意思是将20H这个操作数送到累加器A中。(2) 直接寻址 直接寻址就是指令中直接给出操作数的地址。 例如:MOV A, 30H这条指令的意思是把片内RAM中的30H单元中的数据内容传送到累加器A中。(3) 寄存器寻址 寄存器寻址就是操作数放在当前工作寄存器组的寄存器(R0R7)中,当前工作寄存器组的选择是通过程序状态字寄存器PSW的RS1和RS0来确定的,参见表2-1。 例如:MOV A, R1这条指令的意思是把当前工作寄存器组中的R1的内容送到累加器A中。(4) 寄存器间接寻址 寄存器间接寻址方式就是操作数放在寄存器指向的地址单元中,即寄存器中存放的是操作数的地址。在间接地址寄存器前面一定要加符号,在寄存器R0R7中只有R0和R1可作间接地址寄存器用。 例如:MOVA,R0 这条指令的意思是R0寄存器指向的地址单元中的内容送到累加器A中。如R0=50H,就是将50H单元中的数据送到累加器A中。(5) 变址寻址 变址寻址是以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,将两寄存器的内容相加形成16位地址,作为操作数的实际地址。 例如: MOVCA, A+DPTR MOVCA, A+PC 在这两条指令中,A作为变址(偏移量)寄存器,DPTR或PC作为基址寄存器,A与 DPTR或PC的内容相加,得到访问单元的实际地址。(6) 相对寻址 相对寻址方式是为程序的相对转移而设计的,以PC当前值的内容为基址,加上指令中给出的偏移量作为转移目的地址,从而实现程序的转移。转移的目的地址可按下式计算: 目的地址=转移指令地址+转移指令字接数+偏移量 例如:JNZ 60H 这条指令的意思是:若累加器A为0则程序顺序执行,即不跳转,PC=PC+2;若累加器A不为0,则以PC当前值的内容为基址,加上指令中给出的偏移量60H后所得的结果作为程序转移的目的地址。(7) 位寻址 在51系列单片机中,RAM中的位寻址区20H-2FH单元对应的位地址为00H7FH。某些特殊功能寄存器(地址末位数为0或8,或者是地址能被8整除的特殊功能寄存器)也可进行位寻址,对这些单元既可以采用字节方式访问,也可采用位寻址的方式访问。 例如:SETB 5FH 这条指令的意思是将5FH位(即片内RAM中2BH单元的第7位)置“1”。四、任务实施1、51单片机七种寻址方式七种寻址方式立即寻址直接寻址寄存器间接寻址寄存器寻址变址寻址相对寻址位寻址操作数在指令中直接给出操作数地址在指令中直接给出操作数在寄存器中操作数的地址在寄存器中操作数的地址由基址寄存器(DPTR或PC)的内容与变址寄存器(A)的内容相加得到在转移指令中,以PC当前值为基址,加上指令中给出的相对偏移量作为转移目的地址操作数地址在片内数据存储器的位寻址区或可位寻址的特殊功能寄存器的位中例: MOV A , #20H例: MOV A , 20H例: MOV A , R0例: JZ30H例: MOVCA , A+DPTR MOVC A , A+PC例: MOV A , R0MOVX A , DPTR例: SETB50H 2、 不同存储器空间采用的寻址方式外部程序存储器内部程序存储器外部数据存储器片内数据存储器SFR区用户RAM区位寻址区工作寄存器区立即寻址(操作数在指令中)寄存器间接寻址(A+DPTR、A+PC)相对寻址(PC+指令中给出的偏移量)寄存器间接寻址(R0、R1、DPTR)直接寻址直接寻址、寄存器间接寻址(R0、R1)位寻址、直接寻址、寄存器间接寻址(R0、R1)寄存器寻址(R0R7)、直接寻址寄存器间接寻址(R0、R1)小结1、89C51单片机存储器结构。2、89C51单片机片内数据存储器结构。3、51单片机七种寻址方式。课后作业1、 简述单片机存储器总体分配情况。2、 简述单片机片内数据存储器结构。3、 简述单片机七种寻址方式。4、 简述单片机不同存储器空间的寻址方式。5、 回答下列指令的寻址方式:(1) MOV A, #6AH(2) MOV A, #0E#H(3) MOV A, 3FH(4) MOV A, 7BH(5) MOV A, R1(6) MOV A, R3(7) MOV A, R0(8) MOV A, R1(9) MOVX A, DPTR(10) MOVC A, A+DPTR(11) MOV A, A+PC(12) JZ 50H(13) SETB 01H教学单元: 延时程序教学时数: 2学时教学方法: 一体化教学教学目的:1、了解循环程序结构。 2、掌握延时程序中的相关指令及应用。 3、掌握延时程序的设计方法。教学重点:延时程序的设计方法。教学难点:相关指令及应用。教学过程课题二 延时程序任务一 延时程序设计一、任务目标 本任务主要讲解如何设计出一个规定延时时间(本任务中延时时间为1S)的延时程序。二、任务分析软件延时程序的主要设计思想是利用循环体为空操作或无循环体的循环程序,只占用CPU的时间,而不进行任何实质性操作,来实现延时功能。在51系列单片机中无专用的循环指令,通常用寄存器Rn减1不为0则转移指令DJNZ Rn,rel 来实现循环变量改变及循环结束控制。循环程序结构流程图如图2-3所示。单片机的机器周期一般为几个微秒,所以要实现较长时间的延时,需用多重循环。如图2-4所示为两重循环程序结构流程示意图,三重以上循环程序结构与此类似。N循环变量赋初值循环体循环变量减1 及 循环结束判断MOV Rn,#dataDJNZ Rn,k在延时程序中循环体为空操作指令NOP或无循环体开始结束YKY第二重循环变量赋初值第一重循环变量赋初值循环体第一重循环变量减1 及循环结束判断第二重循环变量减1 及循环结束判断开始结束YNNMOV Rn2,#data2MOV Rn1,#data1NOPDJNZ Rn1,k1DJNZ Rn2,k2K2K1图2-3 循环程序结构流程图图2-4 两重循环程序结构流程示意图三、相关知识1、以工作寄存器Rn为目的操作数的数据传送指令格式: MOV 目的操作数,源操作数功能:目的操作数源操作数中的数据 MOV Rn,A ;RnA MOV Rn,#data;Rndata MOV Rn,direct;Rn(direct)这3条指令的功能是把源操作数的内容传送给工作寄存器组R0R7中的某个寄存器。指令执行后,源操作数的内容不变,目的操作数(工作寄存器)的内容修改为源操作数。书写指令时要注意:Rn代表R0R7中的一个工作寄存器,没有MOV Rn1, Rn2指令。2、工作寄存器减1不为0的转移指令 DJNZ Rn,rel ;RR1 ;Rn0转移 ;Rn=0顺序执行下一条指令 DJNZ direct,rel ; (direct) (direct)1 ; (direct)0转移 ;(direct)=0顺序执行下一条指令这两条指令将源操作数减1,结果仍送回源操作数,如结果不等于0则转移,如结果等于0,则顺序执行下一条指令。rel为相对偏移量,即相对本指令的下一条指令转移的字节数,rel是一个8位带符号数,其数值为-128+127,负数表示向后转移,正数表示向前转移,所以转移范围为相对本转移指令的下一条指令的-128+127共256个单元。执行指令时,如发生转移,则PC=本转移指令地址+本转移指令字节数+rel,因程序计数器PC的值为将要执行指令的地址,所以转移目的地址=本转移指令地址+本转移指令字节数+rel (rel=转移目的地址-本转移指令地址-本转移指令字节数);如没发生转移则PC=本指令地址+本指令字节数=下一条指令的地址,即顺序执行下一条指令。在进行程序设计时,rel通常用目的地址的标号表示,在程序汇编时由计算机自动计算出指令的相对转移偏移量,并填入指令代码中。3、空操作指令 NOP ;PC PC1该指令控制CPU不进行任何操作(即空操作)而转到下一条指令,常用于产生一个机器周期的延迟。4、指令应用举例 例2-1 已知A=3FH,R1=40H,R2=50H,R3=60H,(A0H)=E8H,分析执行下列指令后R1、R2、R3中的内容。指令解释结果MOV R1, AR1 AR1=3FHMOV R2, 0A0HR2(A0H)R2=E8HMOV R3, #0DBHR3 DBHR3=DBH例2-2 已知R0的当前值为10,分析DJNZ R0,K指令执行一次后,程序转至何处。K: NOPDJNZ R0,KMOV R1,#0BFH分析:因R0当前值为10,所以DJNZ R0,K执行一次后,R0的值为R0=10-1=90,所以程序跳转至标号为K的指令处执行。例2-3 已知R5的当前值为1,分析DJNZ R5,K指令执行一次后,程序转至何处。 K: NOPDJNZ R5,KMOV R6,#90H分析:因R5当前值为1,所以DJNZ R5,K执行一次后,R5的值为R5=1-1=0,所以程序不发生跳转,顺序执行下一条指令MOV R6,#90H。四、任务实施 设系统晶振频率为12MHz,则机器周期为1us。要求延时时间为1S,则应用三重循环结构。 设R1为第一重循环变量,初值为250;R2为第二重循环变量,初值为250;R3为第三重循环变量,初值为4。循环变量赋初值用MOV Rn,#data指令,分别为“MOV R3,#4”,“MOV R2,#250”,“MOV R1,#250”;循环体为两条空操作NOP指令;循环变量减1及循环结束判断用DJNZ Rn,rel指令,分别为“DJNZ R1,K1”,“DJNZ R2,K2”,“DJNZ R3,K3”。 根据上面分析设计出的延时1S的延时程序如下: MOV R3, #4 ;给第三重循环变量R3赋初值4第一重循环第三重循环第二重循环K3: MOV R2, #250 ;给第二重循环变量R2赋初值250K2: MOV R1, #250 ;给第一重循环变量R1赋初值250K1: NOP ;空操作,占用1个机器周期 NOP ;空操作,占用1个机器周期 DJNZ R1, K1 ;R1减1不为0则转移至K1处,若为0则顺序执行下一条指令 DJNZ R2, K2 ;R2减1不为0则转移至K2处,若为0则顺序执行下一条指令 DJNZ R3, K3 ;R3减1不为0则转移至K3处,若为0则顺序执行下一条指令小结1、 延时程序中用到的相关指令。2、 循环程序设计方法。课后作业1、在本任务中,如要求延时时间为0.5S或2S,则延时程序中循环变量R3的初值应如何修改?2、在本任务中,如循环变量R3的初值为12,则延时程序的延时时间为多少?教学单元: 延时程序教学时数: 2学时教学方法: 一体化教学教学目的:1、掌握交替间隔1S左移循环亮灯程序中的相关指令。 2、掌握交替间隔1S左移循环亮灯程序设计方法。 3、掌握单片机几个时间单位概念及计算。 4、掌握延时程序的延时时间的计算方法。教学重点:1、交替间隔1S左移循环亮灯程序设计方法。 2、延时程序的延时时间的计算方法。教学难点:相关指令及应用。教学过程任务二 延时程序验证一、任务目标 本任务通过一交替间隔1S循环左移亮灯电路来观察和验证任务一设计的延时程序的正确性。二、任务分析根据设计任务得出如图2-5所示的亮灯情况示意图。 将8只发光二极管接于P1口,将上述亮灯数据送P1口即可观察到8只发光二极管的亮灯情况。根据上述亮灯示意图可得如图2-6所示的程序结构流程图。亮灯步骤L8 L7 L6 L5 L4 L3 L2 L11 2 3 4 5 6 7 8 表示灯灭表示灯亮图2-5交替间隔循环左移亮灯示意图将A的数据左移一位开始亮灯数据初值送A将A的数据送P1口亮灯延时1S无条件转移至K处KMOV A, #01HMOV P1, A任务一中的延时程序RL ASJMP K 图2-6 交替间隔循环左移亮灯程序流程图三、相关知识、 1、以累加器A为目的操作数的数据传送指令 MOVA,#data;Adata MOVA,direct;A(direct) MOVA,Rn ;ARn MOVA,Ri;A(Ri) 这4条指令是将源操作数的内容传送给累加器A,源操作数的寻址方式有立即寻址、直接寻址、寄存器寻址和寄存器间接寻址4种。2、循环移位指令 RL A ;累加器A的内容向左循环移一位 RR A ;累加器A的内容向右循环移一位 RLC A ;累加器A的内容带进位标志位向左循环移一位 RRC A ;累加器A的内容带进位标志位向右循环移一位循环移位指令的执行示意图如图2-7所示。RL ARLC ARR ARRC A图2-7 循环移位指令的执行示意图3、无条件转移指令 LJMP addr16 ;PC addr16 AJMP addr11 ;PC PC+2, PC100 addr11 SJMP rel ;PC PC+2,PC PC+rel JMP A+DPTR ; PC A+DPTRLJMP addr16指令为长转移指令,将16位目标地址addr16装入PC,程序无条件转向指定的目标地址执行。转移指令的目标地址可在64KB程序存储器地址空间的任何单元,不影响任何标志位。在程序设计时addr16通常用转移目的地址的标号表示。AJMP addr11指令为绝对转移指令,执行该指令时,先将PC加2,然后将addr11(目的地址的低11位)送入PC10PC0,而PC15PC11保持不变。 这样实际转移的目的地址为AJMP下一条指令的高5位地址加上目的地址的低11位,而想要转移的目的地址要与实际转移的目的地址相同,程序执行才不会发生错误,所以必须使想要转移的目的地址的高5位与AJMP下一条指令地址的高5位相同,即想要转移的目的地址与AJMP下一条指令必须在同一个2KB的存储器区域内。在程序设计中addr11通常用目的地址的标号表示,实际目的地址由汇编程序自动计算出。 SJMP rel指令为相对转移指令,rel为相对偏移量,即相对SJMP的下一条指令转移的字节数,有关rel的解释、rel的计算及转移目标地址的计算参见本课题任务一。 JMP A+DPTR指令为间接转移指令,指令执行时,把累加器A中的8位无符号数与作为基址的数据指针DPTR中的16位数相加作为转移的目的地址送入PC,不改变A和DPTR的内容,也不影响任何标志位。4、指令应用举例 例2-4 已知R3=20H,(30H)=40H,R1=50H,(50H)=3FH,分析执行下列指令后A的值。指令解释结果MOV A, R3A R3A=20HMOV A, 30HA (30H)A=40HMOV A, R1A (R1)A=3FHMOV A, #80HA 80HA=80H例2-5 已知A=A2H,CY=1,分析执行下列指令后A和CY的值。指令结果RL AA=45H,CY=1RR AA=51H,CY=1RLC AA=45H,CY=1RRC AA=D1H,CY=0例2-6分析下列指令执行后,程序转移至何处,PC的值为多少。地址 指令0100H LJMPK1 1000H K1:MOV R1,#01H LJMP K1指令执行后,程序转移至标号为K1的指令处,PC的值变为1000H。地址 指令0200H AJMPK2 0700H K2:MOV R2,#2FH AJMP K2指令执行后,程序转移至标号为K2的指令处,PC的值变为0700H。地址 指令0300H AJMPK3 0710H MOV R7,#0FFH 0F10H K3:MOV R3,#68H AJMP K3指令执行后,程序实际转移至地址为0710H指令处,PC的值变为0710H。这与想要转移的目的地址K3不一致,程序设计发生错误。因实际的目的地址是由AJMP的下一条指令地址的高5位加上K3的低11位组成的,此处由于AJMP下一条指令的高5位与K3的高5位不相同,所以造成实际转移目的地址与想要转移的目的地址不相同。地址 指令0400H SJMPK4 0460H K4:MOV R4,#0BDH SJMP K4指令执行后,程序转移至标号为K4的指令处,PC的值变为0460H。注意SJMP指令转移的目的地址与SJMP下一条指令的差必须在-128+127之间,否则也将造成实际转移的目的地址与想要转移的目的地址不一致,而导致程序设计错误。四、任务实施根据以上分析,设计出8只发光二极管交替循环间隔1S点亮的程序如下:MOVA,01H ;给A赋初值K: MOVP1,A;将A的数据送P1口输出显示1S延时程序MOV R3, #4 ;延时1SK3: MOV R2, #250K2: MOV R1, #250K1: NOP NOP DJNZ R1, K1 DJNZ R2, K2 DJNZ R3, K3 RLA ;将亮灯数据循环左移一位SJMPK ;程序转移至K处任务三 延时时间计算一、任务目标 本任务讲解如何计算延时程序的延时时间,以及自行设计延时程序时,如何确定各循环变量的初值。二、任务分析 计算软件延时程序的延时时间有两种方法:精确计算法和估算法。其中精确计算法要求精确计算出延时程序执行的机器周期数,该方法计算出的延时时间准确,但比较复杂;而估算法只需计算出延时程序执行的大概机器周期数,该方法计算出的延时时间为大概时间,但该计算方法比较简单。三、相关知识 单片机CPU执行指令的一系列动作都是在统一时序脉冲控制下进行的,为便于分析指令的执行过程,定义了几个时序单位:时钟周期、状态周期、机器周期和指令周期。1、时钟周期 时钟周期也称振荡周期,定义为振荡频率的倒数,用T0表示,它是单片机中最基本的、最小的时间单位。在一时钟周期内,CPU仅完成一个最基本的动作。 2、状态周期 两个时钟周期定义为一个状态周期,用TS表示。3、机器周期 一个机器周期单片机完成一个基本操作,如取指令、存储器读/写等。一个机器周期由6个状态周期组成,用TM表示。4、指令周期 执行一条指令的时间定义为指令周期,一般由若干机器周期组成。指令不同,所需的机器周期数也不同,在51系列单片机中有单周期、双周期和四周期指令。 上述几个时序单位有如下关系: TM=6TS=12T0例2-7 设单片机振荡频率fosc为12MHZ,试计算时钟周期、状态周期和机器周期。 根据单片机时钟周期、状态周期和机器周期的关系可得:时钟周期 状态周期 机器周期四、任务实施1、计算机器周期 设单片机振荡频率为12MHZ,则机器周期。2、标出延时程序各条指令的机器周期数 标出任务一的延时程序的各条指令的机器周期数如下: 源程序 机器周期数 MOV R3, #4 1第一重循环第三重循环第二重循环K3: MOV R2, #250 1K2: MOV R1, #250 1K1: NOP 1 NOP 1 DJNZ R1, K1 2 DJNZ R2, K2 2 DJNZ R3, K3 23、精确计算法第一重循环一次的机器周期数:1+1+2=4第一重循环总的机器周期数:4250=1000第二重循环一次的机器周期数:1+1000+2=1003第二重循环总的机器周期数:1003250=250750第三重循环一次的机器周期数:1+250750+2=250753第三重循环总的机器周期数:2507534=1003012总的机器周期数:1+1003012=1003013延时时间:10030131us=1003013us=1.003013 s4、估算法 采用估算法计算机器周期如下: 估算机器周期数=第一重循环一次的机器周期第一重循环次数第二重循环次数第三重循环次数。 估算延时时间=估算机器周期数机器周期。 所以本课题任务一中延时程序的延时时间 =425025041us=1000000us=1 s小结1、 交替间隔1S左移循环亮灯程序中用到的相关指令。2、 交替间隔1S左移循环亮灯程序设计方法。3、 单片机几个时间单位。4、 延时程序延时时间计算方法。课后作业1、 将本课题任务二中的R3的值改为01H、02H和08H,观察亮灯的间隔时间有何变化?2、 将本课题任务二中的RL A指令改为RR A指令,观察亮灯的顺序有何变化?3、 将本课题任务二中的亮灯数据初值改为03H、07H和55H,观察亮灯规律有何变化?4、 设计一延时5S的延时程序,并替代任务二中的延时程序,观察亮灯间隔时间。5、设单片机振荡频率为6MHz,试精确计算下列延时子程序的延时时间。 DEL: MOV R7, #0FAH DEL1: MOV R6, #0F8H NOP DEL2: DJNZ R6, DEL2DJNZ R7, DEL16、设单片机振荡频率为12MHz,试估算下列延时子程序的延时时间。MOV R5, #20 K1: MOV R6, #250 K2: DJNZ R6, K2 DJNZ R5, K1 教学单元: 算术运算程序教学时数: 2学时教学方法: 一体化教学教学目的:1、掌握加法程序和减法程序设计中用到的相关指令。 2、掌握加法程序和减法程序设计方法。教学重点:加法程序和减法程序设计方法教学难点:相关指令及应用。教学过程课题三 算术运算程序任务一 加法程序设计一、任务目标 本任务通过讲解两个双字节数加法程序设计过程,使读者掌握在编写加法程序时的具体步骤和注意事项。二、任务分析 R0 R1+ R2 R3 R4 R5 R6 已知有两个双字节无符号数,其中一个存放在R0(高字节)、R1(低字节)中,另一个存放在R2(高字节)、R3(低字节)中。求两个双字节数之和,并把结果存入R4、R5、R6中,高位在前,低位在后。实现此双字节数加法运算的示意如下:两个双字节数相加,先进行低字节相加,再进行高字节相加。低字节相加时用不带进位加法指令ADD,因其本身就已是最低位了,所以不涉及向它的进位位。而高字节相加时,除本身两个高字节相加外,还应加上低字节相加时可能产生的进位,所以高字节相加应用带进位的加法指令ADDC。 两个双字节数加法运算程序流程如图2-8所示:开始R1和R3不带进位位相加结果存于R6R0和R2带进位位相加结果存于R50和0带进位位相加结果存于R4结束MOV A,R1ADD A,R3MOV R6,AMOV A,R0ADDC A,R2MOV R5,AMOV A,#0ADDC A,#0MOV R4,A图2-8 两个双字节数加法运算程序流程图三、相关知识 1、不带进位位加法指令 ADD A,#data ;AA+ data ADD A,direct ;AA+(direct) ADD A,Rn ;AA+Rn ADD A,Ri ;AA+(Ri) 这4条指令的功能是将累加器A的内容与源操作数相加,其结果存放到累加器A中。相加过程中如果位7(D7)有进位,则进位标志CY置“1”,否则清“0”;如果位3(D3)位有进位,则辅助进位标志AC置“1”,否则清“0”。溢出标志位OV=CY6CY7,CY6为位6向位7的进位, CY7为位7向CY的进位。2、带进位位加法指令 ADDC A,#data ;AA+ data+CY ADDC A,direct ;AA+(dire
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息管理方案
- 付定金合同标准文本
- 卫生陶瓷隧道窑企业数字化转型与智慧升级战略研究报告
- 质量检验检测服务企业数字化转型与智慧升级战略研究报告
- 药品检验服务企业数字化转型与智慧升级战略研究报告
- 节能型半导体照明产品企业县域市场拓展与下沉战略研究报告
- 胶囊套合机企业数字化转型与智慧升级战略研究报告
- 冷温锻压力机企业数字化转型与智慧升级战略研究报告
- 加工插头合同样本
- 加工承诺合同标准文本
- 三亚凤凰岛国际邮轮母港
- 第三章 液压机ppt
- 眼科护理中的病人安全与风险管理
- 统编版高二历史选择性必修2《第13课现代交通运输的新变化》课件
- GB/T 14713-2023旋切机通用技术条件
- 无脊椎动物的特征和分类
- 电缆敷设培训课件
- 植被恢复安全施工方案
- 2024年员工考勤表(通用版)
- 2024年高考作文热点新闻素材积累与运用
- 《公共装置艺术》课件
评论
0/150
提交评论