藍橋杯10 DS1302時鐘

2021-10-19 14:09:43 字數 3563 閱讀 3663

使用ds1302編寫時鐘程式

主程式使用io擴充套件方式

#include

#include

#include

void

ds1302_config()

;void

read_ds1302_timer()

;void

show

(unsigned

char w,

unsigned

char n)

;void

show_timer()

;void

show_calnedar()

;void

delay_ms

(int n)

;void

selecthc

(unsigned

char n)

;unsigned

char table=

;//0xbf為數碼管顯示 ——

unsigned

char write_ds1302_adrr[7]

=;unsigned

char read_ds1302_adrr[7]

=;unsigned

char timer[7]

=;//24秒 59分 23時 19日 2月 周五 21年

void

main()

}//初始化

void

ds1302_config()

write_ds1302

(0x8e

,0x80);

}//讀取當前時間

void

read_ds1302_timer()

}//時間顯示函式

void

show_timer()

//日曆顯示函式

void

show_calnedar()

//暫存器選擇

void

selecthc

(unsigned

char n)

}//第w個數碼管顯示n

void

show

(unsigned

char w,

unsigned

char n)

//延時函式

void

delay_ms

(int n)

底層驅動**

/*

程式說明: ds1302驅動程式

軟體環境: keil uvision 4.10

硬體環境: ct107微控制器綜合實訓平台 8051,12mhz

日 期: 2011-8-9

*/#include

#include

sbit sck=p1^

7;

sbit sda=p2^

3;

sbit rst = p1^3;

// ds1302復位

void

write_ds1302_byte

(unsigned

char temp)

}void

write_ds1302

(unsigned

char address,

unsigned

char dat )

unsigned

char read_ds1302 (

unsigned

char address )

rst=0;

_nop_()

; rst=0;

sck=0;

_nop_()

; sck=1;

_nop_()

; sda=0;

_nop_()

; sda=1;

_nop_()

;return

(temp)

;}

#ifndef __ds1302_h

#define __ds1302_h

void

write_ds1302_byte

(unsigned

char temp)

;void

write_ds1302

(unsigned

char address,

unsigned

char dat )

;unsigned

char read_ds1302 (

unsigned

char address )

;#endif

主程式使用暫存器擴充套件方式

#include

#include

#include

void

ds1302_config()

;void

read_ds1302_timer()

;void

show

(unsigned

char w,

unsigned

char n)

;void

show_timer()

;void

show_calnedar()

;unsigned

char table=

;//0xbf為數碼管顯示 ——

unsigned

char write_ds1302_adrr[7]

=;unsigned

char read_ds1302_adrr[7]

=;//2023年4月18日,週六,23點59分24秒

unsigned

char timer[7]

=;//24秒 59分 23時 19日 2月 周五 21年

sbit s7=p3^0;

//切換日曆/時間顯示

int flag=0;

//0顯示時間 1顯示日曆

void

main()

}//初始化

void

ds1302_config()

write_ds1302

(0x8e

,0x80);

}//讀取當前時間

void

read_ds1302_timer()

}//時間顯示函式

void

show_timer()

//日曆顯示函式

void

show_calnedar()

//第w位數碼管顯示n

void

show

(unsigned

char w,

unsigned

char n)

DS1302時鐘總結

ds1302簡單總結介紹一下,ds1302是乙個時鐘晶元,可以自動走時的乙個時鐘晶元,可以計算2100年之前的秒,分,時,日月年的能力,下面是單片的引腳所示 詳細時鐘 初始化和使用 總的來說使用ds1302最主要是對暫存器進行讀寫操作時序 d5 d1代表是對秒 分 時等計數器進行選這位 d0代表時對...

DS1302時鐘模組簡單介紹

2018 4 30 1.功能 1.可以計算2100年之前的秒,分,時,日,日期,星期,月,年的能力 2.在其內部有著31個位元組的靜態ram,提供使用者使用 3.採用序列資料傳送,採用spi三線介面 4.工作電壓 2.0v 5.5v 工作溫度 40c 85c 5.可以採用雙電源進行 2.spi 匯流...

DS1302時鐘系統的總結

ds1302有乙個比較重要的暫存器的位址 其中第一位固定為高位 d6這個位置代表的是對ram 還是時鐘暫存器進行操作 d5 d1代表的是秒 分 時等計數器的選擇位 d0代表的是對暫存器進行讀還是寫操作其中 d0 0進行寫操做 d0 1進行的是讀操作 其中ds1302進行初始化配置的時候就是配置這個暫...