導航:首頁 > 操作系統 > 單片機定時器1秒

單片機定時器1秒

發布時間:2022-05-20 01:11:25

❶ 80C51單片機,12mhz.利用中斷程序控制8個燈依次亮滅,定時時間為1秒。

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char tab[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xff};

void delay(uint e) //延時函數,延時為0.5s
{
uint i,j;
while(e--)
{
for(i=0;i<500;i++)
for(j=0;j<110;j++);
}
}

void Timer0Init()
{
TMOD|=0x01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
TH0=0xfe; //給定時器賦初值,定時1ms
TL0=0xfc;
ET0=1;//打開定時器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時器
}

void main()
{
Timer0Init();
while(1);
}

void timer0() interrupt 1
{
uchar i;
for(i=0;i<8;i++)
{
P2=tab[i];
delay(1);
}
for(i=0;i<8;i++)
{
P2=~tab[i];
delay(1);
}

❷ 單片機,一秒的定時器初值怎麼算不要結果要過程謝了哈! ...

一。10MS定時器初值的計算:1.晶振12M12MHz除12為1MHz,也就是說一秒=1000000次機器周期。10ms=10000次 機器周期。65536-10000=55536(d8f0)TH0=0xd8,TL0=0xf02.晶振11.0592M11.0592MHz除12為921600Hz,就是一秒921600次機器周期,10ms=9216次機器周期。65536-9216=56320(dc00)TH0=0xdc,TL0=0x00二。50MS定時器初值的計算:1.晶振12M12MHz除12為1MHz,也就是說一秒=1000000次機器周期。50ms=50000次 機器周期。65536-50000=15536(3cb0)TH0=0x3c,TL0=0xb02.晶振11.0592M11.0592MHz除12為921600Hz,就是一秒921600次機器周期,50ms=46080次機器周期。65536-46080=19456(4c00)TH0=0x4c,TL0=0x00同理1MS定時器初值的計算:1.晶振12M12MHz除12為1MHz,也就是說一秒=1000000次機器周期。1ms=1000次 機器周期。65536-1000=15536(fc18)TH0=0xfc,TL0=0x182.晶振11.0592M11.0592MHz除12為921600Hz,就是一秒921600次機器周期,50ms=922次機器周期。65536-922=19456(fc66)TH0=0xfc,TL0=0x66 查看原帖>>

❸ 單片機定時器有65535計數值,66535是什麼單位,微秒還是毫秒怎麼計算定時1秒led閃爍一次

65535是16進制的FFFF,是51單片機定時器最大值,就是最大65535us,=65.535ms
,計數器初值設置50ms,65536-50000=15536=3CB0H,,使用一個計數器計數20(10個=500ms取反,常用1s閃爍使用)個50ms=1s。。

❹ 單片機用定時器1秒方波

使用單片機定時器在P1.0口產生200Hz方波程序
#include <reg52.h>
void main()
{
P1^0 = 0; // 清P0口
/////////
TMOD = 0x00; // T0使用定時模式,工作模式0,無門控位
TH0 = 0x60; // 為T0填入初值,定時時間5ms
TL0 = 0x78;
TR0 = 1; // 啟動T0
ET0 = 1; // 允許定時器0中斷
EA = 1; // CPU開放中斷
while(1); // 循環等待
}

void timer0_int () interrupt 1 using 2 // T0溢出中斷,使用工作組2
{
TH0 = 0x60; // 重新填入初值
TL0 = 0x78;
P1^0= ~P1^0; // P1.0取反,產生方波
}
希望對你有用,學習單片機多練習單片機學習板,動手學習效果會更好,目前主流的吳鑒鷹單片機開發板不錯

❺ 如何利用定時器T0的工作方式1實現1秒鍾延時程序(單片機)

1、#include <reg52.h>

2、#define uchar unsigned char

3、#define uint unsigned int

4、sbit LED = P0^0;uchar T_Count = 0;void main(){TMOD = 0x01;TH0 = (65535-50000)/256;TL0 = (65535-50000)%256;IE = 0x82;TR0 = 1;while(1);}

5、void LED_Flash() interrupt 1{TH0 = (65535-50000)/256;TL0 = (65535-50000)%256;if(++T_Count == 20){LED = !LED;T_Count = 0;}}

6、這個程序是1秒鍾LED燈會亮與滅顯示。

❻ 單片機定時器設定一秒

對於51
單片機,11.0592M的多用於有用到波特率的,以提高精度。如果需要定時1
秒的
,可用6M或12M的晶振。如果用12M的話,則1
個機器周期的1us
。定時器范圍是0~FFFF(即65535us)你可定時50ms一次中斷,共20次就是1秒。

❼ C51單片機定時器1以方式1定時1秒如何設置

1、先打開我們熟悉的單片機c51編程軟體——keil,先把主方法寫好。

❽ 單片機c語言編寫產生1秒定時的程序,怎麼寫

如果是51單片機的話其實很簡單的,這里假設晶振頻率是12M(一般都是的),你可以選用定時器0,工作在工作狀態2,因為這個狀態下裝入初始值幾乎不需要時間,所以定時精確,也就是8位預置數狀態,將初始值設為6,這樣每次定時就是250微秒,在中斷程序中定義一個靜態變數,每次中斷加一,這樣當這個變數值為4000時就剛好是1S鍾。
關鍵程序是:
void main()
{
TMOD=OX02;
EA=1;
ET0=1;
TH0=0X06;
TL0=0X06;
while(1);
}
void timer0() interrupt 1
{
static unsigned int times=0;
times++;
if(times==4000)
{
times=0;
//自己的程序
}}

❾ 單片機如何精確定時1秒鍾

採用定時器定時很精確的,如果定時時間為1ms,那循環1000次就是1s。定時初值要看你採用的晶振頻率了,下面是12M晶振,定時器0的定時1ms程序。
timer0() interrupt 1 // 1ms延時(12.0MHz)
{
TR0=0;
ET0=0;
TH0=0xfc;
TL0=0x18;
if(delayTimes1!=0) delayTimes1--;
TR0=1;
ET0=1;
}
當要程序中把delayTimes1賦值1000後,等到delayTimes1為0的時候定時1s鍾到

❿ 如何讓一個單片機的定時器計時1秒

首先你要知道你的晶振是多少頻率的,然後知道執行一個延遲命令的時間,然後再估算出需要多少個延時命令才能組成1秒。其實網上有很多這樣的延時程序。

閱讀全文

與單片機定時器1秒相關的資料

熱點內容
壓縮機型號用什麼氟利昂 瀏覽:553
農機空氣壓縮機 瀏覽:664
程序員下載歌曲 瀏覽:894
編譯未檢測到模擬器 瀏覽:807
壓縮機每次啟動12分鍾就停 瀏覽:730
creo復制曲面命令 瀏覽:959
程序員戀上女碩士 瀏覽:669
ansys的get命令 瀏覽:988
國外dns蘋果伺服器地址 瀏覽:430
國家職業技術資格證書程序員 瀏覽:652
奇瑞租車app是什麼 瀏覽:99
系統源碼安裝說明 瀏覽:420
命令行加殼 瀏覽:96
解壓時顯示防失效視頻已加密 瀏覽:295
蘋果簡訊加密發送 瀏覽:446
天翼私有雲伺服器租用 瀏覽:733
貴州雲伺服器屬於哪個上市公司 瀏覽:58
編程聯動教程 瀏覽:482
小天才app怎麼升級v242 瀏覽:545
簡單手工解壓玩具製作大全 瀏覽:928