好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

31页
  • 卖家[上传人]:ldj****22
  • 文档编号:26351927
  • 上传时间:2017-12-25
  • 文档格式:PPT
  • 文档大小:1MB
  • / 31 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 任务五 时间间隔为1s的流水灯控制,,机电一体化教研室,学习目标,通过单片机控制时间间隔为1S的流水灯系统的制作,了解单片机定时器的结构及定时器的工作方式设定、初始值设置等基本技能机电一体化教研室,工作任务,正确组装流水灯控制电路 编写1S精确定时流水灯控制电路程序并完成调试根据要求修改程序并观察运行结果完成实训报告,机电一体化教研室,精确定时的流水灯电路,机电一体化教研室,相关知识点:,一、定时器/计数器逻辑结构,机电一体化教研室,T0和T1可编程选择为定时功能与计数功能,二者之间有什么不同?,机电一体化教研室,二、定时器/计数器初始化,一、步骤1.确定定时/计数器的工作方式---对TMOD寄存器编程2.计算定时/计数器中的计数初值,并装载到TH和TL3.定时/计数在中断方式工作时,须开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,,,机电一体化教研室,各位的含义: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为定时工作方式,要求用软件启动 定时器T0工作,按方式1工作;定时器T1为计数 工作方式,要求软件启动,工作方式为方式2。

      则根据TMOD各位的定义可知,其控制字为:,即控制字为61H,其指令形式为: MOV TMOD,#61H TMOD=0X61;,机电一体化教研室,思考: 本次任务中,用定时/计数器T1工作在方式1,定时1S,采用软件启动的方式,请设置TMOD0,0,0,1,0,0,0,0,控制字:10H,指令:TMOD=0x10;,机电一体化教研室,注意:TMOD不能进行位寻址,只能用字节指令设置定时器工作方式复位时,TMOD所有位均清零机电一体化教研室,2.计算定时/计数器中的计数初值,并装载到TH和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分频,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的访问地址依次为8AH8DH,每个寄存器均可被单独访问,因此可以被设置为8位、13位或16位计数器使用在计数器允许的计数范围内,计数器可以从任何值开始计数,对于加1计数器,当计到最大值时(对于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的计算如下: X = M – 计数值 计算出来的结果X转换为16进制数后分别写入TL0(TL1)、TH0(TH1)注意!方式0时初始值写入时,对于TL不用的高3位应填入0!,机电一体化教研室,用T1、工作方式0实现1秒延时函数,晶振频率为12MHz方式0采用13位计数器,其最大定时时间为:8192×1s = 8.192ms,可选择定时时间为5ms,再循环200次。

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

      方式2采用8位计数器,其最大定时时间为:256×1s = 256us,可选择定时时间为250us,再循环4000次定时时间为250ms,则计数值为250us/1s =250,T1的初值为: X = M 计数值= 256  250 = 6 TH1=6;TH0=6;,3.用T1、工作方式2实现1秒延时函数,晶振频率为12MHz,请计算其初值,并加载到TH1和TL14.用T1、工作方式3实现1秒延时函数,晶振频率为12MHz,请计算其初值,并加载到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溢出标志计满后自动置1TR1 (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;i<0xc8;i++){ // 设置200次循环次数 TH1=0x63; // 设置定时器初值 TL1=0x18; TR1=1; // 启动T1 while(!TF1); // 查询计数是否溢出,即定时5ms时间到,TF1=1 TF1=0; // 5ms定时时间到,将定时器溢出标志位TF1清零 }},举 例1,机电一体化教研室,任务分析,用单片机控制8个发光二极管,使8个发光二极管依次顺序点亮,时间间隔为精确的1S。

      如果用延时函数来实现间隔1S,时间较难精确控制,且单片机工作效率低可用定时器中断实现流水灯的控制机电一体化教研室,精确定时的流水灯电路,机电一体化教研室,精确定时的流水灯程序,#include "REG51.H“void delay1s() { unsigned char i; for(i=0;i<0x14;i++){ TH1=0x3c; TL1=0xb0; TR1=1; while(!TF1); TF1=0;}},void main(){ unsigned char i,w; TMOD=0x10; while(1){ w=0x01; for(i=0;i<8;i++){P1=~w; w<<=1; delay1s();}}},机电一体化教研室,动动手,创建工程 保存工程建立源文件 保存源文件源文件加入工程编译 链接 调试,,,,,程序编写调试,机电一体化教研室,动动手,使用电子连接线连接精确定时的流水灯试验电路P1输出端口与LED接线端口使用USB数据线连接电脑USB端口与单片机试验箱数据端口全速运行,观察1S流水灯运行效果,硬件连接,机电一体化教研室,拓展思考,现在的流水灯流动的速度是固定的,怎么才能让流动的速度有慢到快、再由快到慢反复变化?,Thank You !,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.