国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

51單片機(jī)-定時(shí)器(簡(jiǎn)易時(shí)鐘的實(shí)現(xiàn))

這篇具有很好參考價(jià)值的文章主要介紹了51單片機(jī)-定時(shí)器(簡(jiǎn)易時(shí)鐘的實(shí)現(xiàn))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


前言

最近在學(xué)習(xí)51單片機(jī),學(xué)到了定時(shí)器這塊,由于自己的基礎(chǔ)不太扎實(shí),在這方面花了很多時(shí)間,這里通過(guò)對(duì)定時(shí)器和中斷的介紹,用簡(jiǎn)易時(shí)鐘這個(gè)例子來(lái)對(duì)學(xué)習(xí)的內(nèi)容進(jìn)行加深鞏固,把自己的經(jīng)驗(yàn)分享給大家,希望對(duì)大家能夠有幫助。


一、定時(shí)器的功能以及定時(shí)器的結(jié)構(gòu)

定時(shí)器的功能

其實(shí)就是單片機(jī)的內(nèi)部,通過(guò)系統(tǒng)時(shí)鐘的每一個(gè)機(jī)器周期產(chǎn)生一個(gè)記數(shù)脈沖,即每一個(gè)機(jī)器周期計(jì)數(shù)器加一。
比如,這里我的實(shí)驗(yàn)板的晶振是12MHZ,1MHZ信號(hào)每個(gè)脈沖的持續(xù)時(shí)間為1us,如果定時(shí)器T0對(duì)1MHZ的信號(hào)進(jìn)行計(jì)數(shù),從0~65536us,當(dāng)達(dá)到最大的65536us的時(shí)候,定時(shí)器計(jì)數(shù)達(dá)到最大值,會(huì)溢出,于是產(chǎn)生中斷信號(hào),向中斷系統(tǒng)申請(qǐng)中斷,中斷系統(tǒng)接受中斷請(qǐng)求,執(zhí)行中斷子程序。

定時(shí)器的結(jié)構(gòu)

定時(shí)器的結(jié)構(gòu)如下圖所示,主要包括

  • 兩個(gè)定時(shí)器/計(jì)數(shù)器。T0和T1,每個(gè)定時(shí)器/計(jì)數(shù)器都是由兩個(gè)8位的計(jì)數(shù)器所構(gòu)成的16位計(jì)數(shù)器。
  • TCON 寄存器。TCON為控制寄存器,用來(lái)控制兩個(gè)定時(shí)器/計(jì)數(shù)器的啟動(dòng)和停止。
  • TMOD寄存器。TMOD為工作方式控制寄存器,用來(lái)設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式。

單片機(jī)定時(shí)器代碼,51單片機(jī),單片機(jī),51單片機(jī),stm32,c語(yǔ)言


二、定時(shí)器的控制

工作模式寄存器TMOD

TMOD為工作方式控制寄存器,用來(lái)設(shè)置定時(shí)器/計(jì)數(shù)器的工作方式。如下圖所示。
通過(guò)配置TMOD寄存器來(lái)對(duì)定時(shí)器T0和T1的工作模式進(jìn)行控制。
注意這里TMOD的地址為89H,不可位尋址。
TMOD的高四位用于T1,低四位用于T0。
其中主要各位的功能:

  • C/-T,定時(shí)器/計(jì)數(shù)器的選擇控制位。置0,為定時(shí)器模式,置1,為計(jì)數(shù)器模式。
  • M1和M0,模式選擇控制位,通過(guò)對(duì)兩位進(jìn)行賦值,可以選擇定時(shí)器的4種模式。00,模式0,13位計(jì)數(shù)器。01,模式1,16位計(jì)數(shù)器。10,模式2,自動(dòng)重裝8位計(jì)數(shù)器,11,模式3。
  • GATE,置1后,就可由TR0或TR1單獨(dú)控制定時(shí)器。
    單片機(jī)定時(shí)器代碼,51單片機(jī),單片機(jī),51單片機(jī),stm32,c語(yǔ)言

控制寄存器TCON

TCON寄存器,地址為88H,可以字節(jié)尋址,也可位尋址。寄存器各位如下圖所示。
其中各位的功能:

  • TF1(TF0)。定時(shí)器T1(T0)溢出標(biāo)志位。當(dāng)T1(T0)溢出時(shí),硬件自動(dòng)使TF1(TF0)置1,并且向cpu申請(qǐng)中斷。當(dāng)Cpu響應(yīng)中斷,進(jìn)入中斷服務(wù)子程序后,TF1(TF0)由硬件自動(dòng)清0,當(dāng)然也可以用軟件寫(xiě)代碼清0。
  • TR0(TR1)。定時(shí)器T1(T0)運(yùn)行控制位,置1,定時(shí)器T1(T0)就開(kāi)始運(yùn)行,計(jì)數(shù)。
  • 后面幾個(gè)是外部中斷控制位。
    單片機(jī)定時(shí)器代碼,51單片機(jī),單片機(jī),51單片機(jī),stm32,c語(yǔ)言

寫(xiě)代碼來(lái)初始化定時(shí)器

定時(shí)器的配置主要是通過(guò)對(duì)兩個(gè)寄存器TMOD和TCON進(jìn)行配置,這里我通過(guò)配置定時(shí)器0,模式1引發(fā)中斷,配置其他的定時(shí)器或者是不同的模式都是大同小異??纯茨J?的結(jié)構(gòu)。
模式1的結(jié)構(gòu)
單片機(jī)定時(shí)器代碼,51單片機(jī),單片機(jī),51單片機(jī),stm32,c語(yǔ)言

好,我們首先來(lái)配置寄存器TMOD,根據(jù)圖來(lái)配置。
單片機(jī)定時(shí)器代碼,51單片機(jī),單片機(jī),51單片機(jī),stm32,c語(yǔ)言
只需要配置定時(shí)器0,那么高四位就不管了,置0,而我們?cè)诳刂贫〞r(shí)器0的低四位中配置為0001
GATE=0; //直接由TR0控制定時(shí)器0的開(kāi)啟
C/-T=0; //選擇定時(shí)器模式
M1=0; //選擇模式1
M2=1;

繼續(xù)配置寄存器TCON。
單片機(jī)定時(shí)器代碼,51單片機(jī),單片機(jī),51單片機(jī),stm32,c語(yǔ)言
只需要配置定時(shí)器0相關(guān)的部分就可以了,再一個(gè),TCON寄存器是可位尋址的,所以只需要單獨(dú)對(duì)其中的某一位進(jìn)行置值就可以了。
所以:
TF0=0; //定時(shí)器0溢出控制標(biāo)志,當(dāng)計(jì)數(shù)到溢出65536us時(shí),就會(huì)置1。
TR0=1; //定時(shí)器0啟動(dòng),開(kāi)啟計(jì)時(shí)。

配置中斷
當(dāng)計(jì)數(shù)到溢出后,就會(huì)向cpu發(fā)出中斷請(qǐng)求,申請(qǐng)中斷,進(jìn)入中斷子程序。然后出來(lái),TF0由1->0,然后循環(huán)循環(huán)。
所以:
ET0=1; //中斷的配置
EA=1;
PT0=0;


三、定時(shí)器引發(fā)中斷

簡(jiǎn)易時(shí)鐘

使用定時(shí)器,采用LCD1602,實(shí)現(xiàn)簡(jiǎn)易時(shí)鐘,秒,分,時(shí)。
下面是源代碼:

主程序main.c

#include <REGX52.H>
#include "Delay.h"
#include "Timer0.h"
#include "LCD1602.h"
unsigned char sec=55,min=59,hour=23;
void main()
{
	LCD_Init();  //LCD初始化
	LCD_ShowString(1,1,"COLCK:");
	Timer0Init();  //定時(shí)器0初始化
	while(1)
	{
		LCD_ShowNum(2,1,hour,2); 
		LCD_ShowString(2,3,":");
		LCD_ShowNum(2,4,min,2);
		LCD_ShowString(2,6,":");
		LCD_ShowNum(2,7,sec,2);
	}
}


void TimerRoutine() interrupt 1
{
	static unsigned int T0Count;
	//當(dāng)觸發(fā)中斷后,每次中斷結(jié)束后,初始值還是為64535 即1ms
	TL0 = 0x66;		//設(shè)置定時(shí)初值
	TH0 = 0xFC;		//設(shè)置定時(shí)初值
	T0Count++;
	if(T0Count>=1000)  //一次是1ms,*1000就是一秒    
	{
		T0Count=0;
		sec++;
		if(sec>=60)
		{
			sec=0;
			min++;
			if(min>=60)
			{
				min=0;
				hour++;
				if(hour>=24)
				{
					hour=0;
					sec=0;
					min=0;
				}
			}
		}
	}
}

延時(shí)函數(shù)Delay.c

//延時(shí)
void Delay(unsigned char xms)		//@11.0592MHz
{
	unsigned char i, j;

	while(xms--)
	{
		//_nop_();
	i = 2;
	j = 199;
	do
	{
		while (--j);
	} while (--i);
	}
}

控制LCD162模塊LCD1602.c

雖然還不怎么懂這個(gè)模塊,但是可以直接用,模塊都寫(xiě)好了的。后面應(yīng)該會(huì)弄懂各個(gè)函數(shù)功能如何實(shí)現(xiàn)。

#include <REGX52.H>

//引腳配置:
sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^7;
#define LCD_DataPort P0

//函數(shù)定義:
/**
  * @brief  LCD1602延時(shí)函數(shù),12MHz調(diào)用可延時(shí)1ms
  * @param  無(wú)
  * @retval 無(wú)
  */
void LCD_Delay()
{
	unsigned char i, j;

	i = 2;
	j = 239;
	do
	{
		while (--j);
	} while (--i);
}

/**
  * @brief  LCD1602寫(xiě)命令
  * @param  Command 要寫(xiě)入的命令
  * @retval 無(wú)
  */
void LCD_WriteCommand(unsigned char Command)
{
	LCD_RS=0;
	LCD_RW=0;
	LCD_DataPort=Command;
	LCD_EN=1;
	LCD_Delay();
	LCD_EN=0;
	LCD_Delay();
}

/**
  * @brief  LCD1602寫(xiě)數(shù)據(jù)
  * @param  Data 要寫(xiě)入的數(shù)據(jù)
  * @retval 無(wú)
  */
void LCD_WriteData(unsigned char Data)
{
	LCD_RS=1;
	LCD_RW=0;
	LCD_DataPort=Data;
	LCD_EN=1;
	LCD_Delay();
	LCD_EN=0;
	LCD_Delay();
}

/**
  * @brief  LCD1602設(shè)置光標(biāo)位置
  * @param  Line 行位置,范圍:1~2
  * @param  Column 列位置,范圍:1~16
  * @retval 無(wú)
  */
void LCD_SetCursor(unsigned char Line,unsigned char Column)
{
	if(Line==1)
	{
		LCD_WriteCommand(0x80|(Column-1));
	}
	else if(Line==2)
	{
		LCD_WriteCommand(0x80|(Column-1+0x40));
	}
}

/**
  * @brief  LCD1602初始化函數(shù)
  * @param  無(wú)
  * @retval 無(wú)
  */
void LCD_Init()
{
	LCD_WriteCommand(0x38);//八位數(shù)據(jù)接口,兩行顯示,5*7點(diǎn)陣
	LCD_WriteCommand(0x0c);//顯示開(kāi),光標(biāo)關(guān),閃爍關(guān)
	LCD_WriteCommand(0x06);//數(shù)據(jù)讀寫(xiě)操作后,光標(biāo)自動(dòng)加一,畫(huà)面不動(dòng)
	LCD_WriteCommand(0x01);//光標(biāo)復(fù)位,清屏
}

/**
  * @brief  在LCD1602指定位置上顯示一個(gè)字符
  * @param  Line 行位置,范圍:1~2
  * @param  Column 列位置,范圍:1~16
  * @param  Char 要顯示的字符
  * @retval 無(wú)
  */
void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char)
{
	LCD_SetCursor(Line,Column);
	LCD_WriteData(Char);
}

/**
  * @brief  在LCD1602指定位置開(kāi)始顯示所給字符串
  * @param  Line 起始行位置,范圍:1~2
  * @param  Column 起始列位置,范圍:1~16
  * @param  String 要顯示的字符串
  * @retval 無(wú)
  */
void LCD_ShowString(unsigned char Line,unsigned char Column,char *String)
{
	unsigned char i;
	LCD_SetCursor(Line,Column);
	for(i=0;String[i]!='\0';i++)
	{
		LCD_WriteData(String[i]);
	}
}

/**
  * @brief  返回值=X的Y次方
  */
int LCD_Pow(int X,int Y)
{
	unsigned char i;
	int Result=1;
	for(i=0;i<Y;i++)
	{
		Result*=X;
	}
	return Result;
}

/**
  * @brief  在LCD1602指定位置開(kāi)始顯示所給數(shù)字
  * @param  Line 起始行位置,范圍:1~2
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:0~65535
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~5
  * @retval 無(wú)
  */
void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{
	unsigned char i;
	LCD_SetCursor(Line,Column);
	for(i=Length;i>0;i--)
	{
		LCD_WriteData(Number/LCD_Pow(10,i-1)%10+'0');
	}
}

/**
  * @brief  在LCD1602指定位置開(kāi)始以有符號(hào)十進(jìn)制顯示所給數(shù)字
  * @param  Line 起始行位置,范圍:1~2
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:-32768~32767
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~5
  * @retval 無(wú)
  */
void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length)
{
	unsigned char i;
	unsigned int Number1;
	LCD_SetCursor(Line,Column);
	if(Number>=0)
	{
		LCD_WriteData('+');
		Number1=Number;
	}
	else
	{
		LCD_WriteData('-');
		Number1=-Number;
	}
	for(i=Length;i>0;i--)
	{
		LCD_WriteData(Number1/LCD_Pow(10,i-1)%10+'0');
	}
}

/**
  * @brief  在LCD1602指定位置開(kāi)始以十六進(jìn)制顯示所給數(shù)字
  * @param  Line 起始行位置,范圍:1~2
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:0~0xFFFF
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~4
  * @retval 無(wú)
  */
void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{
	unsigned char i,SingleNumber;
	LCD_SetCursor(Line,Column);
	for(i=Length;i>0;i--)
	{
		SingleNumber=Number/LCD_Pow(16,i-1)%16;
		if(SingleNumber<10)
		{
			LCD_WriteData(SingleNumber+'0');
		}
		else
		{
			LCD_WriteData(SingleNumber-10+'A');
		}
	}
}

/**
  * @brief  在LCD1602指定位置開(kāi)始以二進(jìn)制顯示所給數(shù)字
  * @param  Line 起始行位置,范圍:1~2
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:0~1111 1111 1111 1111
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~16
  * @retval 無(wú)
  */
void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
{
	unsigned char i;
	LCD_SetCursor(Line,Column);
	for(i=Length;i>0;i--)
	{
		LCD_WriteData(Number/LCD_Pow(2,i-1)%2+'0');
	}
}

定時(shí)器0模塊Timer0.c

主要是對(duì)定時(shí)器進(jìn)行配置,看了視頻第一遍沒(méi)有聽(tīng)懂,之后回頭再去看這個(gè)定時(shí)器,發(fā)現(xiàn)其實(shí)也沒(méi)有很難,只是自己的畏難情緒罷了。別放棄,你可以弄明白的,只是心理在作祟。

#include <REGX52.H>

/**
  * @brief 定時(shí)器0初始化
  * @param  
  * @retval 
  */
void Timer0Init()
{
	TMOD&=0xF0;  //高四位不變
	TMOD|=0x01;  //設(shè)置定時(shí)器模式1 以及設(shè)置為定時(shí)方式 0
	
	TL0 = 0x66;		//設(shè)置定時(shí)初值
	TH0 = 0xFC;		//設(shè)置定時(shí)初值
	
	TF0=0;  //定時(shí)器0溢出標(biāo)志位
	TR0=1;  //定時(shí)器0運(yùn)行控制位
	
	TF0=1;	//設(shè)置外部中斷
	ET0=1;
	EA=1;
	PT0=0;
}

實(shí)現(xiàn)效果

如下圖。
單片機(jī)定時(shí)器代碼,51單片機(jī),單片機(jī),51單片機(jī),stm32,c語(yǔ)言
自己卡著時(shí)間哈哈,還是慢了一秒。
單片機(jī)定時(shí)器代碼,51單片機(jī),單片機(jī),51單片機(jī),stm32,c語(yǔ)言


總結(jié)

定時(shí)器的配置主要是通過(guò)配置,兩個(gè)寄存器TMOD和TCON。
在配置時(shí),只要明確要配置的要求,一步一步來(lái),也不難的喔!

明確要配置的是定時(shí)器還是計(jì)數(shù)器,是模式1還是模式幾。TCON寄存器TR0(TR1)置1,定時(shí)器啟動(dòng)開(kāi)始運(yùn)行,和TF0(TF1),一般都是置0。然后如果要配置中斷的話,根據(jù)外部中斷查看手冊(cè)來(lái)進(jìn)行配置,一般也只需要配置幾個(gè)就可以了。

再者,一步一步好好學(xué),沒(méi)有什么難的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-780048.html

到了這里,關(guān)于51單片機(jī)-定時(shí)器(簡(jiǎn)易時(shí)鐘的實(shí)現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 51單片機(jī)定時(shí)器

    51單片機(jī)定時(shí)器

    目錄 前言 一、定時(shí)器的介紹及其作用 二、定時(shí)器的內(nèi)部構(gòu)造及其原理 計(jì)算機(jī)周期 定時(shí)器的工作模式與流程 定時(shí)器中斷相關(guān)寄存器 寄存器的配置 ?三、程序 總結(jié) ????????下面來(lái)介紹學(xué)習(xí)51單片機(jī)第一個(gè)也是最常用的片上外設(shè)——定時(shí)器。該硬件是集成在單片機(jī)內(nèi)部的,

    2024年02月05日
    瀏覽(25)
  • 51單片機(jī)定時(shí)器/計(jì)數(shù)器(定時(shí)器中斷)

    51單片機(jī)定時(shí)器/計(jì)數(shù)器(定時(shí)器中斷)

    實(shí)現(xiàn)功能 通過(guò)定時(shí)器終端控制LED燈 D1 間隔一秒閃爍 單片機(jī)型號(hào):STC89C52 定時(shí)器介紹 1、51單片機(jī)定時(shí)器原理 定時(shí)器實(shí)質(zhì)上就是一個(gè)加1計(jì)數(shù)器。它隨著計(jì)數(shù)器的輸入脈沖進(jìn)行自加1,也就是每來(lái)一個(gè)脈沖,計(jì)數(shù)器就自動(dòng)加1,,當(dāng)加到定數(shù)器滿時(shí),再輸入一個(gè)脈沖就使定時(shí)器回零

    2024年02月06日
    瀏覽(32)
  • 51單片機(jī)(七)定時(shí)器

    51單片機(jī)(七)定時(shí)器

    ?? 專欄簡(jiǎn)介:本專欄記錄了從零學(xué)習(xí)單片機(jī)的過(guò)程,其中包括51單片機(jī)和STM32單片機(jī)兩部分;建議先學(xué)習(xí)51單片機(jī),其是STM32等高級(jí)單片機(jī)的基礎(chǔ);這樣再學(xué)習(xí)STM32時(shí)才能融會(huì)貫通。 ?? 專欄適用人群 :適用于想要從零基礎(chǔ)開(kāi)始學(xué)習(xí)入門(mén)單片機(jī),且有一定C語(yǔ)言基礎(chǔ)的的童鞋

    2024年02月07日
    瀏覽(21)
  • 51單片機(jī)——定時(shí)器中斷

    51單片機(jī)——定時(shí)器中斷

    新版51單片機(jī)內(nèi)部有 3 個(gè)16位可編程的定時(shí)器/計(jì)數(shù)器,即定時(shí)器 T0,T1,T2 。他們既有 定時(shí) 功能又有 計(jì)數(shù) 功能,我們可以通過(guò)配置與它們相關(guān)的特殊功能寄存器可以選擇啟用定時(shí)功能或計(jì)數(shù)功能;其中需要注意的是,這個(gè)定時(shí)器系統(tǒng)是單片機(jī)內(nèi)部的一個(gè)獨(dú)立的硬件部分,它與

    2023年04月10日
    瀏覽(25)
  • 51單片機(jī)定時(shí)器實(shí)驗(yàn)(匯編)

    51單片機(jī)定時(shí)器實(shí)驗(yàn)(匯編)

    基于AT89C51的定時(shí)器實(shí)驗(yàn),匯編語(yǔ)言,分享出來(lái)是希望各位能共同學(xué)習(xí)。附上注釋希望能認(rèn)真研究,若有錯(cuò)誤請(qǐng)指出,謝謝。 一、實(shí)驗(yàn)?zāi)康?掌握單片機(jī)定時(shí)器的使用方法。 掌握中斷的使用方法。 二、實(shí)驗(yàn)內(nèi)容 采用中斷方式控制定時(shí)器。使得單片機(jī)P1.0引腳產(chǎn)生周期為1S的方波

    2024年02月11日
    瀏覽(21)
  • 51單片機(jī)PWM(定時(shí)器)

    51單片機(jī)PWM(定時(shí)器)

    目錄 前言 一、PWM的介紹 二、在定時(shí)器中配置PWM 三、代碼 ?總結(jié) ? ? ? ? PWM普遍應(yīng)用于慣性系統(tǒng),我們知道單片機(jī)幾乎只能輸出“1”和“0”兩種狀態(tài),即開(kāi)和關(guān),想要輸出模擬量是不太容易實(shí)現(xiàn)的,那么怎樣才能使單片機(jī)輸出平滑的線性信號(hào)呢?沒(méi)接觸過(guò)PWM的小伙伴可能第

    2024年02月09日
    瀏覽(19)
  • 51單片機(jī)之定時(shí)器篇

    51單片機(jī)之定時(shí)器篇

    首先,學(xué)好單片機(jī)必須要搞懂定時(shí)器,定時(shí)器是單片機(jī)重要的組成部分之一,總之,學(xué)不好定時(shí)器,單片機(jī)相當(dāng)于沒(méi)學(xué),下面就讓我介紹如何學(xué)好單片機(jī)定時(shí)器。 學(xué)習(xí)單片機(jī)首先要明白的: 1,51單片機(jī)有兩組定時(shí)器/計(jì)數(shù)器,既可以定時(shí),又可以計(jì)數(shù),總稱之定時(shí)器 2,單片

    2024年02月11日
    瀏覽(30)
  • 51單片機(jī) | 定時(shí)器中斷實(shí)驗(yàn)

    51單片機(jī) | 定時(shí)器中斷實(shí)驗(yàn)

    ??這一節(jié)介紹51單片機(jī)的定時(shí)器中斷。 STC89C5X 含有 3 個(gè)定時(shí)器:定時(shí)器 0、定時(shí)器 1、定時(shí)器 2(注意: 51 系列單片機(jī)一定有基本的 2 個(gè)定時(shí)器(定時(shí)器 0 和定時(shí)器 1),但不全有 3 個(gè)中斷,需要查看芯片手冊(cè),通常我們使用的是基本的 2 個(gè)定時(shí)器:定時(shí)器 0/1)。本節(jié)要實(shí)現(xiàn)

    2024年02月06日
    瀏覽(43)
  • 【51單片機(jī)】:定時(shí)器的詳解(包括對(duì)單片機(jī)定時(shí)解釋、各類定時(shí)方式,以及中斷方式)

    【51單片機(jī)】:定時(shí)器的詳解(包括對(duì)單片機(jī)定時(shí)解釋、各類定時(shí)方式,以及中斷方式)

    ? ? ? ? ? 51定時(shí)/計(jì)數(shù)器的詳解。 ? ? ? ? ? ? ? ? ? 碼字不易,如有幫助請(qǐng)收藏,點(diǎn)贊哦。 ? ? ? ? 前提:首先我們知道51單片機(jī)內(nèi)部有21~26個(gè)特殊功能寄存器: P.x口寄存器:P0、P1、P2、P3 數(shù)據(jù)指針寄存器:DP0H、DP0L、DP1H、DP1L 定時(shí)器: TH1、TL1、TH0、TL0、TMOD、TCON 串口:

    2024年02月07日
    瀏覽(51)
  • 51單片機(jī)定時(shí)器中斷TMOD

    51單片機(jī)定時(shí)器中斷TMOD

    最近在學(xué)定時(shí)器中斷TMOD,寫(xiě)程序時(shí),要對(duì)定時(shí)器進(jìn)行配置 對(duì)TMOD進(jìn)行賦值時(shí),拌了好久。。。。 如何根據(jù)所用的? ? ? 定時(shí)器0/1 ,? 工作方式0/1/2/3 ? ? ?對(duì)TMOD賦值呢? 我們知道: 1.TMOD長(zhǎng)這樣 : ?由八位組成,前四位是T1的參數(shù);后四位是T0的參數(shù);GATE 和 C/T\\\' 不用多講,

    2024年02月12日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包