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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

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

查看數: 4171 | 評論數: 6 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2017-12-13 18:09

正文摘要:

#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};     ...

回復

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. }
復制代碼
ID:261803 發表于 2017-12-14 23:01
加油!我也正在研究這個,研究出來一起分享
ID:259741 發表于 2017-12-14 22:45
發現代碼運行出現錯誤,嘗試找出原因有點難,謝謝分享
ID:111634 發表于 2017-12-14 20:55
本帖最后由 zl2168 于 2017-12-14 20:56 編輯
周鑫鑫鑫666 發表于 2017-12-13 20:05
我就是學習了這個之后,自己動手寫的。。找了很久的錯誤還是找不到。不會找很久的話,我也不想發帖

你讀懂了那個案例的程序了嗎?哪里不懂可問我,我給你解答!
ID:253022 發表于 2017-12-13 20:05
zl2168 發表于 2017-12-13 19:08
冗長的程序一般是沒人看的,給你介紹一個正確有效看得懂的案例,自己對照查錯吧!
實例93  具有校正功能的 ...

我就是學習了這個之后,自己動手寫的。。找了很久的錯誤還是找不到。不會找很久的話,我也不想發帖
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文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久一区二区三区 | 成人国产a | 国产精品毛片一区二区在线看 | 中文字幕av免费 | 盗摄精品av一区二区三区 | 91精品成人久久 | а天堂中文最新一区二区三区 | 日本不卡一区 | 精品视频在线观看 | 欧美色综合天天久久综合精品 | av一区在线观看 | 九一视频在线播放 | 精品视频一区二区 | 亚州综合在线 | 欧美男人天堂 | 久久久久久久香蕉 | 亚洲精选久久 | 国产做a爱免费视频 | 欧美一级片免费看 | 久草新在线| 色秀网站 | 天天躁日日躁狠狠躁2018小说 | 欧美激情视频一区二区三区在线播放 | 亚洲一区二区在线视频 | 亚洲人成人一区二区在线观看 | 色久电影| 免费观看一级视频 | 久久久久久中文字幕 | 性高朝久久久久久久3小时 av一区二区三区四区 | 成人深夜福利 | 午夜精品视频在线观看 | 成人在线中文字幕 | 成人免费视频网站在线观看 | 欧美亚洲在线视频 | 久久99视频免费观看 | 中文字幕国产精品 | 精品在线一区二区三区 | 午夜男人视频 | 九九亚洲 | 一区二区三区在线 | 精品亚洲一区二区三区 |