中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)C語言程序設(shè)計(jì)(15)

        PIC單片機(jī)C語言程序設(shè)計(jì)(15)

        作者: 時(shí)間:2013-01-26 來源:網(wǎng)絡(luò) 收藏
          本文是講座《單片機(jī)C 語言》的結(jié)束篇,為了幫助大家更好地掌握前面所學(xué)的知識(shí),我們將歸納性地介紹初學(xué)者用C 語言編輯PIC 單片機(jī)實(shí)用程序時(shí)應(yīng)具備的思維方法和基本知識(shí),并通過下面的實(shí)例進(jìn)行一次小結(jié),以期對(duì)大家今后深入學(xué)習(xí)PIC 單片機(jī)C 語言有所幫助。

          十六、程序的組成

          一個(gè)完整的PIC 單片機(jī)C 語言源程序應(yīng)包括:包含頭文件、變量定義、常量說明、函數(shù)定義、主函數(shù)main( )、若干個(gè)其他功能函數(shù)、各種功能C 語句,以及已定義的函數(shù)和函數(shù)體、注釋等部分組成。

          說明:對(duì)PIC 單片機(jī)中級(jí)或中級(jí)以下的產(chǎn)品,其頭文件是#includepic.h> 和#includepic1687x.h>; 對(duì)高級(jí)產(chǎn)品,如PIC18F452 器件,其頭文件是#includepic18.h> 和#include pic18fxx2.h>。

          C 程序的運(yùn)行,總是從主函數(shù)main( ) 開始(可以通過模擬仿真直接觀察到),由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可互相調(diào)用, 如此運(yùn)行工作。而C 語句,又可按其執(zhí)行方式的不同而分為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)等。這里的順序結(jié)構(gòu), 是指程序按語句的順序逐條執(zhí)行;選擇結(jié)構(gòu), 是指程序根據(jù)相關(guān)條件選擇的執(zhí)行順序; 循環(huán)結(jié)構(gòu), 是指程序根據(jù)某條件的存在執(zhí)行一段程序,直到條件消失為止,若該條件永遠(yuǎn)存在,就形成無限循環(huán)。

          1. 延時(shí)函數(shù)的三種表達(dá)式

          用匯編語言編輯一個(gè)較大的PIC 單片機(jī)程序時(shí),一般分為多個(gè)程序模塊,每個(gè)模塊的子程序?qū)崿F(xiàn)一個(gè)特定的功能。而用C 語言編輯該程序時(shí),模塊的功能是用函數(shù)實(shí)現(xiàn)的,即函數(shù)相當(dāng)于匯編語言的子程序。下面我們以延時(shí)函數(shù)應(yīng)用的實(shí)例,來說明PIC 單片機(jī)C 語言程序的基本組成格式。

          延時(shí)函數(shù)是PIC 單片機(jī)源程序中出現(xiàn)頻率較高的函數(shù),而且具有相同功能的延時(shí)函數(shù)也有多種形式,我們選擇常用的三種延時(shí)函數(shù)進(jìn)行討論。

          所引用的三種延時(shí)函數(shù)都是由循環(huán)控制語句——while、do_while 和for 等實(shí)現(xiàn)的。

         ?。?)帶形式參數(shù)的由for 語句組成的延時(shí)函數(shù)。

          void delay(unsigned int k)

          {

          unsigned int i, j;

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

          fir(j=0;j=k;j++)

          cONtinue;

          }

          該延時(shí)函數(shù)由兩個(gè)for 語句組成,第一個(gè)for語句中的81 是筆者設(shè)置的常數(shù)(可任意設(shè)定),用于使延時(shí)值增加; 第二個(gè)for 語句中的k 是在程序中主函數(shù)main( ) 調(diào)用delay(k) 時(shí),由用戶給定的值,k 值不同,延時(shí)時(shí)間就不等, 所以該延時(shí)函數(shù)可在一個(gè)C 程序中實(shí)現(xiàn)不同的多個(gè)延時(shí)量,顯然比匯編語言延時(shí)子程序簡(jiǎn)單多了。在延時(shí)量要求較短時(shí), 該延時(shí)函數(shù)種的兩個(gè)for 語句的功能可用一個(gè)for 語句來實(shí)現(xiàn)。

         ?。?)帶形式參數(shù)的由while 循環(huán)語句組成的延時(shí)函數(shù)。

          Void deley(unsigned long int k)

          {

          Unsigned long int d=k;

          While(--d)

          {;

          }

          {

          此延時(shí)函數(shù)簡(jiǎn)單、容易記憶。使用時(shí),在程序中主函數(shù)main( ) 調(diào)用delay(k) 時(shí),由用戶給定不同的k 值,亦可實(shí)現(xiàn)多種延時(shí)值。

         ?。?)帶形式參數(shù)的由do-while 語句組成的延時(shí)函數(shù)。

          Void delay(unsigned long int k)

          {

          Unsigned int long j=o;

          do {

          j++;

          }

          While(j =k);

          j=o;

          }

          該延時(shí)函數(shù)簡(jiǎn)單易記。使用時(shí),在程序中主函數(shù)main( ) 調(diào)用delay(k) 時(shí),由用戶給定不同的k 值,即可實(shí)現(xiàn)多種延時(shí)值。

          需要說明的是,上述由while 循環(huán)語句和由do-while 語句組成的延時(shí)函數(shù)中的形式參數(shù),不一定用長(zhǎng)整型(long ink)。

         ?、?電路功能相同形式不同的四種C 程序

          下面介紹利用PIC16F84A 單片機(jī)的PORTB端口外接的8 只LED, 采用四種C 程序控制端口的LED 燈,來說明編輯C 語言程序時(shí)的基本格式及其靈活性。電路參見《電子制作》2009 年9期《單片機(jī)C 語言(1)》一文中的圖1,程序流程如圖64 所示,采用的是無限循環(huán)工作方式。

        圖64

          (1)C 程序一,文件名為pic09.c, 清單如下:

          #include pic.h> // 頭文件

          void delay(unsigned long int K)

          // 延時(shí)函數(shù)開始

          {

          unsigned int long j=0;

          // 說明語句

          do

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

          {

          j++;

          }

          while(j=K);

          j=0;

          }

          main( ) // 主函數(shù)開始

          {

          TRISB=0x00;

          // 設(shè)置PORTB 口全為輸出

          INTCON=0x00; // 關(guān)閉所有中斷

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

          while(1) // 永久循環(huán)開始

          {

          PORTB=0x55;

          //RB 口外接LED 其1、3、5、7 點(diǎn)亮

          delay(45000);

          // 點(diǎn)亮的LED 延時(shí)1 秒后關(guān)閉

          PORTB=0xAA;

          //RB 口外接LED 其2、4、6、8 點(diǎn)亮

          delay(98000);

          // 點(diǎn)亮的LED 延時(shí)2 秒后關(guān)閉

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

          delay(155000);

          // 全亮的LED 延時(shí)3 秒后關(guān)閉

          }

          }


        上一頁(yè) 1 2 3 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉