版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《單片機(jī)原理及應(yīng)用》課程課程設(shè)計(jì)</p><p> 題 目 數(shù)字時(shí)鐘 </p><p> 院 (系) 信息工程學(xué)院 </p><p> 專 業(yè) 班 級(jí) 11級(jí)計(jì)算機(jī)應(yīng)用技術(shù)2班</p><p> 學(xué) 生 姓 名 &
2、lt;/p><p> 學(xué) 號(hào) </p><p> 設(shè) 計(jì) 地 點(diǎn) 計(jì)算機(jī)應(yīng)用實(shí)驗(yàn)室 </p><p> 指 導(dǎo) 教 師 </p><p> 起止時(shí)間: 2013年 6月 3日至 2013 年 6 月 14 日</p><p>&l
3、t;b> 摘 要</b></p><p> 數(shù)字鐘已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵?,廣泛用于個(gè)人家庭以及辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進(jìn)的石英技術(shù),使數(shù)字鐘具有走時(shí)準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),它還用于計(jì)時(shí)、自動(dòng)報(bào)時(shí)及自動(dòng)控制等各個(gè)領(lǐng)域。盡管目前市場(chǎng)上已有現(xiàn)成的數(shù)字鐘集成電路芯片出售,價(jià)格便宜、使用也方便,但鑒于單片
4、機(jī)的定時(shí)器功能也可以完成數(shù)字鐘電路的設(shè)計(jì),因此進(jìn)行數(shù)字鐘的設(shè)計(jì)是必要的。在這里我們將已學(xué)過的比較零散的數(shù)字電路的知識(shí)有機(jī)的、系統(tǒng)的聯(lián)系起來用于實(shí)際,來培養(yǎng)我們的綜合分析和設(shè)計(jì)電路,寫程序、調(diào)試電路的能力。 單片機(jī)具有體積小、功能強(qiáng)可靠性高、價(jià)格低廉等一系列優(yōu)點(diǎn),不僅已成為工業(yè)測(cè)控領(lǐng)域普遍采用的智能化控制工具,而且已滲入到人們工作和和生活的各個(gè)角落,有力地推動(dòng)了各行業(yè)的技術(shù)改造和產(chǎn)品的更新?lián)Q代,應(yīng)用前景廣闊。</p>
5、<p> 關(guān)鍵詞 : 單片機(jī);數(shù)碼管;數(shù)字時(shí)鐘</p><p><b> 目錄</b></p><p> 1 系統(tǒng)功能要求1</p><p> 2 設(shè)計(jì)原理及方案論證2</p><p> 2.1數(shù)字鐘原理2</p><p> 2.2電子時(shí)鐘方案2</p>
6、;<p> 2.3數(shù)碼管顯示方案3</p><p> 3 主控制器和外圍器件4</p><p> 3.1單片機(jī)主控芯片4</p><p> 3.2 LED驅(qū)動(dòng)芯片4</p><p> 3.3 4x4矩陣鍵盤模塊5</p><p> 3.4 蜂鳴器模塊5</p><
7、;p> 3.5 下載線接口電路6</p><p> 3.6 DS1302時(shí)鐘模塊6</p><p> 3.7 單片機(jī)晶振模塊7</p><p> 4 系統(tǒng)硬件電路設(shè)計(jì)8</p><p> 4.1 單片機(jī)整體功能模塊圖8</p><p> 4.2 單片機(jī)蜂鳴器和數(shù)碼管連接圖8</p&g
8、t;<p> 4.2 單片機(jī)矩陣鍵盤連接圖9</p><p> 4.3 單片機(jī)時(shí)鐘模塊和晶振連接圖9</p><p> 5 軟件程序設(shè)計(jì)10</p><p> 6 實(shí)驗(yàn)測(cè)試部分20</p><p> 6.1測(cè)試結(jié)果20</p><p> 6.1.1電子鐘正常的運(yùn)行20</p&
9、gt;<p> 6.1.2電子鐘矯正時(shí)間后的運(yùn)行20</p><p> 6.2測(cè)試結(jié)果分析與結(jié)論21</p><p><b> 7總結(jié)22</b></p><p><b> 8參考文獻(xiàn)23</b></p><p><b> 1 系統(tǒng)功能要求</b&
10、gt;</p><p> 本次設(shè)計(jì)時(shí)鐘電路,使用了AT89S52單片機(jī)芯片控制電路,單片機(jī)控制電路簡(jiǎn)單且省去了很多復(fù)雜的線路,使得電路簡(jiǎn)明易懂。同時(shí)使用C語(yǔ)言程序來控制整個(gè)時(shí)鐘顯示,使得編程變得更容易,這樣通過四個(gè)模塊:鍵盤、芯片、蜂鳴器、數(shù)碼管顯示即可滿足設(shè)計(jì)要求。</p><p> ?。?)準(zhǔn)確計(jì)時(shí),以數(shù)字形式顯示時(shí)、分、秒的時(shí)間。</p><p> (2)
11、小時(shí)以24小時(shí)計(jì)時(shí)形式,分秒計(jì)時(shí)為60進(jìn)位。 </p><p> ?。?)校正時(shí)間功能,即能隨意使用鍵盤鍵上的按鍵來調(diào)整時(shí)鐘的時(shí)、分、秒。</p><p> ?。?)鬧鐘功能,一旦走時(shí)到該時(shí)間,能以用蜂鳴器來進(jìn)行定時(shí)提醒。</p><p> 2 設(shè)計(jì)原理及方案論證</p><p><b> 2.1數(shù)字鐘原理</b
12、></p><p> 數(shù)字鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率(1HZ)進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路.由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間一致,故需要在電路上加一個(gè)校時(shí)電路,同時(shí)標(biāo)準(zhǔn)的1MHZ時(shí)間信號(hào)必須做到準(zhǔn)確穩(wěn)定.通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘. </p><p> 晶體振蕩器 </p><p> 晶體振蕩器給數(shù)字鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的11.0592MHz
13、的方波信號(hào),可保證數(shù)字鐘的走時(shí)準(zhǔn)確及穩(wěn)定.不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器。 </p><p><b> 復(fù)位電路 </b></p><p> 時(shí)間計(jì)數(shù)電路由秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器,時(shí)個(gè)位和時(shí)十位電路構(gòu)成,秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器為60進(jìn)制計(jì)數(shù)器,時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器為24進(jìn)制計(jì)數(shù)器。 <
14、;/p><p><b> 數(shù)碼管 </b></p><p> 數(shù)碼管通常有發(fā)光二極管(LED)數(shù)碼管和液晶(LCD)數(shù)碼管,本設(shè)計(jì)提供的為L(zhǎng)ED數(shù)碼管。 </p><p><b> 鍵盤 </b></p><p> 鍵盤是控制和修改時(shí)鐘的重要輸入模塊,通過鍵盤可以修改時(shí)間,修改鬧鐘時(shí)
15、間,控制顯。</p><p><b> 2.2電子時(shí)鐘方案</b></p><p> 方案一:本方案采用DS1302。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時(shí)鐘鬧鐘功能,因此,可直接對(duì)其以用于顯示或設(shè)置,使得軟件編程相對(duì)簡(jiǎn)單。為保證時(shí)鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不足或突然掉電時(shí)
16、,系統(tǒng)自動(dòng)轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時(shí),鋰電池也能保證芯片的正常運(yùn)行,以備隨時(shí)提供正確的時(shí)間。</p><p> 方案二:本方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)6個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息。利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)
17、字節(jié)值加1;若時(shí)值達(dá)到24,則將十字節(jié)清零。該方案具有硬件電路簡(jiǎn)單的特點(diǎn)。但由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘將不工作。</p><p> 電子時(shí)鐘是本設(shè)計(jì)的最主要的部分。根據(jù)需要,可利用兩種方案實(shí)現(xiàn)。基于硬件電路的考慮,本設(shè)計(jì)采用方案二完成數(shù)字時(shí)鐘的功能。</p><p> 2.3數(shù)碼管顯示方案<
18、;/p><p> 方案一:靜態(tài)顯示。所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。該方式每一位都需要一個(gè)8 位輸出口控制。靜態(tài)顯示時(shí)較小的電流能獲得較高的亮度,且字符不閃爍。但當(dāng)所顯示的位數(shù)較多時(shí),靜態(tài)顯示所需的I/O口太多,造成了資源的浪費(fèi)。</p><p> 方案二:動(dòng)態(tài)顯示。所謂動(dòng)態(tài)顯示就是一位一位的輪流點(diǎn)亮各個(gè)位,對(duì)于顯示器的每一位來說,每隔一段時(shí)間點(diǎn)
19、亮一次。利用人的視覺暫留功能可以看到整個(gè)顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點(diǎn)亮?xí)r間與間隔時(shí)間的比例有關(guān)。調(diào)整參數(shù)可以實(shí)現(xiàn)較高穩(wěn)定度的顯示。動(dòng)態(tài)顯示節(jié)省了I/O口,降低了能耗。 </p><p> 從節(jié)省I/O口和降低能耗出發(fā),本設(shè)計(jì)采用方案二。</p><p> 3 主控制器和外圍器件</p><p> 3.1單片
20、機(jī)主控芯片</p><p> 本實(shí)驗(yàn)采用AT89S52芯片。</p><p> ?。?)8 位的 CPU, 片內(nèi)有振蕩器和時(shí)鐘電路,工作頻率為 0~24MHz(2)片內(nèi)有 256字節(jié) 數(shù)據(jù)存儲(chǔ)器 RAM(3)片內(nèi)有 8K字節(jié) 程序存儲(chǔ)器 ROM(4)4個(gè)8位 的并行I/O口(P0、P1、P2、P3)(5)1個(gè) 全雙工串行通訊口(6)3個(gè)16位 定時(shí)器/計(jì)數(shù)器(T0、T1、T2
21、)(7)可處理 6個(gè)中斷源,兩級(jí)中斷優(yōu)先級(jí)</p><p><b> 圖3.1</b></p><p> 3.2 LED驅(qū)動(dòng)芯片</p><p> 本實(shí)驗(yàn)采用兩個(gè)74HC573鎖存器。數(shù)碼管的段ABCDEFGH對(duì)應(yīng)74HC573-1芯片,數(shù)碼管的位WE1~WE6對(duì)應(yīng)74HC573-2芯片。DU P2.6段選信號(hào)控制74HC573-1鎖存
22、器,WE P2.7位選信號(hào)控制74HC573-2鎖存器。兩個(gè)鎖存器IO口接P0^0到P0^7,對(duì)應(yīng)PCB網(wǎng)絡(luò)編號(hào)D0到D7。</p><p><b> 圖3.2</b></p><p> 3.3 4x4矩陣鍵盤模塊</p><p> 本實(shí)驗(yàn)采用4x4矩陣鍵盤INT1、LCDEN、RS、WR、RD、P3^0~ P3^2對(duì)應(yīng)AT89S52芯片
23、上的INT1、LCDEN、RS、WR、RD、P3^0~ P3^2 IO口。</p><p><b> 圖3.3</b></p><p><b> 3.4 蜂鳴器模塊</b></p><p> 本實(shí)驗(yàn)蜂鳴器FM接到AT89S52芯片上的P2^3 IO口,對(duì)應(yīng)的PCB網(wǎng)絡(luò)編號(hào)為FM。</p><p&g
24、t;<b> 圖3.4</b></p><p> 3.5 下載線接口電路</p><p> 本實(shí)驗(yàn)下載線接口電路P3^0、P3^1引腳接到AT89S52芯片上的P3^0、P3^1 IO口上。</p><p><b> 圖3.5</b></p><p> 3.6 DS1302時(shí)鐘模塊<
25、/p><p> 本實(shí)驗(yàn)時(shí)鐘模塊CLK和I/O口接到AT89S52芯片上的P2^1、P2^0 IO口上。</p><p><b> 圖3.6</b></p><p> 3.7 單片機(jī)晶振模塊 </p><p> 本實(shí)驗(yàn)晶振模塊X1、X2接到AT89S52芯片上的X1、X2 IO口。</p><p&g
26、t;<b> 圖3.7</b></p><p> 4 系統(tǒng)硬件電路設(shè)計(jì)</p><p> 4.1 單片機(jī)整體功能模塊圖</p><p> 蜂鳴器模塊對(duì)應(yīng)AT89S52的P2^3 IO端口;矩陣鍵盤具體的掃描由P3端口控制;下載線接口電路通過P3^0和P3^1連接控制。</p><p><b> 圖4.
27、1</b></p><p> 4.2 單片機(jī)蜂鳴器和數(shù)碼管連接圖</p><p> 蜂鳴器模塊對(duì)應(yīng)AT89S52的P2^3 IO端口;數(shù)碼管模塊的段選信號(hào)由P2^6控制,位選信號(hào)由P2^7控制,數(shù)碼管具體顯示由P0端口控制;</p><p><b> 圖4.2</b></p><p> 4.2 單片機(jī)
28、矩陣鍵盤連接圖</p><p> 4x4矩陣鍵盤INT1、LCDEN、RS、WR、RD、P3^0~ P3^2對(duì)應(yīng)AT89S52芯片上的INT1、LCDEN、RS、WR、RD、P3^0~ P3^2 IO口。</p><p><b> 圖4.2</b></p><p> 4.3 單片機(jī)時(shí)鐘模塊和晶振連接圖</p><p&g
29、t; DS1302時(shí)鐘模塊則通過P2^1和P2^0連接控制;單片機(jī)晶振通過X1和X2連接控制;</p><p><b> 圖4.3</b></p><p><b> 5 軟件程序設(shè)計(jì)</b></p><p> #include<reg51.h></p><p> #define
30、 uchar unsigned char</p><p> sbit dula=P2^6;</p><p> sbit wela=P2^7;</p><p> sbit beep=P2^3;</p><p> unsigned char j,k,a1,a0,b1,b0,c1,c0,s,f,m,key=10,temp,qq;</p
31、><p> uchar shi20,shi10,fen20,fen10,miao20,miao10,ok=1,wei,dingshi,change,yidingshi;</p><p> uchar baoshi,baoshijieshu;</p><p> unsigned int pp;</p><p> unsigned char
32、code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,</p><p> 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};</p><p> /***************************延時(shí)函數(shù)******************************/</p><
33、p> void delay(unsigned char i)</p><p> { for(j=i;j>0;j--)</p><p> for(k=125;k>0;k--);</p><p><b> }</b></p><p> /****************六個(gè)數(shù)碼管動(dòng)態(tài)掃描顯示時(shí),分
34、,秒*********************/</p><p> void display(uchar shi2,uchar shi1,uchar fen2,uchar fen1,uchar miao2,uchar miao1)</p><p><b> { dula=0;</b></p><p> P0=table[shi2];<
35、;/p><p><b> dula=1;</b></p><p><b> dula=0; </b></p><p><b> wela=0;</b></p><p><b> P0=0xfe;</b></p><p><
36、b> wela=1;</b></p><p><b> wela=0;</b></p><p> delay(5); </p><p> P0=table[shi1]|0x80;</p><p><b> dula=1;</b></p><p>&
37、lt;b> dula=0;</b></p><p><b> P0=0xfd;</b></p><p><b> wela=1;</b></p><p><b> wela=0;</b></p><p><b> delay(5);<
38、/b></p><p> P0=table[fen2];</p><p><b> dula=1;</b></p><p><b> dula=0; </b></p><p><b> P0=0xfb;</b></p><p><b
39、> wela=1;</b></p><p><b> wela=0;</b></p><p><b> delay(5);</b></p><p> P0=table[fen1]|0x80;</p><p><b> dula=1;</b></
40、p><p><b> dula=0;</b></p><p><b> P0=0xf7;</b></p><p><b> wela=1;</b></p><p><b> wela=0;</b></p><p> delay
41、(5); </p><p> P0=table[miao2];</p><p><b> dula=1;</b></p><p><b> dula=0;</b></p><p><b> P0=0xef;</b></p><p><b&g
42、t; wela=1;</b></p><p><b> wela=0;</b></p><p><b> delay(5);</b></p><p> P0=table[miao1];</p><p><b> dula=1;</b></p>
43、<p><b> dula=0;</b></p><p><b> P0=0xdf;</b></p><p><b> wela=1;</b></p><p><b> wela=0;</b></p><p><b> de
44、lay(5);</b></p><p><b> }</b></p><p> /***********通過矩陣鍵盤的S18和S19鍵設(shè)置定時(shí)和取消定時(shí),S16為暫停進(jìn)入矯正時(shí)間狀態(tài),S17為繼續(xù)計(jì)時(shí)******************/</p><p> void keyscan0()</p><p>
45、; { P3=0xfb;</p><p><b> temp=P3;</b></p><p> temp=temp&0xf0;</p><p> if(temp!=0xf0)</p><p> { delay(10);</p><p> if(temp!=0xf0)</p
46、><p> { temp=P3;</p><p> switch(temp)</p><p> { case 0xbb:ok=0;change=1; break;</p><p> case 0x7b:ok=1;change=0;dingshi=0;break;</p><p><b> }</b
47、></p><p><b> }</b></p><p><b> }</b></p><p><b> P3=0xf7;</b></p><p><b> temp=P3;</b></p><p> temp=te
48、mp&0xf0;</p><p> if(temp!=0xf0)</p><p> { delay(10);</p><p> if(temp!=0xf0)</p><p> { temp=P3;</p><p> switch(temp)</p><p> { case 0
49、xe7:ok=0;dingshi=1;break;</p><p> case 0xd7:yidingshi=0; break; //取消定時(shí)</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></
50、p><p><b> }</b></p><p> /****************通過矩陣鍵盤S6—S15設(shè)置時(shí)鐘具體時(shí)間時(shí)間*********************/</p><p> void keyscan()</p><p><b> {</b></p><p&
51、gt; { P3=0xfe;</p><p><b> temp=P3;</b></p><p> temp=temp&0xf0;</p><p> if(temp!=0xf0)</p><p> { delay(10);</p><p> if(temp!=0xf0)<
52、/p><p> {temp=P3;</p><p> switch(temp)</p><p> { case 0xee:key=0;wei++;break;</p><p> case 0xde:key=1;wei++;break;</p><p> case 0xbe:key=2;wei++;break;&
53、lt;/p><p> case 0x7e:key=3;wei++;break;</p><p><b> }</b></p><p> while(temp!=0xf0) </p><p> { temp=P3;</p><p> temp=temp&0xf0;</p>
54、<p><b> beep=0;</b></p><p><b> }</b></p><p><b> beep=1;</b></p><p><b> }</b></p><p><b> }</b><
55、/p><p><b> P3=0xfd;</b></p><p><b> temp=P3;</b></p><p> temp=temp&0xf0;</p><p> if(temp!=0xf0)</p><p> { delay(10);</p>
56、<p> if(temp!=0xf0)</p><p> { temp=P3;</p><p> switch(temp)</p><p> { case 0xed:key=4;wei++;break;</p><p> case 0xdd:key=5;wei++;break;</p><p>
57、 case 0xbd:key=6;wei++;break;</p><p> case 0x7d:key=7;wei++;break;</p><p><b> }</b></p><p> while(temp!=0xf0)</p><p> { temp=P3;</p><p>
58、temp=temp&0xf0;</p><p><b> beep=0;</b></p><p><b> }</b></p><p><b> beep=1;</b></p><p><b> }</b></p><p
59、><b> }</b></p><p><b> P3=0xfb;</b></p><p><b> temp=P3;</b></p><p> temp=temp&0xf0;</p><p> if(temp!=0xf0)</p><
60、;p> { delay(10);</p><p> if(temp!=0xf0)</p><p> { temp=P3;</p><p> switch(temp)</p><p> { case 0xeb:key=8;wei++;break;</p><p> case 0xdb:key=9;wei
61、++;break;</p><p><b> }</b></p><p> while(temp!=0xf0)</p><p> { temp=P3;</p><p> temp=temp&0xf0;</p><p><b> beep=0;</b><
62、/p><p><b> }</b></p><p><b> beep=1;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b><
63、;/p><p><b> }</b></p><p> /***********主函數(shù)設(shè)置時(shí)鐘和定時(shí)時(shí)間時(shí),分,秒的進(jìn)制轉(zhuǎn)換*********************/</p><p> void main()</p><p> { TMOD=0x01; </p><p> /*由于晶振為1
64、1.0592,故所記次數(shù)應(yīng)為46080,計(jì)時(shí)器每隔50000微秒發(fā)起一次中斷。*/</p><p> TH0=(65536-46080)/256;</p><p> TL0=(65536-46080)%256;//46080的來歷,為50000*11.0592/12</p><p><b> ET0=1;</b></p>&
65、lt;p><b> EA=1;</b></p><p><b> while(1)</b></p><p> {keyscan0();</p><p><b> if(ok==1)</b></p><p><b> { TR0=1;</b>
66、;</p><p><b> wei=0;</b></p><p> if(pp==20)</p><p><b> {pp=0;</b></p><p><b> m++;</b></p><p><b> if(m==60)&l
67、t;/b></p><p><b> { m=0;</b></p><p><b> f++;</b></p><p><b> if(f==60)</b></p><p><b> { f=0;</b></p><p&g
68、t;<b> s++;</b></p><p> if(s==24) //為24h一個(gè)循環(huán),若要12h,只需在此改為12即可。</p><p><b> { s=0;</b></p><p><b> }</b></p><p><b> }</b&
69、gt;</p><p><b> }</b></p><p><b> }</b></p><p><b> a0=s%10;</b></p><p><b> a1=s/10;</b></p><p><b>
70、 b0=f%10;</b></p><p><b> b1=f/10;</b></p><p><b> c0=m%10;</b></p><p><b> c1=m/10;</b></p><p> display(a1,a0,b1,b0,c1,c0);&
71、lt;/p><p><b> }</b></p><p><b> else</b></p><p> {if(change==1)</p><p><b> {TR0=0;</b></p><p> keyscan();</p>
72、<p> if(key!=10)</p><p> { switch(wei)</p><p> { case 1: if(key<3)//小時(shí)最高位為2</p><p><b> a1=key;</b></p><p><b> else</b></p>
73、<p><b> wei--;</b></p><p><b> break;</b></p><p> case 2: if(a1==1|a1==0)</p><p><b> a0=key;</b></p><p><b> else<
74、/b></p><p><b> if(key<5)</b></p><p> a0=key; //當(dāng)小時(shí)最高位為2時(shí),低位最高為4</p><p><b> break;</b></p><p> case 3: if(key<6)//分鐘最高位為5</
75、p><p><b> b1=key;</b></p><p><b> else</b></p><p><b> wei--;</b></p><p><b> break;</b></p><p> case 4: b0=
76、key; break;</p><p> case 5: if(key<6)//秒最高位為5</p><p><b> c1=key; </b></p><p><b> else</b></p><p><b> wei--;</b></p>
77、<p><b> break;</b></p><p> case 6: c0=key; break;</p><p><b> }</b></p><p><b> key=10;</b></p><p><b> }</b><
78、/p><p> m=c1*10+c0;</p><p> f=b1*10+b0;</p><p> s=a1*10+a0;</p><p> display(a1,a0,b1,b0,c1,c0);</p><p><b> }</b></p><p> if(din
79、gshi==1)</p><p> { TR0=0;</p><p> display(shi20,shi10,fen20,fen10,miao20,miao10);</p><p> keyscan();</p><p> if(key!=10)</p><p><b> {</b&g
80、t;</p><p> switch(wei)</p><p> { case 1: if(key<3)//小時(shí)最高位為2</p><p> shi20=key;</p><p><b> else</b></p><p><b> wei--;</b>
81、</p><p><b> break;</b></p><p> case 2: if(a1==1|a1==0)</p><p> shi10=key;</p><p><b> else</b></p><p><b> if(key<5)<
82、;/b></p><p> a0=key; //當(dāng)小時(shí)最高位為2時(shí),低位最高為4</p><p><b> break;</b></p><p> case 3: if(key<6)//分鐘最高位為5</p><p> fen20=key;</p><p><
83、b> else</b></p><p><b> wei--;</b></p><p><b> break;</b></p><p> case 4: fen10=key; break;</p><p> case 5: if(key<6)//秒最高位為5&l
84、t;/p><p> miao20=key; </p><p><b> else</b></p><p><b> wei--;</b></p><p><b> break;</b></p><p> case 6: miao10=key; br
85、eak;</p><p><b> }</b></p><p><b> key=10;</b></p><p><b> }</b></p><p> yidingshi=1;</p><p> display(shi20,shi10,fen
86、20,fen10,miao20,miao10);</p><p><b> }</b></p><p><b> }</b></p><p> if(yidingshi==1)</p><p> { if((a1==shi20)&&(a0==shi10)&&
87、;(b1==fen20)&&(b0==fen10)&&(c1==miao20)&&(c0==miao10))</p><p><b> beep=0;</b></p><p><b> }</b></p><p> if(((a1==shi20)&&(a
88、0==shi10)&&(b1==fen20)&&(b0==fen10+1)&&(c1==miao20)&&(c0==miao10))||(yidingshi==0))//一分鐘報(bào)時(shí)提示</p><p><b> beep=1;</b></p><p><b> }</b><
89、/p><p><b> }</b></p><p> /****************定時(shí)器T0中斷函數(shù)*********************/</p><p> void time0() interrupt 1</p><p> {TH0=(65536-46080)/256;</p><
90、p> TL0=(65536-46080)%256;</p><p><b> pp++;</b></p><p><b> }</b></p><p><b> 6 實(shí)驗(yàn)測(cè)試部分</b></p><p><b> 6.1測(cè)試結(jié)果</b>&l
91、t;/p><p> 6.1.1電子鐘正常的運(yùn)行</p><p><b> 圖6.1</b></p><p> 6.1.2電子鐘矯正時(shí)間后的運(yùn)行</p><p><b> 圖6.2</b></p><p> 6.2測(cè)試結(jié)果分析與結(jié)論</p><p>
92、; 該程序?yàn)閿?shù)碼管顯示可調(diào)且可定時(shí)鐘表,用到HJ-3G開發(fā)板中矩陣鍵盤的上三排與第四排前兩個(gè)按鍵。若要更改時(shí)鐘初始值(即時(shí)鐘校準(zhǔn)),可先按下矩陣鍵盤中的S16鍵(第三排第三列),此時(shí)時(shí)鐘會(huì)暫停。然后按S6---S15中的鍵修改矯正當(dāng)前值,S6--S15分別先后對(duì)應(yīng)數(shù)字0到9。矯正完后,按下S17(第三排最后一個(gè)),時(shí)鐘可繼續(xù)工作。若要設(shè)置定時(shí)時(shí)間,可先按下S18(第四排第一個(gè)),然后按數(shù)字鍵S6--S15設(shè)置定時(shí)時(shí)間(設(shè)置順序是由高位
93、到低位的順序),設(shè)置完定時(shí)后,按下S17可恢復(fù)到正常計(jì)時(shí)狀態(tài)定時(shí)時(shí)間到,蜂鳴器會(huì)持續(xù)響一分鐘報(bào)時(shí)。若要取消定時(shí),或者蜂鳴器響時(shí)想對(duì)其關(guān)閉,可以按下S19功能鍵。</p><p><b> 總結(jié)</b></p><p> 在硬件電路制作階段,我到圖書館、網(wǎng)上查閱各種資料,在電腦上使用 keil和萬利軟件 進(jìn)行以及相關(guān)的繪圖軟件,使自己在理論分析設(shè)計(jì)和動(dòng)手操作能力等各
94、方面得到了極大提高。我通過對(duì)設(shè)計(jì)任務(wù)書的具體要求分析思考,再加上在學(xué)校進(jìn)行的各種相關(guān)實(shí)踐和實(shí)習(xí)積累的經(jīng)驗(yàn),在編寫程序調(diào)試時(shí),遇到了不少困難,這使我學(xué)會(huì)了耐心分析問題,并進(jìn)一 步鍛煉自己去攻破難題的能力。這次課程設(shè)計(jì)整體來說是成功的,但我也發(fā)現(xiàn)了自己許多錯(cuò)漏和不足之 處。譬如,最簡(jiǎn)單的程序沒寫好就想著寫更復(fù)雜的程序,做事還是缺乏耐性和細(xì)心,當(dāng)有時(shí)遇到問題時(shí),總覺得無從下手,對(duì)于課本上的知識(shí)不能很好的組織起來。以后會(huì)更認(rèn)真的學(xué)習(xí)相關(guān)內(nèi)容。&
95、lt;/p><p><b> 參考文獻(xiàn)</b></p><p> [1] 李朝青.單片機(jī)原理及接口技術(shù)(簡(jiǎn)明修訂版).杭州:北京航空航天大學(xué)出版社,1998 </p><p> [2] 李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1994 </p><p> [3]
96、 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社,1989 </p><p> [4] 廖常初.現(xiàn)場(chǎng)總線概述[J].電工技術(shù),1999.</p><p> [5] 丁元杰 單片微機(jī)原理及應(yīng)用(第三版) 機(jī)械工業(yè)出版社,2005 </p><p> [6] 楊景常,謝維成&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--電子鐘
- 單片機(jī)課程設(shè)計(jì)(電子鐘)
- 《單片機(jī)技術(shù)》電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 電子鐘課程設(shè)計(jì)--基于單片機(jī)的電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)---智能電子鐘
- 單片機(jī)原理課程設(shè)計(jì)--電子鐘
- 單片機(jī)數(shù)字電子鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)-智能電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字鐘電子鐘
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)單電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告-電子鐘設(shè)計(jì)
- 單片機(jī)電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)的電子鐘設(shè)計(jì)
- 基于單片機(jī)的電子鐘課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論