找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

怎么用单片机中断和计时器控制一个led灯亮三秒后熄,紧接着下一个led灯亮3s或者1s熄

查看数: 3442 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-12-6 19:18

正文摘要:

单片机中断和计时器怎么实现 8个led灯  一个led灯亮三秒后熄灭,紧接着下一个led灯亮3s或者1s熄灭,按照这样的方式传递信号,8个灯为一组 传递这样的多组信号只能一组一组写了么。。。 不使用按键实现 ...

回复

ID:238110 发表于 2021-1-5 17:38
用计时器产生中断,计数
ID:798201 发表于 2021-1-5 16:53
#include <REGX52.H>

//***********************************定义变量*************************************//
typedef unsigned char  uint8;                 //8位无符号
typedef unsigned int  uint16;                //16位无符号
//***********************************定义变量*************************************//
uint8 led[9]={0xff,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00};    //定义点亮编码,十六进制
#define led_time 46083                                          //led延时参数,快慢修改就个数,最大65536

void main ()
{
        uint8 count=0;         //变量声明,赋初值
  uint16 i;              //变量声明
       

        while(1)
        {
                P2=led[count++];
    if(count>=9)
                        {
                                count=0;
                        }
                i=led_time;
                while(i--);
        }

}

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:855825 发表于 2020-12-7 10:35
用位移函数delay啊,加上你想要的延迟就可了
ID:855788 发表于 2020-12-7 09:53
用位移函数,加循环语句应该几十行可以了
ID:855632 发表于 2020-12-6 22:42
利用移位指令加上延迟试一下

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

Powered by 单片机教程网

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