找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 28994|回復(fù): 3
收起左側(cè)

單片機(jī)流水燈實(shí)驗(yàn)報(bào)告與心得

[復(fù)制鏈接]
ID:209442 發(fā)表于 2017-6-9 09:56 | 顯示全部樓層 |閱讀模式
實(shí)驗(yàn)一:
一、實(shí)驗(yàn)?zāi)康模?/font>
1、學(xué)會(huì)使用Keil、Proteus仿真軟件;
2、掌握P口的輸入、輸出工作方式,學(xué)會(huì)C51編程與調(diào)試方法;
3、掌握發(fā)光二極管的控制方法。

二、實(shí)驗(yàn)內(nèi)容:
如圖1所示,要求采用軟件延時(shí)、查表方法控制指示燈,指示燈的花樣至少4個(gè)以上;

三、實(shí)驗(yàn)步驟:

1、Keil軟件下輸入源程序,然后編譯生成HEX文件;
(放調(diào)試好的程序,希望有注釋?zhuān)?/font>
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. Unsignchar led[] =
  4. {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff };/*LED字模*/

  5. unsigned int count = 0;/*流水花樣序號(hào)*/

  6. unsigned int speed=20000;/*流水燈初速度*/


  7. void delay(unsigned inttime){  /*不可變延時(shí)函數(shù)*/      

  8.      unsigned char c=250;

  9.     for( ;time>0;time--)

  10.          for( ;c>0;c--);

  11.        }


  12. void key1() interrupt 0using 1/*K0中斷*/

  13. {   

  14.     EX0 = 0;

  15.     count++;

  16.     if (count == 4) { count = 0; }

  17.     EX0 = 1;

  18. }


  19. void key2() interrupt 2 using2/*K1中斷*/

  20. {

  21.     speed = speed - 10000;

  22.     if (speed <= 0) {

  23.        speed = 20000;

  24.     }

  25.     delay(3500);

  26. }



  27. void main() {

  28.     int i;

  29.     unsigned char Num = 0xff;

  30.     IT0 = 1; /*脈沖觸發(fā)方式*/

  31.    IT1 = 1;

  32.     EX0 = 1; /*開(kāi)中斷*/

  33.     EX1 = 1;

  34. EA = 1;

  35.     while (1) {

  36.        if (count == 0) { /*花樣1*/

  37.            for (i = 0; i<= 8;i++){ P0 = 0xff;delay(speed); P0 = 0x00;delay(speed);}

  38.        }

  39.        else if (count == 1) { /*花樣2*/

  40.            for (i = 8;i >= 0;i--) { P0 = led[i ];delay(speed); }

  41.        }

  42.        else if (count == 2) { /*花樣3*/

  43.            P0 = Num;delay(speed);Num--;

  44.        }

  45.        else if (count == 3) {/*花樣4*/

  46.            for( i = 0;i < 8;i++) { P0 = led[ i];delay(speed); }

  47.        }

  48.     }

  49. }
復(fù)制代碼



2、Proteus軟件下畫(huà)出電路圖,然后裝載HEX文件運(yùn)行,反復(fù)調(diào)試直到看到結(jié)果。

(放運(yùn)行下的圖)
S_3{ITYJ64]YL1(_Q9C5CXV.png

四、實(shí)驗(yàn)心得:這是我第一次接觸單片機(jī)實(shí)驗(yàn),覺(jué)得很有趣,在這個(gè)過(guò)程中也學(xué)到了不少東西。學(xué)會(huì)了使用proteuskeil兩個(gè)軟件,學(xué)會(huì)基本的畫(huà)圖,知道畫(huà)圖中也有許多細(xì)節(jié)的部分,例如如何劃斜線,這些畫(huà)圖就像女孩子繡花一個(gè)道理,要追求美觀,簡(jiǎn)短。怎樣才可以低成本的畫(huà)出來(lái)等等,都是一個(gè)細(xì)心活。再有就是寫(xiě)編程,一開(kāi)始我就是一個(gè)菜鳥(niǎo),什么都不會(huì),幸虧開(kāi)始接觸的不是很難,要不然就要崩潰了。想學(xué)好編程,第一步就是要看懂別人怎么寫(xiě),為什么要這樣寫(xiě)。然后自己跟著那思路畫(huà)一次,接下來(lái)就是自己學(xué)會(huì)創(chuàng)造,怎么寫(xiě)更加簡(jiǎn)單明了
回復(fù)

使用道具 舉報(bào)

ID:259166 發(fā)表于 2017-12-9 12:51 | 顯示全部樓層
1123.C(3): error C129: missing ';' before 'led'程序運(yùn)行出現(xiàn)這個(gè)錯(cuò)誤怎么解決呢
回復(fù)

使用道具 舉報(bào)

ID:989966 發(fā)表于 2021-12-12 09:32 | 顯示全部樓層
它工作的原理是什么
回復(fù)

使用道具 舉報(bào)

ID:908826 發(fā)表于 2021-12-12 11:18 | 顯示全部樓層
15101123 發(fā)表于 2017-12-9 12:51
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

unsigned char
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表