国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

51單片機(jī)入門(mén)流水燈

這篇具有很好參考價(jià)值的文章主要介紹了51單片機(jī)入門(mén)流水燈。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


前言

上次已經(jīng)實(shí)現(xiàn)了LED的點(diǎn)亮了,這篇文章將帶大家實(shí)現(xiàn)流水燈。

一、延時(shí)函數(shù)

要想實(shí)現(xiàn)流水燈首先就得知道什么是延時(shí)函數(shù),延時(shí)函數(shù)的作用就是等待。比如延時(shí)一毫秒就是讓程序在這里等待一毫秒。延時(shí)函數(shù)的本質(zhì)就是執(zhí)行一些空指令,因?yàn)閳?zhí)行指令需要耗費(fèi)時(shí)間,所以執(zhí)行一定數(shù)量的空指令就能達(dá)到延時(shí)的效果。

延時(shí)函數(shù)的實(shí)現(xiàn)
這里的延時(shí)函數(shù)就是不斷的在執(zhí)行;表達(dá)式來(lái)達(dá)到延時(shí)的效果。

/*延時(shí)函數(shù)
單位:ms
x:延時(shí)的數(shù)值
*/
void delayms(unsigned int x)
{
   unsigned char i;
	 while(x--)
	 {
		 for(i=0;i<113;i++);
	 }
}

二、流水燈代碼

下面就是流水燈的代碼了,其實(shí)操作起來(lái)也是非常簡(jiǎn)單的。不過(guò)這樣寫(xiě)一個(gè)流水燈看起來(lái)實(shí)在是太過(guò)于復(fù)雜了,下面將對(duì)代碼進(jìn)行整改。

#include <reg52.h>

/*LED燈端口定義*/
sbit LED0 = P2^0;
sbit LED1 = P2^1;
sbit LED2 = P2^2;
sbit LED3 = P2^3;
sbit LED4 = P2^4;
sbit LED5 = P2^5;
sbit LED6 = P2^6;
sbit LED7 = P2^7;

/*延時(shí)函數(shù)
單位:ms
x:延時(shí)的數(shù)值
*/
void delayms(unsigned int x)
{
   unsigned char i;
	 while(x--)
	 {
		 for(i=0;i<113;i++);
	 }
}


void main()
{
	
	while(1)
	{
		LED0 = 0;
		delayms(1000);
		LED1 = 0;
		delayms(1000);
		LED2 = 0;
		delayms(1000);
		LED3 = 0;
		delayms(1000);
		LED4 = 0;
		delayms(1000);
		LED5 = 0;
		delayms(1000);
		LED6 = 0;
		delayms(1000);
		LED7 = 0;
		delayms(1000);
		LED0 = LED1 = LED2 = LED3 = LED4 = LED5 = LED6 = LED7 = 1;	
	}
}

三、代碼改進(jìn)

上篇文章我們已經(jīng)講到了8個(gè)LED燈分別接到了P2.0—P2.7上面。所以我們可以直接對(duì)P2端口進(jìn)行操作實(shí)現(xiàn)點(diǎn)亮LED燈。
默認(rèn)狀態(tài)LED燈都為滅,也就是狀態(tài)都為1。所以P2.0—P2.7的8個(gè)端口狀態(tài)為
1111 1111。
我們只需要讓其中一個(gè)位變成0即可讓LED燈點(diǎn)亮。
對(duì)P2直接進(jìn)行操作讓第一個(gè)LED燈點(diǎn)亮就是對(duì)P2賦值如下:
1111 1110
換成16進(jìn)制也就是0xfe
下面的代碼就可以點(diǎn)亮第一個(gè)LED了

P2 = 0xfe;

所以可以直接對(duì)P2進(jìn)行操作達(dá)到流水燈的效果。

#include <reg52.h>

/*延時(shí)函數(shù)
單位:ms
x:延時(shí)的數(shù)值
*/
void delayms(unsigned int x)
{
   unsigned char i;
	 while(x--)
	 {
		 for(i=0;i<113;i++);
	 }
}


void main()
{
	int i = 0;
	while(1)
	{
		
		for(i = 0; i < 8; i ++ )
		{
			P2 = ~(1<<i);
			delayms(1000);
		}
	}
		
}

板子上面有8個(gè)LED燈,所以這里設(shè)計(jì)了一個(gè)for循環(huán)。利用左移操作和取反操作實(shí)現(xiàn)了流水燈的效果。
簡(jiǎn)單解釋一下這個(gè)for循環(huán)實(shí)現(xiàn)流水燈的原理
一開(kāi)始i=0 P2 = ~(1<<0)相當(dāng)于是1111 1110
i = 2時(shí)P2 = ~(1<<1)相當(dāng)于是1111 1101
后面的以此類推,這里0移到到了哪里哪個(gè)LED就會(huì)被點(diǎn)亮了。
對(duì)左移和取反操作還不熟悉的同學(xué)建議去加強(qiáng)一下C語(yǔ)言的知識(shí)。

總結(jié)

流水燈的點(diǎn)亮就介紹到這里了,大家主要是掌握sbit位定義和直接操作P2進(jìn)行流水燈的點(diǎn)亮。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-757766.html

到了這里,關(guān)于51單片機(jī)入門(mén)流水燈的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 51單片機(jī)按鍵控制流水燈

    51單片機(jī)按鍵控制流水燈

    1獨(dú)立按鍵的原理圖 按鍵所對(duì)應(yīng)的引腳為P3的0、1、2、3引腳口,并且這里總共有四個(gè)獨(dú)立按鍵,它們公共的一段都接到了 GND 電源的負(fù)極。這樣我們就知道按鍵上電的默認(rèn)電平為高電平。所以我們只需要控制按鍵按下時(shí)給一個(gè)低電平0,不按下時(shí)默認(rèn)高電平1就行。 ?2按鍵控制

    2024年02月11日
    瀏覽(19)
  • 51單片機(jī)學(xué)習(xí)--LED流水燈

    51單片機(jī)學(xué)習(xí)--LED流水燈

    延時(shí)代碼可通過(guò)軟件生成,系統(tǒng)頻率要和開(kāi)發(fā)板的晶振頻率相對(duì)應(yīng)。 ?

    2024年02月16日
    瀏覽(27)
  • 51匯編單片機(jī)學(xué)習(xí)(三)八路流水燈

    51匯編單片機(jī)學(xué)習(xí)(三)八路流水燈

    流水燈主要是在小燈閃爍的基礎(chǔ)上對(duì)小燈進(jìn)行移動(dòng) 八路流水則為賦值一組引腳并對(duì)引腳進(jìn)行定義,在上一篇文章我們能知道當(dāng)引腳置1時(shí)為高電平,此時(shí)小燈不亮,引腳置0時(shí),低電平,小燈亮,所以可知在一組引腳中,可設(shè)置小燈初始位置從“01111111”開(kāi)始亮起,而十六進(jìn)制

    2024年02月07日
    瀏覽(30)
  • 【51單片機(jī)】:閃燈、流水燈(從左往右)、流水燈(從右往左)、蜂鳴器。

    【51單片機(jī)】:閃燈、流水燈(從左往右)、流水燈(從右往左)、蜂鳴器。

    ? ? ? ? 言歸正傳,一切都回歸本源,從51再來(lái)一次,首先就是最簡(jiǎn)單的點(diǎn)燈大師。 ? ? ? ? 這么些年從51 到? 32? 再到? arduino? 再到? ESP? 等等,都是從點(diǎn)燈大師開(kāi)始的。 于是介紹如下: 閃燈 流水燈(從左往右) 流水燈(從右往左) 蜂鳴器 ????????LED燈的原理:LED是發(fā)

    2024年02月11日
    瀏覽(26)
  • 51單片機(jī)通過(guò)兩個(gè)按鍵控制流水燈方向

    按鍵一接單片機(jī)P3_1,按鍵2接P3_0 8個(gè)流水燈接P2口 以下是代碼:

    2024年02月11日
    瀏覽(23)
  • 基于51單片機(jī)設(shè)計(jì)的花樣流水燈設(shè)計(jì)

    基于51單片機(jī)設(shè)計(jì)的花樣流水燈設(shè)計(jì)

    花樣流水燈是一種常見(jiàn)的LED燈效果,被廣泛應(yīng)用于舞臺(tái)表演、節(jié)日慶典、晚會(huì)演出等場(chǎng)合。在現(xiàn)代智能家居、電子產(chǎn)品中,花樣流水燈也被廣泛使用,通過(guò)調(diào)整亮滅順序和時(shí)間,可以實(shí)現(xiàn)各種炫酷的燈光效果,增強(qiáng)用戶體驗(yàn)。而51單片機(jī)作為一種常見(jiàn)的嵌入式開(kāi)發(fā)平臺(tái),具有

    2024年02月09日
    瀏覽(20)
  • 【51單片機(jī)】按鍵操作(單個(gè)燈閃爍&&流水燈)

    【51單片機(jī)】按鍵操作(單個(gè)燈閃爍&&流水燈)

    ??專欄【51單片機(jī)】 ??喜歡的詩(shī)句:更喜岷山千里雪 三軍過(guò)后盡開(kāi)顏。 ??音樂(lè)分享【如愿】 大一同學(xué)小吉,歡迎并且感謝大家指出我的問(wèn)題?? 目錄 ?注意 ??同一個(gè)燈? ??????效果 ??????代碼 ??????問(wèn)題分析 ?注意 ?P3_1=0,表示按下按鍵? ?為什么while(

    2024年02月01日
    瀏覽(20)
  • 單片機(jī)c51中斷 — 中斷鍵控流水燈

    單片機(jī)c51中斷 — 中斷鍵控流水燈

    項(xiàng)目文件 文件 關(guān)于項(xiàng)目的內(nèi)容知識(shí)點(diǎn)可以見(jiàn)專欄單片機(jī)原理及應(yīng)用 的第五章,中斷 ? 在第4章的實(shí)例2中,按鍵檢測(cè)是采用查詢法進(jìn)行的,其流程圖如圖所示 問(wèn)題是這樣的:由于查詢法 -按鍵查詢、標(biāo)志位修改及彩燈循環(huán)幾個(gè)環(huán)節(jié)是串聯(lián)關(guān)系,當(dāng)CPU運(yùn)行于彩燈時(shí),將因不能及

    2024年02月08日
    瀏覽(31)
  • 51單片機(jī)流水燈三種實(shí)現(xiàn)方法

    51單片機(jī)流水燈三種實(shí)現(xiàn)方法

    流水燈可以用三種方法實(shí)現(xiàn) 一.通過(guò)移位函數(shù) ?_crol_() ?和 ?_cror_() 二.位移實(shí)現(xiàn)流水燈 三.數(shù)組流水燈實(shí)現(xiàn) 首先說(shuō)一下流水燈的原理 讓0從左往右位移或者從右往左位移 從而實(shí)現(xiàn)流水燈依次點(diǎn)亮 電路圖如下,使用軟件是project 使用左移函數(shù)代碼如下 ?///運(yùn)行結(jié)果是LED燈從上到

    2023年04月09日
    瀏覽(21)
  • 51單片機(jī)--定時(shí)器與按鍵控制流水燈模式

    51單片機(jī)--定時(shí)器與按鍵控制流水燈模式

    51單片機(jī)上的定時(shí)器是一種硬件模塊,用于計(jì)時(shí)和生成特定的時(shí)間延遲。 它的電路和運(yùn)轉(zhuǎn)都在單片機(jī)內(nèi)完成 ,它是嵌入在單片機(jī)內(nèi)部的一個(gè)功能模塊,具有多種工作模式和功能。 在51單片機(jī)中,通常有兩個(gè)定時(shí)器/計(jì)數(shù)器:定時(shí)器0(Timer 0)和定時(shí)器1(Timer 1)。每個(gè)定時(shí)器都

    2024年02月13日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包