国产免费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. 主函數(shù)代碼如下
  2. #include "timer.h"
  3. void main()
  4. {
  5.         unsigned char time = 0;    //定義計(jì)數(shù)次數(shù)的數(shù)據(jù)類型
  6.         P0M0 = 0; P0M1 =1;    //配置P0為準(zhǔn)雙向模式
  7.         Timer0_Init();        //調(diào)用初始化函數(shù),初始化定時(shí)器0
  8.         while(1)
  9.         {   
  10.                 if(TF0 == 1)      //T0溢出標(biāo)志位,溢出后硬件置 1 (檢測定時(shí)器是否溢出)
  11.                 {   
  12.                         TF0  = 0;     //軟件查詢,軟件清 0
  13.                         time++;       //記錄溢出的次數(shù)
  14.                         if(time == 30)   //0.3s
  15.                         {   LED1 = 1;
  16.                                 LED2 = 1;
  17.                             LED0 = 0;
  18.                         }
  19.                         if(time == 60)  //0.6s
  20.                         {   LED0  = 1;
  21.                                 LED2  = 0;
  22.                         }
  23.                         if(time == 90)  //0.9s
  24.                         {   LED2  = 1;
  25.                                 LED1  = 0;
  26.                                 time  = 0;
  27.                         }
  28.                 }
  29.         }
  30. }


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

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

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

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

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

  48. void Timer0_Init(void);  

  49. #endif
復(fù)制代碼
完整代碼: 用定時(shí)器實(shí)現(xiàn)小燈閃爍(寄存器).rar (21.1 KB, 售價(jià): 2 E幣)






歡迎光臨 ELEOK (http://m.afoofa.cn/) Powered by Discuz! X5.0