找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3220|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)定時(shí)方式點(diǎn)亮LED燈閃爍C程序語(yǔ)言

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 KeepYn 于 2021-6-20 18:54 編輯

配置定時(shí)器0的定時(shí)模式,控制點(diǎn)亮LED燈閃爍
實(shí)現(xiàn)現(xiàn)象為開(kāi)發(fā)板上的紅藍(lán)綠LED燈交替閃爍
以下代碼經(jīng)過(guò)實(shí)際驗(yàn)證
艾克姆科技STC15W4K64的一塊系統(tǒng)開(kāi)發(fā)板
話不多說(shuō),直接上代碼(模塊化)

主函數(shù)代碼如下
#include "timer.h"
void main()
{
        unsigned char time = 0;    //定義計(jì)數(shù)次數(shù)的數(shù)據(jù)類(lèi)型
        P0M0 = 0; P0M1 =1;    //配置P0為準(zhǔn)雙向模式
        Timer0_Init();        //調(diào)用初始化函數(shù),初始化定時(shí)器0
        while(1)
        {   
                if(TF0 == 1)      //T0溢出標(biāo)志位,溢出后硬件置 1 (檢測(cè)定時(shí)器是否溢出)
                {   
                        TF0  = 0;     //軟件查詢(xún),軟件清 0
                        time++;       //記錄溢出的次數(shù)
                        if(time == 30)   //0.3s
                        {   LED1 = 1;
                                LED2 = 1;
                            LED0 = 0;
                        }
                        if(time == 60)  //0.6s
                        {   LED0  = 1;
                                LED2  = 0;
                        }
                        if(time == 90)  //0.9s
                        {   LED2  = 1;
                                LED1  = 0;
                                time  = 0;
                        }
                }
        }
}


有關(guān)定時(shí)器的點(diǎn)C代碼如下
#include "timer.h"

void Timer0_Init(void)  //溢出定時(shí)的時(shí)間為10ms
{
        TMOD = 0X00;   //工作模式寄存器,設(shè)置為啟動(dòng)禁止僅由TR0控制,設(shè)置為定時(shí)模式,工作模式設(shè)置為模式0
        TH0  = 0XDC;   //給加法計(jì)數(shù)器附初值 0XDC(65536-9213)/256
        TL0  = 0X00;   //                       (65536-9213)%256
        TR0  = 1;      //TR0 T0的運(yùn)行控制位,等于1開(kāi)始計(jì)數(shù)
}

```
定時(shí)器點(diǎn)H代碼如下
#ifndef __TIMER_H__
#define __TIMER_H__

#include <STC15W.h>      //15單片機(jī)頭文件

        sbit LED0 = P0^5;    //LED燈的位定義(藍(lán))
        sbit LED1 = P0^6;    // 綠
        sbit LED2 = P0^7;    // 紅

void Timer0_Init(void);  

#endif
以下是驗(yàn)證圖展示


FF02FF7E403FFBDECA2EC57830E51104.jpg (176.61 KB, 下載次數(shù): 54)

FF02FF7E403FFBDECA2EC57830E51104.jpg

81E64192B109512F4C7F6C0910932BC3.jpg (228.1 KB, 下載次數(shù): 67)

81E64192B109512F4C7F6C0910932BC3.jpg

5B04F57F3461145F08D49D9B8B15293B.jpg (210.36 KB, 下載次數(shù): 54)

5B04F57F3461145F08D49D9B8B15293B.jpg

用定時(shí)器實(shí)現(xiàn)小燈閃爍(寄存器).rar

21.1 KB, 下載次數(shù): 6, 下載積分: 黑幣 -5

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表