久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自寫倒計(jì)時器帶鬧程序最長定時99:59

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71774 發(fā)表于 2015-1-21 12:36 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
自寫倒計(jì)時器帶鬧c程序,最長定時99:59,時間到,鬧鈴10秒,已在學(xué)習(xí)板上通過,稍改后可用于控制其他負(fù)載。剛學(xué)請各位老師指導(dǎo)!用數(shù)碼管顯示的吧,電路下載:http://www.zg4o1577.cn/f/ks51.pdf

#include <reg52.h>                                
typedef  unsigned char   uint8;
typedef  unsigned int    uint16;
code uint8 number[] = {0xc0,0xf9,0xa4,0xb0,
                                              0x99,0x92,0x82,0xf8,
                                            0x80,0x90};
uint8 a[6];  
uint16 counter = 0;        
uint8 sec,min=0,hour=0,t_min=0,t_hour=0,ky=0;      //操作:a:1、開機(jī)顯示6個0,可進(jìn)行鬧時設(shè)置。-> 2、功能按鍵K3按1下走時。->                                                                                                                        // 3 、功能鍵再按1下關(guān)鬧鈴。->再按1下回到鬧時設(shè)置。循環(huán)。
uint16  counter1=0;                           
                                                                                                  //b:  K1、K2可設(shè)置時、分,最長定時99:59。               
sbit BUZZ = P1^6;
sbit ENLED = P1^4;
sbit ADDR0 = P1^0;                                 
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit KeyOut1=P2^3;
sbit K1 = P2^4;
sbit K2 = P2^5;
sbit K3 = P2^6;


void timer1_init()   //定時器1初使化
{
        TMOD |= 0x10;
        TMOD &= 0xdf;  
        TH1   = 0xFC;
        TL1   = 0x67;
    ET1 = 1;
        EA  = 1;
         TR1 = 1;  
}
void interrupt_timer1()interrupt 3  //中斷函數(shù)
{          TH1 = 0xFC;
          TL1 = 0x67;
          counter1++;
          if(counter1 == 1000)
          { counter1 =0;
           TR1 = 0;}
           BUZZ = ~BUZZ;
}
void timer2_init()         //  定時器T2運(yùn)行函數(shù)
{      
        T2MOD=0X00;         
        TH2=(65536-110592/60)/256;
        TL2=(65536-110592/60)%256;
        RCAP2H=TH2;              
        RCAP2L=TL2;               
        EA=1;                  
        ET2=1;                  
        TR2=1;                           

}
void refresh_led() //數(shù)碼管刷新函數(shù)
{
          static uint8 j = 0;
                    
                switch(j)
           {
                   case 0: ADDR0 = 0;ADDR1 = 0;ADDR2 = 0;j++;P0=0x7f & number[a[0]];break;
                case 1: ADDR0 = 1;ADDR1 = 0;ADDR2 = 0;j++;P0 = number[a[1]];break;
                case 2: ADDR0 = 0;ADDR1 = 1;ADDR2 = 0;j++;P0 =0x7f & number[a[2]];break;
                case 3: ADDR0 = 1;ADDR1 = 1;ADDR2 = 0;j++;P0 = number[a[3]];break;
                case 4: ADDR0 = 0;ADDR1 = 0;ADDR2 = 1;j++;P0 =0x7f & number[a[4]];break;
                case 5: ADDR0 = 1;ADDR1 = 0;ADDR2 = 1;j = 0;P0 = number[a[5]];break;
                default: break;
                }
        
}
void Hms(void)         //秒,分,時計(jì)算函數(shù)
{
        static uint16 ui2msCount=0;  
               if(ky==1)
            ui2msCount++;              
                if(ui2msCount>499)   
                {
                 ui2msCount=0;        

                 if (sec==0)
                   {
                     sec=60;
                    if (min==0)
                        {
                        min=60;
                     if (hour==0)
                        hour=99;
                         hour--;
                        }
                     min--;
                    }
                  sec--;
            }

                 a[5]=hour/10;  
                 a[4]=hour%10;  
                 a[3]=min/10;  
                 a[2]=min%10;   
                 a[1]=sec/10;  
                 a[0]=sec%10;  
                        if((ky==1)&&(sec==0)&&(min==0)&&(hour==0))
                        (timer1_init(),ky=0);

}

void Key3(void) //K3按鍵處理函數(shù)
   {
             while(!K3);
              ky++;
             if(ky > 1)  
              ky=0;
   }

void Key2(void) //K2按鍵處理函數(shù)
{
           
  while(!K2);
   if(ky==0)     
        min++;
     if(min>59)
        min=0;

        
}
void Key1(void)          //K1按鍵處理函數(shù)
{        
   while(!K1);
    if(ky==0)   
            hour++;
      if(hour>99)
         hour=0;

        
}

void Delay(uint8 ms)        //毫秒延時函數(shù)
{
uint8 i;
        while(ms--)         
        {
          for( i=0;i<125;i++)
                ;
        }
}
main()                   //主函數(shù)
{                                                                                                                  
        ENLED = 0; ADDR3 = 1;
        timer2_init();
     KeyOut1=0;
         while(1)                 //主循環(huán)
        {         
                if(!K1)         
                Delay(5);        
                if(!K1)
                Key1();        
                if(!K2)         
                Delay(5);        
                if(!K2)
                Key2();
                    if(!K3)               
                        Delay(5);         
                    if(!K3)
                        Key3();
            }
}
void interrupt_timer2()        interrupt 5           //定時器T2中斷函數(shù)
{
          TF2=0;
          Hms();
          refresh_led();
                                 
}

評分

參與人數(shù) 3黑幣 +61 收起 理由
mtq + 5 很給力!
admin + 50 共享資料的積分獎勵!
liuda + 6 很給力!

查看全部評分

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

使用道具 舉報(bào)

沙發(fā)
ID:43559 發(fā)表于 2015-1-21 19:25 | 只看該作者
感謝分享經(jīng)驗(yàn)。
回復(fù)

使用道具 舉報(bào)

板凳
ID:61153 發(fā)表于 2015-1-23 14:54 | 只看該作者
努力學(xué)習(xí)中,感謝分享!!
回復(fù)

使用道具 舉報(bào)

地板
ID:72399 發(fā)表于 2015-1-23 16:12 | 只看該作者
矩陣鍵盤的程序,用到再復(fù)制
回復(fù)

使用道具 舉報(bào)

5#
ID:54731 發(fā)表于 2015-1-24 18:00 | 只看該作者
請問:你用的是74hc138控制LED嗎?
回復(fù)

使用道具 舉報(bào)

6#
ID:71774 發(fā)表于 2015-1-24 18:20 | 只看該作者
南天白云 發(fā)表于 2015-1-24 18:00
請問:你用的是74hc138控制LED嗎?

是的,用的38譯碼器。
回復(fù)

使用道具 舉報(bào)

7#
ID:72947 發(fā)表于 2015-1-31 17:05 來自觸屏版 | 只看該作者
謝謝樓主,學(xué)習(xí)一下!!!
回復(fù)

使用道具 舉報(bào)

8#
ID:73480 發(fā)表于 2015-2-28 16:11 | 只看該作者
如果改成這樣,應(yīng)該怎么改?:初始時間及定時時間可調(diào),且動態(tài)顯示剩余時間,并在最后一分鐘發(fā)出警告聲,時間到提醒。
回復(fù)

使用道具 舉報(bào)

9#
ID:71774 發(fā)表于 2015-3-15 22:28 | 只看該作者
宰豬的羊羔 發(fā)表于 2015-2-28 16:11
如果改成這樣,應(yīng)該怎么改?:初始時間及定時時間可調(diào),且動態(tài)顯示剩余時間,并在最后一分鐘發(fā)出警告 ...

不應(yīng)改,原本就是這樣設(shè)計(jì)的。
回復(fù)

使用道具 舉報(bào)

10#
ID:105849 發(fā)表于 2016-4-20 01:29 | 只看該作者
如果斷電再上電程序會不會接著原來的運(yùn)行。
回復(fù)

使用道具 舉報(bào)

11#
ID:105849 發(fā)表于 2016-4-20 01:32 | 只看該作者
如果運(yùn)行過程中,斷電再上電,會不會還接這原來的程序運(yùn)行?
回復(fù)

使用道具 舉報(bào)

12#
ID:194752 發(fā)表于 2017-5-18 22:36 | 只看該作者
這個不錯,,,跟我想寫的程序有點(diǎn)像。。做個記號以學(xué)習(xí)。。
回復(fù)

使用道具 舉報(bào)

13#
ID:203313 發(fā)表于 2017-5-22 01:10 | 只看該作者
樓主的分享太給力了,值得學(xué)習(xí),謝謝~
回復(fù)

使用道具 舉報(bào)

14#
ID:44037 發(fā)表于 2017-5-22 06:01 | 只看該作者
謝謝分享   感謝分享經(jīng)驗(yàn)
回復(fù)

使用道具 舉報(bào)

15#
ID:200824 發(fā)表于 2017-5-22 09:09 | 只看該作者
不錯啊
回復(fù)

使用道具 舉報(bào)

16#
ID:193705 發(fā)表于 2017-5-24 19:38 來自觸屏版 | 只看該作者
厲害 值得學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

17#
ID:202435 發(fā)表于 2017-6-3 15:18 | 只看該作者
可以幫改成用LCD1602顯示嗎?最近需要可不會改。
回復(fù)

使用道具 舉報(bào)

18#
ID:590386 發(fā)表于 2019-7-31 09:45 | 只看該作者
ADDR3/ENLED/KeyOut1是連接什么的?
回復(fù)

使用道具 舉報(bào)

19#
ID:592779 發(fā)表于 2019-7-31 11:17 來自觸屏版 | 只看該作者
不錯,挺好的啊
回復(fù)

使用道具 舉報(bào)

20#
ID:105782 發(fā)表于 2019-8-3 11:43 來自觸屏版 | 只看該作者
程序可以再簡單點(diǎn)
回復(fù)

使用道具 舉報(bào)

21#
ID:590244 發(fā)表于 2019-8-15 11:19 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美精品在线观看 | 成人精品视频99在线观看免费 | 久久精品一二三影院 | 成人免费在线电影 | 久久国产区 | 免费一区 | 国产成人影院 | 无码一区二区三区视频 | 日韩欧美在线观看视频网站 | 日韩福利电影 | 久久在视频 | 日韩一二区| 欧美一区二区三区在线观看 | 精品视频一区二区三区 | 欧美三级电影在线播放 | 精品日韩一区二区 | 免费在线观看毛片 | 日韩综合一区 | 欧洲免费毛片 | 国产香蕉视频 | 在线视频一区二区三区 | 国产剧情久久 | 国产精品一区在线观看你懂的 | 成人午夜激情 | 久久国产高清 | 中文字幕免费视频 | 日韩电影免费在线观看中文字幕 | 女女百合av大片一区二区三区九县 | 日本免费在线看 | 国产黄色大片在线观看 | www.久久久.com | 国产h在线 | 亚洲成av人影片在线观看 | 国产精品一级 | 国产综合视频 | 亚洲精选久久 | 国产成人精品一区二区三区在线观看 | 国户精品久久久久久久久久久不卡 | 99re6在线视频精品免费 | 曰韩三级 | 国产欧美日韩一区二区三区 |