日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開發網

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