導航:首頁 > 操作系統 > 51單片機定時器實驗

51單片機定時器實驗

發布時間:2022-07-28 06:01:47

⑴ 51單片機定時器的匯編語言程序編程,

LED BIT P1.0 ;定義LED的引腳
ORG 0000H

LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H ;定時器0工作模式1
MOV TH0,#HIGH(65536-50000) ;初值,50毫秒中斷一次
MOV TL0,#LOW(65536-50000)
SETB TR0 ;啟動定時器
SETB ET0 ;啟動定時器中斷
SETB EA ;開總中斷
MOV R2,#40 ;中斷計數初始值
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E ;R2減到0重新賦值,否則退出
MOV R2,#40
CPL LED ;LED亮滅轉換
T0E:
RETI
END

⑵ 定時器中斷實驗51單片機,P2口外接8個發光二極體,4個共陽極接法,4個共陰極接法,如圖所示.要求分別用C語言

雖然看不到圖但是這種問題實在不難,給你程序等於害你,給你點思路自己寫才能幫助你:首先設定好定時器1,如果晶振是12MHz,TH1=(65536-50000)/256,TL1=(65536-50000)%6,TMOD=0x10,主要就這三步,配置好了定時器1。然後給P2一個初值0xf0,然後進入主程序死循環等待中斷,中斷函數重裝初值後,i ,當i增到20說明1s時間到,i=0,P2=~P2。具體思路給你了。
希望我的回答能幫助到你。

⑶ 51單片機定時器的使用

51單片機定時器的GATE=1時,用外部INT0啟動定時器,當INT0=0時,
定時器T1會停止計數,這個時候讀取T1的值是可以計算出高電平的寬度的。

⑷ 51系列單片機定時/計數器初始化的四個步驟

1、設置寄存器TMOD
2、計算初始值
3、開放中斷
4、啟動定時器

⑸ 51單片機代碼(定時器/計數器實驗)求詳細注釋,非常謝謝

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0100
MAIN:
MOV TMOD,#01H ;定時器0設為模式1
MOV TH0,#0D8H ;賦初值(65536-10000)
MOV TL0,#0F0H
MOV A,#00H ;A=0
MOV P1,A ;P1=A
MOV R0,#20 ;R2=20
SETB EA ;開中斷
SETB ET0 ;開定時器0中斷
SETB TR0 ;啟動定時器0
LOOP: NOP ;空操作
LJMP LOOP ;轉LOOP
T0_INT:
MOV TH0,#0D8H ;重賦初值
MOV TL0,#0F0H
DJNZ R0,OUT ;R0減1不為0轉OUT
MOV R0,#20H ;R0重賦初值
CPL A ;A取反
MOV P1,A ;P1=A
OUT: RETI
END
;該程序結果在P1上產生周期為400毫秒的脈沖輸出,控制LED燈的話,以400毫秒周期閃爍

⑹ 關於MCS-51系列單片機定時器/計數器實驗的幾個問題

(1)計數和定時有什麼區別?怎樣選擇和設定?
(2)計數或定時初始值怎樣計算與裝入?
(3)定時器T0和T1各有哪幾種工作方式?工作原理如何?
(4)怎樣啟動定時器?
這些,夠寫十多頁了。

⑺ 51單片機實驗(關於定時器計數器)

6mz的晶振 可算出一個時鍾周期為2微秒,200毫秒去除一下2微秒就是10000,然後吧10000取16進制為 27A0 ,用 FFFF減27A0再加1 得 C860,用定時方式一,TL0 ,#60H
TH0, #C8H

⑻ 利用51單片機,4個數碼管設計一個計時器,要求在數碼管上顯示的數據從0開始每1秒鍾加1。

共陽數碼管中斷程序:

#include<reg52.h>

#define uint unsigned int

#define uchar unsigned char

uchar code table[]=

{

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x83,0xf8,

0x80,0x90,0x88,0x83,

0xc6,0xa1,0x86,0x8e};

uint num,a;

uchar ,shi,ge;

void init();

void delay(uint);

void display(uchar,ucharshi,ucharge);

uint fb();

uint fs();

uint fg();

void main()

{

init();

while(1)

{

display(fb(),fs(),fg());

}

}

void init()

{

num=0;

a=0;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

}

void display(uchar,ucharshi,ucharge)

{

P1=0xfd;

P0=table[];

delay(1);

P1=0xfb;

P0=table[shi];

delay(1);

P1=0xf7;

P0=table[ge];

delay(1);

}

void timeoff() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65526-50000)%256;

a++;

if(a%20==0)

{

num++;

if(num==999)

{

num=0;

}

}

}
void delay(uint z)
{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

uint fb()

{

=num/100;

return ;

}

uint fs()

{

shi=num%100/10;

return shi;

}

uint fg()

{

ge =num%100%10;

return ge;

}

(8)51單片機定時器實驗擴展閱讀

2個可編程定時/計數器·5個中斷源,2個優先順序(52有6個)

一個全雙工串列通信口

外部數據存儲器定址空間為64kB

外部程序存儲器定址空間為64kB

邏輯操作位定址功能·雙列直插40PinDIP封裝

單一+5V電源供電

CPU:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能寄存器;

RAM:用以存放可以讀寫的數據,如運算的中間結果、最終結果以及欲顯示的數據;

ROM:用以存放程序、一些原始數據和表格;

I/O口:四個8位並行I/O口,既可用作輸入,也可用作輸出

T/C:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;

五個中斷源的中斷控制系統;

一個全雙工UART(通用非同步接收發送器)的串列I/O口,用於實現單片機之間或單片機與微機之間的串列通信;

片內振盪器和時鍾產生電路,石英晶體和微調電容需要外接。最佳振盪頻率為6M—12M。

參考資料來源:網路-51單片機



⑼ 51單片機的定時器是怎麼設置的

單片機定時器的設置步驟為:
1、設置定時器的工作模式,共4種工作方式,兩種模式(計數器/定時器)。比如:
MOV TMOD,#01;設置定時器0位定時器模式,工作方式1
2、根據定時時間賦初值。比如定時10毫秒,那麼如果12M晶振的話是10000個機器周期。定時器是溢出申請中斷,所以用溢出值減去定時周期為初值。
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
3、開啟中斷、定時器。
SETB ET0
SETB EA
SETB TR0

⑽ HC600S-51單片機開發板 定時器計數器實驗

看樣子是想要實現LED燈閃爍。定時器1定時時間到產生中斷,取反P1.1引腳,但是沒有中斷返回,而是一直高速取反P1.1,幾乎看不出引腳狀態變化。

閱讀全文

與51單片機定時器實驗相關的資料

熱點內容
華為如何將app移到桌面 瀏覽:597
阿里安卓面試演算法題 瀏覽:705
語文知識手冊pdf 瀏覽:841
為什麼安卓手機oled屏很白很亮 瀏覽:252
如何找回iphone手機隱藏的app 瀏覽:21
linuxc多進程 瀏覽:649
android飛行游戲 瀏覽:965
數據挖掘常見演算法 瀏覽:134
python單實例化 瀏覽:351
str中python 瀏覽:89
java的equals用法 瀏覽:845
奧維雲伺服器怎麼開通 瀏覽:171
js取得伺服器地址 瀏覽:812
起點中文網小說緩存在哪個文件夾 瀏覽:216
java瘋狂講義pdf 瀏覽:300
推有錢app在哪裡 瀏覽:745
寧波鮑斯壓縮機 瀏覽:93
新建文件夾電影2完整版演員表 瀏覽:988
空調壓縮機為什麼不能放到冷庫用 瀏覽:89
江西雲伺服器節點虛擬主機 瀏覽:997