微機原理與接口技術(shù)課程設(shè)計--流水燈_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  設(shè)計目地。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2</p><p>  設(shè)計要求。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。2</p><p>  設(shè)計任務(wù)及項目說明。。。。。。。。。。。。。。。。。。

2、。。。。。。。。。。。2</p><p><b>  硬件設(shè)計原理</b></p><p>  4.1最小系統(tǒng)原理圖及PCB。。。。。。。。。。。。。。。。。。。。。。。。。。。3</p><p>  4.2擴展系統(tǒng)原理圖及PCB。。。。。。。。。。。。。。。。。。。。。。。。。。。4</p><p>  4.3硬件工作

3、原理。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6</p><p><b>  購置元器件</b></p><p>  5.1最小系統(tǒng)元器件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。7</p><p>  5.2擴展元件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

4、。8</p><p><b>  程序設(shè)計</b></p><p>  6.1程序設(shè)計原理。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8</p><p>  6.2程序內(nèi)容。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8</p><p>  作品功能。。。。。。。

5、。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。29</p><p>  心得體會。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。29</p><p>  參考文獻。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。30 </p><p><b>  一.設(shè)計目的</b&

6、gt;</p><p>  使大家對學(xué)習(xí)的微機原理與接口技術(shù)進一步的掌握和鞏固,掌握電路板的焊接技術(shù),會利用軟件實現(xiàn)簡單的程序設(shè)計和調(diào)試。</p><p><b>  二.設(shè)計要求</b></p><p>  根據(jù)最小系統(tǒng)的原理圖及PCB,購齊相關(guān)電子元件,完成實驗開發(fā)板的焊接,并為擴展留下接口。然后利用最小系統(tǒng)的接口,完成擴展訓(xùn)練,擴展項目如

7、下,可自行選擇(也可超出以下題目自擬,需包含輸入和輸出)。</p><p>  三.設(shè)計任務(wù)及項目說明</p><p>  這里選擇流水燈項目。</p><p>  流水燈是一串按一定的規(guī)律像流水一樣連續(xù)閃亮。流水燈控制是可編程控制器的一個應(yīng)用,其控制思想在工業(yè)控制技術(shù)領(lǐng)域也同樣適用。流水燈控制可用多種方法實現(xiàn),但對現(xiàn)代可編程控制器而言,利用移位寄存器實現(xiàn)最為便利。

8、通常用左移寄存器實現(xiàn)燈的單方向移動;用雙向移位寄存器實現(xiàn)燈的雙向移動。本案例利用價格低廉的AT89C51系列單片機控制基色LED燈泡從而實現(xiàn)豐富的變化。</p><p><b>  四.硬件設(shè)計原理</b></p><p>  4.1最小系統(tǒng)原理圖及PCB</p><p><b>  最小系統(tǒng)原理圖</b></p&g

9、t;<p>  8051最小系統(tǒng)PCB</p><p>  4.2擴展系統(tǒng)原理圖及PCB</p><p><b>  擴展系統(tǒng)原理圖</b></p><p><b>  擴展系統(tǒng)PCB</b></p><p><b>  4.3硬件工作原理</b></p&g

10、t;<p>  整個系統(tǒng)工作由軟件程序控制運行,以AT89C51單片機作為主控核心,與驅(qū)動等模塊組成核心主控制模塊。在主控模塊上設(shè)有晶振電路和32個LED顯示二極管,根據(jù)需要編寫若干種亮燈模式,根據(jù)各種亮燈時間的不同需要,在不同時刻輸出燈亮或燈滅的控制信號。</p><p><b>  五.購置元器件</b></p><p>  5.1最小系統(tǒng)元器件&l

11、t;/p><p><b>  5.2擴展元件</b></p><p><b>  六.程序設(shè)計</b></p><p><b>  6.1程序設(shè)計原理</b></p><p>  用查表的方法控制點亮流水燈,即移位的思想:</p><p>  0xfe,0x

12、fd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff;//左邊單個點亮</p><p>  0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00;//右邊逐個點亮</p><p>  0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;//左邊逐個熄滅</p><p>  0x7f,0x8f

13、,0xdf,0xef,0xf7,0xf8,0xfd,0xfe,0xff;//右邊單個點亮</p><p>  0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00;//左邊逐個點亮</p><p>  0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;//右邊逐個熄滅</p><p>  0xfc,0xf9,0

14、xf3,0xef,0xcf,0x9f,0x3f,0xff;//左邊逐兩個點亮</p><p>  0x3f,0x9f,0xcf,0xe7,0xf3,0xf9,0xfc,0xff;//右邊逐兩個點亮</p><p>  0xf8,0xf1,0xe3,0x07,0x8f,0x1f,0xff;//左邊逐三個亮</p><p>  0x1f,0x8f,0x07,0xe3,0

15、xf1,0xf8,0xff;//右邊逐三個亮</p><p><b>  6.2程序內(nèi)容</b></p><p>  #include<reg52.h> </p><p>  #define uchar unsigned char</p><p>  uchar flag=200;</p>&

16、lt;p>  ///////////////////////////////////////////////////////////////////////</p><p>  uchar code Tab1[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF};//暗中左移 向下</p><p>  uchar code Tab2[]=

17、{0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};//暗中右移 向上</p><p>  uchar code Tab3[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};//亮中左移向下</p><p>  uchar code Tab4[]={0x80,0x40,0x20,0x10,0x08,

18、0x04,0x02,0x01,0x00};//亮中右移 向上</p><p>  uchar code Tab11[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0xff};//暗中左移 向下</p><p>  uchar code Tab22[]={0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0xff};&

19、lt;/p><p>  ////////////////////////////////////////////////////////////////////</p><p>  uchar code Tab33[]={0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};</p><p>  uchar code Tab44[]={0x0

20、1,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};</p><p>  uchar code Tab55[]={0x08,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff};</p><p>  uchar code Tab5[]={0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xff};</

21、p><p>  uchar code Tab6[]={0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xff};</p><p>  uchar code Tab7[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};</p><p>  uchar code Tab8[]={0xfe,0xfd,0x

22、fb,0xf7,0xef,0xdf,0xbf,0x7f};</p><p>  ////////////////////////////////////////////////////////////////</p><p>  void shansuo();</p><p>  void xl();</p><p>  //////////

23、/////////////////////////////////////////////////////</p><p>  void delay(void) </p><p><b>  {</b></p><p>  unsigned char m,n;</p><p>  for(m=0;m<flag;

24、m++)</p><p>  for(n=0;n<250;n++) </p><p><b>  ;</b></p><p><b>  }</b></p><p>  ///////////////////////////////////</p><p>  vo

25、id hy1(void) //點亮狀態(tài)逆時針旋轉(zhuǎn)90度(一個一個滅)</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p

26、>  P0=Tab11[i];P3=Tab22[i];</p><p>  P2=Tab11[i];P1=Tab22[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p&

27、gt;<p><b>  {</b></p><p>  P0=Tab44[i];P3=Tab55[i];</p><p>  P2=Tab44[i];P1=Tab55[i];</p><p><b>  delay();</b></p><p><b>  }</b&

28、gt;</p><p><b>  }</b></p><p>  ///////////////////////////////////////////</p><p>  void hy2(void) //暗中逆時針轉(zhuǎn)360。(一個一個點亮)</p><p><b>  {</b></p

29、><p>  unsigned char i;</p><p>  for(flag=250;flag>0;flag=flag-50)</p><p><b>  {</b></p><p>  P0=0xff;P3=0xff;P2=0xff;P1=0xff;</p><p>  for(i=0

30、;i<8;i++) </p><p><b>  {</b></p><p>  P0=Tab11[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<

31、8;i++) </p><p><b>  {</b></p><p>  P2=Tab11[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++)

32、 </p><p><b>  {</b></p><p>  P1=Tab22[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </

33、p><p><b>  {</b></p><p>  P3=Tab22[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  }</b></p>

34、<p><b>  flag=250;</b></p><p><b>  }</b></p><p>  ////////////////////////////////////////////////</p><p>  void hy3(void) //點亮中逆時針轉(zhuǎn)360°(一個一個滅)&l

35、t;/p><p><b>  {</b></p><p>  unsigned char i;</p><p><b>  flag=50;</b></p><p>  P0=0x00;P3=0x00;P2=0x00;P1=0x00;</p><p>  for(i=0;i<

36、;8;i++) </p><p><b>  {</b></p><p>  P0=Tab44[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++

37、) </p><p><b>  {</b></p><p>  P2=Tab44[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++) <

38、/p><p><b>  {</b></p><p>  P1=Tab33[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p>

39、<p><b>  {</b></p><p>  P3=Tab33[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  flag=150;</b></p&g

40、t;<p><b>  }</b></p><p>  ///////////////////////////////////////////////////</p><p>  void hy4(void) //點亮狀態(tài)順時針旋轉(zhuǎn)90度(一個一個滅)</p><p><b>  {</b></p&g

41、t;<p>  unsigned char i;</p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P3=Tab11[i];P0=Tab22[i];</p><p>  P1=Tab11[i];P2=Tab22[i];</p>

42、;<p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p>  P3=Tab6[i];P0=Tab5[i];</

43、p><p>  P1=Tab6[i];P2=Tab5[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /////////////////////

44、////////////////////</p><p>  void hy2_1(void) //暗中逆時針轉(zhuǎn)90度。(一個一個點亮)</p><p><b>  {</b></p><p>  unsigned char i;</p><p><b>  flag=200;</b></p

45、><p>  P0=0xff;P3=0xff;P2=0xff;P1=0xff;</p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p>  P0=Tab11[i];</p><p><b>  delay();</b>

46、</p><p><b>  }</b></p><p><b>  flag=110;</b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p>  P2=Tab11[i];</

47、p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  flag=80;</b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b

48、></p><p>  P1=Tab22[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  flag=80;</b></p><p>  for(i=0;i<9;

49、i++) </p><p><b>  {</b></p><p>  P3=Tab22[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  }</b>&

50、lt;/p><p>  ////////////////////////////////////////////////</p><p>  void hy2_2(void) //暗中逆時針轉(zhuǎn)180度。(一個一個點亮)</p><p><b>  {</b></p><p>  unsigned char i;</p

51、><p>  P0=0xff;P3=0xff;P2=0xff;P1=0xff;</p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P0=Tab11[i];</p><p><b>  delay();</b>

52、</p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P2=Tab11[i];</p><p><b>  delay();</b></p

53、><p><b>  }</b></p><p>  P0=0xff;P2=0xff;</p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P1=Tab22[i];</p><p>&l

54、t;b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P3=Tab22[i];</p><p><b>

55、;  delay();</b></p><p><b>  }</b></p><p>  P3=0xff;P1=0xff;</p><p><b>  }</b></p><p>  ///////////////////////////////////////////////////

56、</p><p>  void hy2_3(void) //暗中向下180。(一個一個點亮)</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  P0=0xff;P3=0xff;P2=0xff;P1=0xff;</p><p>  f

57、or(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P0=Tab11[i];</p><p>  P3=Tab11[i];</p><p><b>  delay();</b></p><p><b>  }</

58、b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P2=Tab11[i];</p><p>  P1=Tab11[i];</p><p><b>  delay();</b></p>

59、;<p><b>  }</b></p><p>  ///////////////////////</p><p><b>  flag=100;</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b><

60、;/p><p>  P2=Tab33[i];</p><p>  P1=Tab33[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p><p

61、><b>  {</b></p><p>  P0=Tab33[i];</p><p>  P3=Tab33[i];</p><p><b>  delay();</b></p><p><b>  flag=200;</b></p><p>&l

62、t;b>  }</b></p><p><b>  }</b></p><p>  ///////////////////////////////////////////////////</p><p>  void hy2_4(void) //暗中逆時針轉(zhuǎn)360。(一個一個點亮)</p><p>&

63、lt;b>  {</b></p><p>  unsigned char i;</p><p>  P0=0xff;P3=0xff;P2=0xff;P1=0xff;</p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p&g

64、t;  P0=Tab11[i];</p><p>  P1=Tab22[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {

65、</b></p><p>  P2=Tab11[i];</p><p>  P3=Tab22[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  ///////////////////////&

66、lt;/p><p><b>  flag=100;</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P0=Tab44[i];</p><p>  P1=Tab5[i];</p><

67、;p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P2=Tab44[i];</p><p>

68、  P3=Tab5[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  flag=200;</b></p><p><b>  }</b></p><p>

69、;  ///////////////////////////////////</p><p>  void hy5(void) //先向下伸展,然后向上伸展逐漸點亮</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i=0;i<8;i++)

70、</p><p><b>  {</b></p><p>  P0=Tab8[i];</p><p>  P3=Tab8[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><

71、p><b>  P0=0xff;</b></p><p><b>  P3=0xff;</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P2=Tab8[i];</p><

72、p>  P1=Tab8[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  P2=0xff;</b></p><p><b>  P1=0xff;</b></p>

73、;<p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P2=Tab7[i];</p><p>  P1=Tab7[i];</p><p><b>  delay();</b></p><p><

74、b>  }</b></p><p><b>  P2=0xff;</b></p><p><b>  P1=0xff;</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><

75、p>  P0=Tab7[i];</p><p>  P3=Tab7[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  P0=0xff;</b></p><p><

76、b>  P3=0xff;</b></p><p><b>  }</b></p><p>  /////////////////////////////</p><p>  void jr(void)//聚攏</p><p><b>  {</b></p><p

77、>  unsigned char i;</p><p>  for(i=0;i<9;i++) //8位控制碼</p><p><b>  {</b></p><p>  P0=Tab1[i];P3=Tab1[i];</p><p>  P2=Tab2[i];P1=Tab2[i]; </p>

78、<p><b>  delay();</b></p><p><b>  } </b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p>  P0=Tab2[i];P3=Tab2[i];</

79、p><p>  P2=Tab1[i];P1=Tab1[i];</p><p><b>  delay();</b></p><p><b>  } </b></p><p>  ///////////////////////////</p><p>  for(i=0;i&l

80、t;9;i++) </p><p><b>  {</b></p><p>  P0=Tab1[i];P3=Tab1[i];</p><p>  P2=Tab2[i];P1=Tab2[i]; </p><p><b>  delay();</b></p><p><

81、;b>  }</b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p>  P0=Tab2[i];P3=Tab2[i];</p><p>  P2=Tab1[i];P1=Tab1[i];</p><p><

82、b>  delay();</b></p><p><b>  }</b></p><p>  xl(); //星星眨眼</p><p>  xl(); //星星眨眼</p><p>  ///////////////////////////</p><p>  for(i=0;i

83、<9;i++) </p><p><b>  {</b></p><p>  P0=Tab3[i]; P3=Tab3[i];</p><p>  P2=Tab4[i]; P1=Tab4[i];</p><p><b>  delay();</b></p><p><

84、;b>  }</b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p>  P0=Tab4[i];P3=Tab4[i];</p><p>  P2=Tab3[i];P1=Tab4[i];</p><p><

85、b>  delay();</b></p><p><b>  }</b></p><p>  ////////////////////////////////</p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p>

86、<p>  P0=Tab1[i];P3=Tab1[i];</p><p>  P2=Tab2[i]; P1=Tab2[i]; </p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<9;i++)

87、</p><p><b>  {</b></p><p>  P0=Tab4[i];P3=Tab4[i];</p><p>  P2=Tab3[i];P1=Tab3[i];</p><p>  delay(); </p><p><b>  }</b></p>

88、<p>  /////////////////////////////</p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p>  P0=Tab3[i]; P3=Tab3[i];</p><p>  P2=Tab4[i];P1=Tab4[i];&

89、lt;/p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p>  P0=Tab2[i];P3=Tab2[

90、i];</p><p>  P2=Tab1[i];P1=Tab1[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /////////////

91、///////////////////////</p><p>  void azzy(void) //暗中向下</p><p><b>  {</b></p><p>  unsigned char i;</p><p><b>  flag=200;</b></p><p&

92、gt;  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P2=0xff;P1=0xff;</p><p>  P3=Tab1[i];P0=Tab1[i];</p><p>  delay(); </p><p><b>  }&

93、lt;/b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p>  P3=0xff;P0=0xff;</p><p>  P2=Tab1[i];P1=Tab1[i];</p><p><b>  delay();&

94、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /////////////////////////////////</p><p>  void azyy(void) //暗中you移</p><p>

95、<b>  {</b></p><p>  unsigned char i;</p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P0=0xff;P3=0xff;</p><p>  P2=Tab2[i];

96、P1=Tab2[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p>  P0=Tab2

97、[i];P3=Tab2[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //////////////////////////////////</p>

98、<p>  void led_flow1(void) </p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p&g

99、t;  P2=0;P1=0;</p><p>  P3=Tab3[i];P0=Tab3[i];</p><p>  delay(); </p><p><b>  }</b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b&

100、gt;</p><p>  P2=Tab3[i];P1=Tab3[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /////////////

101、//////////////////////</p><p>  void lzyy(void) //亮中右移</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i=0;i<9;i++) </p><p><b

102、>  {</b></p><p>  P0=0x00;P3=0x00;</p><p>  P2=Tab4[i];P1=Tab4[i];</p><p>  delay(); </p><p><b>  }</b></p><p>  for(i=0;i<9;i++)

103、 </p><p><b>  {</b></p><p>  P0=Tab4[i];P3=Tab4[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  }<

104、/b></p><p>  //////////////////////////////////</p><p>  void shansuo(void)//全部燈閃爍</p><p><b>  {</b></p><p><b>  uchar i;</b></p><

105、p>  for(i=0;i<3;i++)</p><p><b>  {</b></p><p>  P0=0xff; P3=0xff; P2=0xff; P1=0xff;</p><p>  delay(); delay();</p><p>  P0=0x00; P3=0x00; P2=0x00; P1=

106、0x00;</p><p>  delay(); delay();</p><p><b>  }</b></p><p><b>  }</b></p><p>  void xl(void)//相鄰倆個變換</p><p><b>  {</b>&l

107、t;/p><p><b>  uchar i;</b></p><p>  for(i=0;i<3;i++)</p><p><b>  {</b></p><p>  P0=0xAA;P3=0xAA;P2=0xAA;P1=0xAA;</p><p>  delay();d

108、elay();</p><p>  P0=0x55;P3=0x55;P2=0x55;P1=0x55;</p><p>  delay();delay();</p><p><b>  }</b></p><p><b>  }</b></p><p>  //////////

109、////////////////////</p><p>  void sxb(void)//上下半</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  P0=0xff;P3=0xff;</p><p>  P2=0x00;P1=0x0

110、0;</p><p>  delay();delay();delay();delay();</p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P0=Tab11[i];</p><p>  P3=Tab11[i];</p&

111、gt;<p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P0=Tab11[i];</p>&

112、lt;p>  P3=Tab11[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p&g

113、t;  P0=Tab11[i];</p><p>  P3=Tab11[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p>  for(i=0;i<3;i++)</p><p><b>  {

114、</b></p><p>  P0=0x00;P3=0x00;</p><p>  delay();delay();</p><p>  P0=0xff;P3=0xff;</p><p>  delay();delay();</p><p><b>  }</b></p>

115、<p><b>  }</b></p><p>  //////////////////////////////</p><p>  void jc(void)//</p><p><b>  {</b></p><p><b>  uchar i;</b><

116、/p><p>  for(i=0;i<3;i++) </p><p><b>  {</b></p><p><b>  P0=0x00;</b></p><p><b>  P1=0x00;</b></p><p><b>  P3=0xf

117、f;</b></p><p><b>  P2=0xff;</b></p><p>  delay();delay();delay();delay();</p><p><b>  P3=0x00;</b></p><p><b>  P2=0x00;</b><

118、;/p><p><b>  P0=0xff;</b></p><p><b>  P1=0xff;</b></p><p>  delay();delay();delay();delay();</p><p><b>  }</b></p><p><

119、b>  }</b></p><p>  /////////////////////////////////</p><p>  void azzy_1(void) //暗中向下</p><p><b>  {</b></p><p>  unsigned char i,i1;</p>&

120、lt;p>  for(flag=80;flag>0;flag=flag-10)</p><p><b>  {</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p><p>  P2=0xff;P1=0xff;</p&

121、gt;<p>  P3=Tab1[i];P0=Tab1[i];</p><p>  delay(); </p><p><b>  }</b></p><p>  for(i=0;i<9;i++) </p><p><b>  {</b></p><p&g

122、t;  P3=0xff;P0=0xff;</p><p>  P2=Tab1[i];P1=Tab1[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>  }</b></p><p&g

123、t;<b>  flag=10;</b></p><p>  for(i1=0;i1<30;i1++)</p><p><b>  {</b></p><p>  for(i=0;i<8;i++) </p><p><b>  {</b></p>&l

124、t;p>  P2=0xff;P1=0xff;</p><p>  P3=Tab1[i];P0=Tab1[i];</p><p>  delay(); </p><p><b>  }</b></p><p>  for(i=0;i<9;i++) </p><p><b>

125、  {</b></p><p>  P3=0xff;P0=0xff;</p><p>  P2=Tab1[i];P1=Tab1[i];</p><p><b>  delay();</b></p><p><b>  }</b></p><p><b>

126、  }</b></p><p><b>  flag=200;</b></p><p><b>  }</b></p><p>  /////////////////////////////</p><p>  void js(void)//結(jié)束</p><p>

127、<b>  {</b></p><p><b>  uchar i;</b></p><p><b>  hy2_3();</b></p><p>  for(i=0;i<3;i++) </p><p><b>  {</b></p>

128、<p>  P0=0xff;P2=0xff;</p><p>  delay();delay();</p><p>  P0=0x00;P2=0x00;</p><p>  delay();delay();</p><p><b>  }</b></p><p>  //////////

129、/////////</p><p>  for(i=0;i<3;i++) </p><p><b>  {</b></p><p>  P3=0xff;P1=0xff;</p><p>  delay();delay();</p><p>  P3=0x00;P1=0x00;</p&g

130、t;<p>  delay();delay();</p><p><b>  }</b></p><p>  //////////////////</p><p>  for(i=0;i<3;i++) </p><p><b>  {</b></p><p&g

131、t;  P3=0x00;P1=0x00;</p><p>  P0=0x00;P2=0x00;</p><p>  delay();delay();</p><p>  P3=0xff;P1=0xff;</p><p>  P0=0xff;P2=0xff;</p><p>  delay();delay();</

132、p><p><b>  }</b></p><p><b>  }</b></p><p>  /////////////////////////////</p><p>  void main(void)</p><p><b>  { </b><

133、/p><p>  uchar x1,x2;</p><p><b>  x1=P3;</b></p><p>  x2=x1&0x01;</p><p>  x1=x1>>1; </p><p><b>  while (1)</b></p>&

134、lt;p><b>  {</b></p><p><b>  azzy_1();</b></p><p>  //////////////////////////////////////////////</p><p>  hy2(); //暗中逆時針轉(zhuǎn)360°(一個一個點亮)</p><

135、;p>  hy3(); //點亮中逆時針轉(zhuǎn)360°(一個一個滅)</p><p>  hy2_1();//暗中逆時針轉(zhuǎn)90度。(一個一個點亮)</p><p>  hy2_2();//暗中逆時針轉(zhuǎn)180度。(一個一個點亮)</p><p>  hy2_3();//暗中向下180。(一個一個點亮)</p><p><b&g

136、t;  hy3();</b></p><p><b>  hy2_4();</b></p><p>  ///////////////////////////////////////////////</p><p>  hy1(); //暗中狀態(tài)逆時針旋轉(zhuǎn)90度(一個一個亮)</p><p>  jc();/

137、/交叉四葉草</p><p><b>  hy1();</b></p><p>  hy4(); //點亮狀態(tài)順時針旋轉(zhuǎn)90度(一個一個滅?</p><p><b>  jc();</b></p><p><b>  hy4();</b></p><p>

138、;  //////////////////////////////////////////////</p><p>  hy5();//先向下伸展,然后向上伸展逐漸點亮</p><p><b>  jr();</b></p><p>  /////////////////////////////////////////////////</

139、p><p>  azzy();//暗中向下邊伸展</p><p>  azyy();//暗中向上伸展</p><p>  //////////////////////////////////////////////////</p><p>  xl(); //相鄰變換(星星眨眼)</p><p>  shansuo();/

140、/全部燈閃爍(一亮一滅)</p><p>  /////////////////////////////////////////////////////</p><p>  led_flow1();//亮中向下</p><p>  lzyy(); //亮中向上</p><p>  led_flow1();//亮中向下</p>

141、<p>  azyy(); //暗中向上</p><p>  shansuo();</p><p>  ///////////////////////////////////////</p><p>  sxb();//上下半</p><p>  azzy();//暗中向下</p><p>  lzyy

142、();//亮中向上</p><p>  azzy();//暗中向下</p><p>  lzyy();//亮中向上</p><p>  ///////////////////////////////////////</p><p>  shansuo();//閃爍</p><p>  azyy();//暗中向上<

143、/p><p>  lzyy();//亮中向上</p><p>  azyy();//暗中向上</p><p>  lzyy();//亮中向上</p><p>  shansuo();</p><p><b>  js();//結(jié)束</b></p><p><b>  

144、}</b></p><p><b>  }</b></p><p><b>  七.作品功能</b></p><p>  該作品里,若干紅色LED燈排列成“心形”,能連續(xù)、有序地顯示多種亮燈樣式,吸引人的眼球,表達“愛”的主題。</p><p><b>  八.心得體會<

145、/b></p><p>  通過這次課程設(shè)計我學(xué)到很多東西,體會到理論知識與動手能力相結(jié)合的重要性。另外,設(shè)計過程使我懂得在設(shè)計程序之前,務(wù)必要對所用單片機的內(nèi)部結(jié)構(gòu)有一個系統(tǒng)的了解,知道該單片機內(nèi)有哪些資源:懂得設(shè)計的關(guān)鍵是要有一個清晰的思路和一個完整的軟件流程圖。在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,“反復(fù)修改,不斷改進”是程序設(shè)計的必經(jīng)之路。要養(yǎng)成注釋程序的好習(xí)慣,一個程序的完美與否不僅僅是實

146、現(xiàn)功能,而應(yīng)該讓人一看就能明白你思路,這樣也為資料的保存和交流提供了方便。整個設(shè)計的過程中,還是碰到了一些問題 。比如,對于鍵盤的延時防抖問題不能較好的解決;對于編程的順序及各模塊程序調(diào)用掌握得還不夠好;對于一些相關(guān)的應(yīng)用軟件沒能熟練掌握。通過這幾天的反復(fù)思考,以及參考網(wǎng)上的程序,最終還是完成了設(shè)計。設(shè)計中我最大的收獲是自己的動手能力和獨立解決問題的能力得到極大的提高。</p><p><b>  九.

147、參考文獻</b></p><p>  [1]樓然苗等.51系列單片機設(shè)計實例[M].北京:北京航空航天出版社,2003.3.</p><p>  [2]夏繼強. 單片機實驗與實踐教程[M]. 北京:北京航空航天大學(xué)出版社, 2001.</p><p>  [3]胡乾斌等.單片微型計算機原理及應(yīng)用(第二版).武漢:華中科技大學(xué)出版社,2006.1.<

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論