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

下載本文檔

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

文檔簡介

1、<p><b>  單片機(jī)實訓(xùn)課程設(shè)計</b></p><p>  課題名稱: 液晶時鐘顯示</p><p>  系 別: 電子工程系 </p><p>  專 業(yè): 光電子技術(shù) </p><p>  班 級: 光電0911班 </p><p>  學(xué) 號:

2、 </p><p><b>  單片機(jī)課程設(shè)計</b></p><p>  第一部分:課程論文(本部分滿分100,占總成績45%)</p><p>  成績:______________</p><p>  設(shè)計報告(本部分滿分100,占總成績25%)</p><p>  

3、使用PCB繪制軟件和單片機(jī)知識,認(rèn)真讀題,根據(jù)自身水平,選擇其中的一道題,進(jìn)行編程、調(diào)試完成后,完成課程設(shè)計論文,由教師驗證評分。</p><p>  用多個LED數(shù)碼管顯示時鐘,使用按鍵可以設(shè)置時間。(100分)</p><p>  用LED點陣屏顯示時鐘,使用按鍵可以設(shè)置時間。(100分)</p><p>  用液晶顯示時鐘,使用按鍵可以設(shè)置時間。(100分)&

4、lt;/p><p>  在上面題目的基礎(chǔ)上,可以用PC機(jī)設(shè)置下位機(jī)系統(tǒng)時間。(另加20分)</p><p>  在上面題目的基礎(chǔ)上,可以顯示日期。(另加20分)</p><p>  其他顯示時間的合理方案設(shè)計。</p><p><b>  說明:</b></p><p>  1、系統(tǒng)時間可以是硬件時鐘

5、(使用時鐘芯片)或者軟件時鐘;輸入按鍵可以是矩陣鍵盤,獨立按鍵,遙控器等等。</p><p>  2、考慮學(xué)校實際情況,硬件部分要求繪制原理圖和PCB,但實際制作時允許使用萬用板手工焊接。</p><p>  學(xué)生選擇題目號和完成情況:(由學(xué)生填寫)</p><p>  我選擇3號題目用液晶顯示時鐘,使用按鍵可以設(shè)置時間。</p><p> 

6、 完成情況: ①可以實現(xiàn)下載功能;</p><p>  ②可以顯示時間,通過按鍵可以設(shè)置;</p><p><b> ?、塾辛魉疅舻淖兓?。</b></p><p>  論文完成情況:(由教師填寫)</p><p>  出勤情況(本部分滿分100,占總成績10%)</p><p>  答辯環(huán)節(jié)(本部

7、分滿分100,占總成績10%)</p><p>  第二部分:課程設(shè)計實物測試(本部分總分100,占總成績55%)</p><p>  一、自述完成內(nèi)容、工作量、質(zhì)量與特色:(由學(xué)生填寫)</p><p>  簡介教師布置的或自選題目完成情況,對實用系統(tǒng)將給于加分。</p><p>  畫原理圖以及PCB圖,通過keil進(jìn)行程序編寫并將其導(dǎo)入

8、仿真ISIS中實現(xiàn)功能。進(jìn)行實物焊接使其實現(xiàn)效果。用LCD液晶顯示屏進(jìn)行時間顯示,通過按鍵對其時間的調(diào)整。</p><p>  二、教師對完成質(zhì)量的審核與評價:(由教師填寫)</p><p><b>  0、實用性評價:</b></p><p><b>  1、硬件系統(tǒng):</b></p><p>&

9、lt;b>  2、軟件程序:</b></p><p><b>  數(shù)字時鐘設(shè)計</b></p><p><b>  1.課題設(shè)計意義</b></p><p>  近年來隨著科技的發(fā)展社會的進(jìn)步,人們對于數(shù)字時鐘的要求也越來越高,傳統(tǒng)的指針式時鐘已經(jīng)不能滿足人們的要求。數(shù)字時鐘已經(jīng)成為人們生活中不可少的必需

10、品,本課題所設(shè)計的數(shù)字時鐘采用單片機(jī)STC89C52進(jìn)行程序編寫,從而控制LCD液晶顯示屏使其對時間做出顯示。</p><p><b>  2、原理圖</b></p><p><b>  3、PCB圖</b></p><p><b>  4、程序</b></p><p><

11、;b>  主程序</b></p><p>  #include<reg52.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  extern void lcdint();</p>

12、<p>  extern void lcd(uchar add,uchar dat);</p><p>  extern void button();</p><p>  extern uchar num,aa;</p><p>  uchar mon,day,hour,min,sec;</p><p>  uchar tt,tm

13、p;</p><p>  uint year;</p><p>  sbit beep=P2^3;</p><p>  uchar code table[]="0123456789";</p><p>  void init()</p><p><b>  {</b></

14、p><p><b>  lcdint();</b></p><p>  TMOD=0x01;</p><p>  TH0=(65536-49000)/256;</p><p>  TL0=(65536-49000)%256;</p><p><b>  EA=1;</b><

15、/p><p><b>  ET0=1;</b></p><p>  lcd(4,'-');</p><p>  lcd(7,'-');</p><p>  lcd(0x12,':');</p><p>  lcd(0x15,':');&l

16、t;/p><p>  sec=55;min=59;hour=23;year=2011,day=28,mon=2,num=1;</p><p>  lcd(0x17,table[sec%10]);</p><p>  lcd(0x16,table[sec/10]);</p><p>  lcd(0x14,table[min%10]);</p&

17、gt;<p>  lcd(0x13,table[min/10]);</p><p>  lcd(0x11,table[hour%10]);</p><p>  lcd(0x10,table[hour/10]); </p><p>  lcd(0x00,table[year/1000]);</p><p>  lcd(0x01,t

18、able[year%1000/100]);</p><p>  lcd(0x02,table[year%100/10]);</p><p>  lcd(0x03,table[year%10]); </p><p>  lcd(0x06,table[mon%10]);</p><p>  lcd(0x05,table[mon/10]);<

19、/p><p>  lcd(0x09,table[day%10]);</p><p>  lcd(0x08,table[day/10]); </p><p>  lcd(0x1a,'n'); </p><p>  lcd(0x1b,'u'); </p><p>  lcd(0x1c,'

20、m'); </p><p>  lcd(0x1d,':'); </p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p>  void nyr()</p><p><b>  {</b&g

21、t;</p><p><b>  bit run;</b></p><p><b>  run=0;</b></p><p>  if((year%100)==0)</p><p><b>  {</b></p><p>  if((year%400)=

22、=0)</p><p><b>  {run=1;}</b></p><p>  else{run=0;}</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b>

23、</p><p>  if((year%4)==0)</p><p><b>  {run=1;}</b></p><p>  else{run=0;}</p><p><b>  }</b></p><p>  if(run==1)</p><p>

24、<b>  { </b></p><p>  if(day==30)</p><p><b>  {</b></p><p>  if(mon==2)</p><p><b>  {</b></p><p><b>  day=1;</b

25、></p><p><b>  mon++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else<

26、;/b></p><p><b>  { </b></p><p>  if(day==29)</p><p><b>  {</b></p><p>  if(mon==2)</p><p><b>  {</b></p><

27、p><b>  day=1;</b></p><p><b>  mon++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

28、<p>  if(day==31)</p><p><b>  {</b></p><p>  if((mon==4)||(mon==6)||(mon==9)||(mon==11))</p><p><b>  {</b></p><p><b>  day=1;</b&

29、gt;</p><p><b>  mon++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(day==32)</p><p><b>  {</b></p

30、><p>  if((mon==1)||(mon==3)||(mon==5)||(mon==7)||(mon==8)||(mon==10)||(mon==12))</p><p><b>  {</b></p><p><b>  day=1;</b></p><p><b>  mon++;

31、</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(mon==13)</p><p><b>  {</b></p><p><b>  mon=1;</b>

32、;</p><p><b>  year++;</b></p><p><b>  } </b></p><p>  if(year>9999){year=0;} </p><p>  lcd(0x06,table[mon%10]);</p><p>  lcd(0x

33、05,table[mon/10]); </p><p>  lcd(0x08,table[day/10]);</p><p>  lcd(0x09,table[day%10]); </p><p>  lcd(0x00,table[year/1000]);</p><p>  lcd(0x01,table[year%1000/100]);&l

34、t;/p><p>  lcd(0x02,table[year%100/10]);</p><p>  lcd(0x03,table[year%10]);</p><p><b>  }</b></p><p>  void time()</p><p><b>  {</b>&l

35、t;/p><p><b>  tt=0;</b></p><p><b>  sec++;</b></p><p>  if(sec==60)</p><p><b>  {</b></p><p><b>  sec=0;</b>&l

36、t;/p><p><b>  min++; </b></p><p>  if(min==60)</p><p><b>  {</b></p><p><b>  min=0;</b></p><p><b>  hour++;</b&g

37、t;</p><p>  if(hour==24)</p><p><b>  {</b></p><p>  hour=0;beep=0;day++;nyr();</p><p>  lcd(0x09,table[day%10]);</p><p>  lcd(0x08,table[day/10

38、]);</p><p><b>  }</b></p><p>  lcd(0x11,table[hour%10]);</p><p>  lcd(0x10,table[hour/10]);</p><p><b>  } </b></p><p>  lcd(0x14,t

39、able[min%10]);</p><p>  lcd(0x13,table[min/10]);</p><p><b>  }</b></p><p>  lcd(0x17,table[sec%10]);</p><p>  lcd(0x16,table[sec/10]);</p><p>&

40、lt;b>  }</b></p><p>  void change()</p><p><b>  {</b></p><p><b>  uchar bn;</b></p><p>  if(num!=0)</p><p><b>  {<

41、;/b></p><p><b>  TR0=0;</b></p><p>  if(num==12)</p><p><b>  {</b></p><p>  if(year<100){year=year+10000;}</p><p>  year=yea

42、r-100;</p><p><b>  }</b></p><p>  if(num==13)</p><p>  {year=year+100;}</p><p>  if(num==10)</p><p><b>  {</b></p><p>

43、  bn=year%100;</p><p>  if(bn==0){year=year+100;}</p><p><b>  year--;</b></p><p><b>  }</b></p><p>  if(num==11)</p><p><b>  

44、{year++;}</b></p><p>  if(num==8)</p><p><b>  {</b></p><p><b>  mon--;</b></p><p>  if(mon==0){mon=12;}</p><p><b>  }&l

45、t;/b></p><p>  if(num==9)</p><p><b>  {mon++;}</b></p><p>  if(num==7)</p><p><b>  {day++;}</b></p><p>  if(num==6)</p>&

46、lt;p><b>  {</b></p><p><b>  day--;</b></p><p>  if(day==0)</p><p><b>  {</b></p><p>  if((mon==4)||(mon==6)||(mon==9)||(mon==11))

47、</p><p><b>  {day=30;}</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if(mon==2){day=28;}</p><p>  else{day=31;}&l

48、t;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(num==5)</p><p>  {hour++;if(hour==24){hour=0;}}</p&

49、gt;<p>  if(num==4)</p><p><b>  {</b></p><p>  if(hour==0){hour=24;}</p><p><b>  hour--;</b></p><p><b>  }</b></p><

50、;p>  if(num==3)</p><p>  {min++;if(min==60){min=0;}}</p><p>  if(num==2)</p><p>  {if(min==0){min=60;}min--;}</p><p>  if(num==1)</p><p><b>  {sec

51、=0;}</b></p><p><b>  if(num<6)</b></p><p><b>  { </b></p><p>  lcd(0x11,table[hour%10]);</p><p>  lcd(0x10,table[hour/10]);</p>

52、<p>  lcd(0x14,table[min%10]);</p><p>  lcd(0x13,table[min/10]); </p><p>  lcd(0x16,table[sec%10]);</p><p>  lcd(0x17,table[sec/10]);</p><p><b>  }</b>

53、;</p><p>  else{nyr();}</p><p>  num=1;TR0=1;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  流水燈程序</b></p><

54、;p>  #include"main.h"</p><p>  void main()</p><p><b>  {</b></p><p><b>  init();</b></p><p><b>  P2=0xff;</b></p>

55、<p><b>  P1=0xff;</b></p><p><b>  tmp=P1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  if(tt&

56、gt;20)</b></p><p><b>  {time();}</b></p><p><b>  button();</b></p><p><b>  if(aa==3)</b></p><p>  {aa=0;change();}</p>

57、<p><b>  P1=tmp;</b></p><p>  lcd(0x1e,table[num/10]);</p><p>  lcd(0x1f,table[num%10]);</p><p><b>  }</b></p><p><b>  }</b><

58、;/p><p>  void time0()interrupt 1</p><p><b>  { </b></p><p>  TH0=(65536-49000)/256;</p><p>  TL0=(65536-49000)%256;</p><p><b>  tt++;</b

59、></p><p>  if(tt%5==0)</p><p><b>  {</b></p><p>  if(tmp==0){beep=1;tmp=0xff;}</p><p><b>  tmp>>=1; </b></p><p><b>

60、  }</b></p><p><b>  }</b></p><p><b>  液晶程序</b></p><p>  #include<reg52.h></p><p>  #define uint unsigned int</p><p>  #

61、define uchar unsigned char</p><p>  sbit lcde=P3^7;</p><p>  sbit rs=P3^6;</p><p>  //sbit wr=P2^1;</p><p>  void delay1(uint c)</p><p><b>  {</b&

62、gt;</p><p><b>  uint a,b;</b></p><p>  for(a=c;a>0;a--)</p><p>  for(b=110;b>0;b--);</p><p><b>  }</b></p><p>  void write_co

63、m(uchar com)</p><p><b>  { </b></p><p><b>  //wr=0;</b></p><p><b>  lcde=0;</b></p><p><b>  rs=0;</b></p><p

64、><b>  P0=com;</b></p><p>  delay1(5);</p><p><b>  lcde=1;</b></p><p>  delay1(5);</p><p><b>  lcde=0;</b></p><p><

65、;b>  }</b></p><p>  void write_dat(uchar dat)</p><p><b>  {</b></p><p><b>  //wr=0;</b></p><p><b>  rs=1;</b></p>&

66、lt;p><b>  P0=dat;</b></p><p>  delay1(5);</p><p><b>  lcde=1;</b></p><p>  delay1(5);</p><p><b>  lcde=0;</b></p><p>

67、;<b>  }</b></p><p>  void lcdint()</p><p><b>  {</b></p><p>  write_com(0x38);</p><p>  write_com(0x0c);</p><p>  write_com(0x06);&

68、lt;/p><p>  write_com(0x01);</p><p>  } </p><p>  void lcd(uchar add,uchar dat)</p><p><b>  {</b></p><p>  delay1(5);</p><p>

69、  if(add<16)</p><p>  {write_com(0x80+add);}</p><p><b>  else</b></p><p><b>  {</b></p><p>  add=add%16;</p><p>  write_com(0x80

70、+0x40+add);</p><p><b>  }</b></p><p>  delay1(10);</p><p>  write_dat(dat);</p><p><b>  }</b></p><p><b>  按鍵程序</b></

71、p><p>  #include<reg52.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  uchar num,aa;</p><p>  sbit key1=P2^7;</p&

72、gt;<p>  sbit key2=P2^6;</p><p>  sbit key3=P2^5;</p><p>  void button()</p><p><b>  {</b></p><p><b>  if(!key1)</b></p><p>

73、<b>  {</b></p><p>  while(!key1)</p><p><b>  {aa=1;}</b></p><p><b>  }</b></p><p><b>  if(!key2)</b></p><p>

74、;<b>  {</b></p><p>  while(!key2)</p><p><b>  {aa=2;}</b></p><p><b>  }</b></p><p><b>  if(!key3)</b></p><p&g

75、t;<b>  {</b></p><p>  while(!key3)</p><p><b>  {aa=3;}</b></p><p><b>  }</b></p><p><b>  if(aa==2)</b></p><p&

溫馨提示

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

評論

0/150

提交評論