新穎60秒旋轉(zhuǎn)電子鐘_第1頁
新穎60秒旋轉(zhuǎn)電子鐘_第2頁
新穎60秒旋轉(zhuǎn)電子鐘_第3頁
新穎60秒旋轉(zhuǎn)電子鐘_第4頁
新穎60秒旋轉(zhuǎn)電子鐘_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例應(yīng)用案例1新穎60秒旋轉(zhuǎn)電子鐘課程設(shè)計(jì)課程設(shè)計(jì) 余余 水水 寶寶 數(shù)理與信息工程學(xué)院數(shù)理與信息工程學(xué)院 2006年年12月月單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 任任 務(wù)務(wù) 書書 設(shè)計(jì)一款基于設(shè)計(jì)一款基于AT89C2051單片機(jī)的電子鐘。單片機(jī)的電子鐘。 設(shè)計(jì)基本要求設(shè)計(jì)基本要求 用4只LED數(shù)碼管輸出顯示時(shí)和分。 可通過按鍵設(shè)置鬧鐘功能,且停鬧無須手工操作。 可通過按鍵設(shè)置分校時(shí)。 月計(jì)時(shí)誤差小于45秒。 寫出詳細(xì)的設(shè)計(jì)報(bào)告。 給出全部電路和源程序。單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)

2、例-余水寶余水寶 發(fā)揮部分要求發(fā)揮部分要求 用60只LED發(fā)光管旋轉(zhuǎn)顯示,模擬“秒針”的行走。 模擬“秒針”行走的“嘀噠”聲。 增加室溫檢測和顯示功能(可與時(shí)間交替顯示)。 增加停(掉)電保護(hù)功能。 提高計(jì)時(shí)精度,使年計(jì)時(shí)誤差小于30秒。 可通過按鍵設(shè)置一天兩鬧(比如早晨、中午各一次)。單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 選題背景 目前市場上提供的無論是機(jī)械鐘還是石英鐘在晚上無照明的情況下都是不可見的。要知道當(dāng)前的時(shí)間,必須先開燈,故較為不便。現(xiàn)在市場上也出現(xiàn)了一些電子鐘,它以六只LED數(shù)碼管來顯示時(shí)分秒,違背了人們指針式的傳統(tǒng)習(xí)慣與理念,而且這類電子鐘一般

3、是采用大型顯示器件,適用于銀行、車站等公共場所,且外觀設(shè)計(jì)欠美觀,很少進(jìn)入百姓家庭。此外,無論是機(jī)械鐘、石英鐘還是電子鐘,都存在著共同的問題:時(shí)間誤差。針對以上存在的問題,我們設(shè)計(jì)了一款采用LED顯示器件顯示的電子時(shí)鐘,解決了時(shí)鐘存在的誤差問題,并能在夜間不必其它照明就能看到時(shí)間,且以60只發(fā)光管實(shí)現(xiàn)秒顯示,接近于傳統(tǒng)的秒針來顯示秒的形式,用戶容易接受,而且美觀大方。另加七只裝飾用的LED燈,使整個(gè)時(shí)鐘顯的相當(dāng)美觀新穎,故還可作為室內(nèi)裝飾用。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 1 系統(tǒng)主要功能系統(tǒng)主要功能 電子鐘的外觀如圖1所示。周邊60只發(fā)光管順時(shí)旋轉(zhuǎn)來

4、顯示秒,中間四只LED數(shù)碼管用于顯示時(shí)間,中下方的七只LED燈順時(shí)旋轉(zhuǎn),供裝飾用。其主要功能有: 整點(diǎn)報(bào)時(shí); 四只LED數(shù)碼管顯示當(dāng)前時(shí)分; 每隔一秒鐘周邊的60只LED發(fā)光管旋轉(zhuǎn)一格; 當(dāng)發(fā)生停電事件時(shí),由后備電池供電,系統(tǒng)進(jìn)入低功耗狀態(tài),所 有顯示部件停止顯示,這樣即延長了電池的壽命,同時(shí)又保證了 CPU繼續(xù)計(jì)數(shù),不至于因停電而時(shí)鐘停止運(yùn)行。 當(dāng)恢復(fù)供電后,系統(tǒng)自動(dòng)恢復(fù)工作狀態(tài),不影響計(jì)時(shí)。單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 2 系統(tǒng)的硬件構(gòu)成及功能系統(tǒng)的硬件構(gòu)成及功能 電子鐘的原理

5、框圖如圖2所示。它由以下幾個(gè)部件組成:單片機(jī)89C2051、電源、時(shí)分顯示部件、60秒旋轉(zhuǎn)譯碼驅(qū)動(dòng)電路。 時(shí)分顯示采用動(dòng)態(tài)掃描,以降低對單片機(jī)端口數(shù)的要求,同時(shí)也降低系統(tǒng)的功耗。時(shí)分顯示模塊、60秒旋轉(zhuǎn)譯碼驅(qū)動(dòng)電路以及顯示驅(qū)動(dòng)都通過89C2051的I/O口控制。 電源:電源部分有二部分組成。一部分是由220V的市電通過變壓、整流穩(wěn)壓來得到+5V電壓,維持系統(tǒng)的正常工作;另一部分是由3V的電池供電,以保證停電時(shí)正常計(jì)時(shí)。正常情況下電池是不提供電能的,以保證電池的壽命。具體電路參見“新穎的60秒旋轉(zhuǎn)電子鐘參考電路原理圖”。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 圖

6、2 電子鐘系統(tǒng)原理框圖單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 21 AT89C2051單片機(jī)及其引腳說明單片機(jī)及其引腳說明 AT89C2051單片機(jī)是51系列單片機(jī)的一個(gè)成員,是8051單片機(jī)的簡化版。內(nèi)部自帶2K字節(jié)可編程FLASH存儲(chǔ)器的低電壓、高性能COMS八位微處理器,與Intel MCS-51系列單片機(jī)的指令和輸出管腳相兼容。由于將多功能八位CPU和閃速存儲(chǔ)器結(jié)合在單個(gè)芯片中,因此,AT89C2051構(gòu)成的單片機(jī)系統(tǒng)是具有結(jié)構(gòu)最簡單、造價(jià)最低廉、效率最高的微控制系統(tǒng),省去了外部的RAM、ROM和接口器件,減少了硬件開銷,節(jié)省了成本,提高了系統(tǒng)的性價(jià)比。

7、 AT89C2051是一個(gè)有20個(gè)引腳的芯片,引腳配置如圖3所示。與8051相比,AT89C2051減少了兩個(gè)對外端口(即P0、P2口),使它最大可能地減少了對外引腳下,因而芯片尺寸有所減小。AT89C2051芯片的20個(gè)引腳功能為: 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 圖3 AT89C2051引腳配置 VCC 電源電壓;GND 接地;RST 復(fù)位輸入。當(dāng)RST變?yōu)楦唠娖讲⒈3?個(gè)機(jī)器周期時(shí),所有I/O引腳復(fù)位至“1”;XTAL1 反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入;XTAL2 來自反向振蕩放大器的輸出。單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例

8、課程設(shè)計(jì)實(shí)例-余水寶余水寶 P1口 8位雙向I/O口。引腳P1.2P1.7提供內(nèi)部上拉,當(dāng)作為輸入并被外部下拉為低電平時(shí),它們將輸出電流,這是因內(nèi)部上拉的緣故。P1.0和P1.1需要外部上拉,可用作片內(nèi)精確模擬比較器的正向輸入(AIN0)和反向輸入(AIN1),P1口輸出緩沖器能接收20mA的灌電流,并能直接驅(qū)動(dòng)LED顯示器;P1口引腳寫入“1” 后,可用作輸入。在閃速編程與編程校驗(yàn)期間,P1口也可接收編碼數(shù)據(jù)。P3口引腳P3.0P3.5與P3.7為7個(gè)帶內(nèi)部上拉的雙向I/0引腳。P3.6在內(nèi)部已與片內(nèi)比較器輸出相連,不能作為通用I/O引腳訪問。P3口的輸出緩沖器能接收20mA的灌電流;P3口

9、寫入“1”后,內(nèi)部上拉,可用作輸入。P3口也可用作特殊功能口,其功能見表1。P3口同時(shí)也可為閃速存儲(chǔ)器編程和編程校驗(yàn)接收控制信號(hào)。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 P3口引腳特殊功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(定時(shí)器0外部輸入)P3.5T1(定時(shí)器1外部輸入)表1 P3口特殊功能單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 2.2 60秒旋轉(zhuǎn)譯碼驅(qū)動(dòng)原理秒旋轉(zhuǎn)譯碼驅(qū)動(dòng)原理 按常規(guī)傳統(tǒng)設(shè)計(jì),需60進(jìn)制譯碼驅(qū)動(dòng)電路才能實(shí)現(xiàn)60秒旋轉(zhuǎn)譯碼驅(qū)動(dòng),若用六

10、片十進(jìn)制計(jì)數(shù)譯碼器構(gòu)成六十進(jìn)制計(jì)數(shù)譯碼電路,則電路連線多(需要120根連線),硬件電路龐大,開銷大。為此,我們巧妙地采用了兩片CD4017進(jìn)行六十進(jìn)制計(jì)數(shù)譯碼,實(shí)現(xiàn)60秒旋轉(zhuǎn)譯碼驅(qū)動(dòng)。既減少了電路的復(fù)雜程度又可降低了成本。圖4為CD4017功能引腳圖,圖5為其時(shí)序圖。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 圖5 CD4017時(shí)序圖 圖4 CD4017引腳圖 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 CD4017集成電路是十進(jìn)制計(jì)數(shù)/時(shí)序譯碼器,共有10個(gè)譯碼輸出Q0Q9;每個(gè)譯碼輸出通常處于低電平,且在時(shí)鐘脈沖由低到高的上升沿輸出

11、高電平;每個(gè)高電平輸出維持1個(gè)時(shí)鐘周期;每輸入10個(gè)時(shí)鐘脈沖,輸出一個(gè)進(jìn)位脈沖,因此進(jìn)位輸出信號(hào)可作為下一級(jí)計(jì)數(shù)器的時(shí)鐘信號(hào)。在清零輸入端(R)加高電平或正脈沖時(shí),只有輸出端Q0為高電平,其余各輸出端均為低電平“0”。 為實(shí)現(xiàn)對發(fā)光二極管的驅(qū)動(dòng),將每一個(gè)譯碼輸出端口接一只發(fā)光二極管,并將二極管串聯(lián)限流電阻后接地。當(dāng)譯碼端口Q0Q9中任一端口為高電平,則對應(yīng)的發(fā)光二極管點(diǎn)亮,如圖6所示。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 仔細(xì)考查CD4017的功能,可發(fā)現(xiàn)其10個(gè)輸出的高電平是相互排斥的,即任一時(shí)刻只有一只發(fā)光二極管點(diǎn)亮,因此可將圖6電路進(jìn)一步簡化為如圖7所

12、示,從而簡化電路設(shè)計(jì)。 圖6 CD4017控制LED原理圖圖7 優(yōu)化后控制LED原理圖單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 在本電子鐘設(shè)計(jì)中,每秒點(diǎn)亮一個(gè)發(fā)光二極管,循環(huán)點(diǎn)亮一周共需60個(gè)發(fā)光二極管,若用上述的6片CD4017實(shí)現(xiàn)驅(qū)動(dòng),顯然電路復(fù)雜。為此我們選用兩片CD4017和一片6反相器,采用“縱橫雙譯碼”技術(shù),巧妙地實(shí)現(xiàn)60秒旋轉(zhuǎn)譯碼驅(qū)動(dòng),其中一片接成10進(jìn)制,一片接成6進(jìn)制,實(shí)現(xiàn)610=60的功能,具體連接方法如圖8所示。單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 圖8 發(fā)光二極管“縱橫雙譯碼”循環(huán)點(diǎn)亮LED原理圖單片機(jī)原理

13、及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 將周期為1秒的輸入脈沖作為其中一片CD4017的時(shí)鐘脈沖,而此片的級(jí)聯(lián)進(jìn)位輸出端(QC)作為另一片的時(shí)鐘輸入,并將Q6與復(fù)位端相連。在兩片譯碼輸出端交叉點(diǎn)上接入發(fā)光二極管,構(gòu)成610矩陣。根據(jù)CD4017時(shí)序特點(diǎn),在初始狀態(tài),作為高位(縱)的CD4017譯碼器輸出端口Q0處于高平,經(jīng)反相器反相后為低電平。當(dāng)作為低位(橫)的CD4017譯碼器輸出端口Q0Q9依次輸出高電平后,則對應(yīng)的二極管LD1LD10依次點(diǎn)亮;此后由于QC端的進(jìn)位,高位CD4017譯碼輸出端口Q1輸出高電平,反相后輸出低電平,當(dāng)?shù)臀坏腃D4017譯碼輸出端口Q0Q9

14、依次輸出高電平后,二極管LD11LD20依次點(diǎn)亮。如此往復(fù),直至高位Q6向復(fù)位端輸入高電平,CD4017復(fù)位,60秒循環(huán)點(diǎn)亮重新開始。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 2.3 時(shí)分顯示部件時(shí)分顯示部件 由于系統(tǒng)要顯示的內(nèi)容較簡單,顯示量不多,所以選用數(shù)碼管既方便又經(jīng)濟(jì)。LED有共陰極和共陽極兩種。如圖8所示。 二極管的陰極連接在一起,通常此公共陰極接地,而共陽極則將發(fā)光二極管的陽極連接在一起,接入+5V的電壓。一位顯示器由8個(gè)發(fā)光二極管組成,其中7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆劃(段)ag,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正

15、向電壓時(shí),該段筆劃即亮;不加電壓則暗。為了保護(hù)各段LED不被損壞,需外加限流電阻。單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 圖9 LED數(shù)碼管結(jié)構(gòu)原理圖單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 眾所周知,LED顯示數(shù)碼管通常由硬件7段譯碼集成電路,完成從數(shù)字到顯示碼的譯碼驅(qū)動(dòng)。本系統(tǒng)采用軟件譯碼,以減小體積,降低成本和功耗,軟件譯碼的另一優(yōu)勢還在于比硬件譯碼有更大的靈活性。所謂軟件譯碼,即由單片機(jī)軟件完成從數(shù)字到顯示碼的轉(zhuǎn)換。從LED數(shù)碼管結(jié)構(gòu)原理可知,為了顯示字符,要為LED顯示數(shù)碼管提供顯示段碼,組成一個(gè)“8”字形字符的7段,再加

16、上1個(gè)小數(shù)點(diǎn)位,共計(jì)8段,因此提供給LED數(shù)碼管的顯示段碼為1個(gè)字節(jié)。各段碼位與顯示段的對應(yīng)關(guān)系如表2。 段碼位D7D6D5D4D3D2D1D0顯示段dpgfedcba表2 各段碼位的對應(yīng)關(guān)系單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 字型共陽段碼共陰段碼字型共陽段碼共陰段碼0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3BOH4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H表3 LED顯示段碼本表所列各字符的顯示段

17、碼均為小數(shù)點(diǎn)不亮的情況。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 根據(jù)AT89C2051單片機(jī)灌電流能力強(qiáng),拉電流能力弱的特點(diǎn),我們選用共陽數(shù)碼管。將AT89C2051的P1.0P1.7分別與共陽數(shù)碼管的ag及dp相連,高電平的位對應(yīng)的LED數(shù)碼管的段暗,低電平的位對應(yīng)的LED數(shù)碼管的段亮,這樣,當(dāng)P0口輸出不同的段碼,就可以控制數(shù)碼管顯示不同的字符。例如:當(dāng)P0口輸出的段碼為1100 0000,數(shù)碼管顯示的字符為0。 數(shù)碼管顯示器有二種工作方式,即靜態(tài)顯示方式和動(dòng)態(tài)掃描顯示方式。為節(jié)省端口及降低功耗,本系統(tǒng)采用動(dòng)態(tài)掃描顯示方式。動(dòng)態(tài)掃描顯示方式需解決多位LED

18、數(shù)碼管的“段控”和“位控”問題,本電路的“段控”(即要顯示的段碼的控制)通過P0口實(shí)現(xiàn);而每一位的公共端,即LED數(shù)碼管的“位控”,則由P3口控制。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 這種連接方式由于多位字段線連在一起,因此,要想顯示不同的內(nèi)容,必然要采取輪流顯示的方式,即在某一瞬間,只讓其中的某一位的字位線處于選通狀態(tài),其它各位的字位線處于斷開狀態(tài),同時(shí)字段線上輸出這一位相應(yīng)要顯示字符的字段碼。在這一瞬時(shí),只有這一位在顯示,其他幾位則暗。在本系統(tǒng)中,字位線的選通與否是通過PNP三極管的導(dǎo)通與截止來控制,即三極管處于“開關(guān)”狀態(tài)。 系統(tǒng)的時(shí)分顯示部件由4只

19、7段共陽LED數(shù)碼管構(gòu)成,前兩只用于時(shí)的顯示,后兩只用于分的顯示。值得一提的是,在設(shè)計(jì)中需要實(shí)現(xiàn)時(shí)與分之間的兩個(gè)閃爍點(diǎn),為此,將第三只LED數(shù)碼管倒置擺放,這樣就很巧妙地形成了兩個(gè)很自然的閃爍點(diǎn)。與此同時(shí),為了能使兩點(diǎn)顯示能夠形象的表示時(shí)鐘“秒”的變化,設(shè)計(jì)時(shí),將兩個(gè)點(diǎn)由P1.7單獨(dú)控制,每隔一秒使P1.7發(fā)送一個(gè)正脈沖,從而實(shí)現(xiàn)了兩個(gè)點(diǎn)的閃爍顯示,閃爍周期為一秒。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 3 系統(tǒng)的軟件構(gòu)成及功能系統(tǒng)的軟件構(gòu)成及功能 本系統(tǒng)的軟件系統(tǒng)主要可分為主程序和定時(shí)器中斷程序兩大模塊。在程序過程中,加入了抗干擾措施。下面對部分模塊作介紹。

20、31 系統(tǒng)主程序設(shè)計(jì)系統(tǒng)主程序設(shè)計(jì) 主程序的功能是完成系統(tǒng)的初始化,在顯示時(shí)間之前,對系統(tǒng)是否停電狀態(tài)進(jìn)行檢測;若停電,將系統(tǒng)進(jìn)入低功耗狀態(tài),用電池電壓維持單片機(jī)計(jì)時(shí)工作,但此時(shí)不顯示時(shí)間,用節(jié)省用電;若不停電,則將時(shí)分發(fā)送顯示。程序流程如圖9所示。32 中斷程序設(shè)計(jì)中斷程序設(shè)計(jì) 中斷程序(如圖10所示)完成時(shí)間計(jì)數(shù),時(shí)間調(diào)整,誤差消除等功能。中斷采用AT89C2051內(nèi)部T0中斷實(shí)現(xiàn),定時(shí)時(shí)間為125ms,當(dāng)時(shí)間到達(dá)125ms8,即1分鐘時(shí),分計(jì)數(shù)緩沖器MINBUFFER增加1,到達(dá)1小時(shí),則時(shí)計(jì)數(shù)緩沖器HOURBUFFER增加1,并將分、時(shí)的個(gè)位、十位放入顯示緩沖器。當(dāng)分計(jì)數(shù)緩沖器和時(shí)計(jì)數(shù)

21、緩沖器分別到達(dá)60min、24h時(shí),則對它們清零,以便從新計(jì)數(shù)。在中斷設(shè)計(jì)中,還通過軟件實(shí)現(xiàn)了累計(jì)誤差消除功能,使整個(gè)系統(tǒng)時(shí)間的精確度得到保證。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 圖10 系統(tǒng)主程序流程圖單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 圖11 定時(shí)中斷程序單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 4 結(jié)束語結(jié)束語 上述電子鐘,無論在外觀上還是功能上都實(shí)現(xiàn)了較為完善的設(shè)計(jì)。特別值得一提的是本系統(tǒng)在精度上的設(shè)計(jì),突破傳統(tǒng)的方法,對可能產(chǎn)生的積累誤差采用“抵消法”,從而有效地降低了時(shí)間誤差。

22、由于計(jì)數(shù)時(shí)產(chǎn)生的積累誤差所導(dǎo)致的時(shí)間誤差,是所有的電子計(jì)時(shí)系統(tǒng)共同存在的問題。但在目前市場上的電子時(shí)鐘產(chǎn)品,如計(jì)算機(jī)中的時(shí)鐘,手機(jī)中的時(shí)鐘等并沒有有效的采取消除誤差的措施。本系統(tǒng)設(shè)計(jì)的消除積累誤差來減少時(shí)間誤差的軟件方法,并不需要任何的硬件,因此在不增加成本的情況下,可以普遍用于所有的電子時(shí)鐘產(chǎn)品。 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 名稱型號(hào)數(shù)量 單片機(jī)AT89C20511 數(shù)字集成芯片CD40172 數(shù)字集成芯片CD40691超高亮數(shù)碼管共陽 尺寸0.5inch4超高亮發(fā)光二極管直徑3 紅、透明13超高亮發(fā)光二極管直徑3 綠、透明50 普通二極管IN40

23、014 普通二極管IN41482 穩(wěn)壓二極管C4V3( 4.3V)1 三極管90125 三極管90131新穎新穎60秒旋轉(zhuǎn)電子鐘器件秒旋轉(zhuǎn)電子鐘器件清單清單 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 新穎新穎60秒旋轉(zhuǎn)電子鐘器件清單秒旋轉(zhuǎn)電子鐘器件清單 名稱型號(hào)數(shù)量 輕觸按鍵?。ǔ叽?6mm5.5)3 蜂鳴器5 V1 晶振6M(小體積)1 底座14腳1 底座16腳2 底座20腳1 底座40腳1 電阻220歐姆,1/8瓦8 電阻4.7K,1/8瓦5單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 名 稱型號(hào)數(shù)量 電阻100歐姆,1/8瓦1 電阻

24、270歐姆,1/8瓦2 電容100微法/25伏2 電容220微法/25伏1 電容30P 瓷片3 電容104(0.1微法)3 變壓器5 V/100 M A1 電源線150cm1 固定腳銅3套 PCB線路板直徑1151 熱縮管直徑20.2米新穎新穎60秒旋轉(zhuǎn)電子鐘器件清單秒旋轉(zhuǎn)電子鐘器件清單 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 電子鐘電源電子鐘電源 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 新穎新穎60秒旋轉(zhuǎn)秒旋轉(zhuǎn)電子鐘實(shí)物電子鐘實(shí)物 1單片機(jī)原理及應(yīng)用單片機(jī)原

25、理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 新穎新穎60秒旋轉(zhuǎn)秒旋轉(zhuǎn)電子鐘實(shí)物電子鐘實(shí)物 2單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 60秒旋轉(zhuǎn)電子鐘部分參考程序清單秒旋轉(zhuǎn)電子鐘部分參考程序清單ALARMHBUFF2 EQU 77H ;鬧鈴時(shí)間的時(shí)十位計(jì)時(shí)綬沖ALARMHBUFF1 EQU 76H ;鬧鈴時(shí)間的時(shí)個(gè)位計(jì)時(shí)綬沖ALARMMBUFF2 EQU 75H ;鬧鈴時(shí)間的分十位計(jì)時(shí)綬沖ALARMMBUFF1 EQU 74H ;鬧鈴時(shí)間的分個(gè)位計(jì)時(shí)綬沖HBUFF2 EQU 73H ;時(shí)十位計(jì)時(shí)綬沖HBUFF1 EQU 72H ;時(shí)個(gè)位計(jì)時(shí)綬沖MBUFF2 E

26、QU 71H ;分十位計(jì)時(shí)綬沖MBUFF1 EQU 70H ;分個(gè)位計(jì)時(shí)綬沖DP EQU 6FH ;控制數(shù)碼管點(diǎn)的亮暗NUM EQU 78H ;前四秒還是后四秒計(jì)數(shù) SBUFF EQU 79H ;秒十進(jìn)制計(jì)時(shí)綬沖(低四位對應(yīng)個(gè)位, 高四位對應(yīng)十位)單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 MBUFF EQU 7AH ;分十進(jìn)制計(jì)時(shí)綬沖HBUFF EQU 7BH ;時(shí)十進(jìn)制計(jì)時(shí)綬沖ALARMMBUFF EQU 7CH ;鬧鈴時(shí)間的分十進(jìn)制計(jì)時(shí)綬沖ALARMHBUFF EQU 7DH ;鬧鈴時(shí)間的時(shí)十進(jìn)制計(jì)時(shí)綬沖NUMT1 EQU 67H ;用于控制時(shí)間調(diào)整時(shí)按鍵p3

27、.2 一次按 下時(shí),計(jì)數(shù)器T1中斷的次數(shù)NUMT2 EQU 68H ;用于控制時(shí)間調(diào)整時(shí)按鍵p3.3 一次按下時(shí),計(jì)數(shù)器T1中斷的次數(shù)KEYNUMT1 EQU 69H ;用于存儲(chǔ)NUMT1已經(jīng)計(jì)數(shù)到第幾個(gè)半秒 KEYNUMT2 EQU 6AH ;用于存儲(chǔ)NUMT1已經(jīng)計(jì)數(shù)到第幾個(gè)半秒STOREKEYNUMT2 EQU 6BH ;用于存儲(chǔ)當(dāng)前KEYNUMT1的值,以 和下次做比較,看是否有變化STOREKEYNUMT1 EQU 6CH ;用于存儲(chǔ)當(dāng)前KEYNUMT2的值,以和下次做比較,看是否有變化 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 ORG 0000H AJ

28、MP START ORG 000BH MOV TH0 , #0BH ;設(shè)置計(jì)數(shù)初值 ,R4用來存儲(chǔ)低位的初值 MOV TL0 , R4 AJMP INTERT0 ORG 001BH AJMP INTERT1 ORG 0040HSTART: MOV NUMT1 , #00H MOV NUMT2 , #00H MOV KEYNUMT1 , #00H MOV KEYNUMT2 , #00H MOV STOREKEYNUMT2 , #00H MOV STOREKEYNUMT1 , #00H MOV NUM , #8 MOV DPTR , #TAB單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例

29、-余水寶余水寶 MOV ALARMHBUFF , #18H ;置鬧鈴時(shí)間初始值為18:55 MOV ALARMMBUFF , #55H MOV ALARMHBUFF2, #01H MOV ALARMHBUFF1, #08H MOV ALARMMBUFF2 , #05H MOV ALARMMBUFF1 , #05H MOV HBUFF2, #01H ;置鬧鐘時(shí)間為18:53 MOV HBUFF1, #08H MOV MBUFF2 , #05H MOV MBUFF1 , #03H MOV HBUFF , #18H MOV MBUFF , #53H MOV SBUFF , #3CH ;置初始秒為60

30、,計(jì)時(shí)時(shí)減 MOV TCON , #05H ;下降沿觸發(fā) MOV TMOD , #11H ;初始化定時(shí)器,T0 ,T1 16位計(jì)時(shí) MOV TH0 , #0BH ;設(shè)置計(jì)數(shù)初值,125ms計(jì)時(shí)單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 MOV TL0 , #0DBH MOV TH1 , #3CH ;T1置初值,進(jìn)行100ms計(jì)時(shí),用于調(diào)整時(shí)間 MOV TL1 , #0B0H MOV IE , #82H ;開T0中斷 SETB PT0 ;T0中斷優(yōu)先級(jí)最高 SETB TR0 ;允許T0計(jì)數(shù) SETB P3.2 SETB P3.3START1: MOV A , HBUF

31、F ; 顯示時(shí),7點(diǎn)以前及21點(diǎn)以后亮度調(diào)暗 SUBB A , #7H JC START2 MOV A , HBUFF SUBB A , #21H JNC START2 ACALL DISPLAY ACALL ZDBS AJMP START3單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 START2: ACALL NIGHTDISPLAYSTART3: MOV A ,ALARMHBUFF ;檢測是否是定鬧時(shí)間 CJNE A , HBUFF , START4 MOV A , ALARMMBUFF CJNE A , MBUFF ,START4 MOV C, DP ;若是定

32、鬧時(shí)間,則利用dp的值來決定蜂鳴 MOV P3.2, C MOV A , SBUFF JNZ START1 ;若還沒到1分鐘,則繼續(xù)蜂鳴 SETB P3.2START4: JNB P3.2,ADJUSTTIME1 ;循環(huán)等待中斷,并檢測是否 鍵按下,若是,則進(jìn)入相應(yīng)程序 JNB P3.3,ADJUSTTIME2 AJMP START1 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 INT0中斷子程序ADJUSTTIME1: NOP MOV KEYNUMT1 ,#00H MOV TH1 , #3CH ;T1置初值,進(jìn)行100ms計(jì)時(shí), 用于調(diào)整時(shí)間 MOV TL1 ,

33、#0B0H SETB ET1 ;開T1中斷 SETB PT1 ;設(shè)T1中斷優(yōu)先級(jí)最高 SETB TR1 ;允許T1計(jì)時(shí) MOV STOREKEYNUMT1 , KEYNUMT1 ;存儲(chǔ)當(dāng)前 次KEYNUMT1的值 TIME1_1:ACALL DISPLAY MOV A , KEYNUMT1 CJNE A , STOREKEYNUMT1,TIME1_2 ;若當(dāng)前 KEYNUMT1的值與上一次的值不等,則時(shí)間加1分,否則 繼續(xù)循環(huán),等等至半分鐘 AJMP TIME1_3單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 TIME1_2: MOV STOREKEYNUMT1 ,

34、KEYNUMT1 ;加1后存儲(chǔ) 當(dāng)前的KEYNUMT1的值 ACALL ADDBUFF0 ;分加1TIME1_3: JNB P3.2,TIME1_1 ;若p3.2已關(guān),則退出增時(shí), 否則繼續(xù)循環(huán) CLR ET1 CLR PT1 CLR TR1 AJMP START1 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 時(shí)間增1分ADDBUFF0: MOV A , MBUFF ; 若按鍵小于1s,則分增1 ADD A , #1 DA A MOV MBUFF , A ANL A , #0FH MOV MBUFF1 , A MOV A , MBUFF SWAP A ANL A ,

35、 #0FH MOV MBUFF2 , A MOV A , MBUFF CJNE A , #60H , ADDBUFF1 MOV MBUFF , #00H MOV MBUFF2 , #00H MOV MBUFF1 , #00H MOV A , HBUFF ;時(shí)增1 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 ADD A , #1 DA A MOV HBUFF , A ANL A , #0FH MOV HBUFF1 , A MOV A , HBUFF SWAP A ANL A , #0FH MOV HBUFF2 , A MOV A , HBUFF CJNE A , #2

36、4H , ADDBUFF1 ;若沒到24小時(shí), 則不必初值置0 MOV HBUFF , #00H MOV HBUFF2 , #00H MOV HBUFF1 , #00HADDBUFF1: RET 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 INT1中斷子程序 ADJUSTTIME2: NOP ACALL DL100MS MOV C , P3.3 JC TIME2_6 ;如果(P3.3按鍵100ms以上) 則不做處理 MOV KEYNUMT2 , #00H ;否則進(jìn)入定鬧設(shè)置 MOV STOREKEYNUMT2 , KEYNUMT2 ;記錄當(dāng)前NUMT2的 數(shù)據(jù),以看

37、下次有沒改變TIME2_1: NOP MOV TH1 , #3CH ;T1置初值,進(jìn)行100ms計(jì)時(shí), 用于調(diào)整時(shí)間 MOV TL1 , #0B0H SETB ET1 ;開T1中斷 SETB PT1 ;設(shè)T1中斷優(yōu)先級(jí)最高 SETB TR1 ;允許T1計(jì)時(shí) TIME2_2: ACALL ALARMDISPLAY MOV A , KEYNUMT2 CJNE A , STOREKEYNUMT2 ,TIME2_3 AJMP TIME2_4 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 TIME2_3: MOV STOREKEYNUMT2 , KEYNUMT2 MOV A ,

38、 ALARMMBUFF ; 若按鍵小于1s,則分增1 ADD A , #1 DA A MOV ALARMMBUFF , A ANL A , #0FH MOV ALARMMBUFF1 , A MOV A , ALARMMBUFF SWAP A ANL A , #0FH MOV ALARMMBUFF2 , A MOV A , ALARMMBUFF CJNE A , #60H , TIME2_4 MOV ALARMMBUFF , #00H MOV ALARMMBUFF2 , #00H MOV ALARMMBUFF1 , #00H MOV A , ALARMHBUFF ;時(shí)增1 ADD A , #1

39、DA A 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 MOV ALARMHBUFF , A ANL A , #0FH MOV ALARMHBUFF1 , A MOV A , ALARMHBUFF SWAP A ANL A , #0FH MOV ALARMHBUFF2 , A MOV A , ALARMHBUFF CJNE A , #24H , TIME2_4 ;若沒到24小時(shí),則初值不必置0 MOV ALARMHBUFF , #00H MOV ALARMHBUFF2 , #00H MOV ALARMHBUFF1 , #00HTIME2_4: NOP JNB P3.3

40、,TIME2_2 ;若按鍵已經(jīng)未按,則退出循環(huán) CLR ET1 CLR TR1 MOV KEYNUMT2 , #00H MOV NUMT2 , #00H單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 MOV R2 , #10 ; 直到p3.3 20s鐘內(nèi)都是未按, 此時(shí)復(fù)原數(shù)據(jù),即退出設(shè)置TIME2_7: MOV R1 , #200 TIME2_5: ACALL ALARMDISPLAY ACALL DL1MS JNB P3.3 , TIME2_1 DJNZ R1 , TIME2_5 DJNZ R2 , TIME2_7TIME2_6: CLR ET1 CLR PT1 CLR TR1 LJMP START1 單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)實(shí)例課程設(shè)計(jì)實(shí)例-余水寶余水寶 T1中斷子程序INTERT1: NOP MOV TH1 , #3CH ;T1置初值,進(jìn)行100ms計(jì)時(shí), 用于調(diào)整時(shí)間 MOV TL1 , #0B0H PUSH ACC PUSH PSW CLR ET0 CLR ET1 ;關(guān)T1中斷 MOV A , NUMT1 INC A MOV NUMT1 , A ;中斷一次則相應(yīng)的增加NUMT1 CJNE A , #5 , INTERT1NEXT ;每中斷五次,即半秒, 都增加KEYNUMT1 MOV A ,KEYNUM

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論