微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 求一个用led显示倒计时的程序

求一个用led显示倒计时的程序

时间:10-02 整理:3721RD 点击:
定时开始,用led显示倒计时时间,时间结束亮灯或者发出声音

很多板子的端口都不一样,没有具体的板子不好写。

随便写个能运行的就行

随便写个能运行的就行

#include
sbit P10=P1^0;//蜂鸣器
sbit P33=P3^3;        //+10
sbit P32=P3^2;        //-10
sbit P31=P3^1;        //开始暂停
sbit P36=P3^6;        //-1
sbit P37=P3^7;        //+1
//unsigned char c[10]={0xfc,0X60,0Xda,0Xf2,0X66,0Xb6,0xbe,0Xe0,0Xfe,0xf6};                //开发板段选        p2
//unsigned char b[8]={0X7f,0xbf,0xdf,0Xef,0xf7,0xfb,0Xfd,0Xfe};                             //开发板位选          p0
unsigned char c[10]={0x5f,0X41,0X9d,0Xd5,0Xc3,0Xd6,0xde,0X45,0Xdf,0xd7};                //实物段选        p0          
unsigned char b[8]={0X7f,0xef,0xdf,0Xbf,   0x7f,0xdf,0Xbe,0Xef};                    //实物位选  p2
unsigned char sign,begin,signbegin,    signminuteup,signminutedown,signminuteup10,signminutedown10;
signed char minute,second;
void sjxs();
void fmq();
void delay100us();                   //按键防震的延时
void delay400ms(void);
void main()
{
     P33=1;
     P32=1;
     P31=1;
     P36=1;
         P37=1;
         while(1)
         {                         
                  
                                if(sign==100)
                                {sign=0;second--;}
                       
                                if(second==-1)
                                {minute--;second=59;}
                                 
                                 sjxs();                  //显示程序   显示部分放这里,保证数据及时显示
                               
                                if(minute==0&&second==0&&begin==1)
                                {begin=0;EA=0;ET0 = 0;TR0 = 0;   fmq();    /*蜂鸣器*/}
                                if(minute>99)
                                {minute=minute%10;}
                                if(minute 9)
                 {          P2=b[1];                                           //十位
                         P0=c[sjfj[1]];
                         for(u=0;u 0)         
                {         P2=b[2];                                           //百         
                         P0=c[sjfj[2]]|0x20;
                         for(u=0;u 9)
                 {          P2=b[3];                                           //千
                         P0=c[sjfj[3]];
                         for(u=0;u 0;e--)
                                for(a=47;a>0;a--);
                        }
   void delay400ms(void)   //误差 0us
{
    unsigned char a1,b1,c1;
    for(c1=29;c1>0;c1--)
        for(b1=70;b1>0;b1--)
            for(a1=97;a1>0;a1--);
}



void fmq()
{unsigned long s,z,w;
    for(w=0;w<3;w++)       
        {
                for(z=0;z<3000;z++)
                {       
                        for(s=0;s<3;s++)
                        {P10=~P10;}
                 }
           delay400ms();
   }
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top