项目1 灯光闪烁课件

上传人:我*** 文档编号:141981385 上传时间:2020-08-14 格式:PPT 页数:40 大小:142KB
返回 下载 相关 举报
项目1 灯光闪烁课件_第1页
第1页 / 共40页
项目1 灯光闪烁课件_第2页
第2页 / 共40页
项目1 灯光闪烁课件_第3页
第3页 / 共40页
项目1 灯光闪烁课件_第4页
第4页 / 共40页
项目1 灯光闪烁课件_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《项目1 灯光闪烁课件》由会员分享,可在线阅读,更多相关《项目1 灯光闪烁课件(40页珍藏版)》请在金锄头文库上搜索。

1、项目1 灯光闪烁,项目目标,通过单片机控制灯光闪烁,学会分析单片机最小系统的电路结构及各部分的功能,初步学习汇编程序的分析方法,并能熟练运用MOV、LJMP、SETB、CPL、DJNZ、LCALL、RET基本指令。,项目任务,要求应用AT89C51芯片,控制一只发光二极管闪烁。设计单片机控制电路并编程实现此操作。,项目分析,本项目是单片机最小系统的简单应用。设计一个单片机的最小系统,利用P1.0引脚输出电位的变化,控制发光二极管闪烁,P1.0引脚的电位变化可以通过指令来控制。,一、硬件设计,二、程序编写,ORG 0000H LJMP MAIN ORG 0030H MAIN:CLR P1.0 L

2、CALL YS SETB P1.0 LCALL YS LJMP MAIN ORG 0100H YS:MOV R7,#02H D0:MOV R6,#0A0H D1:MOV R5,#200 D2:DJNZ R5,D2 DJNZ R6,D1 DJNZ R7,D0 RET END,主程序,延时子程序,三、知识点学习,(一)汇编语言指令格式 标号: 操作码 目的操作数,源操作数;注释 1、标号(标号地址) (1)表示该指令所在的ROM单元地址 (2)一般每个程序段的第一条指令和转移指令的目的指令前须有一个标号 (3)使用注意事项 a、标号由18个字母组成,可以使用下划线 b、第一个字符必须是字母 c、指

3、令助记符或系统保留字符不能作为标号 d、标号后面必须跟一个冒号 e、一条语句可有标号,也可无标号 f、同一程序中,标号不能重名,2、操作码,(1)用于规定本语句的操作功能 (2)以指令的助记符表示 3、操作数 (1)用于给指令的操作提供数据 (2)一条指令中可以有1项、2项、3项或无操作数 (3)各操作数之间用逗号隔开 4、注释 (1)它不属于语句的功能部分 (2)对语句进行解释说明 (3)在程序汇编时,不会被编译 (4)以“;”开头,(二)寻址方式,寻址:在单片机的存储器空间中寻找指令规定的操作数据的地址,并将操作数取出来。在一条指令中,通常根据指令的源操作数来规定寻址方式的。 80C51单

4、片机有7种寻址方式: 1、直接寻址 2、立即寻址 3、寄存器寻址 4、寄存器间接寻址 5、变址寻址 6、相对寻址 7、位寻址,1、直接寻址,1)特点 指令中直接给出操作数所在的单元的字节地址。 字节地址在指令中用direct表示 例:MOV A,direct MOV A,30H MOV A,45H MOV A,00H,程序设计时代真,2)寻址范围,(1)片内RAM128字节单元(00H7FH) 在指令中直接以字节地址形式给出 (2)SFR a、直接以字节地址形式给出 b、以寄存器符号形式给出(A、B、DPTR除外) 例:MOV A,0D0H MOV A,PSW MOV R0,A 寄存器寻址 M

5、OV R0,ACC MOV R0,0E0H,两条指令的机器码都是E5D0H,即它们的执行结果相同,寻址方式也相同,直接寻址,执行结果相同,但寻址方式不同,机器码:F8H,机器码:A8E0H,2、立即寻址,1)特点 指令中直接给出所需要的操作数,该操作数称为立即数 2)注意 (1)立即数前加“#”号,以区别直接寻址地址 (2)立即数有8位(#data)、16位(#data16) 3)立即寻址方式主要用于给寄存器或内部数据存储器赋初值,也可以与累加器A作加减运算和逻辑运算 例:MOV A,#7AH 8位立即数 MOV DPTR,#1234H 16位立即数 MOV 20H,#30H MOV 20H,

6、#00110000B MOV 20H,#48 MOV 20H,30H,立即数的三种表达形式,3、寄存器寻址,1)特点 指令中直接给出存放操作数的寄存器 2)寄存器以符号形式给出 (1)当前工作寄存器组的R0R7 (2)A、B、DPTR 例:MOV 20H,A MUL AB MOV PSW,#08H MOV 21H,R0 MOV 22H,R1,4、寄存器间接寻址,1)特点 指令中给出存放操作数地址的寄存器 通过对寄存器的寻址而间接得到操作数 2)间址寄存器 R0、R1、SP、DPTR 3)寻址范围 a、片内RAM128B单元(00H7FH):R0、R1 b、片外RAM的64KB:DPTR c、在

7、堆栈操作指令中,以SP作间址寄存器,4)注意事项,a、为区别寄存器寻址方式,间接寻址寄存器前加 如Ri(i=0或1),DPTR b、不能对SFR进行间接寻址 例:将寄存器R0的内容作为单元地址,寻找 操作数送累加器A,可执行指令“MOV A, R0”。 如图所示:(R0)=65H (65H)=47H 执行指令: MOV A, R0 即将(R0)=47H送入A中。,5、变址寻址,1)特点 操作数在ROM中 该寻址方式中以DPTR(或PC)作为基址寄存器,以A作为变址寄存器,并以两者内容相加形成新的ROM地址作为操作数地址,再寻址该地址,读取数据。 2)指令 MOVC A,A+DPTR MOVC

8、A,A+PC JMP A+DPTR,查表,实现程序分支,例1:设(A)=01H,(DPTR)=2000H,(2001H)=05H则执行 MOVC A,A+DPTR后,A中内容是多少,例2、设指令MOVC A,A+PC存放在ROM2000H单元内,(A)=09H而ROM(200AH)=55H,则执行该指令后(A)=?,6、相对寻址,1)特点 以程序计数器PC的当前值作为基本地址,再加上指令中给出的相对地址偏移量rel的值,形成相对寻址地址。 因为 rel的取值为-128+127,所以可以理解为以存放该条转移指令的下一条指令地址(PC当前值)为基点,向前最多可跳转127个单元,向后最多可跳转128

9、个单元。 2)应用 相对转移类指令中 3)注意 在实际编写程序时,rel以符号地址表示。如果符号地址超出了跳转范围,在编程时将提示错误。 如:SJMP rel 在实际编程时应写成:SJMP L1 指执行这条指令时,程序转到时L1标号地址处。只是L1不能超过SJMP的当前地址的-128+127这个范围。,7、位寻址,1)特点 (1)操作数是某一数据中的一位 (2)只在位操作指令中使用 2)寻址范围 (1)片内RAM位寻址区(字节地址:20H2FH) a、直接使用位地址:00H b、字节地址加位:20H.0 (2)11个SFR的83位 a、直接使用位地址:0D6H b、位名称:AC c、字节地址加

10、位:0D0H.6 d、寄存器符号加位:PSW.6 其中0D6H、AC、0D0H.6、PSW.6都是指的PSW的辅助进位标示位,(三)指令学习,1、片内RAM数据传送指令(MOV) 这类指令是数据传送指令中的一部分,指令中的源操作数和目的操作数的地址都在单片机内部数据存储器(RAM)中。 指令格式:MOV 目的操作数,源操作数 指令功能:将源操作数所指定的内容传送到目的操作数所指定的存储单元或寄存器中,而源操作数中的内容保持不变。,(1)以Rn为目的地址的传送指令(3条),MOV Rn,A ;Rn (A) MOV Rn,#data ;Rn data MOV Rn,direct ;Rn (dire

11、ct) 例:已知(40H)=44H 执行MOV R5,40H后 (R5)=44H,(2)以A为目的地址的传送指令(4条),MOV A,Rn ;A (Rn) MOV A,direct ;A (direct) MOV A,Ri ;A (Ri) MOV A,#data ;A data 例:1、已知(R0)=21H,则执行MOV A,R0后(A)=? 2、已知片内RAM(20H)=36H,则执行 MOV A,20H后,(A)=?,(20H)=? 3、已知(36H)=00H,(R0)=36H, 则执行MOV A,R0后,(A)=?,(36H)=?,(R0)=?,(3)以直接地址为目的地址的传送指令(5条

12、),MOV direct,A ;direct (A) MOV direct,Rn ;direct (Rn) MOV direct,Ri ;direct (Ri) MOV direct,#data ;direct data MOV direct1,direct2 ;direct1 (driect2) 例:1、 MOV A,#20H MOV 23H,A MOV 80H,A 执行以上指令后,(A)=?、(23H)=?、(P0)=?,2、已知(R1)=28H,则执行MOV 38H,R1后,(38H)=?,3、已知(R1)=28H,(28H)=30H,执行MOV 33H,R1 后,(33H)=? 4、已

13、知(R0)=40H,(40H)=78H,执行MOV 30H,R0后,(30H)=?,(4)以间接地址为目的地址的传送指令(3条),MOV Ri,A ;(Ri) (A) MOV Ri,#data ;(Ri) data MOV Ri,direct ;(Ri) (direct) 例:(30H)=40H,(R0)=70H 则执行:MOV R0,30H 结果:(70H)=?,(5)16位数据传送指令(1条),MOV DPTR,#data16 例:MOV DPTR,#76FEH 执行后:(DPTR)=76FEH 而(DPH)=76H,(DPL)=FEH,练习(分析每条指令执行的结果),MOV 40H,#0

14、0H MOV A,#01H MOV 41H,A MOV R0,#02H MOV 42H,R0 MOV 30H,#03H MOV 43H,30H MOV 31H,#04H MOV R0,#31H MOV 44H,R0 MOV 32H,#05H MOV R1,#32H MOV A,R1 MOV 45H,A,2、转移指令,1)无条件转移指令 (1)长跳转: LJMP addr16 ;addr16 pc (2)短跳转: AJMP addr11 ; addr11 pc100,pc1511不变 (3)相对跳转:SJMP rel ;pc当前值+ rel pc (4)散转指令:JMP A+DPTR ;(A)+

15、(DPTR) pc 注意:在实际编写程序时addr16、addr11、rel都用符号地址来表示,如LJMP L1 表示在执行该长跳转指令时,程序跳到标号为L1的地方继续执行程序。如 果标号地址超出了指令的跳转范围,在程序编译时会出现出错提示。,例:散转指令JMP举例,设某个控制系统设三个按钮,按下按钮0,20H单元将置0,按下按钮1,20H单元将置1,按下按钮2,20H单元将置2,要求程序根据20H单元数值,决定执行L1、L2、L3其中一个程序。 程序如下: MOV A,20H RL A ADD A,20H MOV DPTR,#TT JMP A+DPTR TT: LJMP L1 LJMP L2 LJMP L3 L1: L2: L3:,2)条件转移指令,DJNZ Rn,rel ;Rn (Rn)-1 (Rn)=0,程序顺序执行 (Rn)=0,程序跳转 DJNZ direct,rel ;direct (direct)-1

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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