<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 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 燈點亮時的無限循環(huán),由while(1) 語句完成。

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

            #include pic.h> // 頭文件

            void delay( K ) // 延時函數

            unsigned long int K;

            // 形參數(k) 說明

            {

            unsigned long int d=K;

            // 說明語句

            while(--d)

            // 由while 組成的延時執(zhí)行語句

            {;

            }

            }

            main( ) // 主函數開始

            {

            TRISB=0x00

            // 設置PORTB 口全為輸出

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

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

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

            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 處循環(huán)

            }

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

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

            c. LED 燈點亮時的無限循環(huán),由goto 無條件轉移執(zhí)行語句完成。其中l(wèi)oop 為語句標號。對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++) // 延時執(zhí)行語句

            continue; // 繼續(xù)循環(huán)

            }

            main( ) // 主函數開始

            {

            TRISB=0x00;

            // 設置PORTB 口全為輸出

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

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

            h=0; // 給h 賦置0

            do

            // do-while 語句開始循環(huán)

            {

            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 燈點亮時的無限循環(huán)由do_while 語句完成,其while(h =100) 中的100 可任意選取大于0 的其他值。

           ?。?)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 條件滿足繼續(xù)循環(huán)

            }

            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) // 永久循環(huán)開始

            {

            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 全亮

            }



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();