找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 2243|回复: 12
打印 上一主题 下一主题
收起左侧

51单片机定时器问题,能不能在定时器里面加间隔时间?

[复制链接]
跳转到指定楼层
楼主
ID:1006726 发表于 2022-11-5 04:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚开始学单片机定时器,现在是led点亮50MS,熄灭50MS循环,能不能写成led点亮3秒,熄灭1秒,循环呢?感谢~~~
void T0Init0() interrupt 1
{
        static uchar i;
        TH0 = (65535-5000)/256;        
        TL0 = (65535-5000)%256;
        i++;
        if(i==200)
        {
        led=~led;

          i=0;/
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

举报

沙发
ID:310441 发表于 2022-11-5 07:59 来自触屏版 | 只看该作者
可以在中断中修改
回复

举报

板凳
ID:101869 发表于 2022-11-5 08:03 来自触屏版 | 只看该作者
总时间4秒小于等于3点亮否则熄灭,到达4秒时间归零
回复

举报

地板
ID:123289 发表于 2022-11-5 08:13 | 只看该作者
行啊,再加一个变量N,每次中断N+1,当N=某个数时,反转LED灯,并将N复0,这样就将中断时间扩大了N倍。很简单的事,为何想不到呢?
回复

举报

5#
ID:155507 发表于 2022-11-5 08:23 | 只看该作者
用一个定时器即可,将定时器设置成标准节拍,如1MS。需要多少定时时间,在定时器中断服务程序中计数就可以了。

http://www.51hei.com/bbs/forum.p ... 494&pid=1099428
回复

举报

6#
ID:45879 发表于 2022-11-5 08:43 | 只看该作者
去定时器终端里面加计数
回复

举报

7#
ID:883242 发表于 2022-11-5 21:05 | 只看该作者
i马上就满了,暂时不能改,TH0、TL0的初值可以改到满足你的要求。
回复

举报

8#
ID:1006726 发表于 2022-11-6 01:59 | 只看该作者
angmall 发表于 2022-11-5 08:23
用一个定时器即可,将定时器设置成标准节拍,如1MS。需要多少定时时间,在定时器中断服务程序中计数就可以 ...

感谢 大佬
回复

举报

9#
ID:121859 发表于 2022-11-6 08:48 | 只看该作者
void T0Init0() interrupt 1
{
        static uchar i;
        TH0 = (65535-50000)/256;        
        TL0 = (65535-50000)%256;
        i++;
        if(i<=60)
        {
                led=0;
        }
        else if(i>=60 && i<80)
        {
                led=1;
        }
        else i=0;
}
回复

举报

10#
ID:213173 发表于 2022-11-6 10:12 | 只看该作者
void T0Init0() interrupt 1
{
        static uchar i,j;
        TH0 = (65536-50000)/256;
        TL0 = (65536-50000)%256;
        i++;
        if(i==20)
        {
                i=0;
                j++;
                if(j==4)
                        j=0;
        }
        if(j==0)led=1;
        else led=0;
}
回复

举报

11#
ID:1006726 发表于 2022-11-11 02:50 | 只看该作者
zhxiufan 发表于 2022-11-6 08:48
void T0Init0() interrupt 1
{
        static uchar i;

学习了 感谢 大佬 ~~
回复

举报

12#
ID:1006726 发表于 2022-11-11 02:51 | 只看该作者
wulin 发表于 2022-11-6 10:12
void T0Init0() interrupt 1
{
        static uchar i,j;

学习了 感谢 大佬 ~~
回复

举报

13#
ID:965189 发表于 2022-11-11 11:44 | 只看该作者
可以改成多种节拍输出。
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表