18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 單片機 >> 正文

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

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

單片機C語言編程相對於(yu) 匯編語言來講入門比較容易,不需要對硬件理解那麽(me) 深刻,有C語言基礎的人學習(xi) 起來更有優(you) 勢。單片機C語言編程入門隻需要學會(hui) 編寫(xie) 簡單的輸入、輸出控製即可,入門後再根據需要逐步深入學習(xi) 。

一、電路圖

單片機流水燈程序示例 


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

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

1、#include(包含命令)

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

2、#define(宏定義(yi) 命令)

#define D P0 //定義(yi) D為(wei) 端口P0。

3、sbit(位定義(yi) )

sbit D1=P0^0; //定義(yi) D1為(wei) 引腳P0.0。

3、if(條件判斷指令)

if (條件1)

程序a;

else(條件2)

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

4、for(循環指令)

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

{ } //i為(wei) 整型變量,小於(yu) 8時一直循環大括號內(nei) 容。

5、while(循環指令)

while (表達式)

{

語句;

} //表達式成立,執行大括號裏內(nei) 容。

三、入門任務講解:

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

(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; /*位定義(yi) 做流水燈,入門容易;也可端口定義(yi) ,#define D P0*/ delay() //延時函數 { unsigned char i,j; //定義(yi) 無符號字符型,也可用int定義(yi) 為(wei) 整型變量 for(i=0;i<2;i++) //外層循環,這裏不加分號。 for(j=0;j<112;j++); //內(nei) 層循環,加分號,表示後麵不執行任何指令 } main() //主函數 { D1=0; D2=0; D3=0; D4=0; D5=0; D6=0; D7=0; D8=0; /*初始燈處於(yu) 熄滅狀態。也可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循環,參考初始定義(yi) 部分注釋,流水就是等依次點亮,熄滅的過程 */

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

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

(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 個字
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢