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

QQ登錄

只需一步,快速開(kāi)始

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

DS3231時(shí)鐘程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:238672 發(fā)表于 2017-10-11 19:25 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
DS3231時(shí)鐘程序,51單片機(jī)控制,數(shù)碼管顯示,帶四個(gè)按鍵,可以自 動(dòng)進(jìn)行時(shí)間調(diào)整。

單片機(jī)源程序如下:
  1. #include <STC15W4K58S4.h>
  2. #include "read_or_write.h"
  3. #include "Interrupt.h"
  4. #include "led.h"
  5. #include "IIC.h"
  6. #include "key.h"
  7. #include "uart.h"
  8. #include "DS3231.h"

  9. static uchar f = 0;                              /*時(shí)間溫度狀態(tài)切換標(biāo)志量*/
  10. static uchar flag;
  11. static unsigned int SUM = 1000;
  12. static unsigned int SUMM = 200;
  13. static unsigned int NO;
  14. int main()
  15. {
  16.         uchar set;
  17.         KEY = 0;                                         /*按鍵*/
  18.         ERRON = 1;
  19.         flag = 0;
  20.         
  21.         P2M0 = 0x00;
  22.         P2M1 = 0x00;
  23.         
  24.         Time[0] = 5;
  25.         Time[1] = 5;
  26.         Time[2] = 5;
  27.         Time[3] = 5;
  28.         init_uart1();                             /*初始化串口,用于監(jiān)控代碼運(yùn)行,方便調(diào)試*/
  29.         init_0();

  30.         init_DS3231(0x1C);      

  31.         /*初始化DS3231*/

  32.         
  33.         //OutChar(Set_time(0x0C,0x01,0x0) + '0');                /*設(shè)置時(shí)間*/
  34.         
  35.   Out_Time_WD();
  36.         init(f);                                 /*初始化定時(shí)器0,顯示時(shí)間*/
  37.         
  38.         Out_Time_WD();
  39.         
  40.         while(1)
  41.         {
  42.                 OutString("進(jìn)入while\r\n");
  43.                 switch(KEY)
  44.                 {
  45.                         case 1:
  46.                                 if(!f)
  47.                                 {
  48.                                         flag = 1;
  49.                                         while(flag < 3)
  50.                                         {
  51.                                                 set = Key_NO();          /*檢測(cè)按鍵變化*/
  52.                                                 
  53.                                                 switch(set)
  54.                                                 {
  55.                                                         case 1: { if(flag == 1) W_char(H,hex_bcd(Hour)); if(flag == 2) W_char(M,hex_bcd(Minutes)); flag += 1; }                        break;       /*分鐘位開(kāi)始閃爍*/
  56.                                                         case 2: set_time_key(flag); break;   /*加1*/
  57.                                                 }
  58.                                         }
  59.                                        
  60.                                         display_ms(100);
  61.                                         flag = 0;
  62.                                         KEY = 0;
  63.                                        
  64.                                 }
  65.                                 init(f);                           /*時(shí)間正常顯示*/
  66.                                 break;
  67.                                 
  68.                         /*
  69.                                 case 2:
  70.                           init(!f);                          /*顯示非當(dāng)前模式*/
  71.      /* display_ms(5000);                   /*延時(shí)5秒*/
  72.                  /* init(f);                           /*顯示為當(dāng)前模式*/                                       
  73.                 /*        break;
  74.                         */
  75.                                 
  76.                         case 3:
  77.                                 f = !f;                            /*切換狀態(tài)*/
  78.                                 init(f);                           /*顯示為設(shè)置的工作狀態(tài)*/
  79.                                 break;        
  80.                 }
  81.         }
  82. }

  83. void init_time0() interrupt 1
  84. {
  85.         uchar i,k;
  86.         uchar j = 1;
  87.         
  88.         
  89.         if(flag ==1)
  90.         {
  91.                 if(NO >= SUM)
  92.                 {
  93.                         i = 0;
  94.                         k = 4;
  95.                 }
  96.                 else
  97.                 {
  98.                         i = 0;
  99.                   k = 2;
  100.                 }
  101.         }
  102.         else if(flag == 2)
  103.         {
  104.                 if(NO >= SUM)
  105.                 {
  106.                         i = 0;
  107.                         k = 4;
  108.                 }
  109.                 else
  110.                 {
  111.                         i = 2;
  112.                   k = 4;
  113.                 }
  114.         }
  115.         else
  116.         {
  117.                 i = 0;
  118.                 k = 4;
  119.         }
  120.         
  121.         if(NO == 2*SUM)
  122.                  NO = 0;
  123.         NO += 1;
  124.         
  125.         for(;i < k; i++)
  126.         {
  127.                 if(f && i == 2)
  128.                 {
  129. ……………………

  130. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
DS3231SN.zip (99.96 KB, 下載次數(shù): 417)


評(píng)分

參與人數(shù) 1黑幣 +3 收起 理由
vvv64 + 3 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:183763 發(fā)表于 2018-4-2 19:27 | 只看該作者
這個(gè)沒(méi)人看嗎?帶幾個(gè)鬧鐘的呢
回復(fù)

使用道具 舉報(bào)

板凳
ID:58092 發(fā)表于 2018-4-5 15:00 | 只看該作者
下載 看看   參考
回復(fù)

使用道具 舉報(bào)

地板
ID:96881 發(fā)表于 2018-4-7 07:46 | 只看該作者
模塊化的,下載學(xué)習(xí),謝謝
回復(fù)

使用道具 舉報(bào)

5#
ID:96881 發(fā)表于 2018-4-14 19:49 | 只看該作者
請(qǐng)大家指教一下,因?yàn)槲也砰_(kāi)始學(xué)單片機(jī),這個(gè)帖子里面LED的顯示程序的段選和位選分別是什么表示的,因?yàn)槲页鯇W(xué)只看到過(guò)在程序前面直接說(shuō)明的,這個(gè)LED的兩個(gè)文件都看了也沒(méi)有看懂,所以請(qǐng)指導(dǎo)一下,謝謝
回復(fù)

使用道具 舉報(bào)

6#
ID:78901 發(fā)表于 2018-6-7 23:17 | 只看該作者
辛苦了,模塊化的,下載學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

7#
ID:58092 發(fā)表于 2018-7-3 08:29 | 只看該作者
下載 學(xué)習(xí) 一下  
回復(fù)

使用道具 舉報(bào)

8#
ID:387328 發(fā)表于 2018-9-17 15:54 | 只看該作者

好貼,有沒(méi)有二個(gè)調(diào)整鍵的呢?
回復(fù)

使用道具 舉報(bào)

9#
ID:309092 發(fā)表于 2018-9-19 10:06 | 只看該作者
學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

10#
ID:309092 發(fā)表于 2018-9-19 10:07 | 只看該作者
學(xué)習(xí)學(xué)習(xí),希望有幫助
回復(fù)

使用道具 舉報(bào)

11#
ID:309092 發(fā)表于 2018-9-19 10:08 | 只看該作者
下載學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

12#
ID:468714 發(fā)表于 2019-1-15 20:22 | 只看該作者
cqhejian 發(fā)表于 2018-4-7 07:46
模塊化的,下載學(xué)習(xí),謝謝

你好,請(qǐng)問(wèn)您的關(guān)于ds3231的帖子里的資源包里都包括什么呢?
回復(fù)

使用道具 舉報(bào)

13#
ID:202926 發(fā)表于 2019-1-15 23:55 | 只看該作者
jhgvj 發(fā)表于 2019-1-15 20:22
你好,請(qǐng)問(wèn)您的關(guān)于ds3231的帖子里的資源包里都包括什么呢?

就程序而已 其他什么都沒(méi)有,你看第一張圖就知道了
回復(fù)

使用道具 舉報(bào)

14#
ID:237159 發(fā)表于 2019-6-5 13:16 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

15#
ID:57570 發(fā)表于 2019-9-1 20:38 來(lái)自手機(jī) | 只看該作者
按鍵能調(diào)嗎?
回復(fù)

使用道具 舉報(bào)

16#
ID:507960 發(fā)表于 2019-9-6 21:29 | 只看該作者
貌似沒(méi)看到你所說(shuō)的 鬧鐘 功能
回復(fù)

使用道具 舉報(bào)

17#
ID:546585 發(fā)表于 2019-11-21 20:53 | 只看該作者
學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

18#
ID:385168 發(fā)表于 2020-3-16 05:35 | 只看該作者
正在學(xué)習(xí)ds3231,下載學(xué)習(xí),謝謝分享。
回復(fù)

使用道具 舉報(bào)

19#
ID:500396 發(fā)表于 2020-4-24 11:41 | 只看該作者
感謝分享!
回復(fù)

使用道具 舉報(bào)

20#
ID:831068 發(fā)表于 2021-1-9 09:12 | 只看該作者
并沒(méi)有看到所謂的“帶幾個(gè)鬧鐘的呢
回復(fù)

使用道具 舉報(bào)

21#
ID:829752 發(fā)表于 2021-1-12 17:55 | 只看該作者
4個(gè)按鍵的功能分別是什么
回復(fù)

使用道具 舉報(bào)

22#
ID:93502 發(fā)表于 2021-2-25 21:03 | 只看該作者
樓主真高手!
回復(fù)

使用道具 舉報(bào)

23#
ID:652804 發(fā)表于 2021-3-27 08:33 | 只看該作者
模塊化的,下載學(xué)習(xí),謝謝。
回復(fù)

使用道具 舉報(bào)

24#
ID:884042 發(fā)表于 2021-5-29 18:08 | 只看該作者
Equator 發(fā)表于 2019-9-6 21:29
貌似沒(méi)看到你所說(shuō)的 鬧鐘 功能

我連調(diào)節(jié)鬧鐘的影子都沒(méi)看見(jiàn),浪費(fèi)我的黑幣
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表