找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机电子沙漏程序

[复制链接]
跳转到指定楼层
楼主
ID:254193 发表于 2017-12-6 19:10 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>        //头文件

typedef unsigned int  uint;
typedef unsigned char uchar;

sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
sbit D5=P1^4;
sbit D6=P1^5;
sbit D7=P1^6;
sbit D8=P1^7;

sbit D9=P3^0;
sbit D10=P3^1;
sbit D11=P3^2;
sbit D12=P3^3;
sbit D13=P3^4;
sbit D14=P3^5;
sbit D15=P3^6;
sbit D16=P3^7;

sbit D17=P0^0;
sbit D18=P0^1;
sbit D19=P0^2;
sbit D20=P0^3;
sbit D21=P0^4;
sbit D22=P0^5;
sbit D23=P0^6;
sbit D24=P0^7;

sbit D25=P2^0;
sbit D26=P2^1;
sbit D27=P2^2;
sbit D28=P2^3;
sbit D29=P2^4;
sbit D30=P2^5;
sbit D31=P2^6;
sbit D32=P2^7;

void delayms(unsigned int t)
{
         unsigned int a,b;
        for(a=110;a>0;a--)
           for(b=t;b>0;b--);
}

int f=0;
void main()                        //主函数
{
        while(1)        
        {
                if(f==0)
                {
                        st:
                        while(D32==0);
                        P1=0X00;
                        P0=0X00;
                        P2=0XFF;
                        P3=0XFF;
                        f=1;
                        delayms(1000);               
                }
                if(f==1)
                {
                        D8=1;
                        delayms(250);
                        D31=0;
                        delayms(250);
                        if(D32==0)goto st;
                        D31=1;
                        D27=0;
                        delayms(250);
                        D27=1;
                        D11=0;
                        delayms(250);
                        if(D32==0)goto st;/@

                        D7=1;
                        delayms(250);
                        D31=0;
                        delayms(250);
                        if(D32==0)goto st;
                        D31=1;
                        D27=0;
                        delayms(250);
                        D27=1;
                        D12=0;
                        delayms(250);
                        if(D32==0)goto st; /@

                        D17=1;
                        delayms(250);
                        D31=0;
                        delayms(250);
                        if(D32==0)goto st;
                        D31=1;
                        D27=0;
                        delayms(250);
                        D27=1;
                        D10=0;
                        delayms(250);
                        if(D32==0)goto st;/@

                        D4=1;
                        delayms(250);
                        D31=0;
                        delayms(250);
                        if(D32==0)goto st;
                        D31=1;
                        D27=0;
                        delayms(250);
                        D27=1;
                        D16=0;
                        delayms(250);
                        if(D32==0)goto st;/@

                        D5=1;
                        delayms(250);
                        D31=0;
                        delayms(250);
                        if(D32==0)goto st;
                        D31=1;
                        D27=0;
                        delayms(250);
                        D27=1;
                        D15=0;
                        delayms(250);
                        if(D32==0)goto st;/@

                        D3=1;
                        delayms(200);
                        D31=0;
                        delayms(200);
                        if(D32==0)goto st;
                        D31=1;
                        D27=0;
                        delayms(200);
                        D27=1;
                        D25=0;
                        delayms(200);
                        D25=1;
                        D13=0;
                        delayms(200);
                        if(D32==0)goto st;/@

                        D6=1;
                        delayms(200);
                        D31=0;
                        delayms(200);
                        if(D32==0)goto st;
                        D31=1;
                        D27=0;
                        delayms(200);
                        D27=1;
                        D14=0;
                        delayms(200);
                        D14=1;
                        D9=0;
                        delayms(200);
                        if(D32==0)goto st; /@

                        D1=1;
                        delayms(250);
                        D31=0;
                        delayms(250);
                        if(D32==0)goto st;
                        D31=1;
                        D27=0;
                        delayms(250);
                        D27=1;
                        D25=0;
                        delayms(250);
                        if(D32==0)goto st;/@

                        D2=1;
                        delayms(250);
                        D31=0;
                        delayms(250);
                        if(D32==0)goto st;
                        D31=1;
                        D27=0;
                        delayms(250);
                        D27=1;
                        D14=0;
                        delayms(250);
                        if(D32==0)goto st;/@

                        D20=1;
                        delayms(333);
                        D31=0;
                        delayms(333);
                        if(D32==0)goto st;
                        D31=1;
                        D27=0;
                        delayms(333);
                        if(D32==0)goto st; /@

                        D18=1;
                        delayms(333);
                        D31=0;
                        delayms(333);
                        if(D32==0)goto st;
                        D31=1;
                        D28=0;
                        delayms(333);
                        if(D32==0)goto st;/@

                        D19=1;
                        delayms(333);
                        D31=0;
                        delayms(333);
                        if(D32==0)goto st;
                        D31=1;
                        D26=0;
                        delayms(333);
                        if(D32==0)goto st;/@

                        D22=1;
                        delayms(333);
                        D31=0;
                        delayms(333);
                        if(D32==0)goto st;
                        D31=1;
                        D30=0;
                        delayms(333);
                        if(D32==0)goto st;/@

                        D21=1;
                        delayms(333);
                        D31=0;
                        delayms(333);
                        if(D32==0)goto st;
                        D31=1;
                        D29=0;
                        delayms(333);
                        if(D32==0)goto st;/@

                        D23=1;
                        D31=0;
                        delayms(1000);
                        if(D32==0)goto st;/@
                        f=2;
                }
                if(f==2)
                {
                        if(D32==0)goto st;/@                        
                }
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:841290 发表于 2020-11-9 22:47 | 只看该作者
里面的st可以解释一下嘛?
回复

使用道具 举报

板凳
ID:328014 发表于 2020-11-9 23:00 | 只看该作者
ST 是goto语句  一般不建议这样做
回复

使用道具 举报

地板
ID:940754 发表于 2021-6-21 12:19 来自手机 | 只看该作者
51hei团团 发表于 2020-11-9 23:00
ST 是goto语句  一般不建议这样做

请问,那应该怎么做呀
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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