找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1934|回复: 6
打印 上一主题 下一主题
收起左侧

求助,关于单片机定时器中断时间问题

[复制链接]
跳转到指定楼层
楼主
ID:661513 发表于 2020-1-25 11:50 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1黑币
#include "reg52.h"

sbit led1 = P2^0;

unsigned int cnt = 0;

void Timer0Init();

void main()
{
        Timer0Init();
        while(1)
        {
               
        }
}


void Timer0Init()           //定时1ms,11.0592M
{
        TMOD = 0X01;
        TL0 = 0XCD;
        TH0 = 0XD4;
        TR0 = 1;
        TF0 = 0;
        ET0 = 1;
        EA = 1;
}


void Timer0() interrupt 1
{
        TL0 = 0XCD;
        TH0 = 0XD4;
        
        cnt++;
        if(cnt>=100)
        {
                cnt = 0;
                led1 = ~led1;
        }
        
}
预期效果0.1ms闪烁,实际效果1s闪烁,求助

最佳答案

查看完整内容

你好,你的定时器赋初值为11ms,加上下面cnt==100,就是1100ms一次,可以改成下面这段,因为1ms的闪烁间隔我看不出来,,但是应该是对的void Timer0() interrupt 1 { TH0=0XFC; TL0=0X18; cnt++; if(cnt==1) { cnt = 0; led1 = ~led1; } }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:685478 发表于 2020-1-25 11:50 | 只看该作者
你好,你的定时器赋初值为11ms,加上下面cnt==100,就是1100ms一次,可以改成下面这段,因为1ms的闪烁间隔我看不出来,,但是应该是对的void Timer0() interrupt 1 {         TH0=0XFC;                                 TL0=0X18;                  cnt++;         if(cnt==1)         {                 cnt = 0;                 led1 = ~led1;         }          }
回复

使用道具 举报

板凳
ID:688263 发表于 2020-1-27 00:45 | 只看该作者
知道为何没人回答吗?
提问的方法不对,描述不清楚.

虽然不知道那些寄存器什么意思,最快的方法就是把那个00改成10.然后好好看技术手册,修改寄存器的数值
回复

使用道具 举报

地板
ID:410674 发表于 2020-1-27 07:38 来自手机 | 只看该作者
你是不是问错了啊,按照你代码逻辑是100ms闪烁一次吧,因为你定时器最短是1ms的,怎么会变成0.1ms闪烁呢,况且0.1ms的闪烁人眼根本分辨不过来,现象是一直亮,没什么意义
回复

使用道具 举报

5#
ID:661513 发表于 2020-1-27 13:59 | 只看该作者
sgly 发表于 2020-1-27 07:38
你是不是问错了啊,按照你代码逻辑是100ms闪烁一次吧,因为你定时器最短是1ms的,怎么会变成0.1ms闪烁呢, ...

我预期效果那里的时间应该是0.1s,打成了0.1ms
回复

使用道具 举报

6#
ID:661513 发表于 2020-1-27 14:02 | 只看该作者
王可乐_ 发表于 2020-1-26 20:20
你好,你的定时器赋初值为11ms,加上下面cnt==100,就是1100ms一次,可以改成下面这段,因为1ms的闪烁间隔 ...

嗯,我当时用的stc上面那个定时器计算器,没有把时钟改成12T,所以配置错了
回复

使用道具 举报

7#
ID:661513 发表于 2020-1-27 14:04 | 只看该作者
ggggaaaaaaa 发表于 2020-1-27 00:45
知道为何没人回答吗?
提问的方法不对,描述不清楚.

刚刚开始学习单片机,谢谢指点
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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