任务五时间间隔为1S钟的流水灯控制.ppt

上传人:本田雅阁 文档编号:2082689 上传时间:2019-02-11 格式:PPT 页数:31 大小:1MB
返回 下载 相关 举报
任务五时间间隔为1S钟的流水灯控制.ppt_第1页
第1页 / 共31页
任务五时间间隔为1S钟的流水灯控制.ppt_第2页
第2页 / 共31页
任务五时间间隔为1S钟的流水灯控制.ppt_第3页
第3页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《任务五时间间隔为1S钟的流水灯控制.ppt》由会员分享,可在线阅读,更多相关《任务五时间间隔为1S钟的流水灯控制.ppt(31页珍藏版)》请在三一文库上搜索。

1、任务五 时间间隔为1s的流水灯控制,机电一体化教研室,学习目标,通过单片机控制时间间隔为1S的流水灯系统的制作,了解单片机定时器的结构及定时器的工作方式设定、初始值设置等基本技能。,机电一体化教研室,工作任务,正确组装流水灯控制电路 编写1S精确定时流水灯控制电路程序并完成调试 根据要求修改程序并观察运行结果 完成实训报告,机电一体化教研室,精确定时的流水灯电路,机电一体化教研室,相关知识点:,一、定时器/计数器逻辑结构,机电一体化教研室,T0和T1可编程选择为定时功能与计数功能,二者之间有什么不同?,机电一体化教研室,二、定时器/计数器初始化,一、步骤 1.确定定时/计数器的工作方式-对TM

2、OD寄存器编程。 2.计算定时/计数器中的计数初值,并装载到TH和TL。 3.定时/计数在中断方式工作时,须开CPU中断和源中断-对IE寄存器编程。 4.启动定时/计数器-对TCON中的TR0或TR1编程。,机电一体化教研室,二、过程分析,1.确定定时/计数器的工作方式-对TMOD寄存器编程。,作用:TMOD用来确定两个定时器的工作方式。低半字节设置定时器T0,高半字节设置定时器T1。 字节地址:89H,不可以位寻址。 格式: D7 D6 D5 D4 D3 D2 D1 D0 GATE C/T M1 M0 GATE C/T M1 M0 定时器T1 定时器T0,定时器的方式寄存器TMOD,机电一体

3、化教研室,各位的含义: C/T:功能选择位。0为定时器方式;1为计数器方式。 M1,M0:方式选择位。可以选择为四种工作方式0、1、2、3之1。 四种工作方式的区别后面讲解。,机电一体化教研室,GATE:门控位。 0:只要软件控制位TR0或TR1置1即可启动定时器开始工作; 1:只有INT0或INT1引脚为高电平,且TR0或TR1置1时,才能启动相应的定时器开始工作。,返回,TF0,TH0,TL0,12 分频,OSC,中断,高8位,低5位,控制,+,T0(P3.4),TR0,GATE,INT0 (P3.2),C/T=0,C/T=1,机电一体化教研室,例如:设定时器T0为定时工作方式,要求用软件

4、启动 定时器T0工作,按方式1工作;定时器T1为计数 工作方式,要求软件启动,工作方式为方式2。 则根据TMOD各位的定义可知,其控制字为:,即控制字为61H,其指令形式为: MOV TMOD,#61H TMOD=0X61;,机电一体化教研室,思考: 本次任务中,用定时/计数器T1工作在方式1,定时1S,采用软件启动的方式,请设置TMOD。,0,0,0,1,0,0,0,0,控制字:10H,指令:TMOD=0x10;,机电一体化教研室,注意:TMOD不能进行位寻址,只能用字节指令设置定时器工作方式。复位时,TMOD所有位均清零。,机电一体化教研室,2.计算定时/计数器中的计数初值,并装载到TH和

5、TL。 (1)定时器四种工作方式特点,主要特点: 方式0:13位定时器。 TH0的8位+TL0的低5位 方式1:16位定时器。 TH0的8位+TL0的8位 方式2:能重复置初始值的8位定时器 。 TL0和TH0必须赋相同的值。 方式3:只适用于定时器0,T0被拆成两个独立的8位定时器TL0,TH0。 其中:TL0与方式0、1相同,可定时或计数。用定时器T0的 GATE、C/T、TR0、TF0、T0、和INT0控制。 TH0只可用作简单的内部定时功能。占用T1的控制位TF1、TR1和INT1,启动关闭仅受TR1控制。,机电一体化教研室,定时器的方式0、1示意图,返回,TF0,TH0,TL0,12

6、 分频,OSC,中断,高8位,8位或低5位,控制,+,T0(P3.4),TR0,GATE,INT0 (P3.2),C/T=0,C/T=1,机电一体化教研室,定时器的方式2示意图,TH0,8位,0,溢出,机电一体化教研室,(2)定时器的初始值的计算,设置计数初值 T0、T1是16位加法计数器,分别由两个8位专用寄存器组成,T0由TH0和TL0组成,T1由TH1和TL1组成。TL0、TL1、TH0、TH1的访问地址依次为8AH8DH,每个寄存器均可被单独访问,因此可以被设置为8位、13位或16位计数器使用。 在计数器允许的计数范围内,计数器可以从任何值开始计数,对于加1计数器,当计到最大值时(对于

7、8位计数器,当计数值从255再加1时,计数值变为0),产生溢出。 定时/计数器允许用户编程设定开始计数的数值,称为赋初值。初值不同,则计数器产生溢出时,计数个数也不同。例如:对于8位计数器,当初值设为100时,再加1计数156个,计数器就产生溢出;当初值设为200时,再加1计数56个,计数器产生溢出。,机电一体化教研室,对于不同的工作方式,计数器位数不同,故最大计数值M也不同: 方式0:M=213=8192 方式1:M=216=65536 方式2:M=28=256 方式3:定时器0分为2个8位计数器,每个M均为256。 因为定时/计数器是作加1计数,并在计满溢出时产生中断,因此初值X的计算如下

8、: X = M 计数值 计算出来的结果X转换为16进制数后分别写入TL0(TL1)、TH0(TH1)。 注意!方式0时初始值写入时,对于TL不用的高3位应填入0!,机电一体化教研室,用T1、工作方式0实现1秒延时函数,晶振频率为12MHz。 方式0采用13位计数器,其最大定时时间为:81921s = 8.192ms,可选择定时时间为5ms,再循环200次。 定时时间为5ms,则计数值为5ms/1s =5000,T1的初值为: X = M 计数值= 8192 5000 = 3192 = C78H = 0110001111000B 13位计数器中TL1的高3位未用,填写0,TH1占高8位,所以,X

9、的实际填写值应为: X = 0110001100011000B = 6318H,思考,1.用T1、工作方式0实现1秒延时函数,晶振频率为12MHz,请计算其初值,并加载到TH1和TL1。,机电一体化教研室,用T1、工作方式1实现1秒延时函数,晶振频率为12MHz。 方式1采用16位计数器,其最大定时时间为:655361s = 65.536ms,可选择定时时间为50ms,再循环20次。 定时时间为50ms,则计数值为50ms/1s =50000,T1的初值为: X = M 计数值=65536 50000 = 15536 = 3CB0H TH1=0X3C; TH0=0xBO;,2.用T1、工作方式

10、1实现1秒延时函数,晶振频率为12MHz,请计算其初值,并加载到TH1和TL1。,机电一体化教研室,用T1、工作方式2实现1秒延时函数,晶振频率为12MHz。 方式2采用8位计数器,其最大定时时间为:2561s = 256us,可选择定时时间为250us,再循环4000次。 定时时间为250ms,则计数值为250us/1s =250,T1的初值为: X = M 计数值= 256 250 = 6 TH1=6;TH0=6;,3.用T1、工作方式2实现1秒延时函数,晶振频率为12MHz,请计算其初值,并加载到TH1和TL1。,4.用T1、工作方式3实现1秒延时函数,晶振频率为12MHz,请计算其初值

11、,并加载到TH1和TL1。,机电一体化教研室,4.启动定时/计数器-对TCON中的TR0或TR1编程。,3.定时/计数在中断方式工作时,须开CPU中断和源中断-对IE寄存器编程。,定时器的控制寄存器TCON,作用:TCON用来控制两个定时器的启动、停止,表明定时器的溢出、中断情况。 字节地址:88H,可以位寻址。系统复位时,所有位均清零。 格式: D7 D6 D5 D4 D3 D2 D1 D0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,机电一体化教研室,各位的含义:TCON中的低4位与中断有关,在中断章节中讨论。 TF1 (8FH):定时器1溢出标志。计满后自动置1。 T

12、R1 (8EH):定时器1运行控制位。由软件清零关闭定时器1。 当GATE=0时,TR1 软件置1即启动定时器1 。(SETB TR1) 当GATE=1时,且INT1为高电平时,TR1置1启动定时器1 ;,机电一体化教研室,用T1方式0实现本任务中1秒延时函数如下: void delay1s() unsigned char i; TMOD=0x00; / 置T1为工作方式0 for(i=0;i0xc8;i+) / 设置200次循环次数 TH1=0x63; / 设置定时器初值 TL1=0x18; TR1=1; / 启动T1 while(!TF1); / 查询计数是否溢出,即定时5ms时间到,TF

13、1=1 TF1=0; / 5ms定时时间到,将定时器溢出标志位TF1清零 ,举 例1,机电一体化教研室,任务分析,用单片机控制8个发光二极管,使8个发光二极管依次顺序点亮,时间间隔为精确的1S。 如果用延时函数来实现间隔1S,时间较难精确控制,且单片机工作效率低。 可用定时器中断实现流水灯的控制。,机电一体化教研室,精确定时的流水灯电路,机电一体化教研室,精确定时的流水灯程序,#include “REG51.H“ void delay1s() unsigned char i; for(i=0;i0x14;i+) TH1=0x3c; TL1=0xb0; TR1=1; while(!TF1); T

14、F1=0; ,void main() unsigned char i,w; TMOD=0x10; while(1) w=0x01; for(i=0;i8;i+) P1=w; w=1; delay1s(); ,机电一体化教研室,动动手,创建工程 保存工程 建立源文件 保存源文件 源文件加入工程 编译 链接 调试,程序编写调试,机电一体化教研室,动动手,使用电子连接线连接精确定时的流水灯试验电路P1输出端口与LED接线端口 使用USB数据线连接电脑USB端口与单片机试验箱数据端口 全速运行,观察1S流水灯运行效果,硬件连接,机电一体化教研室,拓展思考,现在的流水灯流动的速度是固定的,怎么才能让流动的速度有慢到快、再由快到慢反复变化?,Thank You !,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1