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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4170|回復: 6
打印 上一主題 下一主題
收起左側

自己寫的數碼管可調電子鐘有點問題,大家一起看看

[復制鏈接]
跳轉到指定樓層
樓主
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar DSY_play[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};                         //從1到九對應的十六進制代碼
uchar DSY_buffer[]={0,0,0xbf,0,0,0xbf,0,0};                                                                                 //顯示緩沖區
uchar DSY_IDX;                                                                                                                              //索引
uchar key_state;   //按鍵狀態
uchar DSY_wei;    //位碼,用于數碼管動態掃描
uchar miao;
uchar fen;
uchar hour;
void fens();
void hours();


void shumaguan() interrupt 0                       //          數碼管動態掃描
{    TH0=(65536-10000)/256;
    TL0=(65536-10000)%256;
    P2=DSY_wei;                 //位選                                                                                    
    P0=DSY_buffer[DSY_IDX];               //段選
    DSY_wei=_crol_(DSY_wei,1);
    DSY_IDX=(DSY_IDX+1)%8;

}

void  display() interrupt 1
{      uchar count=1;
      TH1=(65536-50000)/256;
      TL1=(65536-50000)%256;
      if(count<20)
      {
        count++;
        return;

      }
      miao++;
      DSY_buffer[7]=DSY_play[miao%10];
      DSY_buffer[6]=DSY_play[miao/10];
      if(miao==60)
      miao=0;
      fens();

      
}



  void fens()
  {
     if(fen<60)
     {
       fen++;
       DSY_buffer[4]=DSY_play[fen%10];
       DSY_buffer[3]=DSY_play[fen/10];

     }while(fen!=60);
        fen=0;
        hours();

  }

  void     hours()
  {
       if(hour<24)
       {
         hour++;
         DSY_buffer[1]=DSY_play[hour/10];
         DSY_buffer[0]=DSY_play[hour%10];
       } while(hour!=24);
       hour=0;
  }
    void main()
    {    uchar x,y;
        
        TMOD=0X11;
        TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;
        TH1=(65536-50000)/256;
        TL1=(65536-50000)%256;
        TCON=0x01;
        EA=1;
        
        DSY_wei=0xfe;
        DSY_IDX=0;
             miao=10;
         fen=20;
         hour=20;
      
       DSY_buffer[7]=DSY_play[miao%10];
       DSY_buffer[6]=DSY_play[miao/10];           //初始化時間為 20-20-10
       DSY_buffer[4]=DSY_play[fen%10];
       DSY_buffer[3]=DSY_play[fen/10];
       DSY_buffer[1]=DSY_play[hour%10];
       DSY_buffer[0]=DSY_play[hour/10];
        TR0=1;
        TR1=1;
        key_state=0xff;
        if(P1&0xff!=0xff)
        {
             for(x=110;x>0;x--)
               for(y=110;y>0;y--);

        }
          if(P1&0xff!=0xff)
          {
              key_state=P1;
              EA=0;
              if(key_state&0xfe==0xfe)
              {
                   fen++;
                   DSY_buffer[4]=DSY_play[fen%10];
                   DSY_buffer[3]=DSY_play[fen/10];

              }
              else if(P1&0xfd)
              {
                   hours();
              }

          }
        
    }
  




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

使用道具 舉報

沙發
ID:111634 發表于 2017-12-13 19:08 | 只看該作者
本帖最后由 zl2168 于 2017-12-13 19:11 編輯

冗長的程序一般是沒人看的,給你介紹一個正確有效看得懂的案例,自己對照查錯吧!
實例93  具有校正功能的時鐘1302LED數碼管顯示)
實例93 帶校正時分秒的時鐘1302(6位LED數碼管顯示).rar (732.75 KB, 下載次數: 10)

Proteus仿真一下,確認有效。
以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。
回復

使用道具 舉報

板凳
ID:253022 發表于 2017-12-13 20:05 | 只看該作者
zl2168 發表于 2017-12-13 19:08
冗長的程序一般是沒人看的,給你介紹一個正確有效看得懂的案例,自己對照查錯吧!
實例93  具有校正功能的 ...

我就是學習了這個之后,自己動手寫的。。找了很久的錯誤還是找不到。不會找很久的話,我也不想發帖
回復

使用道具 舉報

地板
ID:111634 發表于 2017-12-14 20:55 | 只看該作者
本帖最后由 zl2168 于 2017-12-14 20:56 編輯
周鑫鑫鑫666 發表于 2017-12-13 20:05
我就是學習了這個之后,自己動手寫的。。找了很久的錯誤還是找不到。不會找很久的話,我也不想發帖

你讀懂了那個案例的程序了嗎?哪里不懂可問我,我給你解答!
回復

使用道具 舉報

5#
ID:259741 發表于 2017-12-14 22:45 | 只看該作者
發現代碼運行出現錯誤,嘗試找出原因有點難,謝謝分享
回復

使用道具 舉報

6#
ID:261803 發表于 2017-12-14 23:01 | 只看該作者
加油!我也正在研究這個,研究出來一起分享
回復

使用道具 舉報

7#
ID:155507 發表于 2017-12-14 23:20 | 只看該作者
試試看

  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. uchar DSY_play[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};                         //從1到九對應的十六進制代碼
  6. uchar DSY_buffer[]={0,0,0xbf,0,0,0xbf,0,0};      //顯示緩沖區
  7. uchar DSY_IDX;                 //索引
  8. uchar key_state;   //按鍵狀態
  9. uchar DSY_wei;    //位碼,用于數碼管動態掃描
  10. uchar miao;
  11. uchar fen;
  12. uchar hour;
  13. void fens();
  14. void hours();


  15. void shumaguan(void)  interrupt 1 using 1        //  數碼管動態掃描
  16. {
  17.         TH0=(65536-10000)/256;
  18.         TL0=(65536-10000)%256;
  19.         P2=DSY_wei;                 //位選                                                                                    
  20.         P0=DSY_buffer[DSY_IDX];               //段選
  21.         DSY_wei=_crol_(DSY_wei,1);
  22.         DSY_IDX=(DSY_IDX+1)%8;

  23. }

  24. void  display(void)  interrupt 3 using 1
  25. {
  26.         uchar count=1;
  27.         TH1=(65536-50000)/256;
  28.         TL1=(65536-50000)%256;
  29.         if(count<20)
  30.         {
  31.                 count++;
  32.                 return;

  33.         }
  34.         miao++;
  35.         if(miao>=60)
  36.         {
  37.                 miao=0;
  38.                 fens();
  39.         }
  40.         DSY_buffer[7]=DSY_play[miao%10];
  41.         DSY_buffer[6]=DSY_play[miao/10];
  42.        
  43. }



  44. void fens()
  45. {
  46.        
  47.         {
  48.                 fen++;

  49.         }  //while(fen!=60);
  50.         if(fen>=60)
  51.         {
  52.                 fen=0;
  53.                 hours();
  54.         }

  55.         DSY_buffer[4]=DSY_play[fen%10];
  56.         DSY_buffer[3]=DSY_play[fen/10];

  57. }

  58. void     hours()
  59. {
  60.        
  61.         {
  62.                 hour++;
  63.         } //while(hour!=24);
  64.         if(hour>=24)
  65.         {
  66.                 hour=0;
  67.         }
  68.         DSY_buffer[1]=DSY_play[hour/10];
  69.         DSY_buffer[0]=DSY_play[hour%10];

  70. }

  71. void main()
  72. {
  73.         uchar x,y;
  74.        
  75.         TMOD|=0X11;  //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
  76.         TH0=(65536-1000)/256;
  77.         TL0=(65536-1000)%256;
  78.         TH1=(65536-50000)/256;
  79.         TL1=(65536-50000)%256;
  80.         //TCON=0x01;
  81.         EA=1; //總中斷打開
  82.         ET0=1;           //定時器中斷打開
  83.         ET1=1;           //定時器中斷打開
  84.        
  85.         DSY_wei=0xfe;
  86.         DSY_IDX=0;
  87.         miao=10;
  88.         fen=20;
  89.         hour=20;
  90.        
  91.         DSY_buffer[7]=DSY_play[miao%10];
  92.         DSY_buffer[6]=DSY_play[miao/10];           //初始化時間為 20-20-10  
  93.         DSY_buffer[4]=DSY_play[fen%10];
  94.         DSY_buffer[3]=DSY_play[fen/10];
  95.         DSY_buffer[1]=DSY_play[hour%10];
  96.         DSY_buffer[0]=DSY_play[hour/10];
  97.         TR0=1;          //定時器開關打開
  98.         TR1=1;          //定時器開關打開
  99.        
  100.         while(1)
  101.         {
  102.                
  103.                 key_state=0xff;
  104.                 if(P1&0xff!=0xff)
  105.                 {
  106.                         for(x=110;x>0;x--)
  107.                         for(y=110;y>0;y--);

  108.                 }
  109.                 if(P1&0xff!=0xff)
  110.                 {
  111.                         key_state=P1;
  112.                         EA=0;
  113.                         if(key_state&0xfe==0xfe)
  114.                         {
  115.                                 fen++;
  116.                                 DSY_buffer[4]=DSY_play[fen%10];
  117.                                 DSY_buffer[3]=DSY_play[fen/10];

  118.                         }
  119.                         else if(P1&0xfd)
  120.                         {
  121.                                 hours();
  122.                         }

  123.                 }
  124.         }
  125. }
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美久久久久久 | 午夜免费小视频 | 国产一区 在线视频 | 91久久精品日日躁夜夜躁欧美 | 一区二区三区视频在线免费观看 | 五月婷婷视频 | 国产成人精品一区二区 | www.青青草| 久久久精品网站 | av片毛片 | 久操av在线| 亚洲狠狠 | 国产日韩欧美在线观看 | 免费国产精品久久久久久 | 精品国产乱码久久久久久1区2区 | 国产 日韩 欧美 在线 | 欧美成人激情视频 | 国产精品久久久久久久久久久免费看 | 成人一级片在线观看 | 亚洲人人| 久久久久av | 免费一级网站 | 成人免费视频网站 | 欧美自拍第一页 | 日韩中文字幕 | 国产精品黄色 | 亚洲成人在线网 | 亚洲av毛片 | 国产精品区二区三区日本 | 久久久精品一区 | 亚洲高清av | 久久精品久久久久久 | 极品的亚洲| 刘亦菲国产毛片bd | 97色在线观看免费视频 | 香蕉久久a毛片 | 韩日在线 | av网站免费在线观看 | 91伊人| 一区二区精品 | 九九热这里只有精品6 |