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

51單片機(jī)點(diǎn)亮LED的5中方法(由簡(jiǎn)單到困難)

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

本文將介紹用各種不同的方法和算法點(diǎn)亮51單片機(jī)LED的程序,包括詳細(xì)的注釋和說(shuō)明。

方法1:使用GPIO口點(diǎn)亮LED

#include<reg52.h> //頭文件
sbit LED=P1^0; //定義LED
void main()
{
    LED=0; //LED亮,輸出低電平
}

以上代碼使用了P1口的第0位控制LED的亮滅。當(dāng)LED=0時(shí),輸出低電平,LED亮;當(dāng)LED=1時(shí),輸出高電平,LED滅。

方法2:使用定時(shí)器控制LED閃爍

#include<reg52.h> //頭文件
sbit LED=P1^0; //定義LED
void delay(unsigned int i) //延時(shí)函數(shù)
{
    while(i--);
}
void main()
{
    while(1)
    {
        LED=0; //LED亮
        delay(500); //延時(shí)500ms
        LED=1; //LED滅
        delay(500); //延時(shí)500ms
    }
}

以上代碼使用了延時(shí)函數(shù)和定時(shí)器來(lái)控制LED的閃爍。在這段代碼中,我們定義了一個(gè)延時(shí)函數(shù),來(lái)實(shí)現(xiàn)LED閃爍的時(shí)間間隔。當(dāng)LED=0時(shí),LED亮,執(zhí)行延時(shí)函數(shù);當(dāng)LED=1時(shí),LED滅,執(zhí)行延時(shí)函數(shù)。

方法3:使用中斷控制LED閃爍

#include<reg52.h> //頭文件
sbit LED=P1^0; //定義LED
void delay(unsigned int i) //延時(shí)函數(shù)
{
    while(i--);
}
void main()
{
    TMOD=0x01; //定時(shí)器1工作在模式1
    TH0=(65536-50000)/256; //裝入初值,使定時(shí)器從50ms開(kāi)始計(jì)時(shí)
    TL0=(65536-50000)%256;
    ET0=1; //開(kāi)啟定時(shí)器1的中斷
    EA=1; //開(kāi)總中斷
    TR0=1; //啟動(dòng)定時(shí)器1
    while(1)
    {
        //主程序不執(zhí)行任何操作
    }
}
void Timer0() interrupt 1 //定時(shí)器1中斷函數(shù)
{
    static unsigned char i=0;
    TH0=(65536-50000)/256; //重新裝載初值,使定時(shí)器1從50ms開(kāi)始計(jì)時(shí)
    TL0=(65536-50000)%256;
    i++;
    if(i==20) //當(dāng)定時(shí)器1中斷20次,即1秒時(shí)
    {
        i=0;
        LED=!LED; //LED狀態(tài)取反
    }
}

以上代碼使用了定時(shí)器中斷來(lái)控制LED的閃爍。在這段代碼中,我們定義了一個(gè)定時(shí)器中斷函數(shù),來(lái)實(shí)現(xiàn)LED閃爍的時(shí)間間隔。當(dāng)定時(shí)器1中斷20次,即1秒時(shí),LED狀態(tài)取反。

方法4:使用PWM控制LED亮度

#include<reg52.h> //頭文件
sbit LED=P1^0; //定義LED
void main()
{
    TMOD=0x01; //定時(shí)器1工作在模式1
    TH0=0xFC; //裝入初值,使定時(shí)器1的工作頻率為10kHz
    TL0=0x67;
    EA=1; //開(kāi)總中斷
    ET0=1; //開(kāi)定時(shí)器1中斷
    TR0=1; //啟動(dòng)定時(shí)器1
    while(1)
    {
        for(unsigned char i=0;i<=99;i++) //PWM調(diào)節(jié)亮度的循環(huán)
        {
            if(i==LED) continue; //如果亮度相等,則跳過(guò)
            LED=i; //改變LED的亮度
            delay(10); //延時(shí)10ms
        }
    }
}
void Timer0() interrupt 1 //定時(shí)器1中斷函數(shù)
{
    static unsigned char cnt=0;
    cnt++;
    if(cnt==100) cnt=0; //當(dāng)計(jì)數(shù)到100時(shí),重新計(jì)數(shù)
    if(cnt<LED) LED=0; //當(dāng)計(jì)數(shù)小于LED的亮度時(shí),LED亮
    else LED=1; //當(dāng)計(jì)數(shù)大于LED的亮度時(shí),LED滅
}

以上代碼使用了PWM來(lái)控制LED的亮度。在這段代碼中,我們定義了一個(gè)定時(shí)器中斷函數(shù)和一個(gè)PWM調(diào)節(jié)亮度的循環(huán)。當(dāng)計(jì)數(shù)小于LED的亮度時(shí),LED亮;當(dāng)計(jì)數(shù)大于LED的亮度時(shí),LED滅。

方法5:使用移位寄存器控制多個(gè)LED的亮滅

#include<reg52.h> //頭文件
void main()
{
    unsigned char LED[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00}; //定義8個(gè)LED的狀態(tài)
    unsigned char i,j;
    while(1)
    {
        for(i=0;i<8;i++) //移位循環(huán)
        {
            for(j=0;j<8;j++) //輸出循環(huán)
            {
                P1=LED[j]; //輸出LED的狀態(tài)
                delay(10); //延時(shí)10ms
            }
            LED[i]=LED[i]<<1; //移位
            if(LED[i]==0) LED[i]=0x80; //當(dāng)最高位為0時(shí),將最低位設(shè)為1
        }
    }
}

以上代碼使用了移位寄存器來(lái)控制多個(gè)LED的亮滅。在這段代碼中,我們定義了一個(gè)LED數(shù)組和一個(gè)移位循環(huán)和一個(gè)輸出循環(huán)。當(dāng)最高位為0時(shí),將最低位設(shè)為1,以實(shí)現(xiàn)LED的循環(huán)顯示。

結(jié)論

本文介紹了用各種不同的方法和算法點(diǎn)亮51單片機(jī)LED的程序,包括使用GPIO口點(diǎn)亮LED、使用定時(shí)器控制LED閃爍、使用中斷控制LED閃爍、使用PWM控制LED亮度和使用移位寄存器控制多個(gè)LED的亮滅。以上代碼都有詳細(xì)的注釋和說(shuō)明,希望對(duì)讀者有所幫助。

  • 方法1:使用GPIO口點(diǎn)亮LED - 簡(jiǎn)單
  • 方法2:使用定時(shí)器控制LED閃爍 - 中等
  • 方法3:使用中斷控制LED閃爍 - 高級(jí)
  • 方法4:使用PWM控制LED亮度 - 高級(jí)
  • 方法5:使用移位寄存器控制多個(gè)LED的亮滅 - 高級(jí)

在實(shí)際編程中,這些程序都可以用于控制LED燈的亮滅和閃爍,適用于各種不同的場(chǎng)景。例如,方法1可以用于簡(jiǎn)單的LED控制,方法2可以用于制作閃爍的警示燈,方法3可以用于制作節(jié)奏感強(qiáng)的LED燈效,方法4可以用于制作可調(diào)節(jié)亮度的LED燈,方法5可以用于制作多個(gè)LED燈的循環(huán)顯示效果。這些程序的難度和應(yīng)用場(chǎng)景有所不同,可以根據(jù)具體需求選擇合適的方法和算法。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-702389.html

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

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(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ī)】點(diǎn)亮LED燈(四種形式)

    【51單片機(jī)】點(diǎn)亮LED燈(四種形式)

    ??作者簡(jiǎn)介:大家好,我是澤奀。全棧領(lǐng)域新星創(chuàng)作者??? ??個(gè)人主頁(yè):weixin_52632755的博客_澤奀_CSDN博客 ??點(diǎn)贊?評(píng)論?收藏 == 養(yǎng)成習(xí)慣 ?? ??本系列嗶哩嗶哩江科大51單片機(jī)的視頻為主以及自己的總結(jié)梳理??? https://blog.csdn.net/weixin_52632755/category_11316267.html 介紹兩個(gè)比

    2023年04月13日
    瀏覽(19)
  • 如何使用單片機(jī)點(diǎn)亮LED燈,并使用按鍵控制[51單片機(jī)]

    如何使用單片機(jī)點(diǎn)亮LED燈,并使用按鍵控制[51單片機(jī)]

    首先先看一下我的板子,如果我們板子不相同,可能操作也不太相同 我們就不講底層原理了,直接看,我們可以看到板子上有?8個(gè)LED燈 ? 那這個(gè)8個(gè)LED用什么來(lái)控制呢,我們先看底層的線(xiàn)路圖,所有的LEDD都連接到了P2帶后綴的接口上, 那么只需要操作這幾個(gè)接口的高低電頻,

    2024年02月05日
    瀏覽(29)
  • STM32/51單片機(jī)編程入門(mén)(點(diǎn)亮LED)

    STM32/51單片機(jī)編程入門(mén)(點(diǎn)亮LED)

    目錄 一、Proteus電路仿真軟件上的C51程序設(shè)計(jì)及仿真 1.原理圖繪制 2.Keil5上的51程序編寫(xiě) 3.仿真 二、安裝mdk5軟件和stm32包,完成一個(gè)stm32的簡(jiǎn)單程序 1.mdk5軟件中編寫(xiě)程序 2.stm32仿真程序調(diào)試 三、STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化設(shè)置的一般步驟

    2024年02月02日
    瀏覽(17)
  • 51單片機(jī)——LED 點(diǎn)陣點(diǎn)亮一個(gè)點(diǎn),小白詳解

    51單片機(jī)——LED 點(diǎn)陣點(diǎn)亮一個(gè)點(diǎn),小白詳解

    LED點(diǎn)陣介紹: ? ? ? ?LED點(diǎn)陣是由發(fā)光二極管排列組成的顯示器件,在我們生活中的電器中隨處可見(jiàn),被廣泛用于汽車(chē)報(bào)站器,廣告屏等。 ????????通常用用較多的是8*8點(diǎn)陣,然后使用多個(gè)8*8點(diǎn)陣組成不同分辨率的LED點(diǎn)陣顯示屏,比如16*16點(diǎn)陣可以使用4個(gè)8*8點(diǎn)陣構(gòu)成。因

    2024年02月09日
    瀏覽(23)
  • 51單片機(jī)點(diǎn)亮LED燈以及實(shí)現(xiàn)2盞LED燈的交替閃爍

    51單片機(jī)點(diǎn)亮LED燈以及實(shí)現(xiàn)2盞LED燈的交替閃爍

    點(diǎn)亮LED燈,根據(jù)單片機(jī)原理圖 將LED燈1和LED燈2介入單片機(jī)的口設(shè)為低電平即可 代碼如下: #include “reg52.h” sbit led1= P3^7; void main() { led1 = 0;//給led1一個(gè)低電平,點(diǎn)亮 } 結(jié)果圖: 圖中有一盞LED燈為我這個(gè)51單片機(jī)自帶的電源接通燈,被代碼點(diǎn)亮的只有一盞 實(shí)現(xiàn)2盞LED燈的交替閃爍

    2024年02月07日
    瀏覽(21)
  • 51單片機(jī) | LED點(diǎn)陣實(shí)驗(yàn) | 點(diǎn)亮一個(gè)點(diǎn) | 顯示數(shù)字 | 顯示圖像

    51單片機(jī) | LED點(diǎn)陣實(shí)驗(yàn) | 點(diǎn)亮一個(gè)點(diǎn) | 顯示數(shù)字 | 顯示圖像

    ??開(kāi)發(fā)板上使用了 64 個(gè)紅色 LED 按照行列排布組成的 8*8 LED 點(diǎn)陣。下面介紹 LED 點(diǎn)陣的使用。 ?? LED 點(diǎn)陣 是由發(fā)光二極管排列組成的顯示器件,在我們?nèi)粘I畹碾娖髦须S處可見(jiàn),被廣泛應(yīng)用于汽車(chē)報(bào)站器,廣告屏等。如下所示: ??通常應(yīng)用較多的是 8*8 點(diǎn)陣,然后使

    2023年04月08日
    瀏覽(32)
  • 一周學(xué)完C51單片機(jī)(1)點(diǎn)亮LED燈以及按鍵控制

    一周學(xué)完C51單片機(jī)(1)點(diǎn)亮LED燈以及按鍵控制

    首先找到單片機(jī)的原理圖,找到LED模塊。我這里是P2口是連接了LED燈,通過(guò)此原理圖我們可以看到 我們只需將單片機(jī)的IO口置為低電平,就可以點(diǎn)亮LED燈。 因?yàn)榇a比較簡(jiǎn)單,我就分別展示一下代碼,一顆LED燈的亮滅,流水燈 延時(shí)函數(shù)可以通過(guò)小工具來(lái)實(shí)現(xiàn),選擇好系統(tǒng)的頻

    2024年02月08日
    瀏覽(25)
  • 單片機(jī)C語(yǔ)言實(shí)例:1、點(diǎn)亮LED的多種方法

    不管學(xué)習(xí)什么單片機(jī),通常點(diǎn)燈是邁入編程的第一步,點(diǎn)燈雖然簡(jiǎn)單,但是玩出花樣來(lái),需要的知識(shí)點(diǎn)還是不少的,本文歸納了15種點(diǎn)燈方式,看看自己會(huì)幾種,看看是否能幫到努力點(diǎn)燈的工程師們。 程序?qū)嵗?: 程序?qū)嵗?: 程序?qū)嵗?: 程序?qū)嵗?: 程序?qū)嵗?: 程序?qū)嵗?/p>

    2024年02月09日
    瀏覽(15)
  • 【74HC595】51單片機(jī)(普中A2開(kāi)發(fā)板)LED點(diǎn)陣屏點(diǎn)亮以及74HC595芯片的使用筆記

    【74HC595】51單片機(jī)(普中A2開(kāi)發(fā)板)LED點(diǎn)陣屏點(diǎn)亮以及74HC595芯片的使用筆記

    純小白寫(xiě)的文章,如有問(wèn)題,歡迎評(píng)論區(qū)討論,反駁,指正。 如果你只想了解74HC595如何使用,建議只看2.3。 通過(guò)查看普中A2開(kāi)發(fā)板的原理圖(圖1)可以知道,通過(guò)P0(P0_0、P0_1…P0_7)口和DPa、DPb…DPh來(lái)控制哪一顆LED點(diǎn)亮。我這個(gè)開(kāi)發(fā)板上的點(diǎn)陣模塊沒(méi)有按照他給的原理圖上

    2024年02月05日
    瀏覽(112)
  • 51單片機(jī)定時(shí)器。實(shí)驗(yàn)(六):定時(shí)器實(shí)驗(yàn):使用AT89S51單片機(jī)的定時(shí)器/計(jì)數(shù)器T1控制LED每隔3秒點(diǎn)亮一次(即亮3秒,滅3秒,如此反復(fù))

    51單片機(jī)定時(shí)器。實(shí)驗(yàn)(六):定時(shí)器實(shí)驗(yàn):使用AT89S51單片機(jī)的定時(shí)器/計(jì)數(shù)器T1控制LED每隔3秒點(diǎn)亮一次(即亮3秒,滅3秒,如此反復(fù))

    目錄 題目: proteus仿真: 代碼: 分析題目: 定時(shí)器: 工作方式寄存器TMOD設(shè)置: 控制寄存器TCON設(shè)置: 設(shè)定計(jì)數(shù)初值: ?定時(shí)器四種工作方式: 實(shí)驗(yàn)過(guò)程講解: 配置定時(shí)器:設(shè)置TMOD寄存器 設(shè)定定時(shí)器初值:THx和TLx(x=0,1) 設(shè)置IE寄存器: 啟動(dòng)定時(shí)器: 中斷檢測(cè): 使用

    2023年04月20日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包