找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2234|回复: 10
收起左侧

下面单片机程序,我想降低LED亮度,怎么是一闪一闪的?

[复制链接]
ID:723137 发表于 2020-4-5 22:46 | 显示全部楼层 |阅读模式
#include<reg52.h>

int cycletime;
sbit LED=P2^1;
void intial()
{
   EA=1;
   ET0=1;
   TMOD=0X01;
   TH0=0XFF;
   TL0=0XFF;
   TR0=1;
}

void main()
{
   intial();
   while(1)
   {      
         if(cycletime<=5) LED=0;   
         else LED=1;
         if(cycletime==20)  cycletime=0;         
                  
   }

}

void time1() interrupt 1
{
   TH0=0XFF;
   TL0=0XFF;
   cycletime++;
}

回复

使用道具 举报

ID:584814 发表于 2020-4-6 00:28 | 显示全部楼层
中断的定时器设置时间过长。
回复

使用道具 举报

ID:213173 发表于 2020-4-6 06:39 | 显示全部楼层
中断周期1us,主程序根本无法正常工作。
回复

使用道具 举报

ID:478073 发表于 2020-4-6 08:53 | 显示全部楼层
定时器设的时间也设到小于人肉眼能分辨的程度
回复

使用道具 举报

ID:723477 发表于 2020-4-6 16:48 | 显示全部楼层
定时器设置时间的问题 在写程序的时候一定要结合实际 考虑人眼的情况
回复

使用道具 举报

ID:723137 发表于 2020-4-6 20:39 | 显示全部楼层
wulin 发表于 2020-4-6 06:39
中断周期1us,主程序根本无法正常工作。

您好!我是初学者,我觉得您的说法有道理,您说中断周期1us,主程序根本无法正常工作,这其中具体的过程和逻辑是怎样的呢?
回复

使用道具 举报

ID:213173 发表于 2020-4-6 21:54 | 显示全部楼层
eratank 发表于 2020-4-6 20:39
您好!我是初学者,我觉得您的说法有道理,您说中断周期1us,主程序根本无法正常工作,这其中具体的过程 ...

楼主定时器中断周期1us,但是完成中断任务需要8us,你叫CPU情何以堪!

void time1() interrupt 1
{
        TH0=0XFF;//完成需要2个机器周期
        TL0=0XFF;//完成需要2个机器周期
        cycletime++;//完成需要4个机器周期
}
回复

使用道具 举报

ID:352458 发表于 2020-4-7 11:03 | 显示全部楼层
TH0=0XFF;
TL0=0XFF;
两个可以一样吗?
我记得TH0要减一下TL0的啊。再有一个公式就是定时的时间了
回复

使用道具 举报

ID:723679 发表于 2020-4-7 11:27 | 显示全部楼层
中断时间
回复

使用道具 举报

ID:672205 发表于 2020-4-8 12:46 来自手机 | 显示全部楼层
用示波器观察,程序上也是可以调整的。
回复

使用道具 举报

ID:464541 发表于 2020-4-9 10:25 | 显示全部楼层
改一下中断时间
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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