<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

      單片機C語言編程入門教程  流水燈程序示例

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2023/5/13

      單片機C語言編程相對于匯編語言來講入門比較容易,不需要對硬件理解那么深刻,有C語言基礎的人學習起來更有優勢。單片機C語言編程入門只需要學會編寫簡單的輸入、輸出控制即可,入門后再根據需要逐步深入學習。

      一、電路圖

      單片機流水燈程序示例 


      說明:仿真軟件后臺已默認是單片機最小系統,本圖沒再添加電源、復位電路和時鐘電路。P0口連接發光二極管,并且連接了上拉電阻和5V電源,P3口連接獨立式按鍵。

      二、單片機C語言入門常用指令

      1、#include(包含命令)

      #include <reg51.h> //將指定的定義和聲明文件加入程序中。

      2、#define(宏定義命令)

      #define D P0 //定義D為端口P0。

      3、sbit(位定義)

      sbit D1=P0^0; //定義D1為引腳P0.0。

      3、if(條件判斷指令)

      if (條件1)

      程序a;

      else(條件2)

      程序b; //條件1滿足,執行程序a;條件2滿足,執行程序b;

      4、for(循環指令)

      for(int i=0;i<8;i++)

      { } //i為整型變量,小于8時一直循環大括號內容。

      5、while(循環指令)

      while (表達式)

      {

      語句;

      } //表達式成立,執行大括號里內容。

      三、入門任務講解:

      1、單片機控制流水燈D1-D8(輸出練習)

      (1)分析:根據上圖所示,P0口連接發光二極管正極,所以P0口要輸出高電平才能使發光二極管導通。大部分電路P0連接發光二極管負極,只要輸出低電平就可以導通,并且減少了上拉電阻。

      (2)程序及注釋

      #include //引用52單片機頭文件
      sbit D1=P0^0;
      sbit D2=P0^1;
      sbit D3=P0^2;
      sbit D4=P0^3;
      sbit D5=P0^4;
      sbit D6=P0^5;
      sbit D7=P0^6;
      sbit D8=P0^7;
      /*位定義做流水燈,入門容易;也可端口定義,#define D P0*/
      delay() //延時函數
      {
      unsigned char i,j; //定義無符號字符型,也可用int定義為整型變量
      for(i=0;i<2;i++) //外層循環,這里不加分號。
      for(j=0;j<112;j++); //內層循環,加分號,表示后面不執行任何指令
      }
      main() //主函數
      {
      D1=0;
      D2=0;
      D3=0;
      D4=0;
      D5=0;
      D6=0;
      D7=0;
      D8=0;
      /*初始燈處于熄滅狀態。也可for循環for(int i=1;i<9;i++) {Di=0;}*/
      while(1) //1表示條件永遠成立,這里使用while形成死循環。{
      D1=1; //點亮第1盞燈
      delay(); //點亮的時間
      D1=0; //熄滅第1盞燈
      delay(); //熄滅的時間
      D2=1; //點亮第2盞燈
      delay(); //點亮的時間
      D2=0; //熄滅第2盞燈
      delay(); //熄滅的時間
      D3=1; //點亮第3盞燈
      delay(); //點亮的時間
      D3=0; //熄滅第3盞燈
      delay(); //熄滅的時間
      D4=1; //點亮第4盞燈
      delay(); //點亮的時間
      D4=0; //熄滅第4盞燈
      delay(); //熄滅的時間
      D5=1; //點亮第5盞燈
      delay(); //點亮的時間
      D5=0; //熄滅第5盞燈
      delay(); //熄滅的時間
      D6=1; //點亮第6盞燈
      delay(); //點亮的時間
      D6=0; //熄滅第6盞燈
      delay(); //熄滅的時間
      D7=1; //點亮第7盞燈
      delay(); //點亮的時間
      D7=0; //熄滅第7盞燈
      delay(); //熄滅的時間
      D8=1; //點亮第8盞燈
      delay(); //點亮的時間
      D8=0; //熄滅第8盞燈
      delay(); //熄滅的時間
      }
      }
      /*也可以使用for循環,參考初始定義部分注釋,流水就是等依次點亮,熄滅的過程 */
      

      2、按鍵K1時D1-D8開始流水(輸入輸出練習)

      (1)分析:通常按鍵一端接引腳,另一端接地。按鍵接通時,輸入單片機引腳的電平為低電平0。判斷是否按下,使用if指令進行判斷。按鍵按下時,會有抖動,使用延時消除抖動。

      (2)程序及注釋:

      #include //引用52單片機頭文件
      sbit D1=P0^0;
      sbit D2=P0^1;
      sbit D3=P0^2;
      sbit D4=P0^3;
      sbit D5=P0^4;
      sbit D6=P0^5;
      sbit D7=P0^6;
      sbit D8=P0^7; //位定義,也可以整個端口定義,#define D P0
      sbit K1=P3^0; //定義K1連接引腳P3.0。
      delay() //延時函數
      {
      unsigned char i,j; //定義無符號字符型
      for(i=0;i<2;i++) //外層循環,這里不加分號
      for(j=0;j<112;j++); //內循環加分號,表示后面不執行任何指令
      }
      main() //主函數
      {
      D1=0;
      D2=0;
      D3=0;
      D4=0;
      D5=0;
      D6=0;
      D7=0;
      D8=0; //也可以for循環for(int i=1;i<9;i++) {Di=0;}
      while(1) //使用while形成死循環,即燈一直流水。
      {
      if(K1==0) //按鍵按下時引腳接地,即等于0。
      { delay(); //延時一下,防抖動
      if(K1==0) //再斷按鍵是否按下,按下則流水,否則退出。
      {
      D1=1; //點亮第1盞燈
      delay(); //點亮的時間
      D1=0; //熄滅第1盞燈
      delay(); //熄滅的時間
      D2=1; //點亮第2盞燈
      delay(); //點亮的時間
      D2=0; //熄滅第2盞燈
      delay(); //熄滅的時間
      D3=1; //點亮第3盞燈
      delay(); //點亮的時間
      D3=0; //熄滅第3盞燈
      delay(); //熄滅的時間
      D4=1; //點亮第4盞燈
      delay(); //點亮的時間
      D4=0; //熄滅第4盞燈
      delay(); //熄滅的時間
      D5=1; //點亮第5盞燈
      delay(); //點亮的時間
      D5=0; //熄滅第5盞燈
      delay(); //熄滅的時間
      D6=1; //點亮第6盞燈
      delay(); //點亮的時間
      D6=0; //熄滅第6盞燈
      delay(); //熄滅的時間
      D7=1; //點亮第7盞燈
      delay(); //點亮的時間
      D7=0; //熄滅第7盞燈
      delay(); //熄滅的時間
      D8=1; //點亮第8盞燈
      delay(); //點亮的時間
      D8=0; //熄滅第8盞燈
      delay(); //熄滅的時間
      }
      }
      }
      }
      /*也可以使用for循環,參考初始定義部分注釋,流水就是等依次點亮,熄滅的過程 */
      Tags:單片機,c語言,入門  
      責任編輯:admin
      相關文章列表
      51單片機學習筆記直流電機驅動(PWM)C語言程序
      基于51單片機—多功能秒表,多功能計時器C語言程序
      STC89C52單片機數字電流表電壓表源碼與電路圖  51單片機電流電壓
      自學stm32單片機四個步驟,實用又高效!
      先學51還是先學STM32?STM32和51單片機的區別
      單片機最小系統介紹及電路設計 STM32單片機最小系統
      什么是PIC單片機
      為什么51單片機的晶振一般使用11.0592? 51單片機常用波特率初值表
      51單片機寄存器功能一覽表
      單片機寫延時程序的幾種方法
      自學單片機編程之中斷與時鐘程序
      plc編程入門梯形圖實例詳解:左母線、觸點、線圈、功能塊
      哈佛結構與馮·諾伊曼結構區別以及X86體系
      單片機萬年歷:公歷日期與農歷日期的相互轉換程序
      AVR定時器1的CTC模式設置
      單片機超聲波視覺識別系統的測量軟件開發,超聲波測距
      LCD1602的單片機驅動詳解
      單片機時鐘電路原理
      基于stc89c52的4*4矩陣鍵盤輸入數碼管,一個小計算器
      單片機紅外遙控器設計
      單片機 鍵盤檢測與應用
      如何給單片機系統提供可靠的電磁兼容設計,pcb設計
      小白必看:單片機系統電路經典設計教學
      單片機上拉電阻和下拉電阻的用處和區別
      單片機數碼管顯示原理
      51單片機--矩陣鍵盤
      詳解:上拉電阻的作用【圖文】
      單片機電子時鐘程序設計
      4位單片機數字鐘 電子鐘制作
      51單片機4位數碼管電子鐘源程序
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 天天综合网天天做天天受| 国产精品无码久久综合网| 色综合伊人色综合网站| 久久93精品国产91久久综合| 精品综合久久久久久888蜜芽| 色狠狠成人综合色| 天天综合日日噜噜噜| 色综合久久久久久久久五月| 天天综合久久一二三区| 99久久综合给久久精品| 久久93精品国产91久久综合| 激情五月婷婷综合| 国产综合久久久久| 色欲综合久久躁天天躁| 亚洲欧美熟妇综合久久久久| 久久综合亚洲色一区二区三区| 亚洲国产综合人成综合网站| 伊色综合久久之综合久久| 久久婷婷五月综合尤物色国产| 久久乐国产精品亚洲综合| 色天使久久综合给合久久97色| 伊人久久大香线蕉综合热线| 国产91色综合久久免费分享| 99久久综合精品国产| 亚洲另类激情综合偷自拍| 久久―日本道色综合久久| 天堂久久天堂AV色综合| 97久久婷婷五月综合色d啪蜜芽 | 色综合无码AV网站| 婷婷五月综合丁香在线| 色综合久久久无码网中文| 成人综合久久精品色婷婷| 亚洲精品国产综合久久久久紧| 天天综合天天做天天综合| 色婷婷99综合久久久精品| 国产精品亚洲综合一区| 激情综合婷婷丁香五月| 伊人久久大香线焦综合四虎| 亚洲国产成人久久综合一区| 亚洲av综合日韩| 综合国产在线观看无码|