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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7705|回復(fù): 8
收起左側(cè)

基于DS1302的可調(diào)時間時鐘 有鬧鈴,流水燈 含設(shè)計報告,仿真圖,PCB工程,程序源碼

  [復(fù)制鏈接]
ID:237239 發(fā)表于 2018-6-24 15:42 | 顯示全部樓層 |閱讀模式
該時鐘有四個模式
模式一:正常的時鐘,在此模式下可以修改時間(修改時間有bug,不能自己跳時間,例如可以調(diào)出25:00)
模式二:倒計時,倒計時結(jié)束后有鬧鈴,流水燈
模式三:鬧鈴,僅僅顯示鬧鈴
模式4:流水燈
PS:沒有驗證,這是 一個多月前做的。
感謝論壇一些大佬的指導(dǎo)。壓縮包內(nèi)含設(shè)計報告,仿真圖,PCB工程,程序源碼。

摘要
學(xué)習(xí)輔助時鐘的idea主要來自于知乎的一個話題:用自己的專業(yè)知識做的小發(fā)明。看到有一位答主分享了自己舍友利用C語言編了一款“我要當(dāng)學(xué)霸”應(yīng)用程序,主要功能是設(shè)定時間提醒學(xué)習(xí),并取得了不錯的效果。在羨慕計算機學(xué)生的編程能力之余我萌生了一個想法,利用自己學(xué)的51單片機來設(shè)計一個學(xué)習(xí)輔助時鐘,主要功能是時鐘顯示,定時學(xué)習(xí),鬧鐘還有一個絢麗的LED流水燈,既可以用于輔助學(xué)習(xí),還可以用作裝飾。時鐘源由外設(shè)的DS1302提供,顯示屏采用LCD1602,加上按鍵矩陣模塊用于調(diào)整時間,選擇單片機運行模式。


目錄

五邑大學(xué)電子設(shè)計大賽單片機組

摘要

目錄

1              學(xué)習(xí)輔助時鐘的總體布局

2              學(xué)習(xí)輔助時鐘各模塊設(shè)計原理

2.1              最小系統(tǒng):

2.2              時鐘模塊:

2.2.1              時鐘芯片DS1302:

2.2.2              DS1302進行讀寫:

2.3              顯示屏LCD1602:

2.3.1              顯示屏1602液晶模塊引腳功能

2.4              鬧鐘鈴聲

2.5              基于74HC595流水燈

2.5.1              芯片74HC595工作原理

3              工作過程:

3.1              其控制程序如下:

3.2              lcd1602顯示程序:

3.3              流水燈程序:

4              功能介紹:

4.1              時鐘功能

4.2              鬧鐘功能

4.3              LED裝飾功能

5              參考文獻

6              程序附錄

1            學(xué)習(xí)輔助時鐘的總體布局
圖1-學(xué)習(xí)輔助時鐘
圖2-系統(tǒng)控制結(jié)構(gòu)框圖
0.png

2            學(xué)習(xí)輔助時鐘各模塊設(shè)計原理
2.1    最小系統(tǒng):
圖3-最小系統(tǒng)原理圖
2.2    時鐘模塊:2.2.1  時鐘芯片DS1302:
圖4-時鐘模塊控制電路
圖4-DS1302芯片說明
美國DALLAS公司推出的具有涓細電流充電能力的低功耗實時時鐘電路DS1302的結(jié)構(gòu)、工作原理及其在實時顯示時間中的應(yīng)用。它可以對年、月、日、周日、時、分、秒進行計時,且具有閏年補償?shù)榷喾N功能。美國DALLAS公司推出的具有涓細電流充電能力的低功耗實時時鐘電路DS1302的結(jié)構(gòu)、工作原理及其在實時顯示時間中的應(yīng)用。它可以對年、月、日、周日、時、分、秒進行計時,且具有閏年補償?shù)榷喾N功能。
圖5-DS1302寄存器說明
1、秒寄存器(81h、80h)的位7定義為時鐘暫停標(biāo)志(CH)。當(dāng)初始上電時該位置為1,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);只有將秒寄存器的該位置改寫為0時,時鐘才能開始運行。
2、小時寄存器(85h、84h)的位7用于定義DS1302是運行于12小時模式還是24小時模式。當(dāng)為高時,選擇12小時模式。在12小時模式時,位5是 ,當(dāng)為1時,表示PM。在24小時模式時,位5是第二個10小時位
3、控制寄存器(8Fh、8Eh)的位7是寫保護位(WP),其它7位均置為0。在任何的對時鐘和RAM的寫操作之前,WP位必須為0。當(dāng)WP位為1時,寫保護位防止對任一寄存器的寫操作。也就是說在電路上電的初始態(tài)WP是1,這時是不能改寫上面任何一個時間寄存器的,只有首先將WP改寫為0,才能進行其它寄存器的寫操作。
2.2.2  DS1302進行讀寫:
 上面的電路圖可以看出,除了電源和接地,DS1302只有三根線和單片機連接,SCLK、I/O和RST(有的也寫成CE),先看時序圖:
圖6-DS1302讀寫時序圖
DS1302的數(shù)據(jù)讀寫是通過I/O串行進行的。當(dāng)進行一次讀寫操作時最少得讀寫兩個字節(jié),第一個字節(jié)是控制字節(jié),就是一個命令,告訴DS1302是讀還是寫操作,是對RAM還是對CLOK寄存器操作,以及操作的地址。第二個字節(jié)就是要讀或?qū)懙臄?shù)據(jù)了。
  我們先看單字節(jié)寫:在進行操作之前先得將CE(也可說是RST)置高電平,然后單片機將控制字的位0放到I/O上,當(dāng)I/O的數(shù)據(jù)穩(wěn)定后,將SCLK置高電平,DS1302檢測到SCLK的上升沿后就將I/O上的數(shù)據(jù)讀取,然后單片機將SCLK置為低電平,再將控制字的位1放到I/O上,如此反復(fù),將一個字節(jié)控制字的8個位傳給DS1302。接下來就是傳一個字節(jié)的數(shù)據(jù)給DS1302,當(dāng)傳完數(shù)據(jù)后,單片機將CE置為低電平,操作結(jié)束。
單字節(jié)讀操作的一開始寫控制字的過程和上面的單字節(jié)寫操作是一樣,但是單字節(jié)讀操作在寫控制字的最后一個位,SCLK還在高電平時,DS1302就將數(shù)據(jù)放到I/O上,單片機將SCLK置為低電平后數(shù)據(jù)鎖存,單機機就可以讀取I/O上的數(shù)據(jù)。如此反復(fù),將一個字節(jié)的數(shù)據(jù)讀入單片機。讀與寫操作的不同就在于,寫操作是在SCLK低電平時單片機將數(shù)據(jù)放到IO上,當(dāng)SCLK上升沿時,DS1302讀取。而讀操作是在SCLK高電平時DS1302放數(shù)據(jù)到IO上,將SCLK置為低電平后,單片機就可從IO上讀取數(shù)據(jù)。
圖7-DS1302讀寫時序圖
位0就是讀寫位,當(dāng)位0為1時,就是告訴DS1302,下面是進行讀出操作,而當(dāng)位0為0時就是寫入操作。
位0-位5是要進行操作的DS1302寄存器地址。
位6就是告訴DS1302,是要對RAM進行操作還是對CLK寄存器進行操作,0就是對時間寄存器操作,一般我們都是對時間寄存器進行操作。
位7就是固定的1。為什么是1呢。還記得上面說的單字節(jié)讀操作嗎?在寫控制字的最后一個位也就是位7時,DS1302已將它的寄存器數(shù)據(jù)位0放到IO上了,要是控制字的位7是0的話,DS1302就無法將它的隨后的數(shù)據(jù)放到IO上了。
這也是為什么控制字80H是寫秒寄存器,而80H是讀秒寄存!80H換成二進制就是10000000。而81H的二進制就是10000001,一個是寫操作,另一個是讀操作!
2.3    顯示屏LCD1602:
LCD1602是一種工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。LCD1602液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,即可以顯示出圖形。
圖5-穩(wěn)壓芯片
2.3.1  顯示屏1602液晶模塊引腳功能
表1-各引腳接口說明
第1腳:VSS為地電源。
第2腳:VDD接5V正電源。
第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。
第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。
第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。
第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。
第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。
第15腳:背光源正極。
第16腳:背光源負極。
表2-各指令說明
1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)
指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。
指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。
指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。
指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。
指令5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。
指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。
指令7:字符發(fā)生器RAM地址設(shè)置。
指令8:DDRAM地址設(shè)置。
指令9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。
指令10:寫數(shù)據(jù)。
指令11:讀數(shù)據(jù)。
2.4    鬧鐘鈴聲
聲音是通過振動產(chǎn)生的。單片機對某一引腳以一定的頻率循環(huán)置1置0,該引腳便產(chǎn)生一定頻率的方波,方波通過放大,作用于一定的物理實件(蜂鳴器),就產(chǎn)生了一定頻率的聲音。若改變輸出方波的頻率,產(chǎn)生的聲音隨之改變。通過控制輸出方波的時間長短,聲音的長短也可以得到控制,因此,根據(jù)樂譜,以類似的音及同樣的節(jié)拍,單片機就可以產(chǎn)生電子音樂。音樂的播放選擇可以通過按鍵的輸入得以實現(xiàn)。
為簡便起見,以一定的頻率方波產(chǎn)生的音在其每個周期內(nèi)高低幅值得時間各占一半因此,輸出引腳在每個方波周期內(nèi)要動作兩次:一次升高,一次降低。即輸出引腳的頻率是原音頻率的兩倍。
方波的產(chǎn)生由定時器控制。定時器T0工作在定時方式1,改變TH0及TL0,產(chǎn)生不同的音頻頻率。必須考慮到中斷響應(yīng)時間的影響,尤其在高音部分,若忽略中斷響應(yīng)時間,會使音頻頻率比標(biāo)準(zhǔn)值低幾十Hz,相當(dāng)于1/4音程,很容易聽出來,對低音部分影響不大。一般中斷響應(yīng)時間為3~6個機器周期,經(jīng)過反復(fù)試驗取5個機器周期作為校正最為恰當(dāng),表1中所給的定時初值就是考慮中斷響應(yīng)后的定時常數(shù)。另外,為避免T1中斷可能引起雜音,應(yīng)將定時器T0中斷設(shè)為高優(yōu)先級。這樣編寫出來的程序播放的音與標(biāo)準(zhǔn)音叉進行差頻校音,非常準(zhǔn)確和諧。
在音樂中使用的各個固定頻率的音叫音級。常用符號C、D、E、F、G、A、B、c、d、e、……a1、b1、c2、d2……表示,它們對應(yīng)于鋼琴上的白鍵。兩音之間音高的距離叫音程。在上述音級中,E與F、B與C之間音高的距離僅為其它相鄰音級之間距離的一半,稱它們之間的音程為半音音程,而稱其它相鄰各音之間的距離為全音音程。在這些全音音程之間又加入新的半音音級,用符號﹟C、﹟D、﹟F、﹟G、﹟A、﹟c、﹟d、﹟f、……表示,對應(yīng)于鋼琴上的黑鍵。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。

0.png
2.5    基于74HC595流水燈2.5.1  芯片74HC595工作原理
74HC595可以將單片機的串行輸入轉(zhuǎn)換為并行輸出,因此可以大大降低單片機I/O口的使用率,節(jié)省硬件資源,簡化硬件電路,降低生產(chǎn)成本,操作方便。
74HC595的引腳功能及主要性能參數(shù)
符號
引腳
描述
Q0…Q7
15, 1, 7
并行數(shù)據(jù)輸出
GND
8
Q7’
9
串行數(shù)據(jù)輸出
MR
10
主復(fù)位(低電平)
SHCP
11
移位寄存器時鐘輸入
STCP
12
存儲寄存器時鐘輸入
OE
13
輸出有效(低電平)
DS
14
串行數(shù)據(jù)輸入
VCC
16
電源

74595的控制端說明:
MR (10腳): 低點平時將移位寄存器的數(shù)據(jù)清零。通常將它接Vcc。
SHCP (11腳):上升沿時數(shù)據(jù)寄存器的數(shù)據(jù)移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器數(shù)據(jù)不變。(脈沖寬度:5V時,大于幾十納秒就行了。我通常都選微秒級)
STCP (12腳):上升沿時移位寄存器的數(shù)據(jù)進入數(shù)據(jù)存儲寄存器,下降沿時存儲寄存器數(shù)據(jù)不變。通常我將STCP置為低點平,當(dāng)移位結(jié)束后,在STCP端產(chǎn)生一個正脈沖(5V時,大于幾十納秒就行了。我通常都選微秒級),更新顯示數(shù)據(jù)。
OE (13腳): 高電平時禁止輸出(高阻態(tài))。如果單片機的引腳不緊張,用一個引腳控制它,可以方便地產(chǎn)生閃爍和熄滅效果。比通過數(shù)據(jù)端移位控制要省時省力。
74HC595時序圖
3            工作過程:
  開機先時鐘初始化,等待按鍵掃描選擇運行功能,通過掃描矩陣電平變化確定哪個按鍵按下,從而運行相對的功能。工作狀態(tài)也可以選擇模式,可以從當(dāng)前運行模式換到別的模式。
4            功能介紹:4.1    時鐘功能
提供年份日期星期24小時格式時間顯示,初始化后可以設(shè)置時間,選擇模式一后可設(shè)置,通過對應(yīng)按鍵加減調(diào)整時鐘。
4.2    鬧鐘功能
初始化的鬧鐘為45分鐘倒計時,可以根據(jù)按鍵調(diào)整倒計時時間,時間到了會發(fā)出鬧鐘鈴聲,燈光閃爍,可以通過按鍵停止提醒。
4.3    LED裝飾功能
通過按鍵選擇裝飾功能,LED燈展示不同樣式的亮燈模式

   結(jié)束語
第一次設(shè)計單片機作品,用的是51單片機,程序?qū)懫饋聿浑y,感覺復(fù)雜而且多,運行功能的程序函數(shù)基本上都是要編寫的,能夠調(diào)用的函數(shù)很少。程序修改了很多遍,一次又一次的試錯,最終完成了最后的程序。這個過程需要耐心,更需要扎實的c語言基礎(chǔ)。因為基礎(chǔ)不過關(guān),需要的耐心就更多了,好在我們都克服了這兩個困難。時間上的緊迫也是我們面臨的一大問題,在進行這個比賽設(shè)計的同時,我們還有兩門課程設(shè)計需要進行,時間基本上重疊,為了平衡時間,我們不得不放棄了原先的一些設(shè)想,比如倒計時時間可以通過鍵盤輸入,增設(shè)單片機播放mp3功能,設(shè)計心形流水燈,時間的緊迫讓我們沒有辦法進行更多的開發(fā)。好在還是很滿意最后的作品,雖然功能不多,當(dāng)時很實用,可以用來督促學(xué)習(xí),作為學(xué)習(xí)輔助,能夠完成自身的任務(wù)。

0.png 0.png


全部資料51hei下載地址:
基于DS1302的可調(diào)時鐘.zip (1.44 MB, 下載次數(shù): 165)


評分

參與人數(shù) 2黑幣 +80 收起 理由
星星x + 30 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:436945 發(fā)表于 2019-12-25 21:10 | 顯示全部樓層
樓主這個很流弊啊,佩服樓主的功力。
回復(fù)

使用道具 舉報

ID:682838 發(fā)表于 2020-1-8 13:20 來自觸屏版 | 顯示全部樓層
為什么我運行proteus有錯誤,而且AD原理圖和仿真圖不符
回復(fù)

使用道具 舉報

ID:683548 發(fā)表于 2020-1-8 14:22 來自觸屏版 | 顯示全部樓層
很贊很厲害
回復(fù)

使用道具 舉報

ID:682838 發(fā)表于 2020-1-8 14:26 來自觸屏版 | 顯示全部樓層
樓主能不能審核一下呀,有沒有無暇版的
回復(fù)

使用道具 舉報

ID:237239 發(fā)表于 2020-4-7 14:08 | 顯示全部樓層
15840552594 發(fā)表于 2020-1-8 14:26
樓主能不能審核一下呀,有沒有無暇版的

啥,有什么問題
回復(fù)

使用道具 舉報

ID:724172 發(fā)表于 2020-4-7 16:39 | 顯示全部樓層
這,這有什么問題的?
回復(fù)

使用道具 舉報

ID:737450 發(fā)表于 2020-4-26 11:03 | 顯示全部樓層
太強了
回復(fù)

使用道具 舉報

ID:574748 發(fā)表于 2023-1-21 21:06 | 顯示全部樓層
請問計時和倒計時是用中斷實現(xiàn)的嗎
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 九九免费 | 人妖videosex高潮另类 | 天堂一区二区三区四区 | 国产一区| 国产一区二区三区高清 | 欧美精品一区二区三区在线播放 | 国产精品五月天 | 久久日韩粉嫩一区二区三区 | 精品在线播放 | 欧美在线一区视频 | 日韩一及片 | 99成人精品 | 欧美大片一区 | 欧美四虎| 男人天堂久久久 | 伊人网在线播放 | 亚洲一区二区久久久 | 久久免费视频1 | 高清av在线| 精品综合久久久 | 亚洲一区综合 | 久久9精品 | 欧美日一区 | 成人国产精品久久久 | 国产一区二区三区在线 | 亚洲日韩欧美一区二区在线 | 欧美一级大片免费看 | 亚洲成av人片在线观看无码 | 另类视频区| 久久久精品网站 | 日韩一区精品 | 久久久毛片 | 天天综合网天天综合色 | 鸳鸯谱在线观看高清 | 色婷婷综合久久久久中文一区二区 | 亚洲网在线 | 色又黄又爽网站www久久 | 国产一区二区三区四区三区四 | 亚洲一区二区三区免费观看 | 亚洲欧美日韩国产综合 | 欧美精品1区2区 |