2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  成績: 分</p><p>  課程設(shè)計名稱: 單片機課程設(shè)計 </p><p>  題 目: 數(shù)字式電子鐘的設(shè)計 </p><p>  學生姓名: </p><p>  專 業(yè): </p><

2、;p>  班 級: </p><p>  學 號: </p><p>  指導教師: </p><p>  日期: 2013年 12 月25日</p><p>  課 程 設(shè) 計 任 務(wù) 書</p>

3、<p><b>  數(shù)字式電子鐘的設(shè)計</b></p><p><b>  設(shè)計內(nèi)容:</b></p><p>  以單片機At89C51為主控制器芯片,使用若干數(shù)碼管及開關(guān)按鍵,設(shè)計一個電子鐘的硬件系統(tǒng),并編寫軟件程序。</p><p><b>  設(shè)計任務(wù)與要求:</b></p&

4、gt;<p>  1、單片機要有復位電路和時鐘電路;</p><p>  2、電子鐘通過數(shù)碼管顯示小時、分鐘、秒信息,時間范圍00小時00分00秒~23小時59分59秒;</p><p>  3、通過按鍵對電子鐘進行小時、分鐘、秒的時間設(shè)定;</p><p>  4、利用proteus仿真軟件畫出系統(tǒng)仿真圖;</p><p> 

5、 5、利用匯編語言或C語言編寫程序。</p><p>  關(guān)鍵詞電子鐘AT89C51仿真設(shè)計軟件設(shè)計</p><p><b>  目 錄</b></p><p>  1.ATM89C51 介紹………………………………… 2</p><p>  2.顯示設(shè)計 ………………………………… 4

6、</p><p>  2.1LED顯示原理 ………………………………… 4</p><p>  3按鍵設(shè)計 ………………………………… 5</p><p>  4復位電路設(shè)計 ………………………………… 6</p><p>  5.仿真設(shè)計 ………………………………… 7</p><p&g

7、t;  6結(jié)論 ………………………………… 7</p><p>  附錄:程序 ………………………………… 9</p><p>  1.ATM89C51 介紹</p><p>  AT89C2051單片機,帶有2KB Flash可編程、可擦除只讀存儲器(E2PROM)的低壓、高性能8位CMOS微型計算機。擁有15條可編程I/O引腳,2

8、個16位定時器/計數(shù)器,6個中斷源,可編程串行UART通道,并能直接驅(qū)動LED輸出。</p><p>  僅僅是為了完成時鐘設(shè)計或者是環(huán)境溫度采集設(shè)計,應(yīng)用AT89C2051單片機完全可以實現(xiàn)。但是將兩種功能結(jié)合在一片單片機上,就需要更多的I/O引腳,故本設(shè)計采用具有32根I/O引腳的AT89C51單片機。</p><p>  AT89C51單片機是一款低功耗,低電壓,高性能CMOS 8位

9、單片機,片內(nèi)含4KB(可經(jīng)受1000次擦寫周期)的FLASH可編程可反復擦寫的只讀程序存儲器(EPROM),器件采用CMOS工藝和ATMEI公司的高密度、非易失性存儲器(NURAM)技術(shù)制造,其輸出引腳和指令系統(tǒng)都與MCS-51兼容。片內(nèi)的FLASH存儲器允許在系統(tǒng)內(nèi)可改編程序或用常規(guī)的非易失性存儲器編程器來編程。因此,AT89C51是一種功能強,靈活性高且價格合理的單片機,可方便的應(yīng)用在各個控制領(lǐng)域[6]。</p>&l

10、t;p>  AT89C51具有以下主要性能:</p><p>  4KB可改編程序Flash存儲器;</p><p>  全靜態(tài)工作:0——24Hz;</p><p>  128×8字節(jié)內(nèi)部RAM;</p><p>  32個外部雙向輸入/輸出(I/O)口;</p><p>  6個中斷優(yōu)先級; 2個1

11、6位可編程定時計數(shù)器;</p><p><b>  可編程串行通道;</b></p><p><b>  片內(nèi)時鐘振蕩器。</b></p><p>  此外,AT89C51是用靜態(tài)邏輯來設(shè)計的,其工作頻率可下降到0Hz,并提供兩種可用軟件來選擇的省電方式——空閑方式(Idle Mode)和掉電方式(Power Down M

12、ode)。在空閑方式中,CPU停止工作,而RAM、定時器/計數(shù)器、串行口和中斷系統(tǒng)都繼續(xù)工作。在掉電方式中,片內(nèi)振蕩器停止工作,由于時鐘被“凍結(jié)”,使一切功能都暫停,只保存片內(nèi)RAM中的內(nèi)容,直到下一次硬件復位為止[8]。</p><p>  圖1 AT89C51芯片引腳圖</p><p>  AT89C51為適應(yīng)不同的產(chǎn)品需求,采用PDIP、TQFP、PLCC三種封裝形式,本系統(tǒng)采用雙列

13、直插PDIP封裝形式,如圖1。</p><p><b>  2.顯示設(shè)計</b></p><p>  就時鐘而言,通??刹捎肔CD顯示或LED顯示。對于一般的段式LCD,需要專門的驅(qū)動電路,而且LCD顯示的可視性較差;對于具有驅(qū)動電路和微處理器接口的液晶顯示模塊(字符或點陣),一般采用并行接口,對微處理器的接口要求較高,占用資源多。另外,AT89C51本身沒有專門的液

14、晶驅(qū)動接口。LED結(jié)構(gòu)簡單,體積小,功耗低,響應(yīng)速度快,易于匹配,壽命長,可靠性高,而且顯示亮度高,價格便宜,市場上也有專門的時鐘顯示組合LED。故本設(shè)計中應(yīng)用7位8段共陰LED實現(xiàn)顯示部分,顯示面板分布如圖3.6。</p><p>  2.1LED顯示原理</p><p>  多個發(fā)光二極管封裝在一起的七段數(shù)碼顯示器按其連接形式可分為共陽顯示器和共陰顯示器。圖7-1所示為共陽和共陰的七段

15、顯示器,在顯示器中除了顯示數(shù)字必須的七段筆畫外,還提供了小數(shù)點。共陽顯示器的陽極連接在一起,此時對陽極提供一正電壓,通過限流電阻控制其陰極為高電平或是低電平來決定其暗或是亮。共陰顯示器的陰極連在一起,此時可將陰極接地,通過限流電阻控制其陽極為高電平或是低電平來決定其亮或是暗。</p><p><b>  圖2七段數(shù)碼顯示器</b></p><p>  采用七段數(shù)碼顯示

16、器顯示的字型受到顯示器本身結(jié)構(gòu)的限制。因此,在顯示比較復雜的字符、漢字或圖形時,可采用點陳顯示的辦法。</p><p>  LED顯示分動態(tài)顯示和靜態(tài)顯示:本設(shè)計采用動態(tài)顯示方式。本設(shè)計采用動態(tài)顯示的硬件電路簡單,有助于設(shè)計。</p><p><b>  3按鍵設(shè)計</b></p><p><b>  按鍵圖如下圖所示</b&g

17、t;</p><p>  OK鍵:該鍵為校時選擇鍵,在正常顯示時間狀態(tài)下,第一次按下后,只顯示分。按UP和UN鍵開始校對分鐘。第二次按下后,只顯示小時,按UP和UN鍵開始校對小時。第三次按下后,復位。</p><p>  UP鍵:該鍵為調(diào)整鍵,在校時的狀態(tài)下,按下一次加一。</p><p>  UN鍵:該鍵為調(diào)整鍵,在校時的狀態(tài)下,按下一次減一。</p>

18、<p>  OK鍵連接89C51芯片的P2.6接口。</p><p>  UP鍵連接89C51芯片的P2.7接口。</p><p>  S3鍵連接89C51芯片的P3.2接口。</p><p><b>  4復位電路設(shè)計:</b></p><p><b>  復位電路如下所示</b>&

19、lt;/p><p><b>  5.仿真設(shè)計</b></p><p><b>  仿真電路圖如下所示</b></p><p><b>  6結(jié)論</b></p><p>  過去人們應(yīng)用時鐘僅僅是為了明確當前時間。隨著生產(chǎn)力的發(fā)展,社會的進步,生產(chǎn)生活對時鐘的需求越來越大,對時鐘的

20、體型、功能的要求也各有不同。所以多功能電子時鐘在今后的應(yīng)用也會越來越廣泛。</p><p>  基于單片機實現(xiàn)電子時鐘,僅僅是眾多方法之一。并且市場上的實時時鐘日歷芯片品類繁多,IC化的傳感器各種各樣,顯示方式也愈趨于人性化。所以多功能電子時鐘有多種實現(xiàn)方案,能夠?qū)崿F(xiàn)的功能也很多,筆者已經(jīng)通過仿真和調(diào)試,實現(xiàn)了時間日歷顯示和校對、鬧鈴等功能。本文采用51單片機C語言進行編程,當然也可以應(yīng)用匯編語言編程。由于筆者能

21、力有限,提供的程序還可以進一步優(yōu)化,并且還可以根據(jù)需求為電子時鐘增設(shè)新功能。如鬧鈴,報警功能等等。</p><p>  通過此次的仿真,學習并會使用Protues軟件。也讓我們把所學的知識得到了一定的實踐。明白了單片機各種芯片的用途。讓我對各種電路有了大概的了解。所以說,實踐是學習和生活的連接橋梁。在這次的設(shè)計中,對生活中的電子鐘有了很大的了解。通過元件和程序?qū)崿F(xiàn)電子鐘的顯示。讓我們把理論知識用到實際中去。對電子

22、產(chǎn)品有了更深入的了解,程序只有多練才能提高。</p><p><b>  附錄1:程序</b></p><p>  #include<reg52.h></p><p>  #include"key.h"</p><p>  #define uchar unsigned char</p

23、><p>  #define uint unsigned int</p><p>  sbit E1 = P2^0;</p><p>  sbit E2 = P2^1;</p><p>  sbit E3 = P2^2;</p><p>  sbit E4 = P2^3;</p>

24、;<p>  sbit E5 = P2^4;</p><p>  sbit E6 = P2^5;</p><p>  uchar code dis[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//顯示函數(shù)斷碼</p><p>  uchar h=23,min=59,s=

25、50;</p><p>  uchar j=0;</p><p>  uchar dinwei=0,key=0;</p><p>  void ys(uint x)//延時函數(shù)</p><p><b>  {</b></p><p>  uchar y=123;</p>

26、<p>  while(x--)</p><p><b>  {</b></p><p>  while(y--){;}</p><p><b>  }</b></p><p><b>  }</b></p><p>  void xiansh

27、ih(void) //顯示小時</p><p><b>  { </b></p><p>  P1=0xff;P1=dis[h/10];E1=1;E2=0;E3=0;E4=0;E5=0;E6=0;ys(5);</p><p>  P1=0xff;P1=dis[h%10];E1=0;E2=1;E3=0;E4=0

28、;E5=0;E6=0;ys(5);</p><p><b>  }</b></p><p>  void xianshimin(void) //顯示分鐘</p><p><b>  {</b></p><p>  P1=0xff;P1=dis[min/10];E1=0;E2=0;E3=1;

29、E4=0;E5=0;E6=0;ys(5);</p><p>  P1=0xff;P1=dis[min%10];E1=0;E2=0;E3=0;E4=1;E5=0;E6=0;ys(5);</p><p><b>  }</b></p><p>  void xianshis(void) //顯示秒</p><p>

30、<b>  {</b></p><p>  P0=0xff;P0=dis[s/10];E1=0;E2=0;E3=0;E4=0;E5=1;E6=0;ys(5);</p><p>  P0=0xff;P0=dis[s%10];E1=0;E2=0;E3=0;E4=0;E5=0;E6=1;ys(5);</p><p><b>  }<

31、/b></p><p>  void ysh(uint ms) //顯示延時小時</p><p><b>  {</b></p><p>  while(ms--)</p><p><b>  {</b></p><p>  xianshih();<

32、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  void ysmin(uint ms) //顯示延時分鐘</p><p><b>  {</b></p><p>  while(ms--

33、)</p><p><b>  {</b></p><p>  xianshimin();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void yss(uint ms) //顯示延

34、時秒</p><p><b>  {</b></p><p>  while(ms--)</p><p><b>  {</b></p><p>  xianshis();</p><p><b>  }</b></p><p>

35、<b>  }</b></p><p>  void KeyProc(uchar key1)//按鍵校準函數(shù)</p><p><b>  {</b></p><p>  if(dinwei==0){ysh(5);ysmin(5);yss(5);}</p><p>  if(dinwei==1

36、)ysmin(15);</p><p>  if(dinwei==2)ysh(15);</p><p>  if(key==ENTER)</p><p><b>  {</b></p><p><b>  dinwei++;</b></p><p>  if(dinwei&g

37、t;2)dinwei=0;</p><p><b>  }</b></p><p>  if(dinwei==1)</p><p><b>  { </b></p><p>  if(key1==UP)min++;</p><p>  if(key1==DOWN)min--

38、;</p><p>  if(min==60)min=0;</p><p>  if(min>59)min=59;</p><p><b>  }</b></p><p>  if(dinwei==2)</p><p><b>  {</b></p>&l

39、t;p>  if(key1==UP)h++;</p><p>  if(key1==DOWN)h--;</p><p>  if(h==24)h=0;</p><p>  if(h>23)h=23;</p><p><b>  }</b></p><p><b>  }<

40、;/b></p><p>  void main() //主函數(shù)</p><p><b>  {</b></p><p>  void tiaozheng(void);//調(diào)整檢測函數(shù)</p><p>  TMOD=0x10;</p><p><b>  I

41、T0=1;</b></p><p><b>  TH0=0x63;</b></p><p><b>  TL0=0xbf;</b></p><p><b>  EA=1;</b></p><p><b>  ET1=1;</b></p&g

42、t;<p><b>  TR1=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(dinwei==0){xianshih();xianshimin();xianshis();}</p>&l

43、t;p>  if(dinwei==1)xianshimin();</p><p>  if(dinwei==2)xianshih();</p><p>  if(s>59)min++,s=0;</p><p>  if(min>59)h++,min=0;</p><p>  if(h>23)h=0;</p>

44、<p>  tiaozheng();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void Timer0() interrupt 3 //定時函數(shù)</p><p><b>  {</b></p>

45、<p><b>  TH1=0x63;</b></p><p><b>  TL1=0xbf;</b></p><p><b>  if(j==25)</b></p><p><b>  {</b></p><p><b>  j=

46、0;</b></p><p><b>  s++;</b></p><p><b>  }</b></p><p><b>  j++;</b></p><p><b>  }</b></p><p>  void

47、tiaozheng (void) //調(diào)整時間函數(shù)</p><p>  { </p><p>  key=KeyScanNUM();</p><p>  if(key==UP||key==DOWN||key==ENTER)</p><p><b>  {</b></p>

溫馨提示

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

評論

0/150

提交評論