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

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

QQ登錄

只需一步,快速開始

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

在按鍵 時(shí)鐘的單片機(jī)程序上如何改動(dòng)加上鬧鐘模式

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:239793 發(fā)表于 2017-12-7 20:42 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
注:mshi秒的十位 fshi 分的十位 sshi分的十位  key2 秒分時(shí)的加 KEY3秒分時(shí)的減 key4時(shí)鐘開啟暫停 key5清零
如何在加一個(gè)按鍵 能切換成鬧鐘模式按key2 3可調(diào)定時(shí) 再按一下?lián)Q成時(shí)鐘  切換成鬧鐘的時(shí)候不影響時(shí)鐘的運(yùn)行   時(shí)鐘到鬧鐘設(shè)定的時(shí)間 小燈亮
我有寫了一個(gè)函數(shù)去設(shè)置 但是不對(duì)
#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

void delayms(uint);

uchar num1,a,b,c,d;

uchar codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbit key1=P3^0;

sbit key2=P3^1;

sbit key3=P3^2;

sbit key4=P3^3;

sbit key5=P3^4;
sbit key6=P3^5;

void delayms(uint xms)

{

uinti,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}


void display()

{


int mshi,mge,fshi,fge,sshi,sge;

if(num1==20)

  {

              num1=0;

              a++;

              if(a==60)

              {  

              a=0;

              b++;

              }

              if(b==60)

              {

              b=0;

              c++;

              }

              if(c==24)

              {

              c=0;

       }

  }

  mshi=a/10;

  mge=a%10;

  fshi=b/10;

  fge=b%10;

  sshi=c/10;

  sge=c%10;

P1=table[mge];

P2=0x7f;

delayms(1);

P2=0xff;


P1=table[mshi];

P2=0xbf;

delayms(1);

P2=0xff;


P1=0X40;

P2=0xdf;

delayms(1);

P2=0xff;


P1=table[fge];

P2=0xef;

delayms(1);

P2=0xff;


P1=table[fshi];

P2=0xf7;

delayms(1);

P2=0xff;


P1=0x40;

P2=0xfb;

delayms(1);

P2=0xff;


P1=table[sge];

P2=0xfd;

delayms(1);

P2=0xff;


P1=table[sshi];

P2=0xfe;

delayms(1);

P2=0xff;

       }



  void keyscan()

  {                       

if(key1==0)        

   {

          delayms(10);

          if(key1==0)                                 //選擇時(shí)分秒

          {                 

                 d++;

                 if(d==4)

                       d=0;

        }

          while(!key1)     display();         //等待按鍵釋放

   }


  if(d==1)                                                //選擇調(diào)秒

   {

          if(key2==0)                                    //key2 (++)

          {

                 delayms(10);

                 if(key2==0)

                 {

                        a++;

                        if(a==60)                    //當(dāng)?shù)?0時(shí)重新歸0

                        a=0;

                        while(!key2)display();

                 }

          }

          if(key3==0)                                    //key3 (--)

          {

               delayms(10);

                     if(key3==0)

                     {

                        if(a==0)

                        a=60;

                        a--;

                        while(!key3)display();

                      }

              }

   }


  if(d==2)                                             //選分

   {

          if(key2==0)

          {

                 delayms(10);

                 if(key2==0)

                 {

                         b++;

                            if(b==60)

                                   b=0;

                            while(!key2)display();

                     }

           }

               if(key3==0)

           {

               delayms(10);

                     if(key3==0)

                     {

                        if(b==0)

                        b=60;

                        b--;

                        while(!key3)display();

                      }

              }            

       }      


  if(d==3)                                                    //選時(shí)

   {

          if(key2==0)

          {

                 delayms(10);

                 if(key2==0)

                 {

                 c++;

                 if(c==24)

                 c=0;

                 while(!key2)display();

                 }

              }

              if(key3==0)

          {

               delayms(10);

                     if(key3==0)

                     {

                        if(c==0)

                        c=24;

                        c--;

                        while(!key3)display();

                      }

              }

   }

       if(key4==0)

      {

          delayms(10);

                 if(key4==0)

                 {   

                 TR0=~TR0;                    //啟動(dòng)或停止定時(shí)器

                 while(!key4)display();

         

           }

       }

        if(key5==0)

       {

              delayms(10);

               if(key5==0)

               {

            a=0;

           b=0;

               c=0;

               while(!key5)display();

               }

       }

   }



void main()

{      

TMOD=0x11;

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

EA=1;                        //開總中斷                                       

ET0=1;                      //開定時(shí)器0中斷

TR0=1;

while(1)

{

keyscan();

display();

}

}


void T0_time() interrupt 1

{

TH0=(65536-45872)/256;    //重裝初值

TL0=(65536-45872)%256;

num1++;


   }
#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

void delayms(uint);

uchar num1,a,b,c,d;

uchar codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbit key1=P3^0;

sbit key2=P3^1;

sbit key3=P3^2;

sbit key4=P3^3;

sbit key5=P3^4;

void delayms(uint xms)

{

uinti,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}



void display()

{



int mshi,mge,fshi,fge,sshi,sge;

if(num1==20)

  {

              num1=0;

              a++;

              if(a==60)

              {  

              a=0;

              b++;

              }

              if(b==60)

              {

              b=0;

              c++;

              }

              if(c==24)

              {

              c=0;

       }

  }

  mshi=a/10;

  mge=a%10;

  fshi=b/10;

  fge=b%10;

  sshi=c/10;

  sge=c%10;

P1=table[mge];

P2=0x7f;

delayms(1);

P2=0xff;



P1=table[mshi];

P2=0xbf;

delayms(1);

P2=0xff;



P1=0X40;

P2=0xdf;

delayms(1);

P2=0xff;



P1=table[fge];

P2=0xef;

delayms(1);

P2=0xff;



P1=table[fshi];

P2=0xf7;

delayms(1);

P2=0xff;



P1=0x40;

P2=0xfb;

delayms(1);

P2=0xff;



P1=table[sge];

P2=0xfd;

delayms(1);

P2=0xff;



P1=table[sshi];

P2=0xfe;

delayms(1);

P2=0xff;

       }





  void keyscan()

  {                       

if(key1==0)        

   {

          delayms(10);

          if(key1==0)                                 //選擇時(shí)分秒

          {                 

                 d++;

                 if(d==4)

                       d=0;

        }

          while(!key1)     display();         //等待按鍵釋放

   }



  if(d==1)                                                //選擇調(diào)秒

   {

          if(key2==0)                                    //key2 (++)

          {

                 delayms(10);

                 if(key2==0)

                 {

                        a++;

                        if(a==60)                    //當(dāng)?shù)?0時(shí)重新歸0

                        a=0;

                        while(!key2)display();

                 }

          }

          if(key3==0)                                    //key3 (--)

          {

               delayms(10);

                     if(key3==0)

                     {

                        if(a==0)

                        a=60;

                        a--;

                        while(!key3)display();

                      }

              }

   }



  if(d==2)                                             //選分

   {

          if(key2==0)

          {

                 delayms(10);

                 if(key2==0)

                 {

                         b++;

                            if(b==60)

                                   b=0;

                            while(!key2)display();

                     }

           }

               if(key3==0)

           {

               delayms(10);

                     if(key3==0)

                     {

                        if(b==0)

                        b=60;

                        b--;

                        while(!key3)display();

                      }

              }            

       }      



  if(d==3)                                                    //選時(shí)

   {

          if(key2==0)

          {

                 delayms(10);

                 if(key2==0)

                 {

                 c++;

                 if(c==24)

                 c=0;

                 while(!key2)display();

                 }

              }

              if(key3==0)

          {

               delayms(10);

                     if(key3==0)

                     {

                        if(c==0)

                        c=24;

                        c--;

                        while(!key3)display();

                      }

              }

   }

       if(key4==0)

      {

          delayms(10);

                 if(key4==0)

                 {   

                 TR0=~TR0;                    //啟動(dòng)或停止定時(shí)器

                 while(!key4)display();



           }

       }

        if(key5==0)

       {

              delayms(10);

               if(key5==0)

               {

            a=0;

           b=0;

               c=0;

               while(!key5)display();

               }

       }

   }





void main()

{      

TMOD=0x11;

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

EA=1;                        //開總中斷                                       

ET0=1;                      //開定時(shí)器0中斷

TR0=1;

while(1)

{

keyscan();

display();

}

}



void T0_time() interrupt 1

{

TH0=(65536-45872)/256;    //重裝初值

TL0=(65536-45872)%256;

num1++;



   }


評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
這貨不是小武啊 + 5 贊一個(gè)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:239793 發(fā)表于 2017-12-7 22:16 | 只看該作者
求一個(gè)大概思路
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色综合天天天天做夜夜夜夜做 | 亚洲成人av| 一二三区在线 | 欧美1区| 亚洲精品中文在线观看 | 亚洲精品久久久久久久久久久久久 | 欧美一区二区视频 | 国产成人精品综合 | 视频1区2区| 国产一区二区在线看 | 久久不卡区 | 久久久久久高潮国产精品视 | 2018国产大陆天天弄 | 国产性色视频 | 欧美一区二区三区久久精品视 | www.婷婷 | 国产美女永久免费无遮挡 | 国产精品久久久久久久久久久久 | 欧美精品二区 | 国产成人aⅴ | 日本中文字幕在线观看 | 亚洲午夜精品一区二区三区他趣 | 久久久久亚洲视频 | 国产日韩欧美在线 | 国产精品综合 | 国产精品久久久久久亚洲调教 | 日本视频中文字幕 | 久久久久久九九九九 | 免费看黄色视屏 | 日韩精品在线观看免费 | 日本午夜精品一区二区三区 | 先锋资源网| av看看| 国产日韩欧美 | 一级大片 | 91久久国产| 国产91九色 | 欧美一级淫片免费视频黄 | 在线亚洲人成电影网站色www | 国产成人精品久久久 | 国产999精品久久久久久绿帽 |