畢業設計之時鐘模組設計DS1302

2021-10-05 05:00:41 字數 3139 閱讀 2687

該模組使用的晶元是:ds1302晶元,ds1302晶元是乙個自動計時的時鐘模組,有6個時鐘暫存器,秒,分,時,日,月,年(其實不止,其它的暫且不管了)

使用不同的命令字來控制相應的暫存器:

0x80 ~ 0x8c ,分別控制秒到年暫存器的讀和寫

上表中,如果想讀當前是多少秒,直接將0x81給read_ds1302()函式作為引數,該函式返回值對應的就是當前的秒

unsigned int current_second = read_ds1302(0x81);current_second 就是返回的秒

ds1302和微控制器通過i/0口進行連線:

具體實現兩種通訊:

微控制器通過傳送指令,讓時鐘暫存器獲得初始化時間

微控制器從ds1302晶元獲取時鐘資訊

ds1302封裝圖:

下面介紹從ds1302讀取時鐘的過程:

首先請看時序圖:

dat是需要讀入命令字,函式返回該命令字要求返回的暫存器的資料

*/u8 read_ds1302

(u8 dat)

// for

(i =

8;i>

0; i--

)//採用先接收io口資料,再用下降沿觸發,迴圈結束後acc獲得讀取資料

ds1302_sclk =1;

ds1302_ce =0;

dat1 = acc;

dat2 = dat1 /16;

dat1 = dat1 %16;

dat1 = dat1+dat2*10;

return

(dat1)

;}往ds1302寫資料:

寫時序如圖:(rst = ce)

addr寫入命令字,dat根據寫入的命令字把dat資料放入相應的暫存器

*/void

write_ds1302

(u8 addr,u8 dat)

for(i=

8;i>

0;i--

) ds1302_sclk =1;

ds1302_ce =0;

}下面是使用ds1302已經封裝完成的標頭檔案:

ds1302.h

#ifndef    _ds1302_h_

#define _ds1302_h_

#include

sbit ds1302_sclk = p1^4;

sbit ds1302_io = p1^5;

sbit ds1302_ce = p1^6;

#define write_second 0x80 、

#define write_minute 0x82

#define write_hour 0x84

#define write_date 0x86

#define write_month 0x88

#define write_week 0x8a

#define write_year 0x8c

#define read_second 0x81

//讀秒

#define read_minute 0x83

//讀分

#define read_hour 0x85

//讀時

#define read_date 0x87

//讀日

#define read_month 0x89

// 讀月

#define read_week 0x8b

// 讀星期

#define read_year 0x8d

// 讀年

#define write_protect 0x8e

sbit acc_7 = acc^7;

u8 read_ds1302

(u8 dat)

;void

write_ds1302

(u8 addr,u8 dat)

;u8 data time=

;//秒,分,時,日,月、星期、年

u8 read_ds1302

(u8 dat)

for(i =

8;i>

0; i--

)//採用先接收io口資料,再用下降沿觸發

ds1302_sclk =1;

ds1302_ce =0;

dat1 = acc;

dat2 = dat1 /16;

dat1 = dat1 %16;

dat1 = dat1+dat2*10;

return

(dat1);}

void

write_ds1302

(u8 addr,u8 dat)

for(i=

8;i>

0;i--

)//這個迴圈用於向ds1302對應的命令字中寫dat

ds1302_sclk =1;

ds1302_ce =0;

}void

ds1302_init()

//給ds1302初始化,其中0x46是當時做閉塞是當時做畢設的時間,ds1302內部接收的是16進製制,所 //以直接輸入16進製制就好了,

void

read_time()

#endif

時鐘模組設計

時鐘模組設計詳細設計

光照感應模組

光照感應模組詳細設計

畢業設計需求分析1 模組

本系統主要功能有 1.使用者管理 2.房產基礎資料管理。主要實現 各種房產資訊資料的增刪改 3.房產分配。教師申請的用房,管理人員根據需要分配相應房產 4.房產資料統計。1.註冊登入 2.查詢房產資訊 3.申請用房 1.登入 2.使用者管理 管理人員可對使用者資訊資料進行增刪改查 3.房產分配 管理...

畢業設計 參考文獻(1)

傳統的人工管理方式已無法勝任當前快速發展的高等教育需要。快速發展的計算機相關技術催生了各類管理系統的誕生和發展。高校學生的檔案管理系統也是順應這種資訊化的趨勢而出現。使用者包括 系統管理員 普通管理員 學生和教師等。總體功能應至少包括7個一級功能模組,它們分別是 系統使用者管理 個人資料管理 學生資...

畢業設計之揹包系統1

打算寫任務系統,揹包系統,戰鬥系統三部分,但是目前只做過揹包系統 跟著siki學的 戰鬥系統 還不是用fsm寫的 決定從揹包系統開始,修改下之前的框架。先做ui 揹包系統是由很多小格仔構成,每個格仔也就是乙個,建立乙個image,加乙個button,把所有格仔放到乙個空物體下面,為了對小格仔進行排序...