電子技術(shù)課程設計---數(shù)字彩屏萬年歷_第1頁
已閱讀1頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  電力電子 課程設計說明書</p><p>  設計題目: 數(shù)字彩屏萬年歷 </p><p>  專 業(yè): 電卓03班 </p><p>  年 級: 2010級

2、 </p><p>  學 號: *** </p><p>  姓 名:*** </p><p>  指導教師: *** </p><p>  2013 年 1 月 </p&g

3、t;<p><b>  摘要:</b></p><p>  隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給人類生活帶來了根本性的改變。單片機技術(shù)的應用產(chǎn)品已經(jīng)走進了千家萬戶。電子萬年歷的出現(xiàn)給人們的生活帶來的諸多方便。</p><p>  本設計是基于51系列的單片機進行的電子萬年歷設計,采用TFT彩屏顯示年月日時分秒,具有可調(diào)整時間,設置鬧鈴,

4、和整點報時功能。時間調(diào)整由三個按鍵來實現(xiàn),日歷能顯示年,月,日以及星期、時、分、秒。設計以STC89C52單片機為核心,構(gòu)成單片機控制電路;以DS1302時鐘芯片作為萬年歷信號發(fā)生器;</p><p>  Abstract:”</p><p>  With the rapid development of electronic technology, especially with lar

5、ge scale integrated circuit appear, to human life brought the fundamental change. Single chip microcomputer application products have already walked into thousands of families. The emergence of electronic calendar to the

6、 life of people bring many convenient.</p><p>  This design is based on the single chip microcomputer 51 series of electronic calendar designs, adopting the TFT color display date determined when, has may ad

7、just the time, set the alarm, and integral point to announce the function. Time to adjust by three pressing buttons, calendar can indicate that year, month, day and week, when, minutes and seconds. Design with STC89C52 s

8、ingle-chip microcomputer as the core, to form a single chip microcomputer control circuit; To DS1302 clock chip as calend</p><p>  關鍵詞:可調(diào)萬年歷;單片機;時鐘芯片DS1302;TFT彩屏</p><p>  Keywords: </p>&

9、lt;p>  adjustable calendar; Single chip microcomputer; The clock chip DS1302; TFT colour screens</p><p><b>  目 錄</b></p><p>  1、系統(tǒng)概述及方法論證5</p><p>  1.1 系統(tǒng)概述5<

10、;/p><p>  1.2 系統(tǒng)基本方案選擇和論證5</p><p>  1.2.1單片機芯片的選擇方案和論證:5</p><p>  1.2.2 時鐘芯片的選擇方案和論證:6</p><p>  1.3 電路設計最終方案決定6</p><p>  2、系統(tǒng)的硬件設計與實現(xiàn)7</p><p&g

11、t;  2.1 電路設計框圖7</p><p>  2.2 系統(tǒng)核心控制部分7</p><p>  2.2.1 STC89C52RC芯片介紹7</p><p>  2.2.2 STC89C52RC連接電路圖8</p><p>  2.3 DS1302時鐘電路8</p><p>  2.3.1 DS1302芯片

12、介紹8</p><p>  2.3.2 DS1302引腳說明9</p><p>  2.3.3 DS1302連接電路圖10</p><p><b>  3、系統(tǒng)程序設計</b></p><p><b>  4、作品總結(jié)</b></p><p><b>  參

13、考文獻</b></p><p><b>  附錄1 實物圖片</b></p><p><b>  附錄2程序</b></p><p>  1、系統(tǒng)概述及方法論證</p><p><b>  1.1 系統(tǒng)概述</b></p><p>  

14、本電子萬年歷采用單片機控制技術(shù)和TFT顯示方案,可以很好的完成萬年歷顯示。時間、日期調(diào)整由三個按鍵來實現(xiàn),并可對鬧鈴開關進行設置。日歷能顯示年、月、日以及星期、時、分、秒。</p><p><b>  任務要求:</b></p><p> ?。?)設計一個能直接顯示時、分、秒的數(shù)字電子鐘。為24進制。</p><p>  (2)設計?!睍r”、校

15、”分”電路;</p><p>  (3) ①設計24小時整點報時控制電路,要求從59分50秒開始,每2秒鐘響一聲,共響5次;每響一次聲音持續(xù)0.5秒。 ②要求只在6:00-22:00之間整點報時,23:00-5:00之間整點不報時。</p><p> ?。?) 設計任意幾點幾分可響鈴的鬧鐘控制電路,可提前停止響鈴;</p><p>  注:上述功能全部實現(xiàn),由于按鍵

16、不夠,上述第4條要求提前停止響鈴未實現(xiàn)。</p><p><b>  使用說明:</b></p><p>  1.先按設置鍵,長按不放,在按其他設置鍵不放;</p><p>  2.例如:設置鬧鐘,先按住設置鍵,在按住鬧鐘的時鐘或分鐘設置鍵不放,即可調(diào)時間;</p><p>  1.2 系統(tǒng)基本方案選擇和論證</p

17、><p>  1.2.1 時鐘芯片的選擇方案和論證:</p><p><b>  方案一:</b></p><p>  直接采用單片機定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。所以不采用此方案。</p><p><b> 

18、 方案二:</b></p><p>  采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償?shù)哪赀M行計數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V~5.5V范圍內(nèi),2.5V時耗電小于300nA,所以本設計采用了這種芯片。</p><p>  1.2.2 顯示模塊的選擇方案和論證:</p>

19、;<p><b>  方案一:</b></p><p>  采用1602液晶屏顯示,1602的價格與128*128的彩屏價格相當,但顯示效果與TFT彩屏無法相比擬。網(wǎng)購128*128TFT彩屏,30元;1602模塊10塊左右;</p><p><b>  方案二:</b></p><p>  采用128*12

20、8彩屏顯示,TFT彩屏較1602液晶來說相對復雜,但廠商已經(jīng)提供GUI函數(shù),GUI函數(shù)調(diào)用相對簡單,用戶不需接近底層去寫相關驅(qū)動程序。而且可以在字庫中加入所需漢字,在彩屏上顯示漢字,更能直觀的顯示相關的內(nèi)容。且128*128的彩屏大小足夠顯示相關的時間內(nèi)容,非常直觀,價格與1602相當。所以選用方案二</p><p>  1.3 電路設計最終方案決定</p><p>  綜上各方案所述,對

21、此次作品的方案選定: 采用AT89S52作為主控制系統(tǒng); DS1302提供時鐘;128*128TFT彩屏作為顯示。</p><p><b>  電路設計</b></p><p>  2.1 電路設計框圖</p><p>  2.2 系統(tǒng)核心控制部分</p><p>  2.2.1 STC89C52RC芯片介紹</p

22、><p>  STC89C52RC/RD+系列單片機是宏晶科技推出的新一代超強抗干擾/高速/低功耗的單片機,指令代碼完全兼容傳統(tǒng)8051單片機。</p><p>  圖2.1 STC89C52RC引腳功能圖</p><p>  2.2.2 STC89C52RC連接電路圖</p><p>  圖2.2 單片機與外圍連接圖</p>&l

23、t;p>  2.3 DS1302時鐘電路</p><p>  2.3.1 DS1302芯片介紹</p><p>  DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。

24、DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。</p><p>  2.3.2 DS1302引腳說明</p><p>  圖2.3 DS1302引腳封裝圖</p><p>  DS1302的引腳排列,

25、其中Vcc1為后備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令

26、序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細說明。SCLK為時鐘輸入端。</p><

27、p>  2.3.3 DS1302連接電路圖</p><p>  圖2.4 DS1302連接圖</p><p>  2.3.4 128*128TFT彩屏連接電路圖</p><p>  調(diào)用TFT大量的GUI函數(shù),由于GUI函數(shù)比較復雜,在一下的個程序均不列出。</p><p><b>  常用顏色碼表:</b>

28、</p><p>  紅:0xf800,黃0xffe0,綠色0x07e0,青 0x07ff,藍色,0x001f 紫色,0xf81f</p><p><b>  3、系統(tǒng)測試</b></p><p>  128*128TFT彩屏顯示了相關的內(nèi)容符合設計要求,鬧鈴,調(diào)時功能已經(jīng)實現(xiàn).</p><p><b> ?。?/p>

29、顯示效果圖)</b></p><p><b>  4、作品總結(jié):</b></p><p>  在整個設計過程中,充分發(fā)揮人的主觀能動性,自主學習,學到了許多沒學到的知識。較好的完成了作品。達到了預期的目的,在最初的設計中,相互學習、相互討論、研究。完了最初的設想。在電路焊接時雖然沒什么大問題,但從中也知道了焊接在整個作品中的重要性,電路工程量大,不能心急,

30、一個個慢慢來不能急于求成。反而達到事半功倍的效果。對電路的設計、布局要先有一個好的構(gòu)思,才顯得電路板美觀、大方。程序編寫中,由于思路不清晰,開始時遇到了很多的問題,經(jīng)過靜下心來思考,理清了思路,反而得心應手。在此次設計中,知道了做凡事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我們的耐心,做什么事都在有耐心。此次設計中學到了很多很多東西,這是最重要的。</p><p><b>  參考文獻:&

31、lt;/b></p><p>  1.精通Protel DXP 2004電路設計,電子工業(yè)出版社,2006.8</p><p>  2.何立民,單片機高級教程:應用與設計,北京航空航天大學出版社,2007.</p><p>  3.楊子文 編 單片機原理及應用 西安電子科技大學出版社 2006</p><p>  4.王法能 編 單片機

32、原理及應用 科學出版社 2004</p><p>  5.陳明義. 電工電子技術(shù)課程設計指導[M]. 長沙:中南大學出版社,2002</p><p><b>  附錄1 實物圖片</b></p><p>  圖1 實物(含按鍵)</p><p><b>  圖2 顯示效果</b></p>

33、;<p><b>  圖3 PCB圖</b></p><p>  圖 4 protues仿真圖</p><p>  圖 5 Altium Designer 原理圖</p><p>  圖6 Altium Designer PCB圖</p><p><b>  附錄2 </b><

34、/p><p>  .mian函數(shù)部分函數(shù)(由于函數(shù)過長僅是部分函數(shù))</p><p>  注:由于程序初始化DS1302,調(diào)時間等程序均不在列出,老師可以查看源程序。</p><p><b>  主程序</b></p><p>  void main()</p><p><b>  {&l

35、t;/b></p><p>  LCD_Init( );</p><p>  //Write_DS1302Init();</p><p>  rect.xs = 5;//畫矩形的設置</p><p>  rect.ys = 5;</p><p>  rect.xe = 123;</p><

36、;p>  rect.ye = 123;</p><p>  rect.Color = 0xFF00;</p><p>  line.xs = 5;//畫直線時的設置</p><p>  line.xe = 123;</p><p>  line.ys = 32;</p><p>  line.ye = 32;

37、</p><p>  line.Color = 0x001f;</p><p>  GUI_DrawRectangle( &rect );</p><p>  line.xs = 5;//畫直線時的設置</p><p>  line.xe = 123;</p><p>  line.ys = 33;<

38、/p><p>  line.ye = 33;</p><p>  line.Color = 0x001f;</p><p>  GUI_DrawRectangle( &rect );</p><p>  line.xs = 5;//畫直線時的設置</p><p>  line.xe = 123;</p&g

39、t;<p>  line.ys = 34;</p><p>  line.ye = 34;</p><p>  line.Color = 0x001f;</p><p>  GUI_DrawRectangle( &rect );</p><p>  line.xs = 5;//畫直線時的設置</p>&

40、lt;p>  line.xe = 123;</p><p>  line.ys = 35;</p><p>  line.ye = 35;</p><p>  line.Color = 0x001f;</p><p>  GUI_Inital( 0xf81f );</p><p>  GUI_DrawRectan

41、gle( &rect );</p><p>  GUI_DrawLine( &line );</p><p>  PutGB1616(20,10,"數(shù)",0xf800,0x7bef);</p><p>  PutGB1616(40,10,"字",0xf800,0xffe0);</p><p&

42、gt;  PutGB1616(60,10,"萬",0xf800,0x001f);</p><p>  PutGB1616(80,10,"年",0xf800,0x07ff);</p><p>  PutGB1616(100,10,"歷",0xf800,0x07e0);</p><p>  PutGB1616(

43、85,60,"年",0x07ff,0x001f);</p><p>  font.Height = 14;//字體的設置</p><p>  font.Width = 7;</p><p>  font.Color = 0x0000;</p><p>  font.BackColor = 0xf81f;</p&g

44、t;<p>  GUI_DisplayStr( 15, 43, &font, "By:" );</p><p>  PutGB1616(10,60,"時",0xf800,0x7bef);</p><p>  PutGB1616(30,60,"間",0xf800,0xffe0);</p><

45、p>  PutGB1616(65,80,"月",0xf800,0xffe0);</p><p>  PutGB1616(105,80,"日",0xf800,0xffe0);</p><p>  GUI_DisplayStr( 46, 60, &font, ":20");</p><p>  G

46、UI_DisplayStr( 25, 100, &font, "-" );</p><p>  GUI_DisplayStr( 45, 100, &font, "-" );</p><p>  PutGB1616(10,80,"日",0xf800,0xffe0);</p><p>  Put

47、GB1616(30,80,"期",0xf800,0xffe0);</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  Run_DS1302();</p><p><b>  }</b></p

48、><p><b>  }</b></p><p>  2.1 設置鬧鈴部分</p><p>  //****************************************************************</p><p>  // 設置鬧鈴工作 </p><p>&

49、lt;b>  laba =1;</b></p><p>  if(hour==naohour&&min==naomin)</p><p><b>  {</b></p><p>  if((sec==0||2==sec||4==sec||sec==6||sec==8))</p><p>

50、<b>  {</b></p><p>  //鬧鈴響時,關閉程序 </p><p>  if(0==naolingshi&&0==naolingfen)</p><p><b>  {</b></p><p><b>  delay(5);</b></

51、p><p>  if(0==naolingshi&&0==naolingfen) laba = 1;</p><p><b>  } </b></p><p>  //鬧鈴響時關閉程序 </p><p>  for(i=0;i<220;i++)</p><p><b&

52、gt;  { </b></p><p>  laba =~laba;</p><p><b>  delay(1);</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>

53、  } </b></p><p>  //*****************************調(diào)時間部分//********************************************</p><p>  tiaotime = 1;</p><p>  if(tiaotime==0)</p><p><b&

54、gt;  {</b></p><p><b>  delay(5);</b></p><p>  if(tiaotime==0)</p><p><b>  {</b></p><p>  if(naolingshi==0) //鬧鈴設置小時s2</p><p>

55、;<b>  { </b></p><p><b>  delay(4);</b></p><p>  if(naolingshi==0)</p><p><b>  { </b></p><p>  naohour++;</p><p>  if(2

56、4==naohour) naohour = 0;</p><p>  sethourshi = naohour / 10 % 10;</p><p>  switch(sethourshi)</p><p><b>  {</b></p><p>  case 0:GUI_DisplayStr( 80, 40, &am

57、p;font, "0" );break;</p><p>  case 1:GUI_DisplayStr( 80, 40, &font, "1" );break;</p><p>  case 2:GUI_DisplayStr( 80, 40, &font, "2" );break;</p>&

58、lt;p><b>  }</b></p><p>  sethourge = naohour % 10;</p><p>  switch(sethourge)</p><p><b>  {</b></p><p>  case 0:GUI_DisplayStr( 90, 40, &

59、font, "0" );break;</p><p>  case 1:GUI_DisplayStr( 90, 40, &font, "1" );break;</p><p>  case 2:GUI_DisplayStr( 90, 40, &font, "2" );break;</p><

60、;p>  case 3:GUI_DisplayStr( 90, 40, &font, "3" );break;</p><p>  case 4:GUI_DisplayStr( 90, 40, &font, "4" );break;</p><p>  case 5:GUI_DisplayStr( 90, 40, &

61、font, "5" );break;</p><p>  case 6:GUI_DisplayStr( 90, 40, &font, "6" );break;</p><p>  case 7:GUI_DisplayStr( 90, 40, &font, "7" );break;</p><

62、;p>  case 8:GUI_DisplayStr( 90, 40, &font, "8" );break;</p><p>  case 9:GUI_DisplayStr( 90, 40, &font, "9" );break;</p><p><b>  } </b></p><

63、;p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(naolingfen==0) //調(diào)分鐘</p><p><b>  { </b></p>&l

64、t;p><b>  delay(4);</b></p><p>  if(naolingfen==0)</p><p><b>  {</b></p><p><b>  { </b></p><p><b>  naomin++;</b><

65、/p><p>  if(60==naomin) naomin = 0;</p><p>  setminge = naomin % 10 ;//個位</p><p>  switch(setminge)</p><p><b>  {</b></p><p>  case 0:GUI_Display

66、Str( 110, 40, &font, "0" );break;</p><p>  case 1:GUI_DisplayStr( 110, 40, &font, "1" );break;</p><p>  case 2:GUI_DisplayStr( 110, 40, &font, "2" );

67、break;</p><p>  case 3:GUI_DisplayStr( 110, 40, &font, "3" );break;</p><p>  case 4:GUI_DisplayStr( 110, 40, &font, "4" );break;</p><p>  case 5:GUI_Di

68、splayStr( 110, 40, &font, "5" );break;</p><p>  case 6:GUI_DisplayStr( 110, 40, &font, "6" );break;</p><p>  case 7:GUI_DisplayStr( 110, 40, &font, "7"

69、; );break;</p><p>  case 8:GUI_DisplayStr( 110, 40, &font, "8" );break;</p><p>  case 9:GUI_DisplayStr( 110, 40, &font, "9" );break;</p><p><b> 

70、 } </b></p><p>  setminshi = naomin / 10 % 10 ;//十位</p><p>  switch(setminshi)</p><p><b>  {</b></p><p>  case 0:GUI_DisplayStr( 100, 40, &font, &

71、quot;0" );break;</p><p>  case 1:GUI_DisplayStr( 100, 40, &font, "1" );break;</p><p>  case 2:GUI_DisplayStr( 100, 40, &font, "2" );break;</p><p>

72、;  case 3:GUI_DisplayStr( 100, 40, &font, "3" );break;</p><p>  case 4:GUI_DisplayStr( 100, 40, &font, "4" );break;</p><p>  case 5:GUI_DisplayStr( 100, 40, &fo

73、nt, "5" );break;</p><p>  case 6:GUI_DisplayStr( 100, 40, &font, "6" );break;</p><p>  case 7:GUI_DisplayStr( 100, 40, &font, "7" );break;</p><

74、;p>  case 8:GUI_DisplayStr( 100, 40, &font, "8" );break;</p><p>  case 9:GUI_DisplayStr( 100, 40, &font, "9" );break;</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

提交評論