找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1497|回復(fù): 0
收起左側(cè)

用論壇的多檔計時改的單片機程序 按鍵切換300/600數(shù)碼管會暗下來?

[復(fù)制鏈接]
ID:1045601 發(fā)表于 2023-6-28 15:17 | 顯示全部樓層 |閱讀模式
為什么改了之后。按鍵切換300/600數(shù)碼管會暗下來。。


單片機源程序如下:
#include <STC15F2K60S2.H>

#define uchar unsigned char
#define uint  unsigned int
sbit led = P1^7;
sbit key1 = P5^4; //時間切換鍵
sbit key2 = P1^6; //啟動按鍵
sbit we1 = P1^1;  //數(shù)碼管位端口
sbit we2 = P1^3;
sbit we3 = P1^2;
uchar knum;
bit k1f=0;                  //key1按鍵按下次數(shù)計數(shù)變量
uchar cont;                  //中斷次數(shù)變量
uint cont1=30,cont2=300,cont3=600;        //定義時間變量并賦值30秒,300秒,600秒
uchar code LedTab[]=  {0xef,0x8c,0xb7,0xbe,0xdc,0x7e,0x7f,0xac,0xff,0xfe};
void delay()
               
{
        unsigned char i;

        i = 3;
        while (--i);
}

void Delay10ms()                //@11.0592MHz
{
        unsigned char i, j;

        i = 108;
        j = 145;
        do
        {
                while (--j);
        } while (--i);
}

void Delay30us()                //@11.0592MHz
{
        unsigned char i;
        i = 80;
        while (--i);
}

void display1(uint shu)
{
   

        we1 = 0;we2 = 1; we3 = 1;
    P3= LedTab[shu/100];
    we1=1;
    P3=0x00;

    we1 = 1;we2 = 0; we3 = 1;
    P3 = LedTab[shu%100/10];
    we2 = 1;
    P3 = 0x00;
   
   
    we1 = 1;we2 = 1; we3 = 0;
    P3 = LedTab[shu%10];
   
    we3 = 1;
    P3 = 0x00;
   
}
void keyscan()
{      if(key1==0)
{      Delay30us();
       if(k1f==0)
{        k1f=1;  knum++;
       if(knum==4)
          knum=0;
                } }
                                else k1f=0;
     if(key2 == 0)
{         Delay30us();
       if(key2 == 0)         //key2按下
            TR0=~0;          }
                       
               
                   //    led = 0;         //點亮LED,松手后啟動倒計時
                             //這句后面不加分號,下一句調(diào)用顯示函數(shù),按鍵時數(shù)碼管才不會滅
                     
      if(knum==0)
       {  display1(cont1);


      if(knum==1)
         display1(cont2);  
      if(knum==2)
         display1(cont3);
                 if(knum==3)
                 P3=0x00; }  
                            /*   switch(knum)
                                {
                                         case 0: display1(cont1);  break;
                                         case 1: display1(cont2);  break;
                                         case 2: display1(cont3);  break;
                                }        */
        



105913eiej2qrriqmx9cq4.jpg
105917c2e3kuh8anjzi1vu.jpg
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表