5 指示灯闪烁控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、循环结构程序设计
延时程序中延时时间的设定: 延时程序中延时时间的设定:
第2层循环 层循环 源程序: 源程序: 指令周期 的循环体 DELAY: MOV R3, # X H 2个T机器 : , 个 DEL2: MOV R4,# Y H 2个T机器 : , 个 DEL1: NOP 1个T机器 : 个 NOP 1个T机器 个 第1层循环的 层循环的 DJNZ R4,DEL1 2 个 T机 , 循环体 DJNZ R3,DEL2 2个T机器 , 个 END 指令周期、机器周期T 与时钟周期T 的关系: 指令周期、机器周期 机器与时钟周期 时钟的关系: 怎样计 T机器=12T时钟=12×1/fosc=1us × u 算延时 时间? 时间? 延时时间的简化计算结果: 延时时间的简化计算结果: (1+1+2) × T机器× X × Y 若设置X=125,Y=200,即延时 , 若设置 , (1+1+2)us×125×200=100ms u × ×
; rel为有符号数-128--+127 rel为有符号数 128-为有符号数--+127
ROM。 ROM。
例: DENG: SJMP DENG ;跳转到 DENG指令执行程序 指令 ;原地等待 特例: $ 特例:SJMP
12
五、小灯闪烁控制
• P1.0口控制一个发光二极管闪烁? • 设计步骤:
题意分析 设计硬件电路(单片机最小系统+控制电路 控制电路) 设计硬件电路(单片机最小系统 控制电路) 画出流程图 编写源程序 仿真、 仿真、调试程序 烧片、 烧片、运行
0.25S延时程序 0.25S延时程序
源程序: 源程序: DELAY: MOV LOW2: MOV : LOW1: NOP : NOP NOP DJNZ DJNZ END R2, #250 ;第2层循环的次数 层循环的次数250 层循环的次数 R3, #200 ;第1层循环的次数 层循环的次数200 , 层循环的次数
小灯闪烁流程图
END
LJMP MAIN ;程序结束
内容小结
CPU时序。 CPU时序。 时序 延时程序的编写。 延时程序的编写。 单片机并行I/O口的特点。 单片机并行I/O口的特点。 I/O口的特点 小灯闪烁控制的系统设计方法。 小灯闪烁控制的系统设计方法。
作业
设计延时1S的控制程序。 设计延时1S的控制程序。 1S的控制程序
电路原理图
电路原理图
ORG 0030H ;起始伪指令 MAIN:MOV P1, #00H ;小灯亮 ;****延时0.25S**** MOV R2, #0FAH LOW2: MOV R3, #0C8H LOW1: NOP NOP NOP DJNZ R4,LOW1 DJNZ R3,LOW2 MOV P1, #01H ;小灯熄灭 ;****延时0.25S**** MOV R2, #0FAH LOW4: MOV R3, #0C8H LOW3: NOP NOP NOP DJNZ R4,LOW3 DJNZ R3,LOW4
指示灯闪烁控制
主要内容 一、CPU时序 二、循环结构程序设计 三、 I/O口的使用 四、无条件跳转类指令 五、小灯闪烁控制
任务引入: 任务引入:
1、何为小灯闪烁 过程? 过程? 2、如何简化重复 操作程序? 操作程序?
循环结构的程序 需要靠跳转类指令实现。
小灯闪烁流程图
一、CPU时序 CPU时序 •时钟周期(最小的时间单位) 时钟周期(最小的时间单位) 时钟周期 时钟周期也称为振荡周期,定义为时钟脉冲频率 的倒数,它是计算机中最基本的、最小的时间单位。
11
2、绝对转移指令
AJMP addr11 ; 跳转范围:该指令可以转移到2KB ROM。 跳转范围:该指令可以转移到2KB ROM。
START : SETB P1.0 ACALL DELAY AJMP START
3、相对转移指令 SJMP rel ;跳转范围:该指令可以转移到256B 跳转范围:该指令可以转移到256B
在51系列单片机中,把一个时钟周期定义为一个节拍(用P 表示),两个节拍定义为一个状态(用S表示)。
•机器周期 机器周期 表示单片机完成一个最基本的动作所需要的时间。51 系列单片机的一个机器周期由6个S周期即12个时钟周期组 成。若单片机采用12MHz的时钟频率,则机器周期为1µs; 若采用6MHz的时钟频率,则机器周期为2µs。 指令周期 执行一条指令所需要的时间,以机器周期为单位。 指令按执行时间分为单周期指令、双周期指令、四机 器周期指令。 若用12MHz晶振,则执行一条单周期、双周期和四周 期指令的时间(指令周期)分别为1µs、2µs和4µs。
特点: 特点:
8位并行I/O口:P0,P1,P2,P3; 位并行I/O口 P0,P1,P2,P3; I/O 均可作为准双向I/O端口使用。 均可作为准双向I/O端口使用。 I/O端口使用 P0、P2、P3口均有第二功能。 P0、P2、P3口均有第二功能。 口均有第二功能
单 片 机
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0
• 循环程序的组成: 循环程序的组成: 1. 初始化部分(设定循环次数等 。 初始化部分 设定循环次数等)。 设定循环次数等 2. 循环体 重复执行的部分 循环体(重复执行的部分 重复执行的部分) 3. 循环次数控制 不断修改和判别循环次数 直至结束 。 循环次数控制(不断修改和判别循环次数 直至结束)。 不断修改和判别循环次数,直至结束 4. 循环结束处理。 循环结束处理。
DJNZ
Rn ,
rel
DJNZ direct , rel
2
二、循环结构程序设计 • 结构特点:利用转移指令反复运行需多次重复的程序段。 结构特点:利用转移指令反复运行需多次重复的程序段。 • 实例:延时程序:(DELAY) 实例:延时程序:
MOV DEL: NOP : DJNZ END R3, #0FFH ;初始化----循环次数设定为 , 初始化 循环次数设定为255 循环次数设定为 R3,DEL , ;承担循环结构的 、3、4部分 承担循环结构的2、 、 部分
· · ·
PC=XXXXH XXXXH AAA9H
· · ·
PC=0000H 0002H 0001H 0000H
START : SETB P1.0 ACALL DELAY CLR P1.0 ACALL DELAY LJMP START
注意:该指令可以转移到64 KB程序存储器中的任意位置 注意:该指令可以转移到64 KB程序存储器中的任意位置。 程序存储器中的任意位置。
2.第二功能 2.第二功能
P0:访问片外扩展存储器时,分时复用为低8 P0:访问片外扩展存储器时,分时复用为低8位地址线和数据线 P2: 位地址线。 P2:高8位地址线。 P3: P3:长跳转指令:LJMP XXXXH ; XXXXH PC
PC:CPU执行指令的指导者 PC:CPU执行指令的指导者
第1层循环的 层循环的 循环体
R3,LOW1 , R2,LOW2 ,
第2层循环 层循环 的循环体
三、I/O口的使用 I/O口的使用
P1. 0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3. 0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 24 22 21 P0. 0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7
二、循环结构程序设计
• 结构特点:利用转移指令反复运行需多次重复的程序段。 结构特点:利用转移指令反复运行需多次重复的程序段。 • 循环结构需要用跳转类指令实现。 循环结构需要用跳转类指令实现。 有条件跳转—— 有条件跳转——减1非零跳转指令(2条) ——减 非零跳转指令(2条 指令(2
助记符格式 相应操作 机器周期 2 Rn←Rn-1,若 Rn≠0,则 PC←PC+rel, 否则顺 ← , , ← 序执行 ( direct) ← ( direct) -1, 若 ( direct) ≠0, ) ) , ) , 则PC←PC+rel,否则顺序执行 ← ,