單片機課程設(shè)計報告電子時鐘(DS1302芯片)_第1頁
單片機課程設(shè)計報告電子時鐘(DS1302芯片)_第2頁
單片機課程設(shè)計報告電子時鐘(DS1302芯片)_第3頁
單片機課程設(shè)計報告電子時鐘(DS1302芯片)_第4頁
單片機課程設(shè)計報告電子時鐘(DS1302芯片)_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、課 程 設(shè) 計 報 告課程名稱 單片機課程設(shè)計 課題名稱 電子時鐘(ds1302芯片)專 業(yè) 電子信息工程 班 級 學 號 姓 名 指導教師 .目 錄1、設(shè)計題目及要求12、設(shè)計方案12. 1、 ds1302介紹及其特性12. 2、 電路連接12. 3、 ds1302的內(nèi)部結(jié)構(gòu)12. 4、 單字節(jié)數(shù)據(jù)輸入32. 5、 存儲器映射表32. 6、 流程圖33、程序調(diào)試33. 1、 源程序34、總結(jié)45. 調(diào)試仿真圖51設(shè)計題目及要求利用單片機芯片,和ds1302芯片,使得數(shù)碼管7seg-mpx8-ca-blue顯示年月日和時間,時間和年月日分開顯示,屏幕顯示時間。2. 設(shè)計方案 2.1 ds130

2、2介紹及其特性ds1302 是美國dallas公司推出的一種高性能、低功耗、帶ram的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的ram寄存器。ds1302是ds1202的升級產(chǎn)品,與ds1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細電流充電的能力。特性: 實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償?shù)哪赀M行計數(shù) 用于高速數(shù)據(jù)暫存的 318 ram 2引腳的

3、串行 i/o 2.5-5.5v滿度工作范圍 用于時鐘或ram數(shù)據(jù)讀寫的單字節(jié)或 多字節(jié)數(shù)據(jù)傳送 雙電源引腳 可選慢速充電至vcc12.2電路連接:2.3 ds1302的內(nèi)部結(jié)構(gòu)2.4單字節(jié)數(shù)據(jù)輸入:0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 12.5存儲器映射表:1時鐘/日歷存儲區(qū)(control)命令字節(jié)1 0 00111 1/0無效位1:寫保護0:可寫入2時鐘/日歷存儲區(qū)(時分秒)3時鐘/日歷存儲區(qū)(日期、星期)2.6 流程圖:3. 程序設(shè)計 3.1源程序#include#define uchar unsigned char#define uint unsigned int

4、/蜂鳴器位定義sbit beep = p33 ;/ds1302相關(guān)操作線定義sbit rst = p11 ;sbit sck = p12 ;sbit sda = p13 ; /按鍵定義,key1切換鍵,key2加,key3減,key4鬧鐘,年月日周sbit key1 = p14 ;sbit key2 = p15 ;sbit key3 = p16 ;sbit key4 = p17 ;uchar i,j,mod,flag,flag1=1 ;/控制定時器動態(tài)掃描數(shù)碼管的第幾位,j是定時讀取時間。mod是對key1按下次數(shù)計數(shù)。flag切換鬧鐘,日期,和周.flag1為鬧鐘標志位/uchar code

5、 write_addr7=0x80,0x82,0x84,0x86,0x88,0x8a,0x8c; /秒分時日月周年 寫地址/uchar code read_addr7=0x81,0x83,0x85,0x87,0x89,0x8b,0x8d; /秒分時日月周年 讀地址/共陽數(shù)碼管碼表,表示0-9和-。-表示時分秒的間隔.uchar code led11 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,;uchar disbuf8 = 0x62,0xa2,0xf7,0x7a,0x28,0xf7,0x7e,0x7e ;/定義時間日期的結(jié)構(gòu)類型st

6、ruct time uchar second ; uchar minute ; uchar hour ; uchar week ; uchar day ; uchar month ; uchar year ;current_time ;#define ctime current_time/定義鬧鐘的時分秒變量uchar asec,amin,ahour ;void delay(uint ms) uchar i ; while(ms-) for(i=135;i0;i-);/滴一聲,用來按鍵伴音void di() uchar i ; for(i=0;i0; i-) di(); delay(140);

7、 /ds1302的寫驅(qū)動,傳入?yún)?shù)為一個地址和數(shù)據(jù)void write(uchar addr,uchar dat) uchar i ; rst = 0 ; sck = 0 ; rst = 1 ; for(i=0;i=1 ; sck = 1 ; for(i=0;i= 1 ; sck = 1 ; rst = 0 ;/ds1302的讀驅(qū)動,傳入?yún)?shù)為一個地址,返回參數(shù)為讀到的數(shù)據(jù)uchar read(uchar addr) uchar i,dat ; rst = 0 ; sck = 0 ; rst = 1 ; for(i=0;i=1 ; sck = 1 ; for(i=0;i=1 ; if(sda)

8、 dat|=0x80 ; sck=1 ; rst=0 ; dat=(dat/16*10)+(dat&0x0f); return dat ;/讀取ds1302的時間和日期void read_time() ctime.second = read(0x81); ctime.minute = read(0x83); ctime.hour = read(0x85); ctime.day = read(0x87); ctime.month = read(0x89); ctime.week = read(0x8b); ctime.year = read(0x8d);/設(shè)定時間和日期void set_time

9、() if(!flag) write(0x8e,0x00); write(0x80,(ctime.second/10)4|(ctime.second%10); write(0x82,(ctime.minute/10)4|(ctime.minute%10); write(0x84,(ctime.hour/10)4|(ctime.hour%10); write(0x8e,0x80); else write(0x8e,0x00); write(0x86,(ctime.day/10)4|(ctime.day%10); write(0x88,(ctime.month/10)4|(ctime.month%10); write(0x8a,(ctime.week/10)4|(ctime.week%10); write(0x8c,(ctime.year/10)i); p0=disbufi; i+; /3msx8x20,大約480ms從ds1302芯片讀取一下時間 if(j=20) j=0 ; refbuf(); if(mod=0) read_time(); 4. 總結(jié): 本設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論