配置定時器0的定時模式,控制點亮LED燈閃爍,實現現象為開發板上的紅藍綠LED燈交替閃爍
以下代碼經過實際驗證 STC15W4K64的一塊系統開發板
1.png (204.29 KB)
下載附件
2021-6-5 01:18 上傳
話不多說,直接上代碼(模塊化)
- 主函數代碼如下
- #include "timer.h"
- void main()
- {
- unsigned char time = 0; //定義計數次數的數據類型
- P0M0 = 0; P0M1 =1; //配置P0為準雙向模式
- Timer0_Init(); //調用初始化函數,初始化定時器0
- while(1)
- {
- if(TF0 == 1) //T0溢出標志位,溢出后硬件置 1 (檢測定時器是否溢出)
- {
- TF0 = 0; //軟件查詢,軟件清 0
- time++; //記錄溢出的次數
- 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;
- }
- }
- }
- }
- 有關定時器的點C代碼如下
- #include "timer.h"
- void Timer0_Init(void) //溢出定時的時間為10ms
- {
- TMOD = 0X00; //工作模式寄存器,設置為啟動禁止僅由TR0控制,設置為定時模式,工作模式設置為模式0
- TH0 = 0XDC; //給加法計數器附初值 0XDC(65536-9213)/256
- TL0 = 0X00; // (65536-9213)%256
- TR0 = 1; //TR0 T0的運行控制位,等于1開始計數
- }
- ```
- 定時器點H代碼如下
- #ifndef __TIMER_H__
- #define __TIMER_H__
- #include <STC15W.h> //15單片機頭文件
- sbit LED0 = P0^5; //LED燈的位定義(藍)
- sbit LED1 = P0^6; // 綠
- sbit LED2 = P0^7; // 紅
- void Timer0_Init(void);
- #endif
復制代碼 完整代碼:
用定時器實現小燈閃爍(寄存器).rar
(21.1 KB, 售價: 2 E幣)
2021-6-5 01:17 上傳
點擊文件名下載附件
售價: 2 E幣 [記錄]
[ 購買]
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|