單片機(jī)課程設(shè)計(jì)(電子鐘)_第1頁(yè)
已閱讀1頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論