找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1353|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
為什么改了之后。按鍵切換300/600數(shù)碼管會(huì)暗下來(lái)。。


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

#define uchar unsigned char
#define uint  unsigned int
sbit led = P1^7;
sbit key1 = P5^4; //時(shí)間切換鍵
sbit key2 = P1^6; //啟動(dòng)按鍵
sbit we1 = P1^1;  //數(shù)碼管位端口
sbit we2 = P1^3;
sbit we3 = P1^2;
uchar knum;
bit k1f=0;                  //key1按鍵按下次數(shù)計(jì)數(shù)變量
uchar cont;                  //中斷次數(shù)變量
uint cont1=30,cont2=300,cont3=600;        //定義時(shí)間變量并賦值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;         //點(diǎn)亮LED,松手后啟動(dòng)倒計(jì)時(shí)
                             //這句后面不加分號(hào),下一句調(diào)用顯示函數(shù),按鍵時(shí)數(shù)碼管才不會(huì)滅
                     
      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 (284.5 KB, 下載次數(shù): 94)

105913eiej2qrriqmx9cq4.jpg

105917c2e3kuh8anjzi1vu.jpg (305.3 KB, 下載次數(shù): 72)

105917c2e3kuh8anjzi1vu.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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