打印

新人求教51单片机

[复制链接]
646|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuangbao|  楼主 | 2016-11-22 20:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
chuangbao|  楼主 | 2016-11-22 21:01 | 只看该作者
请问,怎么写这程序呢?

使用特权

评论回复
板凳
dirtwillfly| | 2016-11-22 23:00 | 只看该作者
论坛很少有人免费写代码的。楼主不如说说遇到什么困难了

使用特权

评论回复
地板
NE5532| | 2016-11-23 08:53 | 只看该作者
设一个变量,自加,作为状态转换开关,然后根据这个开关的值点亮不同的灯。

使用特权

评论回复
5
大禹时代| | 2016-11-23 16:22 | 只看该作者
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code tab[]={0,1,0,1};
void delay(uint z);
uchar s2num,i;
sbit s2=P3^5;
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;
sbit beep=P2^3;
void main( )
{
        while(1)
        {
                if(s2==0)
                {
                        delay(10);
                        if(s2==0)
                        {
                                s2num++;
                                while(!s2);
                        }
                }

                if(s2num==1)
                {
                        led1=0;
                }

                else if(s2num==2)
                {
                        led2=0;
                        led1=1;
                }

                else if(s2num==3)
                {
                        led3=0;
                        led2=1;
                }

                else if(s2num==4)
                {
                        led4=0;
                        led3=1;
                }

                else if(s2num==5)
                {
                        led5=0;
                        led4=1;
                }

                else if(s2num==6)
                {
                        led6=0;
                        led5=1;
                }

                else if(s2num==7)
                {
                        led7=0;
                        led6=1;
                }

                else if(s2num==8)
                {
                        led8=0;
                        led7=1;
                }

                else if(s2num==9)
                {
                        led8=1;
                        s2num=0;
                        for(i=0;i<4;i++)
                        {
                                beep=tab[i];
                                delay(500);
                        }
                        beep=1;
                        while(1);
                }

       
       
        }               



}

void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
chuangbao + 1 赞一个!
6
chuangbao|  楼主 | 2016-11-23 18:40 | 只看该作者
大禹时代 发表于 2016-11-23 16:22
#include
#define uchar unsigned char
#define uint unsigned int

谢谢

使用特权

评论回复
7
chuangbao|  楼主 | 2016-11-23 18:42 | 只看该作者
NE5532 发表于 2016-11-23 08:53
设一个变量,自加,作为状态转换开关,然后根据这个开关的值点亮不同的灯。 ...

嗯,设变量是最好的办法!

使用特权

评论回复
8
零三翟邢止胃| | 2019-3-30 10:14 | 只看该作者
设变量是最好的办法!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

20

帖子

1

粉丝