找回密码
 立即注册

QQ登录

只需一步,快速开始

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

怎么在这单片机程序的基础上 ,让led灯依次闪烁三下再灭掉 再到下一个 现在是依次灭...

[复制链接]
回帖奖励 2 黑币 回复本帖可获得 2 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
ID:1025149 发表于 2022-6-13 12:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uint a,b;
void time0()interrupt 1
{
    a++;b++;TL0=0XFF;TH0=0X4B;
}
void main()
{   uchar temp;
    P1=0xfe;                //1111 1110
    TMOD=0X01;
    TL0=0XFF;         //定时器赋初值50ms
    TH0=0X4B;
    ET0=1;         //开中断
    EA=1;
    TR0=1;        //开定时器
    while(1)
    {
        if(b<420)
        {
            if(a==20) //设定1s
            {
                temp=P1;
                temp=_crol_(temp,1);  //左移动一位
                P1=temp;
                a=0;
            }
            if(b==160)
            {P1=0x00;  } //全亮

            if(b==200)                   //以下依次灭
            {P1=0x01;}

            if(b==220)
            {P1=0x03;}

            if(b==240)
            {  P1=0x07;}

            if(b==260)
            {P1=0x0f; }

            if(b==280)
            { P1=0x1f;}

            if(b==300)
            { P1=0x3f;}

            if(b==320)
            {  P1=0x7f; }

            if(b>340)                  //3闪
  {
                P1=0xff;
                if(b==344)
                {
                    a=0;
                    P1=~P1;
                    while(a!=18);
                    P1=~P1;
                    while(a!=18);
          }
                if(b==364)
                        {
                    a=0;
                    P1=~P1;
                    while(a!=18);
                    P1=~P1;
                    while(a!=18);
                }
                if(b==384)
                {
                    a=0;
                    P1=~P1;
                    while(a!=18);
                    P1=~P1;
                    while(a!=18);
          }
                                P1=0xff;
   }

            if(b>360)                //全灭
            {  P1=0xff;}

        }
        else
        { b=0; break;}
    }
}

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

使用道具 举报

沙发
ID:229840 发表于 2022-6-15 14:49 | 只看该作者
以后直接把工程发出来吧
回复

使用道具 举报

板凳
ID:161164 发表于 2022-6-15 15:38 | 只看该作者
如此类推
  1.                         if(b==200)                   //以下依次灭
  2.                         {
  3.                                 P1=0x01;
  4.                                 if(++flash3<3)
  5.                                 {
  6.                                         b=160;
  7.                                 }else{
  8.                                         flash3 = 0;
  9.                                 }
  10.                         }
  11.                         if(b==220)
  12.                         {
  13.                                 P1=0x03;
  14.                                 if(++flash3<3)
  15.                                 {
  16.                                         b=200;
  17.                                 }else{
  18.                                         flash3 = 0;
  19.                                 }
  20.                         }
复制代码


评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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