国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標(biāo)題:
51單片機(jī)定時(shí)方式點(diǎn)亮LED燈閃爍C語言程序代碼
[打印本頁]
作者:
coolfire
時(shí)間:
2021-6-5 01:18
標(biāo)題:
51單片機(jī)定時(shí)方式點(diǎn)亮LED燈閃爍C語言程序代碼
配置定時(shí)器0的定時(shí)模式,控制點(diǎn)亮LED燈閃爍,實(shí)現(xiàn)現(xiàn)象為開發(fā)板上的紅藍(lán)綠LED燈交替閃爍
以下代碼經(jīng)過實(shí)際驗(yàn)證 STC15W4K64的一塊系統(tǒng)開發(fā)板
1.png
(204.29 KB)
下載附件
2021-6-5 01:18 上傳
話不多說,直接上代碼(模塊化)
主函數(shù)代碼如下
#include "timer.h"
void main()
{
unsigned char time = 0; //定義計(jì)數(shù)次數(shù)的數(shù)據(jù)類型
P0M0 = 0; P0M1 =1; //配置P0為準(zhǔn)雙向模式
Timer0_Init(); //調(diào)用初始化函數(shù),初始化定時(shí)器0
while(1)
{
if(TF0 == 1) //T0溢出標(biāo)志位,溢出后硬件置 1 (檢測定時(shí)器是否溢出)
{
TF0 = 0; //軟件查詢,軟件清 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開始計(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
復(fù)制代碼
完整代碼:
用定時(shí)器實(shí)現(xiàn)小燈閃爍(寄存器).rar
(21.1 KB, 售價(jià): 2 E幣)
2021-6-5 01:17 上傳
點(diǎn)擊文件名下載附件
售價(jià): 2 E幣
[記錄]
[
購買
]
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0