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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自己寫的數(shù)碼管可調(diào)電子鐘有點(diǎn)問題,大家一起看看

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:253022 發(fā)表于 2017-12-13 18:09 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#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到九對應(yīng)的十六進(jìn)制代碼
uchar DSY_buffer[]={0,0,0xbf,0,0,0xbf,0,0};                                                                                 //顯示緩沖區(qū)
uchar DSY_IDX;                                                                                                                              //索引
uchar key_state;   //按鍵狀態(tài)
uchar DSY_wei;    //位碼,用于數(shù)碼管動態(tài)掃描
uchar miao;
uchar fen;
uchar hour;
void fens();
void hours();


void shumaguan() interrupt 0                       //          數(shù)碼管動態(tài)掃描
{    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];           //初始化時(shí)間為 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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

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

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

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

使用道具 舉報(bào)

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

我就是學(xué)習(xí)了這個(gè)之后,自己動手寫的。。找了很久的錯誤還是找不到。不會找很久的話,我也不想發(fā)帖
回復(fù)

使用道具 舉報(bào)

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

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

使用道具 舉報(bào)

5#
ID:259741 發(fā)表于 2017-12-14 22:45 | 只看該作者
發(fā)現(xiàn)代碼運(yùn)行出現(xiàn)錯誤,嘗試找出原因有點(diǎn)難,謝謝分享
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

7#
ID:155507 發(fā)表于 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到九對應(yīng)的十六進(jìn)制代碼
  6. uchar DSY_buffer[]={0,0,0xbf,0,0,0xbf,0,0};      //顯示緩沖區(qū)
  7. uchar DSY_IDX;                 //索引
  8. uchar key_state;   //按鍵狀態(tài)
  9. uchar DSY_wei;    //位碼,用于數(shù)碼管動態(tài)掃描
  10. uchar miao;
  11. uchar fen;
  12. uchar hour;
  13. void fens();
  14. void hours();


  15. void shumaguan(void)  interrupt 1 using 1        //  數(shù)碼管動態(tài)掃描
  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位定時(shí)器,使用"|"符號可以在使用多個(gè)定時(shí)器時(shí)不受影響
  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;           //定時(shí)器中斷打開
  83.         ET1=1;           //定時(shí)器中斷打開
  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];           //初始化時(shí)間為 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;          //定時(shí)器開關(guān)打開
  98.         TR1=1;          //定時(shí)器開關(guān)打開
  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. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜一区二区三区在线观看 | 亚洲精品中文字幕中文字幕 | 国产精品久久久久一区二区三区 | 久久综合久色欧美综合狠狠 | 91精品国产91久久久久久 | 精品一区电影 | 国产真实精品久久二三区 | 久久人体视频 | 国产在线观看一区二区三区 | 亚洲网站在线观看 | 久久免费精品视频 | 国产一区免费 | 91精品一区二区三区久久久久久 | 一区二区久久 | 国产免费福利小视频 | 久久99这里只有精品 | 亚洲福利在线视频 | 国产乱码精品一区二区三区忘忧草 | 亚洲免费精品 | 丝袜美腿av| 日韩国产一区二区三区 | 欧美精品综合 | 一色桃子av一区二区 | 欧美在线小视频 | 亚洲免费一区二区 | 日本一区视频在线观看 | 国产日韩欧美二区 | 99re6在线视频精品免费 | 亚洲九九色 | 亚洲精品视频导航 | 中文字幕 在线观看 | 日韩中文字幕视频在线 | 成人午夜看片 | 全部免费毛片在线播放网站 | 亚洲国产电影 | 亚洲一区二区三区在线 | 欧美日韩视频在线 | 成人高清视频在线观看 | 精品一区二区久久久久久久网精 | 欧美日韩a | 久久成人免费视频 |