| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 467 人关注过本帖
标题:谁帮我写以下程序
只看楼主 加入收藏
wjqzbh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-29
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:5 
谁帮我写以下程序
用单片机写?有8个发光二极管?在启动时,8盏灯?先是中间两个先亮?然后在向外,间隔1s
12345678  8 灯先是45亮?再是36亮,再是27亮,最后18亮
按下切换开关时,则和他相反,用定时器中断。
本人有一个自己的?可是没用?谁能帮我解释一下?
#include <reg51.h>
#define uchar unsigned char
uchar num=0;
sbit P2_1=P2^1;
void int1();
void int1()
{uchar i;
TMOD=0x01;
for(i=20;i>0;i--)
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET1=1;
TR1=1;
}
}
void timer_int() interrupt 1
{
TR1=0;
if(num==20)
 {num=0;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;

                                                            
}
}

void main()
{
uchar d,e,f;
d=0x10;
e=0x08;
for(f=4;f>0;f--)
{
P1=(d|e);
int1();
d=d>>1;
e=e<<1;

}
if(P2_1==1)
{
uchar a,b,c;
a=0x01;
b=0x80;
for(c=4;c>0;c--)
{
P1=(a|b);
int1();
a=a<<1;
b=b>>1;

}
}

}
搜索更多相关主题的帖子: void include 
2012-06-13 16:55
hwf214685147
Rank: 2
等 级:论坛游民
帖 子:70
专家分:94
注 册:2011-9-14
收藏
得分:0 
你这程序连闪烁都控制不了,程序只走一遍。什么乱起八糟的,完全不会知道你要干嘛
2012-06-13 17:07
wjqzbh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-29
收藏
得分:0 
回复 2楼 hwf214685147
原先我用的是延时函数?然后老师叫我们用定时器?后来我就这么改了?估计也不对?自己也用单片机走了一遍?没用?所以问一下?
你能不能帮我写一个?
2012-06-13 17:32
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:10 
作业题还是自己研究比较好吧。。
2012-06-13 17:37
wjqzbh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-11-29
收藏
得分:0 
回复 4楼 Alar30
也不是啦?是我们实训?他有一个程序?叫我们改的?我改了半天?知道使用定时器和单独按键来控制?可是自己真的不回了
2012-06-13 18:15
hwf214685147
Rank: 2
等 级:论坛游民
帖 子:70
专家分:94
注 册:2011-9-14
收藏
得分:10 
试试这个
程序代码:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned char
sbit KEY=P3^2;
uchar count=0;
uchar state=0;

bit flag=0;
uchar code     table[]={0x7e,0xbd,0xdb,0xE7};

void Delay_1ms(uchar i)//1ms延时
{
    uchar x,j;
    for(j=0;j<i;j++)
    for(x=0;x<=148;x++);   
}

/*初始化中断*/ //50MS
void Time_Init(void)
{
    TMOD=0x01;//方式1
    TH0=0x3c;
    TL0=0Xb0;
    IE      = 0x82;   
    TR0=1;
}

void Time_Int(void)    interrupt 1
{
    TH0=0x3c;
    TL0=0Xb0;
    count++;
}


void main(void)
{
    P0=0XFF;
    Time_Init();
    while(1)
    {
   
         if(KEY==0)
         {
              Delay_1ms(20);
              if(KEY==0)
             {
                  if(flag)
                 {
                     flag=0;
                    state=0;
                    count=0;
                 }
                 else
                 {
                     flag=1;
                    state=0;
                    count=0;
                 }   
             }
         }
    
        if(flag)
        {
            if((count==20)&&(count!=0))
            {
                 switch(state)
                 {
                     case 0:
                    {
                        P0=table[0];
                        state=1;
                        break;
                    }
                    case 1:
                    {
                        P0=table[1];
                        state=2;
                        break;
                    }
                    case 2:
                    {
                        P0=table[2];
                        state=3;
                        break;
                    }
                    case 3:
                    {
                        P0=table[3];
                        state=0;
                        break;
                    }
                    default:
                        break;
                 }
                 count=0;
            }
        }
        else
        {
            if((count==20)&&(count!=0))
            {
                 switch(state)
                 {
                     case 0:
                    {
                        P0=table[3];
                        state=1;
                        break;
                    }
                    case 1:
                    {
                        P0=table[2];
                        state=2;
                        break;
                    }
                    case 2:
                    {
                        P0=table[1];
                        state=3;
                        break;
                    }
                    case 3:
                    {
                        P0=table[0];
                        state=0;
                        break;
                    }
                    default:
                        break;
                 }
                 count=0;
            }
        }
    }
   
}
2012-06-13 19:52
快速回复:谁帮我写以下程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035485 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved