




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、、實驗任務(wù)及要求在焊接的電路板中,4個LED數(shù)碼管,設(shè)計帶有鬧鈴功能的數(shù)字 時鐘,要求:在4位數(shù)碼管上顯示當(dāng)前時間。顯示格式時時分分;2、由LED閃動做秒顯示;3、利用按鍵可對時間及鬧玲進行設(shè)置,并可顯示鬧玲時間。當(dāng)鬧玲時間到蜂鳴器 發(fā)出聲響,按停止鍵使可使鬧玲聲停止。二、方案論證與比較2.1數(shù)字時鐘方案數(shù)字時鐘是本設(shè)計的最主要的部分。根據(jù)需要,可利用兩種方案實現(xiàn)。方案一:本方案采用Dallas公司的專用時鐘芯片DS12887A。該芯片內(nèi)部采用 石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時鐘鬧鐘功能,因 此,可直接對其以用于顯示或設(shè)置,使得軟件編程相對簡單。為保證時鐘在電網(wǎng)電
2、壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓 不足或突然掉電時,系統(tǒng)自動轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電, 程序不執(zhí)行時,鋰電池也能保證芯片的正常運行,以備隨時提供正確的時間。方案二:本方案完全用軟件實現(xiàn)數(shù)字時鐘。原理為:在單片機內(nèi)部存儲器設(shè)三個字 節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結(jié)合實現(xiàn)5毫秒定時中斷, 每產(chǎn)生一次中斷,存儲器內(nèi)相應(yīng)的計數(shù)值加1 ;若計數(shù)值達到200 ,則將其清零,并 將方案一:靜態(tài)顯示。所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一字符時,相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。該方式每一位都需要一個8位輸出口控制。靜態(tài)顯示時較小的電流
3、能獲得較高的亮度,目字符不閃爍。但當(dāng)所顯示的位數(shù)較多 時,靜態(tài)顯示所需的I/O 口太多,造成了資源的浪費。方案二:動態(tài)顯示。所謂動態(tài) 顯示就是一位一位的輪流點亮各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留功能可以看到整個顯示,但必須保證掃描速度合適,字 符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點亮?xí)r間與間隔時間的比例有 關(guān)。調(diào)整參數(shù)可以實現(xiàn)較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了 I/O 口,降低了能耗。從節(jié)省I/O 口和降低能耗出發(fā),本設(shè)計采用方案二。三、各個部分的分析1 )顯示電路:通過4個LED顯示屏顯示分鐘和小時兩個兩聯(lián)的LED顯示器,通過與單片機P1接口連接實
4、現(xiàn)顯示功能。而實現(xiàn)4個LED燈動態(tài)顯示,靠的是位選電路2 )位選電路四位共陽LED數(shù)碼管,其標號分別為HourH,HourL,MinL,MinH ,低電平選通, 且任何時候僅有一位輸出低電平,顯示時對各顯示器進行動態(tài)掃描,顯示器分時輪 流工作。雖然每次只有一個顯示器顯示,但是由于人的視覺暫留現(xiàn)象我們?nèi)詴杏X 所有的顯示器都在同時顯示。P0 口作為輸出口控制8個發(fā)光二極管的亮滅,控制數(shù) 碼管的顯示。因此,可以實現(xiàn)4個LED在我們看來同時亮,顯示時間。3 )鬧鈴部分:使用蜂鳴器實現(xiàn)鬧鐘功能其中,buzzer端口接到單片機的P1.7輸出。(端口連接在最后介紹)4 )開關(guān)部分:使用了 5個開關(guān)控制整個
5、電路的啟動,修改時間,設(shè)置鬧鐘,關(guān)閉電路等 功能為查詢方式典型電路。其中Setbutton為復(fù)位開關(guān),swtich為轉(zhuǎn)換模式開關(guān),即工作模式和調(diào)時間模式,Increase為調(diào)時間模式中控制時間變化 的按鈕,STRAT和STOP分別為開啟和結(jié)束按鈕,這5個開關(guān)分別接至IP2.0-P2.5端 口,以控制其輸入。5)串轉(zhuǎn)并電路為了進一步節(jié)省I/O 口,有添加了一個額外的串轉(zhuǎn)并電路由以上電路,我們將 P1.0-P1.2擴展到7個I/O 口,我們采用的是74HC595芯片,管腳圖如下:7)復(fù)位電路整體電路圖如下:四、軟件設(shè)計由于匯編語言繁瑣,我們采用的是C語言編程,源程序及注釋如下:include<
6、;reg52.h>#include <intrins.h>時分#define TYPE unsigned char#define HOURO#define MIN 1/顯示狀態(tài)#define NORMAL0#define BELLTIME 1#define SETTING_N #define SETTING_C 3/閃爍顯示#define NoMask 0 #define MaskHour 1#define MaskMin 2#define MaskAll 3 #define uchar unsigned char#define uint unsigned int/Bit D
7、efinition/數(shù)碼管低電平,數(shù)碼管使能/低電平,蜂鳴器響sbit HourH = P1A3;sbit HourL = PM4;sbit MinH = P1A5;sbit MinL = P1A6;/蜂鳴器sbit Buzzer = P1A7;/鍵盤sbit SetButton = P2A0;/按鍵定義,設(shè)置(正常,定時顯示切換)鍵,時位分位轉(zhuǎn)換鍵,增加鍵sbit Switch =P2A1;#define SETTING_N sbit Increase = P2A2;sbit Start = P2 3;sbit Stop = P2A4;/LEDsbit SecLed = P2A5;秒顯示,低
8、電平點亮sbit ClockStartLED = P2A6;/ 鬧鐘定鬧開始/74HC595輸入管腳定義sbit SH CP = P1A0;sbit DS = P1A1;sbit ST CP = P1A2;/Function Definitionvoid delay5ms(void);void Clock();void DisplayO;void Set();void Ring();void StopRingO;void ShowANum(uchar i);void StartRingO;void delaykey(void);void MaskShow(uchar NumJYPE t);/V
9、ariable Definition / 正常時間 uchar hour=8;uchar min=O;uchar sec=O;uint count=0;/鬧鐘定時uchar mp=l;uchar st=O;uchar cHour=8;uchar cMin=O;模式標示uchar displayMode=NORMAL;uchar currentSelect=HOUR;/數(shù)碼管數(shù)字顯示編碼uchar Hl;uchar H2;uchar Ml;uchar M2;uchar temp;uchar codeDSY_CODE=0xc0z0xf9z0xa4z0xb0,0x99z0x92z0x82z0xf8z
10、0x80z0x90/0xff;/ 閃爍顯示 uchar MaskType=NoMask;uint blinkcount=0;/音樂uchar p=0;uchar temp=O;uchar jiepai=O;uchar yindiao=0;uchar Pail_4=20;uchar jpLength=O;/音調(diào)數(shù)組unsigned char code music =0xFF,0xFF,0xF8,0x89,0xf9,0x59,Oxfa,0x13,Oxfa,0x68,Oxfb,0x04,Oxfb,Ox 90,0xfc,0x0c,0xfc,0x44/0xfcz0xadz0xfdz0x0a,0xfd,0
11、x34/0xfdz0X82z0xfdz0xc8z0xfez0x06,0xfe/0x22/0xfez0x56,0xfe,0x85z0xfe/0x9a/0xfez0xclz0xfez0xe4,0xffz0x035Oxff,Oxll;/音樂編碼unsigned char code Mmusic= Illi音階測試1,4,2,434,4,4,5,4,6,4,7,4,8,4,/9,4,10a n,4,12,4,13,4,14,4,15,4,:16,4,17,4,18,4,19,4,20,4,21,4,22,4,/兩只老虎1,4,2,434,1,8,1,424,341,832,4,8,5,532,4,8,
12、5,5,5,5,625,5,4,4,3,4,1,8,5,5,625,5,4,434,1,8,3,4,1,4,2,834,1,4,2,8,0xff,0x00結(jié)束標記;void main()(/ 設(shè)置 TO,T1TMOD = 0x11;THO = OxOEC;TLO = 0x78;TH1 = OxOFO;TL1 = 0x60;ETO=1;ET1 = 1;EA=1;TRO=1;/設(shè)置定時器的優(yōu)先級PTO=1;5ms標準時鐘設(shè)為高優(yōu)先級,保證計時的準確性PT1=O;/順序執(zhí)行(主循環(huán))while(l)/設(shè)置何時開啟T1定時器if(displayMode! = NORMAL|mp=0)TR1 = 1;e
13、lseTR1=O;MaskType=NoMask;)/方法并行DisplayO;DisplayO;Set();StartRingO;Ring。;StopRingO;void ClockQ interrupt 1THO = OxOEC;TLO = 0x78;count+;if(mp=0)(/控制音樂節(jié)拍if(jpLength-<=0)jiepai=Mmusic2*p+l;jpLength二Pail_4*jiepai; 控制每個音調(diào)持續(xù)多少個1/4節(jié)拍p+;if(Mmusic2*p+l =0x00)p=0; 重放/控制屏幕隨樂曲閃爍if(MaskType= = NoMask)MaskType
14、=MaskAll;elseMaskType=NoMask;if(count%100=0)控制秒燈閃爍,每秒閃一次SecLed = -SecLed;void MaskClockQ interrupt 3if(mp=0)/生成音調(diào)頻率方波yindiao=Mmusic2*p;THl=music2*yindiao;TLl=music2*yindiao+l;Buzzer 二Buzzer;else /響鈴時/ I蔽閃爍顯示的功能if(displayMode= = BELLTIME|displayMode=SETTING_C)TH1 = OxOFO;TL1 = 0x60;elseTH1 = 0x0F8;TL
15、1 = 0x30;blinkcount+;if(blinkcount> = 100)blinkcount=0;if(displayMode= = BELLTIME)(if(MaskType= = NoMask)MaskType=MaskAll;elseMaskType=NoMask;else if(displayMode=SETTING_C|displayMode= = SETTING_N)if(currentSelect= = HOUR) if(MaskType= = NoMask)MaskType=MaskHour;elseMaskType=NoMask;Hf(currentSele
16、ct= = MIN)Hf(MaskType= = NoMask) MaskType=MaskMin; elseMaskType=NoMask;)void StartRing()(if(Start=O)ClockStartLED=0;st=l;Start=1;void RingQif(st= = l&&cHour= = hour&&cMin = = min)(/Buzzer=O;mp=0;)void StopRingO(if(Stop=0)Buzzer=l;mp=l;p=0;ClockStartLED=l;st=O;MaskType=NoMask;void Dis
17、playO <分析 COUNT,合成 HOUR,MINif(count>=200)count=count-200;sec+;if(sec=60)sec=0;min + +;if(min =60)(min=0;hour+;if(hour=25)hour=0;顯示時間 if(displayMode二二NORMAL|displayMode二二SETTING_N) HourH = l;HourL=l;MinH = l;MinL=l;Hl=hour/10;H2=hour%10;Ml=min/10;M2 = min%10;MaskShow(HLHOUR);HourH=0; delay5ms()
18、;HourH = l;MaskShow(H2zHOUR);HourL=0;delay5ms();HourL=l;MaskShow(MlzMIN);MinH=0;delay5ms();MinH = l;MaskShow(M2zMIN);MinL=0;delay5ms();MinL=l;)if(displayMode= = BELLTIME|displayMode=SETTING_C) (Hl=cHour/10;H2=cHour%10;Ml=cMin/10;M2=cMin%10;MaskShow(Hl,HOUR);HourH=0;delay5ms();HourH = l;MaskShow(H2,H
19、OUR);HourL=0;delay5ms();HourL=l;MaskShow(Ml,MIN);MinH=O;delay5ms();MaskShow(M2,MIN);MinL=O;delay5ms();MinL=l;void MaskShow(uchar NumJYPE t)(if(MaskType= = MaskHour)(if(t= = HOUR)ShowANum(lO);elseShowANum(Num);)else if(MaskType= = MaskMin)(if(t= = MIN)ShowANum(lO);elseShowANum(Num);else if(MaskType=
20、= MaskAll)ShowANum(lO);)elseShowANum(Num);void ShowANum(uchar Num)(uchar i;temp=DSY_CODENum;/串行輸入74HC595for(i=0;i<8;i+) Hemp<< = l; DS=CY; SH_CP=1; _nop_(); nop_(); SH_CP=O;)/傳送至存儲寄存器,出現(xiàn)在輸出端ST_CP=O;_nop_();ST_CP=1;_nop_();ST_CP=O;void Set()/響鈴時,顯示模式鎖定在正常,停鬧后解除if(mp=O)displayMode=NORMAL;顯示轉(zhuǎn)換
21、鍵作用(注:響鈴時,屏蔽顯示轉(zhuǎn)換)if(mp!=0&&SetButton = =0) delaykeyO;if(SetButton=0) displayMode+;if(displayMode>=4)displayMode=0;/設(shè)置模式下,時分轉(zhuǎn)換鍵作用if(Switch =0&&(displayMode=SETTING_C|displayMode=SET TING_N)(delaykey();if(Switch=O) currentSelect=!currentSelect;/設(shè)置模式下,數(shù)值增加鍵作用if(Increase=0&&displayMode=SETTING_C)delaykeyO;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒類合同范本
- 石油醚乙二醇乙醚產(chǎn)業(yè)分析報告
- 軌道衡戰(zhàn)略市場規(guī)劃報告
- 養(yǎng)豬用地協(xié)議合同范例
- 中國夢護士夢演講稿
- 個人試用期述職報告
- 個人住房貸款申請書
- 業(yè)務(wù)員的年度工作總結(jié)
- 一件代發(fā)合同范本
- 上課說話自我反省檢討書
- 2024年湖南省普通高中學(xué)業(yè)水平考試政治試卷(含答案)
- 《創(chuàng)意設(shè)計》課程標準
- 三年級語文 溪居即事市賽一等獎
- 2024年山東化工職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 2024年中小學(xué)生守則修訂版
- 博覽會展位裝修及布展投標方案技術(shù)標
- 顧客提問的問題100條
- 肝膿腫教學(xué)查房課件
- 拇外翻護理課件
- 六年級英語教學(xué)隨筆5篇
- 讀書分享交流會《從一到無窮大》課件
評論
0/150
提交評論