0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用定时器制作万年历?

冬至子 来源:工科男的Matlab学习日志 作者:浅蓝格子白衬衫 2023-07-17 15:33 次阅读

说明

使用 timer 对象以排定执行一次或多次 MATLAB® 命令。如果您排定计时器多次执行命令,可以定义每次执行之间的时间间隔以及如何处理排队冲突。

timer 对象使用回调函数执行命令。回调函数在某些事件中执行代码。对于 timer 对象,您可以将回调函数指定为函数句柄或字符串。如果回调函数是字符串,MATLAB 将以可执行代码形式对其求值。当计时器启动 (StartFcn)、执行 (TimerFcn)、停止 (StopFcn) 或遇到错误 (ErrorFcn) 时,计时器对象支持回调函数。

附注: timer 对象受到您的硬件操作系统和软件的限制。应避免对实时应用程序使用计时器对象。

构造

t= timer 创建一个空的 timer 对象,以排定 MATLAB 命令的执行。如果启动了计时器,但未定义 TimerFcn,则会出现错误。

t= timer(Name,Value) 使用由一个或多个 Name,Value 对组参数指定的其他选项创建 timer 对象。

MATLAB中使用定时器(timer)基本格式为

t = timer('PropertyName1', PropertyValue1, 'PropertyName2', PropertyValue2,...);

start(t);

最简单的定时器一般指定以下属性:

TimerFcn ——指定定时器被触发时要执行的函数或语句

Period ——指定定时器的触发时间,单位为秒

ExecutionMode ——指定定时器的触发方式(触发一次,还是循环触发……),该属性有四个可选值,具体见matlab帮助

TasksToExecute ——指定定时器最多被触发的次数,该属性默认为inf,如果希望不停的循环执行,可以不指定该属性

tag ——一个字符串,可以任意指定,一般用于标志某个特定的定时器,以方便在程序中别的地方查找该定时器

与定时器相关的其他操作

delete(timer) %删除

disp(timer) %显示

get(timer) %获取属性

isvalid(timer) %检查有效性

set(timer) %设置属性

start %开始

startat %开始(可以指定开始时的某些参数)

stop %停止

timerfind %查找某个定时器

timerfindall %也是查找

wait %等待直到定时器被停止

例如写一个计数器,每过一秒计数加1

x=0

t = timer('TimerFcn','disp(x);x=x+1;', 'Period', 1, 'ExecutionMode', 'fixedSpacing');

start(t);

运行结果如下,如果不想继续可以在命令窗口输入delete(h)

图片

利用定时器我们就可以制作数字时钟

首先创建fig

图片

在fig的open回调函数里写计时器函数并创建时间显示函数。

function varargout = szsz(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton',  gui_Singleton, ...

               'gui_OpeningFcn', @szsz_OpeningFcn, ...

               'gui_OutputFcn',  @szsz_OutputFcn, ...

               'gui_LayoutFcn',  [] , ...

               'gui_Callback',   []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function szsz_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

global h

h=timer('TimerFcn',{@disptime,handles},'ExecutionMode','fixedRate','Period',1);

%定时器,定时会触发 TimerFcn 函数,定时函数(TimerFcn)触发用户自定义的函数(disptime函数)

start(h); %开启定时器

guidata(hObject, handles);

function disptime( , , handles)%显示系统时间函数

shijian=datestr(now,'yyyy-mm-dd HH:MM:SS');

%生成前日期字符串

set(handles.text2,'string',shijian(1:4));

%%显示年

set(handles.text8,'string',shijian(6:7));

%%显示月

set(handles.text10,'string',shijian(9:10));

%%显示日

set(handles.text12,'string',shijian(12:end));

%%显示时分秒

function varargout = szsz_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function figure1_CreateFcn(hObject, eventdata, handles)

function figure1_DeleteFcn(hObject, eventdata, handles)

global h

delete(h)%%删除显示日期的定时器

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 定时器
    +关注

    关注

    23

    文章

    3236

    浏览量

    114413
  • 计时器
    +关注

    关注

    1

    文章

    417

    浏览量

    32624
  • 触发器
    +关注

    关注

    14

    文章

    1995

    浏览量

    61028
  • MATLAB仿真
    +关注

    关注

    4

    文章

    175

    浏览量

    19896
  • 数字时钟
    +关注

    关注

    2

    文章

    150

    浏览量

    20302
收藏 人收藏

    评论

    相关推荐

    单片机万年历制作详细资料

    `单片机万年历制作详细资料包括仿真测试、源程序、效果图等,可以实际进行设计。单片机万年历制作详细资料[hide][/hide]`
    发表于 11-30 11:52

    万年历制作附程序

    `万年历制作附程序和电路图,共享啦`
    发表于 07-30 16:02

    电子万年历设计与制作资料

    电子万年历设计与制作资料
    发表于 08-20 11:18

    万年历制作求助

    题 目:万年历电路设计内容要求:(包括规定阅读的文献、应完成的程序、图纸、实验、说明书等)一、任务设计并制作一个万年历,其组成框图如图所示。它是以单片机为主控制,时间数据是通过AT8
    发表于 10-14 00:12

    万年历

    跪求设计一种多功能万年历,该万年历可以显示时间、实时显示温度和湿度,同时还具有农历提示功能,显示中国传统节日相关信息,具有整点报时功能,每当整点到来蜂鸣器会发出一声鸣叫。主要技术指标:温湿度测量范围
    发表于 03-05 14:20

    万年历电路图

    万年历电路图万年历电路图
    发表于 08-05 14:59

    使用定时器万年历~~~

    自己刚好做课题设计。顺便写了个使用定时器0作为计时的万年历~功能如下: 1.时间可调 2.农历转换 3.温度显示,温度上限报警,温度上限报警值可调 4.加入简单汉字
    发表于 05-09 17:53

    万年历

    万年历万年历万年历万年历
    发表于 03-20 21:08

    万年历 仿真

    游戏 万年历
    发表于 07-08 11:19

    如何在51单片机实现电子万年历 精选资料分享

    51单片机制作万年历的基本功能部分,软件特性可以在proteus上仿真,使用51单片机定时器T0做万年历计时信号源,电子万年历计时系统在ti
    发表于 07-19 07:44

    如何去使用51单片机定时器T0做电子万年历

    如何去使用51单片机定时器T0做电子万年历?其代码是什么?如何对电子万年历软件特性进行proteus仿真?
    发表于 07-19 06:05

    万年历

    电子万年历,可以运行的哦,单片机相关知识。
    发表于 05-17 11:09 16次下载

    万年历

    基于C51单片机的万年历
    发表于 12-17 20:48 118次下载

    万年历protues仿真 实时时钟仿真 12864万年历仿真 5

    万年历protues仿真 实时时钟仿真 12864万年历仿真 51万年历设计
    发表于 01-14 22:32 174次下载

    基于AT89C2051单片机制作的电子万年历的原理及设计

    很多用AT89C205l制作电子万年历的文章,介绍的都是采用单片机内部定时计数器定时计时,难免受到停电的影响而需要经常调整,为此,笔者设计制作
    的头像 发表于 09-21 10:12 1.3w次阅读
    基于AT89C2051单片机<b class='flag-5'>制作</b>的电子<b class='flag-5'>万年历</b>的原理及设计