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

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 單片機(jī) >> 正文

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

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2023/5/13

單片機(jī)C語言編程相對(duì)于匯編語言來講入門比較容易,不需要對(duì)硬件理解那么深刻,有C語言基礎(chǔ)的人學(xué)習(xí)起來更有優(yōu)勢(shì)。單片機(jī)C語言編程入門只需要學(xué)會(huì)編寫簡(jiǎn)單的輸入、輸出控制即可,入門后再根據(jù)需要逐步深入學(xué)習(xí)。

一、電路圖

單片機(jī)流水燈程序示例 


說明:仿真軟件后臺(tái)已默認(rèn)是單片機(jī)最小系統(tǒng),本圖沒再添加電源、復(fù)位電路和時(shí)鐘電路。P0口連接發(fā)光二極管,并且連接了上拉電阻和5V電源,P3口連接獨(dú)立式按鍵。

二、單片機(jī)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滿足,執(zhí)行程序a;條件2滿足,執(zhí)行程序b;

4、for(循環(huán)指令)

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

{ } //i為整型變量,小于8時(shí)一直循環(huán)大括號(hào)內(nèi)容。

5、while(循環(huán)指令)

while (表達(dá)式)

{

語句;

} //表達(dá)式成立,執(zhí)行大括號(hào)里內(nèi)容。

三、入門任務(wù)講解:

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

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

(2)程序及注釋

#include //引用52單片機(jī)頭文件
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() //延時(shí)函數(shù)
{
unsigned char i,j; //定義無符號(hào)字符型,也可用int定義為整型變量
for(i=0;i<2;i++) //外層循環(huán),這里不加分號(hào)。
for(j=0;j<112;j++); //內(nèi)層循環(huán),加分號(hào),表示后面不執(zhí)行任何指令
}
main() //主函數(shù)
{
D1=0;
D2=0;
D3=0;
D4=0;
D5=0;
D6=0;
D7=0;
D8=0;
/*初始燈處于熄滅狀態(tài)。也可for循環(huán)for(int i=1;i<9;i++) {Di=0;}*/
while(1) //1表示條件永遠(yuǎn)成立,這里使用while形成死循環(huán)。{
D1=1; //點(diǎn)亮第1盞燈
delay(); //點(diǎn)亮的時(shí)間
D1=0; //熄滅第1盞燈
delay(); //熄滅的時(shí)間
D2=1; //點(diǎn)亮第2盞燈
delay(); //點(diǎn)亮的時(shí)間
D2=0; //熄滅第2盞燈
delay(); //熄滅的時(shí)間
D3=1; //點(diǎn)亮第3盞燈
delay(); //點(diǎn)亮的時(shí)間
D3=0; //熄滅第3盞燈
delay(); //熄滅的時(shí)間
D4=1; //點(diǎn)亮第4盞燈
delay(); //點(diǎn)亮的時(shí)間
D4=0; //熄滅第4盞燈
delay(); //熄滅的時(shí)間
D5=1; //點(diǎn)亮第5盞燈
delay(); //點(diǎn)亮的時(shí)間
D5=0; //熄滅第5盞燈
delay(); //熄滅的時(shí)間
D6=1; //點(diǎn)亮第6盞燈
delay(); //點(diǎn)亮的時(shí)間
D6=0; //熄滅第6盞燈
delay(); //熄滅的時(shí)間
D7=1; //點(diǎn)亮第7盞燈
delay(); //點(diǎn)亮的時(shí)間
D7=0; //熄滅第7盞燈
delay(); //熄滅的時(shí)間
D8=1; //點(diǎn)亮第8盞燈
delay(); //點(diǎn)亮的時(shí)間
D8=0; //熄滅第8盞燈
delay(); //熄滅的時(shí)間
}
}
/*也可以使用for循環(huán),參考初始定義部分注釋,流水就是等依次點(diǎn)亮,熄滅的過程 */

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

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

(2)程序及注釋:

#include //引用52單片機(jī)頭文件
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; //位定義,也可以整個(gè)端口定義,#define D P0
sbit K1=P3^0; //定義K1連接引腳P3.0。
delay() //延時(shí)函數(shù)
{
unsigned char i,j; //定義無符號(hào)字符型
for(i=0;i<2;i++) //外層循環(huán),這里不加分號(hào)
for(j=0;j<112;j++); //內(nèi)循環(huán)加分號(hào),表示后面不執(zhí)行任何指令
}
main() //主函數(shù)
{
D1=0;
D2=0;
D3=0;
D4=0;
D5=0;
D6=0;
D7=0;
D8=0; //也可以for循環(huán)for(int i=1;i<9;i++) {Di=0;}
while(1) //使用while形成死循環(huán),即燈一直流水。
{
if(K1==0) //按鍵按下時(shí)引腳接地,即等于0。
{ delay(); //延時(shí)一下,防抖動(dòng)
if(K1==0) //再斷按鍵是否按下,按下則流水,否則退出。
{
D1=1; //點(diǎn)亮第1盞燈
delay(); //點(diǎn)亮的時(shí)間
D1=0; //熄滅第1盞燈
delay(); //熄滅的時(shí)間
D2=1; //點(diǎn)亮第2盞燈
delay(); //點(diǎn)亮的時(shí)間
D2=0; //熄滅第2盞燈
delay(); //熄滅的時(shí)間
D3=1; //點(diǎn)亮第3盞燈
delay(); //點(diǎn)亮的時(shí)間
D3=0; //熄滅第3盞燈
delay(); //熄滅的時(shí)間
D4=1; //點(diǎn)亮第4盞燈
delay(); //點(diǎn)亮的時(shí)間
D4=0; //熄滅第4盞燈
delay(); //熄滅的時(shí)間
D5=1; //點(diǎn)亮第5盞燈
delay(); //點(diǎn)亮的時(shí)間
D5=0; //熄滅第5盞燈
delay(); //熄滅的時(shí)間
D6=1; //點(diǎn)亮第6盞燈
delay(); //點(diǎn)亮的時(shí)間
D6=0; //熄滅第6盞燈
delay(); //熄滅的時(shí)間
D7=1; //點(diǎn)亮第7盞燈
delay(); //點(diǎn)亮的時(shí)間
D7=0; //熄滅第7盞燈
delay(); //熄滅的時(shí)間
D8=1; //點(diǎn)亮第8盞燈
delay(); //點(diǎn)亮的時(shí)間
D8=0; //熄滅第8盞燈
delay(); //熄滅的時(shí)間
}
}
}
}
/*也可以使用for循環(huán),參考初始定義部分注釋,流水就是等依次點(diǎn)亮,熄滅的過程 */
Tags:單片機(jī),c語言,入門  
責(zé)任編輯:admin
相關(guān)文章列表
三菱plc有哪些編程指令?詳細(xì)介紹
【三菱PLC】掌握這7個(gè)經(jīng)典的PLC程序,PLC編程一通百通!
三菱plc學(xué)習(xí)入門(二,三菱plc指令,觸點(diǎn)比較,計(jì)數(shù)器,交替,四
51單片機(jī)零基礎(chǔ)入門
基于AT89C52單片機(jī)控制的雙軸太陽自動(dòng)跟蹤系統(tǒng)設(shè)計(jì)
西門子S7-200PLC入門及介紹_plc西門子s7-200基礎(chǔ)知識(shí)
ESP32開發(fā):從入門到精通的全面指南,ESP32入門及Arduino使用教程
ESP32單片機(jī)入門篇
超聲波測(cè)距+溫度+報(bào)警的單片機(jī)代碼_51單片機(jī)超聲波測(cè)距C語言程序
基于51單片機(jī)的恒溫控制器系統(tǒng) protues+keil c
七段數(shù)碼管顯示原理研究_數(shù)碼管顯示0~9對(duì)應(yīng)的段碼
51單片機(jī)學(xué)習(xí)筆記直流電機(jī)驅(qū)動(dòng)(PWM)C語言程序
基于51單片機(jī)—多功能秒表,多功能計(jì)時(shí)器C語言程序
STC89C52單片機(jī)數(shù)字電流表電壓表源碼與電路圖  51單片機(jī)電流電壓
自學(xué)stm32單片機(jī)四個(gè)步驟,實(shí)用又高效!
先學(xué)51還是先學(xué)STM32?STM32和51單片機(jī)的區(qū)別
單片機(jī)最小系統(tǒng)介紹及電路設(shè)計(jì) STM32單片機(jī)最小系統(tǒng)
什么是PIC單片機(jī)
為什么51單片機(jī)的晶振一般使用11.0592? 51單片機(jī)常用波特率初值表
51單片機(jī)寄存器功能一覽表
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢