1. 程式人生 > >51微控制器定時器實現LED閃爍

51微控制器定時器實現LED閃爍

要啟用一個定時器,先要開啟定時器,然後產生中斷

系統中斷:

初始化程式應完成如下工作:

對TMOD賦值,以確定T0和T1的工作方式。

計算初值,並將其寫入TH0、TL0或TH1、TL1。

中斷方式時,則對EA賦值,開放定時器中斷。

使TR0或TR1置位,啟動定時/計數器定時或計數。

#include <reg52.h>
/************ 定時器+中斷控制led翻轉 ***********/

sbit LED = P0^0;

typedef unsigned int u16;
typedef unsigned char u8;

void timer_init(){
    TMOD 
|= 0x01; //定時器工作方式1,啟用T0定時器, GATE位為0,用TCON的TR0控制T0定時器的啟動 //設定定時器的初始計數值 //計算方法 //假設定時器為1ms,一個機器週期為 1/微控制器的晶振頻率 即: 1/12M = 1us //而1個機器週期 = 12個時鐘週期 所以: n x 機器週期 = 1ms ===> n x 1us = 1ms //所以n = 1000,也就是經過1000個機器週期,定時器要溢位(從0開始計數) //所以定時器的初始值為65535 - 1000 + 1 = 64536 ===> 0xFC18 TH0 = 0xFC; TL0
= 0x18; EA = 1; //總中斷開關 ET0 = 1; //T0中斷 TR0 = 1;//啟動T0定時器 } void trigger_timer0() interrupt 1{ static u16 i = 0; TH0 = 0xFC; TL0 = 0x18; i++; if( i == 1000 ) { //1秒 i = 0; LED = ~LED; } } void main(){ timer_init(); while( 1 ); }

相關推薦

51微控制器定時實現LED閃爍

要啟用一個定時器,先要開啟定時器,然後產生中斷 系統中斷: 初始化程式應完成如下工作: 對TMOD賦值,以確定T0和T1的工作方式。 計算初值,並將其寫入TH0、TL0或TH1、TL1。 中斷方式時,則對EA賦值,開放定時器中斷。 使TR0或TR1置位,啟動定時/計數器定時或計數。

imx6q核心定時實現led閃爍

/************************************************************************* > File Name: led_drv.c > Author: XXDK > Email: [em

51微控制器【二】LED閃爍及流水燈附帶c語言位操作

void main(void) { while (1) { gLed1 = 0; // 點亮LED Delay(); // 延時一段時間 gLed1 = 1; // 熄滅LED Delay(); // 延時一段時間 } } voi

51微控制器定時的原理與使用

定時器是微控制器的重要功能模組之一,在檢測、控制領域有廣泛應用。定時器常用作定時時鐘,以實現定時檢測,定時響應、定時控制,並且可以產生ms寬的脈衝訊號,驅動步進電機。定時和計數的最終功能都是通過計數實現,若計數的事件源是週期固定的脈衝則可實現定時功能,否則只能實現計數功能。

51微控制器定時中斷程式

程式執行開始,A燈先亮5秒,然後滅了到B燈亮5秒,B再滅再到C燈亮5秒,C滅,程式結束,不再執行。這程式該怎麼寫?用定時器精確定時……晶振11.092MHZ。 #include "REG52.H" /* * */ sbit LED_A = P1^0; sbit

51微控制器定時中斷控制燈1S亮的程式

#include   <AT89X51.H>unsigned char i=0,j=0; void main(){ TMOD=0X01; TH0=0X4c; TL0=0X00; TR0=1;ET0=1;EA=1;P0_3=1;  while(1)   {};} t

51微控制器定時/計數器的使用程式與分析

定時器的使用能夠使延時更加的準確定時器/計數器由振盪器,12分頻電路,多路轉換開關MUX,16位的加1計數器T0和16位的T1暫存器組成。定時器/計數器的核心是16位的加1計數器。1、計數功能:對外部脈衝進行計數。外部脈衝通過T0(P3.4)、T1(P.5)兩個訊號引腳輸入,

51微控制器--定時測量脈寬

學51也算有一段時間了 以前學的相當的粗糙 很多原理性的東西 都不知道 今天上課的時候聽老師說  這個LOW的微控制器可以測量脈寬   去手冊上看了一下 加上課本上說的  臥槽 真的可以 哈哈   直

51微控制器定時的原理與使用(二)

承接上一節51微控制器定時器的原理與使用,這節我們繼續講述怎麼用定時器做一個電子鐘,PWM脈衝和測電阻。先從實驗三講起吧! 實驗三、定時器測電阻 測量如下圖Rx的電阻並顯示在數碼管上。 測量思路為: 1、電容C1放電,P2.5與P2.6設定為輸入模式,P2.7設定為推輓輸

51微控制器定時

sTC微控制器定時器的使用可以說非常簡單,只要掌握原理,有一點的C語言基礎就行了。要點有以下幾個: 1.      一定要知道英文縮寫的原形,這樣暫存器的名字就不用記了。 理解是最好的記憶方法。好的教材一定會給出所有英文縮寫的原形。 2.      儘量用形像的方法記憶。

51微控制器定時總結

1.定時器TMOD暫存器 C/T這一位用來控制定時器工作方式。本來T上面有一橫表示低電平有效。c為計數,也即是及外部脈衝的個數,也會是定時器溢位及中斷。GATE這一位用來設定外部中斷脈衝是否可啟動定時器。 意思就是當GATE=1時,定時器的啟動有二個位控制,即TR0和int

STM32cubeMX 基於stm32的定時實現定時1秒LED閃爍

軟體: STM32CubeMX V4.25.0   keil_u5 韌體庫版本: STM32Cube FW_F1 V1.6.1 硬體: OneNet 麒麟座V1.4 在STM32CubeMX中新建專案,選擇正確的MCU型號  

定時查詢法和定時中斷法實現LED閃爍

1、定時器查詢法實現LED閃爍 ;2013/4/23 ;延時1s閃爍 org 0000h ajmp start org 30h

定時中斷實現LED閃爍

#include <reg52.h> typedef unsigned char u8; typedef unsigned int u16; sbit led=P2^0; void T

STM32-自學筆記(9.SysTick定時控制LED閃爍,程式用到的庫函式介紹)

1.SysTick_CLKSourceConfig 函式原型:viod SysTick_CLKSourceConfig (u32 SysTick_CLKSource) 功能:選擇SysTick的時鐘源 引數:SysTick_CLKSource:SysTick時鐘源 引數:S

STM32-自學筆記(8.使用STM32的SysTick定時控制LED閃爍

SysTick定時器,被稱為“系統節拍時鐘”。SysTick屬於ARM  Cortex-M3核心的一個內設,STM32也帶有SysTick定時器。 SysTick定時器的基本結構 SysTick工作原理: SysTick從時鐘源介面獲得時鐘驅動 從重灌暫存器將

android物聯網初步,利用手機藍芽與微控制器通訊,實現led燈開關和定時

                轉載請註明出處。                 這次是一個課程設計,利用微控制器開發一個物聯網系統。我們利用了手機藍芽與單片機板子上的藍芽通訊,通過 控制訊號來控制微控制器上led燈的亮滅和定時。  網上有很多的搜尋藍芽的例程,大家可以自己

定時控制Led閃爍

實驗目的 閃燈程式在嵌入式學習中猶如“Hello World!”在C/C++語言學習中一樣經典。它以簡單的方式引導了無數的嵌入式愛好者。通過本節的學習你可以基本瞭解STM32的GPIO以及基本定時器的使用。 硬體說明 本例程需要一個定時器和一個LED,其中LED就是擴充套件板上的紅色LED接在PD3上且正極接

DSP:C54x定時及使用定時產生led的1s週期閃爍

一、C54x的片內定時器是一個可程式設計的定時器,同時可以用於週期性地產生中斷,為16位計數器。定時器主要由定時器暫存器TIM、定時週期暫存器PRD、定時控制暫存器TCR(包括分頻係數TDDR、預標定

定時/中斷/PWM】利用一個定時實現一路PWM波的輸出---點亮LED

------------------------------------------湊熱鬧的分割線------------------------------------------------ /*點亮led0(P1^0)和led7(P1^7) 其中led0以5v電壓正