久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機C語言程序設計(15)

PIC單片機C語言程序設計(15)

作者: 時間:2013-01-26 來源:網絡 收藏

說明:a. 上述程序中,延時函數帶形式參數K,并由do-while 語句組成。

  b. 主函數main() 調用delay(k) 時,其K 分別是45000(1 秒)、98000(2 秒)、和155000(3秒)。

  c.LED 燈點亮時的無限循環,由while(1) 語句完成。

  (2)C 程序二,文件名為pic10.c, 清單如下:

  #include pic.h> // 頭文件

  void delay( K ) // 延時函數

  unsigned long int K;

  // 形參數(k) 說明

  {

  unsigned long int d=K;

  // 說明語句

  while(--d)

  // 由while 組成的延時執行語句

  {;

  }

  }

  main( ) // 主函數開始

  {

  TRISB=0x00

  // 設置PORTB 口全為輸出

  INTCON=0x00; // 關閉所有中斷

  PORTB=0x00; //RB 口先送低電平

  loop: // 語句標號(無限循環)

  PORTB=0x55;

  //RB 口外接LED 其1、3、5、7 點亮

  delay(37000);

  // 點亮的LED 延時1 秒后關閉

  PORTB=0xAA;

  //RB 口外接LED 其2、4、6、8 點亮

  delay(74000 );

  // 點亮的LED 延時2 秒后關閉

  PORTB=0xFF; //RB 口外接LED 全亮

  delay(111000);

  // 全亮的LED 延時3 秒后關閉

  goto loop; // 跳轉到loop 處循環

  }

  說明:a. 上述程序中,延時函數帶形參數k,且由while 語句組成。

  b. 主函數main( ) 調用delay(k) 時,其k 分別是37000(1 秒)、74000(2 秒)和1110000(3 秒)。

  c. LED 燈點亮時的無限循環,由goto 無條件轉移執行語句完成。其中loop 為語句標號。對goto 語句使用時應慎重,在簡單的C 程序中使用goto 語句是必要的,但編輯復雜的C 程序結構,會使程序的可讀性變差。

  (3) C 程序三,文件名為pic11.c, 清單如下:

  #include pic.h> // 頭文件

  unsigned int h; // 無符號的整型變量

  void delay(unsigned long int M)

  // 延時函數開始

  {

  unsigned int long i,j; // 說明語句

  for(i=0;i=81;i++)

  // 由兩個for 語句組成的

  for(j=0;j=M;j++) // 延時執行語句

  continue; // 繼續循環

  }

  main( ) // 主函數開始

  {

  TRISB=0x00;

  // 設置PORTB 口全為輸出

  INTCON=0x00; // 關閉所有中斷

  PORTB=0x00; //RB 口先送低電平

  h=0; // 給h 賦置0

  do

  // do-while 語句開始循環

  {

  PORTB=0x55;

  //RB 口外接LED 其1、3、5、7 點亮

  delay(500);

  // 點亮的LED 延時1 秒后關閉

  PORTB=0xAA;

  //RB 口外接LED 其2、4、6、8 點亮

  delay(1000);

  // 點亮的LED 延時2 秒后關閉

  PORTB=0xFF; // RB 口外接LED 全亮

  delay(1500);

  // 全亮的LED 延時3 秒后 關閉

  h++; // h 自增量

  }

  while(h=100); //h 自增不滿足條件時

  h=0; // 給h 賦值0

  return; // 返回

  }

  說明:a. 上述程序中,延時函數帶形參數M,并由二個for 語句組成(可以是多個for 語句或一個for 語句)。

  b. 主函數main( ) 調用delay(M) 時,M 值分別是500(1 秒)、1000(2 秒)和1500(3 秒)。

  c. LED 燈點亮時的無限循環由do_while 語句完成,其while(h =100) 中的100 可任意選取大于0 的其他值。

  (4)C 程序四,文件名為pic12.c,清單如下:

  #include pic.h> // 頭文件

  void delay(unsigned long int M)

  // 延時函數開始

  {

  unsigned int long j; // 說明語句

  for(j=0;j=M;j++)

  // 由一個for 語句組成的延時語句

  continue; //for 條件滿足繼續循環

  }

  void light1( );

  // 聲明RB 口點LED 燈函數1

  void light2( );

  // 聲明RB 口點LED 燈函數2

  void light3( );

  // 聲明RB 口點LED 燈函數3

  main( ) // 主函數開始

  {

  TRISB=0x00;

  // 設置PORTB 口全為輸出

  INTCON=0x00; // 關閉所有中斷

  PORTB=0x00; //RB 口先送低電平

  while(1) // 永久循環開始

  {

  light1( ); // 調用LED 燈函數

  delay(45000); // 調用延時函數(1 秒)

  light2( ); // 調用LED 燈函數2

  delay(95000); // 調用延時函數(2 秒)

  light3( ); // 調用LED 燈函數3

  delay(145000); // 調用延時函數(3 秒)

  }

  }

  void light1( ) //LED 燈函數1

  {

  PORTB=0x55;

  // RB 口外接LED 其1、3、5、7 點亮

  }

  void light2( ) //LED 燈函數2

  {

  PORTB=0xAA;

  //RB 口外接LED 其2、4、6、8 點亮

  }

  void light3( ) //LED 燈函數3

  {

  PORTB=0xFF; //RB 口外接LED 全亮

  }



評論


相關推薦

技術專區

關閉