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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

新人來幾張ds1302+c51 4位數碼管時鐘仿真圖片

  [復制鏈接]
跳轉到指定樓層
樓主


完整程序源碼和仿真文件在5樓下載.

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:1 發表于 2014-11-26 12:26 來自手機 | 只看該作者
有程序嗎
回復

使用道具 舉報

板凳
ID:69466 發表于 2014-11-26 12:32 | 只看該作者
程序呀!
回復

使用道具 舉報

地板
ID:65179 發表于 2014-11-27 07:50 | 只看該作者
等等,我有時間把程序發上來
回復

使用道具 舉報

5#
ID:65179 發表于 2014-11-28 15:46 | 只看該作者
ds1302 c52 4位數碼管時鐘年月日周可調 proteus仿真.rar (87.45 KB, 下載次數: 241)

  1. #include <at89x52.h>
  2. #include <DS1302.h>
  3. #define uchar unsigned char
  4. /********************************************************/
  5. unsigned char code shumg[]={
  6. 0xc0,0xf9,0xa4,0xb0,
  7. 0x99,0x92,0x82,0xf8,
  8. 0x80,0x90,0xff};
  9. /********************************************************/
  10. sbit led1=P3^4;                                   //時間指示燈
  11. sbit led2=P3^5;                                   //年月指示燈
  12. sbit led3=P3^7;                                   //日周指示燈
  13. sbit led=P1^7;                                   //冒號閃爍
  14. char miao_num;                                   //冒號標志
  15. /********************************************************/
  16. unsigned char Time[]={0,0,0,0};//用來儲存,時間
  17. unsigned char Dime[]={0,0,0,0};//用來儲存,年月
  18. unsigned char Bime[]={0,0,0,0};//用來儲存,日期
  19. unsigned char flag;                       //鍵盤入口
  20. /********************************************************/
  21. SYSTEMTIME  time1;   
  22. /********************************************************/
  23. void keyscan();                       //按鍵掃描程序
  24. void mao_hao();                                         //冒號聲明
  25. /********************************************************/
  26. void delay(unsigned char i)      //延時子程序  
  27. {
  28.   unsigned char j;
  29.   while((i--)!=0)
  30.   {
  31.     for(j=123;j>0;j--);
  32.   }
  33. }
  34. /********************************************************/
  35. void t0_init()                        //定時50ms一個中斷
  36. {
  37.   TMOD=0x11;                                                  //總中斷初始化
  38.   TH0=0x3c;                                          //定時50ms一個中斷
  39.   TL0=0xb0;                                          //定時50ms一個中斷
  40.   EA=1;                                                                  //開啟總中斷
  41.   ET0=1;                                                       
  42.   TR0=1;                                                          //開啟定時器0
  43. }
  44. /********************************************************/
  45. unsigned char button_time(n,x,y)        //時鐘調整子程序
  46. unsigned char n,x,y;
  47. {
  48. if(P1_5==0)                                                        //加
  49.   {
  50.   delay(50);
  51. if(P1_5==0)
  52. {
  53. n++;
  54. if(n==x)
  55.   n=0;
  56. while(P1_5==0);
  57.    }
  58. }
  59. /********************************************************/
  60. if(P1_6==0)                                                //減
  61.     {
  62.    delay(50);
  63. if(P1_6==0)
  64.     {
  65. if(n==0)
  66.    n=y;
  67. else
  68.     n--;                                               
  69.   while(P1_6==0);
  70.     }
  71. }
  72. return n;                                                   //函數返回
  73. }
  74. /********************************************************/
  75. void display(shi10,shi1,fen10,fen1)//顯示子程序
  76. {
  77.   P2=0xfe;
  78.   P0=shumg[shi10];   //顯示時的十位
  79.   delay(1);                        //延時
  80.   P0=0xff;                        //消隱
  81.   P2=0xff;                         //消隱

  82.   P2=0xfd;
  83.   P0=shumg[shi1];        //顯示時的個位
  84.   delay(1);                        //延時
  85.   P2=0xff;                        //消隱
  86.   P0=0xff;                        //消隱                                                         
  87.   
  88.   P2=0xfb;
  89.   P0=shumg[fen10];  //顯示分的十位
  90.   delay(1);                        //延時
  91.   P2=0xff;                        //消隱
  92.   P0=0xff;                        //消隱
  93.   
  94.   P2=0xf7;
  95.   P0=shumg[fen1];        //顯示分的個位
  96.   delay(1);                        //延時
  97.   P2=0xff;                        //消隱
  98.   P0=0xff;                    //消隱
  99. }
  100. /********************************************************/
  101. void main()                                                        //主程序
  102. {  
  103.    Initial_DS1302();                                 //初始化DS1302這個時鐘芯片,   
  104.    t0_init();                                                 //中斷初始化
  105.    while(1)                                                         //大循環   
  106.    {                                                                 
  107.    mao_hao();                                                 //冒號初始化
  108.           keyscan();                                         //鍵盤初始化

  109.   DS1302_GetTime(&time1);                       //讀取時間參數            
  110.   
  111.   Bime[3]=(time1.Week)%10;                   //把時的個位數據存入Bime[3]
  112.   Bime[2]=(time1.Week)/10;                         //把時的個位數據存入Bime[2]
  113.   Bime[1]=(time1.Day)%10;                       //把時的個位數據存入Bime[1]
  114.   Bime[0]=(time1.Day)/10;                     //把時的個位數據存入Bime[0]
  115.   
  116.   Dime[3]=(time1.Month)%10;                   //把時的個位數據存入Dime[3]
  117.   Dime[2]=(time1.Month)/10;                         //把時的個位數據存入Dime[2]
  118.   Dime[1]=(time1.Year)%10;                   //把時的個位數據存入Dime[1]
  119.   Dime[0]=(time1.Year)/10;                         //把時的個位數據存入Dime[0]
  120.   
  121.   Time[3]=(time1.Minute)%10;                 //把分的個位數據存入Time[3]
  122.   Time[2]=(time1.Minute)/10;                 //把分的十位數據存入Time[2]
  123.   Time[1]=(time1.Hour)%10;                   //把時的個位數據存入Time[1]
  124.   Time[0]=(time1.Hour)/10;                         //把時的十位數據存入Time[0]
  125. }
  126. }
  127. /*******************************************************/
  128. void keyscan()                                //按鍵掃描程序
  129. {
  130.     if(P1_3==0)                                    //切換程序
  131.         {
  132.          delay(50);
  133.         if(P1_3==0)
  134.            {
  135.            TR0=0;                                                        //有按鍵按下關閉定時器0
  136.                 miao_num=0;                                         //冒號常亮
  137.                  flag++;
  138.                 if(flag>2)                                                //翻頁年月日周按兩次后啟動定時器
  139.                         {
  140.                  flag=0;
  141.                    TR0=1;                                                //啟動定時器0
  142.                         }
  143.                 }
  144.         while(P1_3==0);
  145.         }
  146. /*******************************************************/
  147.         if(P1_4==0)                                    //設置程序
  148.         {
  149.          delay(50);
  150.         if(P1_4==0)
  151.            {
  152.           TR0=0;                                                        //有按鍵按下關閉定時器0
  153.            miao_num=0;                                                //冒號常亮
  154.                 flag++;                                                       
  155.             if(flag>2)                                                //按兩次后啟動定時器
  156.            {
  157.            TR0=1;                                                        //啟動定時器0
  158.                 }
  159.           if(flag>4)                                                //按四次后關閉定時器
  160.            {
  161.            TR0=0;                                                        //關閉定時器0
  162.                 miao_num=0;                                                //冒號常亮
  163.                 }
  164.         if(flag>8)                                                        //顯示多少位和翻頁按八次啟動定時器
  165.                         {
  166.                  flag=0;
  167.                   TR0=1;                                                //啟動定時器0
  168.                         }
  169.                 }
  170.         while(P1_4==0);
  171.         }
  172. switch(flag)
  173.         {
  174. /*******************************************************/
  175.                        
  176.         case 0:display(Time[0],Time[1],Time[2],Time[3]);                //調用子函數display,把存入數組time的數據給顯示出來
  177.                         led1=0;
  178.                         led3=1;
  179.                         break;
  180.         case 1:display(Dime[0],Dime[1],Dime[2],Dime[3]);                //調用子函數display,把存入數組Dime的數據給顯示出來
  181.                         led1=1;
  182.                         led2=0;
  183.                         break;
  184.         case 2:display(Bime[0],Bime[1],Bime[2],Bime[3]);                //調用子函數display,把存入數組Bime的數據給顯示出來
  185.                         led2=1;
  186.                         led3=0;
  187.                         break;
  188. /*******************************************************/       
  189.         case 3:time1.Hour=button_time(time1.Hour,24,23);                //調整時                          
  190.                         DS1302_SetTime(0x84,time1.Hour);
  191.                         display(Time[0],Time[1],10,10);
  192.                         led1=0;
  193.                         led3=1;
  194.                         break;

  195.     case 4:time1.Minute=button_time(time1.Minute,60,59);        //調整分                            
  196.                         DS1302_SetTime(0x82,time1.Minute);
  197.                         display(10,10,Time[2],Time[3]);
  198.                         led1=0;
  199.                         led3=1;
  200.                         break;
  201. /*******************************************************/
  202.                
  203.         case 5:time1.Year=button_time(time1.Year,100,99);                //調整年                            
  204.                         DS1302_SetTime(0x8c,time1.Year);
  205.                         display(Dime[0],Dime[1],10,10);
  206.                         led1=1;
  207.                         led2=0;
  208.                         break;
  209.        
  210.         case 6:time1.Month=button_time(time1.Month,13,12);                //調整月                          
  211.                         DS1302_SetTime(0x88,time1.Month);
  212.                         display(10,10,Dime[2],Dime[3]);
  213.                         led1=1;
  214.                         led2=0;
  215.                         break;
  216. /********************************************************/       
  217.                                          
  218.            case 7:time1.Day=button_time(time1.Day,32,31);                        //調整日
  219.                         DS1302_SetTime(0x86,time1.Day);
  220.                         display(Bime[0],Bime[1],10,10);
  221.                         led2=1;
  222.                         led3=0;
  223.                         break;
  224.        
  225.         case 8:time1.Week=button_time(time1.Week,8,7);                        //調整周
  226.                         DS1302_SetTime(0x8a,time1.Week);
  227.                         display(10,10,Bime[2],Bime[3]);
  228.                         led2=1;
  229.                         led3=0;
  230.                         break;
  231.     }
  232. }
  233. /*******************************************************/
  234. void t0_timer() interrupt 1                                //冒號中斷賦值
  235. {
  236.       TH0=0x3c;
  237.       TL0=0xb0;
  238.       miao_num++;
  239. }
  240. /*******************************************************/
  241. void mao_hao()                                        //冒號子程序
  242. {
  243. if(miao_num>=20)
  244.    {
  245.    miao_num=0;
  246.    }
  247.    if(miao_num<10)
  248.      led=0;
  249.          if(miao_num>=10)
  250.           led=1;
  251. }
復制代碼


回復

使用道具 舉報

6#
ID:67395 發表于 2014-11-30 11:19 | 只看該作者
樓主好人
回復

使用道具 舉報

7#
ID:69664 發表于 2014-11-30 11:23 | 只看該作者
樓主好人
回復

使用道具 舉報

8#
ID:69736 發表于 2014-12-1 10:19 | 只看該作者
謝謝樓主分享~!
回復

使用道具 舉報

9#
ID:69736 發表于 2014-12-1 10:19 | 只看該作者
謝謝樓主分享~!
回復

使用道具 舉報

10#
ID:65179 發表于 2014-12-1 13:28 | 只看該作者
不用謝,大家一起來學嗎
回復

使用道具 舉報

11#
ID:67678 發表于 2015-2-14 19:31 | 只看該作者
謝謝樓主分享。
回復

使用道具 舉報

12#
ID:59158 發表于 2015-4-4 16:52 來自手機 | 只看該作者
不錯,好思維
回復

使用道具 舉報

13#
ID:56948 發表于 2015-5-17 12:56 來自手機 | 只看該作者
/謝謝樓主分享~!
回復

使用道具 舉報

14#
ID:80251 發表于 2015-5-17 14:14 | 只看該作者
謝謝!!!
回復

使用道具 舉報

15#
ID:89183 發表于 2015-9-8 14:40 | 只看該作者
很好學習了
回復

使用道具 舉報

16#
ID:79034 發表于 2015-9-11 19:01 | 只看該作者
下來看看,學習學習。
下載完回帖是好習慣。。
回復

使用道具 舉報

17#
ID:104414 發表于 2016-6-6 01:18 | 只看該作者
樓主好厲害                                 
回復

使用道具 舉報

18#
ID:125357 發表于 2016-6-6 01:24 | 只看該作者

謝謝樓主分享。
回復

使用道具 舉報

19#
ID:140489 發表于 2016-9-28 16:22 | 只看該作者
下載下來學習學習
回復

使用道具 舉報

20#
ID:87149 發表于 2016-11-24 16:34 | 只看該作者

下載下來學習學習               
回復

使用道具 舉報

21#
ID:99130 發表于 2017-2-21 11:44 | 只看該作者
樓主74HC04可以用CD4069代替對嗎
回復

使用道具 舉報

22#
ID:99130 發表于 2017-2-21 18:02 | 只看該作者
不知道是樓主資料的問題還是我的問題,我用CD4069和74HC14替換74HC04都不行。不知道能不能替換
回復

使用道具 舉報

23#
ID:99130 發表于 2017-2-21 23:31 | 只看該作者
我用4069替代HC04可以。但是走得太快,48秒就進一分鐘,是為什么???而且1302斷電不走時。。。
回復

使用道具 舉報

24#
ID:96682 發表于 2017-2-22 09:34 | 只看該作者
越快樂越墮落 發表于 2017-2-21 23:31
我用4069替代HC04可以。但是走得太快,48秒就進一分鐘,是為什么???而且1302斷電不走時。。。

首次聽說時鐘快慢還和反相器有關,不知道是因為不了解元器件還是有意而為
回復

使用道具 舉報

25#
ID:65179 發表于 2017-5-3 13:50 | 只看該作者
越快樂越墮落 發表于 2017-2-21 23:31
我用4069替代HC04可以。但是走得太快,48秒就進一分鐘,是為什么???而且1302斷電不走時。。。

在模擬仿真HC04來代替三極管,在實際電路中要用三極管的,1302你裝電池了嗎
回復

使用道具 舉報

26#
ID:89286 發表于 2017-5-3 15:38 | 只看該作者
thanks for sharing
回復

使用道具 舉報

27#
ID:99130 發表于 2017-5-4 11:14 | 只看該作者
wc86110 發表于 2017-2-22 09:34
首次聽說時鐘快慢還和反相器有關,不知道是因為不了解元器件還是有意而為

我這是說的兩件事,請不要混為一談。
回復

使用道具 舉報

28#
ID:99130 發表于 2017-5-4 11:15 | 只看該作者
wc86110 發表于 2017-2-22 09:34
首次聽說時鐘快慢還和反相器有關,不知道是因為不了解元器件還是有意而為

你沒發現前面有一個句號嗎?沒懂我的意思就不要亂說
回復

使用道具 舉報

29#
ID:99130 發表于 2017-5-4 11:16 | 只看該作者
chweji123 發表于 2017-5-3 13:50
在模擬仿真HC04來代替三極管,在實際電路中要用三極管的,1302你裝電池了嗎

裝了。。。。。。。。
回復

使用道具 舉報

30#
ID:168133 發表于 2017-6-9 22:58 | 只看該作者
樓主HC04是 用三極管嗎?我用8550和沒用數碼管都是g顯示(8中間的那個—)
回復

使用道具 舉報

31#
ID:140183 發表于 2017-6-10 06:56 | 只看該作者
太好啦。謝謝!!!!!!!!
回復

使用道具 舉報

32#
ID:209955 發表于 2017-6-10 21:50 | 只看該作者
感謝樓主分享,下載學習學習
回復

使用道具 舉報

33#
ID:35873 發表于 2017-6-14 02:29 | 只看該作者
這個好  只可惜沒幣下載了
回復

使用道具 舉報

34#
ID:68429 發表于 2017-9-22 21:13 | 只看該作者
做成功了 但是一直顯示00:00不會走動 是不是1302數據口沒加上拉電阻
回復

使用道具 舉報

35#
ID:68429 發表于 2017-9-22 21:14 | 只看該作者
是不是1302還得加上電阻
回復

使用道具 舉報

36#
ID:243884 發表于 2017-12-1 22:09 | 只看該作者
K可以,下載了
回復

使用道具 舉報

37#
ID:214314 發表于 2019-7-12 22:04 | 只看該作者
不要74HC04可以嗎?
回復

使用道具 舉報

38#
ID:156220 發表于 2019-7-13 09:24 | 只看該作者
這個資料不錯誤,
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 涩在线 | 中文字幕一区二区三区四区五区 | av黄色免费 | 免费黄色特级片 | 免费在线看a | 成人av免费| 国产精品久久久久久久久免费 | 亚洲欧美一区二区在线观看 | 欧美一级免费看 | 国产在线一区二区三区 | 97精品国产97久久久久久免费 | 亚洲一区二区在线播放 | 拍真实国产伦偷精品 | 一级毛片高清 | 日韩三级电影一区二区 | 欧美日韩视频在线播放 | 国产99久久精品 | 精品国产久 | 亚洲激情在线 | www.黄色在线观看 | 岛国午夜 | 在线观看成人精品 | 久久伊人免费视频 | 精品无码久久久久久国产 | 91免费福利视频 | 高清视频一区 | 91综合在线视频 | 国产高清视频 | 天天影视亚洲综合网 | 精品国产免费人成在线观看 | sese视频在线观看 | 国产精品久久久久久久久久免费看 | 中文字幕 视频一区 | 午夜天堂精品久久久久 | 国内自拍视频在线观看 | 天天射影院 | 国产视频福利在线观看 | 午夜精品一区二区三区在线视频 | 精品美女视频在免费观看 | 午夜精品三区 | 欧美影院久久 |