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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  摘要:</b></p><p>  隨著時(shí)代的進(jìn)步,越來(lái)越多的電子廠品趨向于低成本,高性能,耐用性好的方向發(fā)展。特別是趨向于自動(dòng)化控制的方向走。89c51作為控制芯片是最好不過(guò)的選擇啦。它具有強(qiáng)大的功能,并且簡(jiǎn)單易于操作,安全性與穩(wěn)定性較高,價(jià)格便宜,適合中小型電子廠品開發(fā)中的控制器。就像我們的課程設(shè)計(jì),基于89c51單片機(jī)的電子時(shí)鐘的課程設(shè)計(jì)。</p&g

2、t;<p>  這款課程設(shè)計(jì)用到的主要材料有89c51單片機(jī),1602液晶顯示屏,矩陣鍵盤,以及一些電容電阻元件等等。</p><p>  使用89c51作為電子時(shí)鐘的控制器很簡(jiǎn)單,就是由于其經(jīng)濟(jì)型與穩(wěn)定性和易操作性。顯示電路上,就在使用7段數(shù)碼管和1602液晶顯示屏上糾結(jié)了一陣子。7段數(shù)碼管的好處在于他更適用于室外環(huán)境,但由于其操作復(fù)雜等等其他外在原因,最終還是選擇了使用1602做顯示電路。160

3、2不僅操作上臂數(shù)碼管簡(jiǎn)單許多,而且使用1602能在很大程度上是電路圖盡量簡(jiǎn)化,便于操作與錯(cuò)誤的檢修。并且1602價(jià)格也比較便宜。</p><p>  基于89c51電子時(shí)鐘的設(shè)計(jì),利用了單片機(jī)內(nèi)部的一個(gè)自帶定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)定時(shí)功能,并通過(guò)內(nèi)部程序,實(shí)現(xiàn)對(duì)時(shí)分秒,年月日這幾個(gè)輸出數(shù)值的自增,并且通過(guò)編寫程序,實(shí)現(xiàn)通過(guò)鍵盤控制時(shí)分秒,年月日大小的調(diào)整,這是必要的功能。最后通過(guò)1602液晶顯示電路將時(shí)間顯示在其上。&

4、lt;/p><p>  這樣的電子時(shí)鐘比較精準(zhǔn),其主要誤差來(lái)源與晶振的誤差,即使是這樣,他的誤差也只是微妙級(jí)別,對(duì)于日常生活中的時(shí)間計(jì)數(shù)是足夠的啦。</p><p>  關(guān)鍵詞:89c51單片機(jī) 1602液晶顯示屏 矩陣鍵盤 keil軟件</p><p><b>  目錄</b></p><p>  1、課程設(shè)計(jì)任務(wù)書

5、與評(píng)閱表…………………………………… 3</p><p>  2、前言…………………………………………………………… 6</p><p>  2、概述…………………………………………………………… 6</p><p>  2.1基于89C51電子時(shí)鐘設(shè)計(jì)目的……………………… 7</p><p>  2.2課程設(shè)計(jì)的組成部分………………………

6、………… </p><p>  3、電子時(shí)鐘設(shè)計(jì)的內(nèi)容………………………………………… 9</p><p>  3.1液晶1602顯示電路設(shè)計(jì)………………………………93.2單片機(jī)晶振電路與復(fù)位電路設(shè)計(jì) ……………………</p><p>  3.3鍵盤調(diào)試電路的設(shè)計(jì)…………………………………</p><p>  3.4總體電路設(shè)計(jì)………

7、…………………………………1</p><p>  3.5單片機(jī)程序的編寫……………………………………1</p><p>  4、總結(jié)……………………………………………………………23</p><p>  4.1遇到的問(wèn)題與解決辦法……………………………</p><p>  4.2體會(huì)與收獲……………………………………………</p>

8、<p>  5、附錄:參考資料</p><p><b>  1、前言</b></p><p>  單片機(jī)是什么?單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。</p><p>  單

9、片機(jī)作為應(yīng)用最廣泛的控制系統(tǒng)之一,具有體積小,易于控制,價(jià)格便宜,安全可靠等等優(yōu)良的性能而被廣泛的關(guān)注。無(wú)論是小到兒童玩具,到工業(yè)控制系統(tǒng),大到航天航空系統(tǒng)的設(shè)計(jì)與操作之中,隨處可見單片機(jī)的蹤影。大學(xué)電子專業(yè),電氣專業(yè),通信等專業(yè)開設(shè)單片機(jī)課程,對(duì)人才的培養(yǎng)無(wú)疑是有著重大的意義的。</p><p>  單片機(jī)的學(xué)習(xí),主要是注重于對(duì)單片機(jī)內(nèi)部存儲(chǔ)結(jié)構(gòu),引腳的結(jié)構(gòu)與功能,以及各引腳之間的區(qū)別,用法上面的不同。同樣,單

10、片機(jī)是一門技術(shù),需要大量的動(dòng)手實(shí)踐才能真正的掌握其基本原理,才能真正的控制單片機(jī)并設(shè)計(jì)其程序,使其運(yùn)行在指定的程序之下。</p><p>  課程設(shè)計(jì)是在校學(xué)生素質(zhì)教育的重要環(huán)節(jié),是理論與實(shí)踐相結(jié)合的橋梁和紐帶。單片機(jī)課程設(shè)計(jì),要求學(xué)生更多的完成軟硬結(jié)合的動(dòng)手實(shí)踐方案,解決目前學(xué)生課程設(shè)計(jì)過(guò)程中普遍存在的缺乏動(dòng)手能力的現(xiàn)象. 《單片機(jī)課程設(shè)計(jì)》是繼《電子技術(shù)》、和《單片機(jī)原理及在電氣測(cè)控學(xué)科中的應(yīng)用》課程之后開出

11、的實(shí)踐環(huán)節(jié)課程,其目的和任務(wù)是訓(xùn)練學(xué)生綜合運(yùn)用已學(xué)課程“電子技術(shù)基礎(chǔ)”、“單片機(jī)原理及在電氣測(cè)控學(xué)科中的應(yīng)用”的基本知識(shí),獨(dú)立進(jìn)行單片機(jī)應(yīng)用技術(shù)和開發(fā)工作,掌握單片機(jī)程序設(shè)計(jì)、調(diào)試和應(yīng)用電路設(shè)計(jì)、分析及調(diào)試檢測(cè)。要求學(xué)生在實(shí)驗(yàn)室做出產(chǎn)品或仿真調(diào)試。</p><p>  所以,個(gè)高校開設(shè)單片機(jī)課程設(shè)計(jì)課程,不僅是對(duì)同學(xué)們動(dòng)手能力的培養(yǎng),同時(shí)也是在培養(yǎng)同學(xué)們的一種學(xué)習(xí)方法,堅(jiān)持時(shí)間與理論相結(jié)合。</p>

12、<p><b>  2、概述</b></p><p>  單片機(jī)對(duì)于學(xué)電子或是通信等專業(yè)的學(xué)生來(lái)說(shuō)并不陌生,同樣,它的重要性也無(wú)需多介紹。當(dāng)前的工業(yè)控制等等控制類系統(tǒng)正在逐步像自動(dòng)化方向,以實(shí)現(xiàn)自動(dòng)控制,自動(dòng)應(yīng)答緊急情況,自動(dòng)辨別多重相應(yīng)并作出相應(yīng)的答復(fù)為目標(biāo)。當(dāng)前的許多控制系統(tǒng)也是實(shí)現(xiàn)了某一些功能。像常用的控制芯片有ATMEL公司的89系列單片機(jī),還有更復(fù)雜一些的DSP數(shù)字處理

13、芯片,因特爾公司的電腦CPU芯片等等。</p><p>  單片機(jī)課程設(shè)計(jì)主要是將理論與實(shí)踐相結(jié)合的一次過(guò)程,通過(guò)自己設(shè)計(jì)單片機(jī)外圍電路,并且編寫相應(yīng)的控制程序來(lái)實(shí)現(xiàn)預(yù)定的功能。這是一次很好的實(shí)踐機(jī)會(huì)。</p><p>  2.1、基于89C51電子時(shí)鐘設(shè)計(jì)目的</p><p>  學(xué)習(xí)單片機(jī)最重要的方法就是實(shí)現(xiàn)理論與實(shí)踐相結(jié)合的學(xué)習(xí)方法。有些工程師說(shuō)過(guò),能利用單片

14、機(jī)設(shè)計(jì)并實(shí)現(xiàn)電子時(shí)鐘,技能基本上掌握單片機(jī)的使用。所以設(shè)計(jì)電子時(shí)鐘的真正目的不在于設(shè)計(jì)出成品而投入使用,而是在于熟悉單片機(jī)的基本功能與編程來(lái)實(shí)現(xiàn)單片機(jī)的控制。作為大學(xué)生,以后出去就業(yè)或是繼續(xù)學(xué)業(yè),都要有一定的動(dòng)手能力和實(shí)踐能力,而這,便是電子時(shí)鐘設(shè)計(jì)的另一個(gè)目的。</p><p>  2.2、課程設(shè)計(jì)的組成部分</p><p><b>  1、程序框圖的設(shè)計(jì)</b>&

15、lt;/p><p><b>  2、設(shè)計(jì)功能框圖</b></p><p><b>  提供外部時(shí)鐘震蕩</b></p><p>  電壓 數(shù)據(jù)從單片機(jī)</p><p>  提供5v 至1602顯示</p><p>

16、<b>  通過(guò)鍵盤掃描</b></p><p>  來(lái)實(shí)現(xiàn)對(duì)時(shí)間 </p><p><b>  的調(diào)節(jié)</b></p><p>  分析: 第一部分:通過(guò)USB的物理特性,再通過(guò)芯片MAX232實(shí)現(xiàn)在線提供單片機(jī)5v電壓。</p&g

17、t;<p>  第二部分:?jiǎn)纹瑱C(jī)控制模塊,有編寫程序控制單片機(jī)引腳點(diǎn)位的變化來(lái)時(shí)時(shí)控制1602的顯示。</p><p>  第三部分:鍵盤控制模塊,為三個(gè)獨(dú)立鍵盤,通過(guò)鍵盤的通斷來(lái)控制I/O管腳電位的高低,實(shí)現(xiàn)人機(jī)通信。</p><p>  第四部分:顯示模塊,為1602液晶顯示。</p><p>  3、電子時(shí)鐘設(shè)計(jì)的內(nèi)容</p>&l

18、t;p>  3.1液晶1602顯示電路的設(shè)計(jì)</p><p>  1602電路連接圖:</p><p>  操作指令與數(shù)據(jù)代碼設(shè)定:</p><p><b>  操作時(shí)序圖:</b></p><p>  由1602液晶顯示屏的各引腳功能以及時(shí)序圖容易知道,在使用1602時(shí)</p><p> 

19、 1號(hào)引腳接地GND。</p><p>  2號(hào)引腳接到電源正極(5v)。</p><p>  3號(hào)引腳為一電位器,可使用滑動(dòng)變阻器來(lái)實(shí)現(xiàn)其功能。</p><p>  4.、5、6號(hào)引腳為液晶的控制信號(hào),EA=1,打開液晶顯示;RS為數(shù)據(jù)/指令寫入端,RS=1,寫入數(shù)據(jù),RS=0則寫入指令。</p><p>  7-14腳為數(shù)據(jù)或指令入口,與

20、單片機(jī)的一個(gè)I/O口相連。</p><p>  3.2晶振與復(fù)位電路設(shè)計(jì)</p><p>  單片機(jī)的工作需要外部固定提供的頻率,才能使單片機(jī)正常的工作,復(fù)位電路是為了方便單片機(jī)調(diào)試的時(shí)候便于恢復(fù)。復(fù)位電路由剛開始上電時(shí),電容沖滿電,并斷開,當(dāng)開關(guān)按下,電容放電,給RST一個(gè)脈沖,并且時(shí)間超過(guò)兩個(gè)機(jī)器周期,失心符為功能。</p><p>  3.3鍵盤電路的設(shè)計(jì)&l

21、t;/p><p>  鍵盤為4*4的矩陣鍵盤模式,鍵盤的八只引腳接在單片機(jī)的P3口上,通過(guò)對(duì)鍵盤的逐次掃描來(lái)確定是否有鍵被摁下,來(lái)返回值達(dá)到控制的目的。</p><p>  3.4總體電路的設(shè)計(jì)</p><p><b>  原件清單:</b></p><p>  該電路的原件比較簡(jiǎn)單,能夠?qū)崿F(xiàn)電子時(shí)鐘的設(shè)計(jì)。通過(guò)按鍵盤能夠?qū)?/p>

22、現(xiàn)對(duì)年月日,時(shí)分秒的控制。</p><p><b>  使用usb供電。</b></p><p>  3.5單片機(jī)程序設(shè)計(jì)</p><p>  #include <reg52.h></p><p>  sbit rs=P3^5;</p><p>  sbit lcden=P3^4;&l

23、t;/p><p>  sbit wr=P3^6;</p><p>  sbit wela=P2^6;</p><p>  sbit dula=P2^7;</p><p>  sbit s9=P3^0;</p><p>  sbit s13=P3^1;</p><p>  sbit s17=P3^2;

24、</p><p>  sbit rd=P3^7;</p><p>  uchar shi,fen,miao,nian,yue,ri;</p><p>  uchar table0[]=" 2020-12-21"; //chushihua</p><p>  uchar table1[]=" 00:00:

25、00";//chushihua</p><p>  uchar table[]="0123456789";</p><p>  uchar temp,shi,fen,miao,nian,yue,ri,num;</p><p>  void delay(uchar z)//延時(shí)子程序</p><p>&l

26、t;b>  {</b></p><p><b>  uint i,j;</b></p><p>  for(i=z;i>0;i--)</p><p>  for(j=110;j>0;j--);</p><p><b>  }</b></p><p&g

27、t;  void wrrt_com(uchar a)//指令函數(shù)wrtt_com</p><p><b>  {</b></p><p><b>  rs=1;</b></p><p><b>  rs=0;</b></p><p><b>  wr=1;<

28、/b></p><p><b>  wr=0;</b></p><p><b>  lcden=1;</b></p><p><b>  P0=a;</b></p><p><b>  lcden=0;</b></p><p>

29、;<b>  delay(5);</b></p><p><b>  }</b></p><p>  void wrrt_date(uchar b) //數(shù)據(jù)函數(shù)wrtt——date</p><p><b>  {</b></p><p><b>  rs=0

30、;</b></p><p><b>  rs=1;</b></p><p><b>  wr=1;</b></p><p><b>  wr=0;</b></p><p><b>  lcden=1;</b></p><p&

31、gt;<b>  P0=b;</b></p><p><b>  lcden=0;</b></p><p><b>  delay(5);</b></p><p><b>  }</b></p><p>  void display1(uchar add,

32、uchar dat) //顯示shi fen miao 函數(shù)</p><p><b>  {</b></p><p>  uchar shi,ge;</p><p>  shi=dat/10;</p><p>  ge=dat%10;</p><p>  wrrt_com(0x80+0x40

33、+add);</p><p>  wrrt_date(table[shi]);</p><p>  wrrt_date(table[ge]);</p><p><b>  }</b></p><p>  void display2(uchar add,uchar dat) //顯示yue ri函數(shù)</p>

34、;<p><b>  {</b></p><p>  uchar shi,ge;</p><p>  shi=dat/10;</p><p>  ge=dat%10;</p><p>  wrrt_com(0x80+add);</p><p>  wrrt_date(table[sh

35、i]);</p><p>  wrrt_date(table[ge]);</p><p><b>  }</b></p><p>  void display3(uchar add,uchar dat) //顯示nian函數(shù)</p><p><b>  {</b></p><

36、;p>  uchar qian,bai,shi,ge;</p><p>  bai=dat/1000;</p><p>  qian=dat/100%10;</p><p>  shi=dat/10%10;</p><p>  ge=dat%10;</p><p>  wrrt_com(0x80+add);<

37、;/p><p>  wrrt_date(table[qian]);</p><p>  wrrt_date(table[bai]);</p><p>  wrrt_date(table[shi]);</p><p>  wrrt_date(table[ge]);</p><p><b>  }</b>

38、</p><p>  void init() //初始化時(shí)鐘顯示</p><p><b>  {</b></p><p><b>  uint i,j;</b></p><p><b>  wela=0;</b></p><p><

39、;b>  dula=0;</b></p><p>  nian=2012;</p><p><b>  yue=12;</b></p><p><b>  ri=21;</b></p><p><b>  shi=0;</b></p><p

40、><b>  fen=0;</b></p><p><b>  miao=0;</b></p><p><b>  temp=0;</b></p><p><b>  num=0;</b></p><p><b>  rd=0;</b

41、></p><p>  wrrt_com(0x01);</p><p>  wrrt_com(0x38);</p><p>  wrrt_com(0x0c);</p><p>  wrrt_com(0x06);</p><p>  wrrt_com(0x80);</p><p>  for

42、(i=0;i<12;i++)</p><p><b>  {</b></p><p>  wrrt_date(table0[i]); //初始化日期寫在1602上</p><p>  delay(1);</p><p><b>  }</b></p><p>  w

43、rrt_com(0x80+0x40); //初始化shi fen miao</p><p>  for(j=0;j<11;j++)</p><p><b>  {</b></p><p>  wrrt_date(table1[j]);</p><p><b>  delay(1);</b>

44、;</p><p><b>  }</b></p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p>  TMOD=0x01;</p><p>  TH0=(65536-50000)/256;<

45、;/p><p>  TL0=(65536-50000)%256;</p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p>  void clock() //時(shí)間變化掃描顯示</p><p><b>  

46、{</b></p><p>  if(miao==60)</p><p><b>  {</b></p><p><b>  miao=0;</b></p><p><b>  fen++;</b></p><p>  if(fen==60)

47、</p><p><b>  {</b></p><p><b>  fen=0;</b></p><p><b>  shi++;</b></p><p>  if(shi==24)</p><p><b>  {</b><

48、/p><p><b>  shi=0;</b></p><p><b>  ri++;</b></p><p><b>  }</b></p><p>  display1(3,shi);</p><p><b>  }</b><

49、/p><p>  display1(6,fen);</p><p><b>  }</b></p><p>  display1(9,miao);</p><p>  if(ri==30)</p><p><b>  {</b></p><p><

50、;b>  ri=0;</b></p><p><b>  yue++;</b></p><p>  if(yue==30);</p><p><b>  {</b></p><p><b>  yue=0;</b></p><p>&l

51、t;b>  nian++;</b></p><p>  display3(2,nian);</p><p><b>  }</b></p><p>  display2(7,yue);</p><p><b>  }</b></p><p>  displa

52、y2(10,ri);</p><p><b>  }</b></p><p>  void keyscan()</p><p><b>  {</b></p><p><b>  rd=0;</b></p><p><b>  if(s9==

53、0)</b></p><p><b>  {</b></p><p><b>  delay(5);</b></p><p><b>  if(s9==0)</b></p><p><b>  {</b></p><p>

54、;  while(!s9);</p><p><b>  num++;</b></p><p>  if(num==1)</p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p>  wrrt_com(0x

55、80+0x40+10);</p><p>  wrrt_com(0x0f);</p><p><b>  }</b></p><p>  if(num==2)</p><p><b>  {</b></p><p>  wrrt_com(0x80+0x40+7);</p

56、><p>  wrrt_com(0x0f);</p><p><b>  }</b></p><p>  if(num==3)</p><p><b>  {</b></p><p>  wrrt_com(0x80+0x40+4);</p><p>  w

57、rrt_com(0x0f);</p><p><b>  }</b></p><p>  if(num==4)</p><p><b>  {</b></p><p>  wrrt_com(0x80+11);</p><p>  wrrt_com(0x0f);</p&g

58、t;<p><b>  }</b></p><p>  if(num==5)</p><p><b>  {</b></p><p>  wrrt_com(0x80+8);</p><p>  wrrt_com(0x0f);</p><p><b> 

59、 }</b></p><p>  if(num==6)</p><p><b>  {</b></p><p>  wrrt_com(0x80+5);</p><p>  wrrt_com(0x0f);</p><p><b>  }</b></p>

60、<p>  if(num==7)</p><p><b>  {</b></p><p><b>  TR0=1;</b></p><p>  wrrt_com(0x0c);</p><p><b>  num=0;</b></p><p>

61、<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num!=0)</p><p><b>  {</b></p><p>  if(s13==0)<

62、;/p><p><b>  {</b></p><p><b>  delay(5);</b></p><p>  if(s13==0)</p><p><b>  {</b></p><p>  while(!s13);</p><p

63、>  if(num==1)</p><p><b>  {</b></p><p><b>  miao++;</b></p><p>  wrrt_com(0x06);</p><p>  display1(9,miao);</p><p>  wrrt_com(0x

64、80+0x40+10);</p><p>  wrrt_com(0x0f);</p><p>  if(miao==60)</p><p><b>  {</b></p><p><b>  miao=0;</b></p><p><b>  }</b>

65、</p><p><b>  }</b></p><p>  if(num==2)</p><p><b>  {</b></p><p><b>  fen++;</b></p><p>  wrrt_com(0x06);</p><

66、;p>  display1(6,fen);</p><p>  wrrt_com(0x80+0x40+7);</p><p>  wrrt_com(0x0f);</p><p>  if(fen==60)</p><p><b>  {</b></p><p><b>  fen=

67、0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==3)</p><p><b>  {</b></p><p><b>  shi++;</b

68、></p><p>  wrrt_com(0x06);</p><p>  display1(3,shi);</p><p>  wrrt_com(0x80+0x40+4);</p><p>  wrrt_com(0x0f);</p><p>  if(shi==24)</p><p>&

69、lt;b>  {</b></p><p><b>  shi=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==4)</p><p><b>

70、  {</b></p><p><b>  ri++;</b></p><p>  wrrt_com(0x06);</p><p>  display2(10,ri);</p><p>  wrrt_com(0x80+11);</p><p>  wrrt_com(0x0f);<

71、/p><p>  if(ri==30)</p><p><b>  {</b></p><p><b>  ri=0;</b></p><p><b>  }</b></p><p><b>  }</b></p>&

72、lt;p>  if(num==5)</p><p><b>  {</b></p><p><b>  yue++;</b></p><p>  wrrt_com(0x06);</p><p>  display2(7,yue);</p><p>  wrrt_com(

73、0x80+8);</p><p>  wrrt_com(0x0f);</p><p>  if(yue==12)</p><p><b>  {</b></p><p><b>  yue=0;</b></p><p><b>  }</b></p

74、><p><b>  }</b></p><p>  if(num==6)</p><p><b>  {</b></p><p><b>  nian++;</b></p><p>  wrrt_com(0x06);</p><p&

75、gt;  display3(2,nian);</p><p>  wrrt_com(0x80+5);</p><p><b>  delay(1);</b></p><p><b>  }</b></p><p><b>  }</b></p><p

76、><b>  }</b></p><p><b>  }</b></p><p>  if(num!=0)</p><p><b>  {</b></p><p>  if(s17==0)</p><p><b>  {</b>

77、;</p><p><b>  delay(5);</b></p><p>  if(s17==0)</p><p><b>  {</b></p><p>  while(!s17);</p><p>  if(num==1)</p><p>&l

78、t;b>  {</b></p><p><b>  miao--;</b></p><p>  wrrt_com(0x06);</p><p>  display1(9,miao);</p><p>  wrrt_com(0x80+0x40+10);</p><p>  wrrt

79、_com(0x0f);</p><p>  if(miao==60)</p><p><b>  {</b></p><p><b>  miao=0;</b></p><p><b>  }</b></p><p><b>  }</b

80、></p><p>  if(num==2)</p><p><b>  {</b></p><p><b>  fen--;</b></p><p>  wrrt_com(0x06);</p><p>  display1(6,fen);</p><

81、;p>  wrrt_com(0x80+0x40+7);</p><p>  wrrt_com(0x0f);</p><p>  if(fen==60)</p><p><b>  {</b></p><p><b>  fen=0;</b></p><p><b&

82、gt;  }</b></p><p><b>  }</b></p><p>  if(num==3)</p><p><b>  {</b></p><p><b>  shi--;</b></p><p>  wrrt_com(0x0

83、6);</p><p>  display1(3,shi);</p><p>  wrrt_com(0x80+0x40+4);</p><p>  wrrt_com(0x0f);</p><p>  if(shi==24)</p><p><b>  {</b></p><p&

84、gt;<b>  shi=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==4)</p><p><b>  {</b></p><p><b

85、>  ri--;</b></p><p>  wrrt_com(0x06);</p><p>  display2(10,ri);</p><p>  wrrt_com(0x80+11);</p><p>  wrrt_com(0x0f);</p><p>  if(ri==30)</p>

86、<p><b>  {</b></p><p><b>  ri=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==5)</p><p&g

87、t;<b>  {</b></p><p><b>  yue--;</b></p><p>  wrrt_com(0x06);</p><p>  display2(7,yue);</p><p>  wrrt_com(0x80+8);</p><p>  wrrt_com

88、(0x0f);</p><p>  if(yue==12)</p><p><b>  {</b></p><p><b>  yue=0;</b></p><p><b>  }</b></p><p><b>  }</b>

89、</p><p>  if(num==6)</p><p><b>  {</b></p><p><b>  nian--;</b></p><p>  wrrt_com(0x06);</p><p>  display3(2,nian);</p><

90、p>  wrrt_com(0x80+5);</p><p><b>  delay(1);</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>&

91、lt;p><b>  }</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  init();</b></p><p>

92、<b>  while(1)</b></p><p><b>  {</b></p><p>  if(TR0==1)</p><p><b>  {</b></p><p><b>  clock();</b></p><p>&

93、lt;b>  }</b></p><p>  keyscan();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void timer0() interrupt 1</p><p><b>  

94、{</b></p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256;</p><p><b>  temp++;</b></p><p>  if(temp==20)</p><p><b>  {&

95、lt;/b></p><p><b>  temp=0;</b></p><p><b>  miao++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b&

96、gt;  4、總結(jié)</b></p><p>  4、1遇到的問(wèn)題與解決辦法:</p><p>  這次的單片機(jī)課程設(shè)計(jì)出現(xiàn)的最主要的問(wèn)題就是如何實(shí)現(xiàn)通過(guò)鍵盤對(duì)時(shí)間的調(diào)整,難度在于如何從過(guò)c語(yǔ)言編寫程序來(lái)實(shí)現(xiàn),并且要與前面的顯示電路,以及控制電路的協(xié)調(diào)工作。遇到而第二個(gè)難題就是如何實(shí)現(xiàn)鍵盤的掃描程序。</p><p>  鍵盤掃描這個(gè)問(wèn)題主要是通過(guò)網(wǎng)絡(luò)來(lái)解

97、決的。通過(guò)觀看網(wǎng)絡(luò)上面的視屏教程,學(xué)會(huì)了如何通過(guò)掃描,返回函數(shù)值來(lái)確定是否有鍵按下。</p><p>  通過(guò)鍵盤來(lái)實(shí)現(xiàn)對(duì)時(shí)間的調(diào)整這個(gè)難題是通過(guò)相互討論來(lái)完成的。我們先確定要用的按鍵有那幾個(gè),初步確定為三個(gè),一個(gè)功能鍵,一個(gè)時(shí)間加,一個(gè)時(shí)間減。再通過(guò)中斷以及1602顯示程序相結(jié)合,實(shí)現(xiàn)了對(duì)時(shí)間的調(diào)整。</p><p>  總結(jié)來(lái)說(shuō),這次課程設(shè)計(jì)的只要問(wèn)題是來(lái)源于實(shí)現(xiàn)鍵盤對(duì)時(shí)間的調(diào)整這一功

98、能。主要的解決問(wèn)題的方法是通過(guò)集體討論,網(wǎng)絡(luò)上查資料來(lái)實(shí)現(xiàn)解決的。</p><p><b>  4、2體會(huì)與收獲</b></p><p>  這次的單片機(jī)課程設(shè)計(jì),提到的最大的收獲便是動(dòng)手實(shí)踐的能力有所提高。在過(guò)去的理論學(xué)習(xí)中,我們并沒(méi)有將理論的知識(shí)聯(lián)系電路圖,并且還要通過(guò)自己編寫程序來(lái)實(shí)現(xiàn)課程預(yù)定的功能。這樣就將我們的理論與實(shí)際緊密的相結(jié)合起來(lái)啦。</p>

99、;<p>  另外一個(gè)收獲,便是學(xué)會(huì)啦合作的用處。在過(guò)去的學(xué)習(xí)中,學(xué)習(xí)的好壞關(guān)鍵在于自己是否努力的學(xué)習(xí),與他人的關(guān)系并不是很大。,但是對(duì)于這樣一個(gè)工程項(xiàng)目而言,團(tuán)隊(duì)的力量就顯現(xiàn)出來(lái)啦。一個(gè)人的力量是有限的,一個(gè)人的智慧也是有限的。只有把大家的智慧結(jié)合起來(lái),才能更好地完成這個(gè)工程。</p><p><b>  參考書籍:</b></p><p>  《51

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論