22
中中中中中中 中中中中中中中中中 《》 3.2 中中中—— 中中中中中中中中中中 中中中中中中 中中中

中等职业教材 《 单片机原理与应用 》

  • Upload
    krista

  • View
    205

  • Download
    3

Embed Size (px)

DESCRIPTION

中等职业教材 《 单片机原理与应用 》. 3.2 指令系统 —— 发光二极管的闪烁控制. 新港职业学校 明月新. 一、情景导入 —— 金陵夜景. 闪烁灯. 闪烁灯硬件电路. 二、知识回顾. 点亮 1 个 LED 灯程序. ORG 0000H. LOOP : MOV P1,# 0FE H. SJMP LOOP. END. 二、知识回顾. 点亮 8 个 LED 灯程序. ORG 0000H. LOOP : MOV P1,# 00 H. SJMP LOOP. END. 思考问题. 怎样才能让灯不断地闪烁呢?. ORG 0000H. - PowerPoint PPT Presentation

Citation preview

Page 1: 中等职业教材 《 单片机原理与应用 》

中等职业教材《单片机原理与应用》

3.2 指令系统

—— 发光二极管的闪烁控制

新港职业学校 明月新

Page 2: 中等职业教材 《 单片机原理与应用 》

一、情景导入——金陵夜景

Page 3: 中等职业教材 《 单片机原理与应用 》

闪烁灯

Page 4: 中等职业教材 《 单片机原理与应用 》

闪烁灯硬件电路

Page 5: 中等职业教材 《 单片机原理与应用 》

二、知识回顾点亮 1个 LED 灯程序

ORG 0000H

LOOP : MOV P1,#0FEH

SJMP LOOP

END

Page 6: 中等职业教材 《 单片机原理与应用 》

二、知识回顾点亮 8个 LED 灯程序

ORG 0000H

LOOP : MOV P1,#00H

SJMP LOOP

END

Page 7: 中等职业教材 《 单片机原理与应用 》

思考问题怎样才能让灯不断地闪烁呢?

ORG 0000H

LOOP : MOV P1,#00H ; (8 个灯全亮 )

MOV P1,#0FFH ; (8 个灯全灭 )

SJMP LOOP

END

Page 8: 中等职业教材 《 单片机原理与应用 》

修改程序,实现闪烁 ORG 0000H LOOP : MOV P1,#00H LCALL DELAY MOV P1,#0FFH LCALL DELAY SJMP LOOPDELAY : MOV R0 , #0FAH

            

D1 : MOV R1 , #0FAH

D2 : DJNZ R1 , D2 DJNZ R0 , D1

RET END

Page 9: 中等职业教材 《 单片机原理与应用 》

二、知识回顾——指令复习

LCALL :

RET :

DJNZ :

DJNZ Rn , rel :

子程序调用指令

子程序返回指令

减 1 不为 0 转移指令

循环控制指令

当 Rn-1≠0 ,转到 rel 处;

当 Rn-1=0 ,往下执行。

MOV Rn , #DATA8 :循环次数设定指令

Page 10: 中等职业教材 《 单片机原理与应用 》

三、明确学习目标

1. 理解 LED 闪烁灯的编程思路和实现方法,并看懂程序;

2. 会通过 Keil 软件及 STC—ISP 下载软件进行程序调试和仿真演示;

3. 掌握有关汇编指令的功能及应用;

4. 延时程序的理解以及根据延时时间修改延时程序。

Page 11: 中等职业教材 《 单片机原理与应用 》

三、新课认知 1 .程序讲解 ORG 0000H ;①LOOP : MOV P1,#00H ;②

LCALL DELAY ;③ MOV P1,#0FFH ;④ LCALL DELAY ;⑤ SJMP LOOP ;⑥DELAY : MOV R0 , #0FAH ; ⑦ D1 : MOV R1 , #0FAH ;⑧ D2 : DJNZ R1 , D2 ;⑨ DJNZ R0 , D1 ;⑩ RET ;

⑾ END ;⑿

(设置起始地址伪指令) ( 8 个灯亮) (调用延时子程序,灯亮的时间)

( 8 个灯灭) (调用延时子程序,灯灭的时间)

(循环,转去执行 LOOP (标号))

(立即数为 250 ,送给 R0 ) (立即数为 250 ,送给 R1 )

(沿蓝色区域转圈 250 次,小循环)

(沿红色区域转圈 250 次,大循环) (返回)

(汇编结束伪指令)

Page 12: 中等职业教材 《 单片机原理与应用 》

三、新课认知 2 .程序讲解计算精确的延时时间为多少微秒( 晶振频率= 12MHZ)?( 延时子程序如下:DELAY : MOV R0 , #0FAH  D1 : MOV R1 , #0FAH   D2 : DJNZ R1 , D2      DJNZ R0 , D1      RET )

答: t=1 + (1+2×250+2)×250+2≈2×250×250 =125000 微秒 =125 毫秒

Page 13: 中等职业教材 《 单片机原理与应用 》

四、仿真操作1. 双击 Keil uVision2 的桌面快捷方式 ;

2. 关闭工程并新建一个工程,保存并选择 CPU 型号 ; 3. 新建文本,输入源程序,保存源程序( .asm );

4. 源程序的编译与生成目标文件( HEX 文件);

5. 运行 STC—ISP 下载软件;

6 .打开单片机学习板电源,进行仿真演示。

Page 14: 中等职业教材 《 单片机原理与应用 》

五、知识拓展1 .修改源程序,实现:1 ) P1 口 1 、 3 、 5 、 7 灯亮灭闪烁;2 ) P1 口 2 、 4 、 6 、 8 灯亮灭闪烁;3 ) P1 口 1 、 2 、 3 、 4 灯一直亮, 5 、 6 、 7 、 8 灯亮灭闪烁;4 ) P1 口 5 、 6 、 7 、 8 灯一直亮, 1 、 2 、 3 、 4 灯亮灭闪烁;答: 1 )将指令 MOV P1,#00H 修改为 MOV P1,#55H ;

2 )将指令 MOV P1,#00H 修改为 MOV P1,#0AAH ;

3 )将指令 MOV P1,#0FFH 修改为 MOV P1,#0F0H ;

4 )将指令 MOV P1,#0FFH 修改为 MOV P1,#0FH ;

Page 15: 中等职业教材 《 单片机原理与应用 》

五、知识拓展

2.1 )通过程序中参数的调整,来改变 LED 的闪烁频率(延时时间)( f=10HZ, t =100ms )。

分析: t≈2×200×250 =100000 微秒 =100 毫秒 =0.1 秒DELAY : MOV R0 , #0C8H   ;#200  D1 : MOV R1 , #0FAH   ;#250

Page 16: 中等职业教材 《 单片机原理与应用 》

五、知识拓展

2 ) a. 如果将参数改为如下数值,可否实现闪烁效果?DELAY : MOV R0 , #05H   D1 : MOV R1 , #05H

答:不可以。因为 t≈2×5×5=50 微秒 =0.05毫秒

Page 17: 中等职业教材 《 单片机原理与应用 》

六、课堂小结1 .几个重要指令。

LCALL :子程序调用指令RET :子程序返回指令DJNZ :减 1 不为 0 转移指令 当 Rn-1=0 ,转到 rel; 当 Rn-1=0 ,往下执行。循环次数设定指令: MOV Rn , #DATA8(其中 #DATA8 就是循环次数值)循环控制指令: DJNZ Rn , rel(指令中 rel 常常由循环入口标号表示,如 D1 、 D2 )

Page 18: 中等职业教材 《 单片机原理与应用 》

六、课堂小结2 .闪烁灯程序,并上机调试运行。

ORG 0000HLOOP : MOV P1,#00H    LCALL DELAY       MOV P1,#0FFH       LCALL DELAY       SJMP LOOP    DELAY : MOV R0 , #0FAH   D1 : MOV R1 , #0FAH     D2 : DJNZ R1 , D2       DJNZ R0 , D1        RET            END         

Page 19: 中等职业教材 《 单片机原理与应用 》

六、课堂小结

3 .通过修改程序改变闪烁现象;通过修改程序改变延时时间。

Page 20: 中等职业教材 《 单片机原理与应用 》

七、布置作业——课后思考题

1 )停一个周期,用什么指令?(必做)

2 )一个单元中的数是否能超过 255 ?为什么?(必做)

3 )如果需要 f=5HZ,t =200ms ,即延时 200ms 怎么办? (选做)

4 )修改主程序,实现流水灯效果。(选做)

Page 21: 中等职业教材 《 单片机原理与应用 》

金陵夜景

Page 22: 中等职业教材 《 单片机原理与应用 》

谢谢大家