導航:首頁 > 操作系統 > 單片機脈沖計數實驗

單片機脈沖計數實驗

發布時間:2023-06-06 17:19:06

㈠ 用C51單片機統計脈沖次數

舉例解答如下:
利用定時器T1,對外部脈沖(P3.5引腳輸入)計數,
每輸入200次脈沖產生一次中斷,累加器+1,
選用T1,計數器模式,方式2(自動重裝初值8位計數器),
TMOD
=0110
0000B
=60H
計數初值
=2^8
-200
=256
-200
=56d
=38H,
編程序如下:
;
;
主程序:
MAIN:
CLR
A
;
;
累加器清零
MOV
TMOD,
#60H
;
;置T1計數模式、方式2
MOV
TL1,
#38H
;
;
寫入計數初值
MOV
TH1,
#38H
;
;
寫入留待自動重裝的初值
SETB
TR1
;
;
啟動T1計數
SETB
ET1
;
;
允許T1中斷
SETB
EB
;
;
CPU開中斷
SJMP
$
;
;
等待一輪對外部脈沖計數溢出中斷
;
;
以下是T1中斷處理子程序:
T1_INT:
INC
A
;
;
累加器加1
RETI
;
;
中斷返回

㈡ 51單片機怎麼實現外部脈沖計數

#include<reg51.h>
#define uint unsigned int
uint dat=0,time=0;
bit flag=0;
sbit key=P1^0;
void int00() interrupt 0
{
dat++;
}
void t0isr() interrupt 1
{
time++;
if(time>=400)flag=1;
}
main()
{
TMOD=0x22;
TH0=6;
TL0=6;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x40;
ET0=1;
EX0=1;
IT0=1;
PX0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
TR0=1;
while(flag==0);
TR0=0;
flag=0;
SBUF=dat;
while(TI==0);
TI=0;
SBUF=dat>>8;
while(TI==0);
TI=0;
}
}
}

㈢ 如何用單片機記脈沖數

1、用單片機產生200ms,占空比為50%的周期信號,即高低電平各100ms;
2、將該200ms信號接到INT0或INT1上,將外部脈沖信號接到T0或T1上,注意要對應接,即INT0與TO一起用或INT1和T1一起用。
3、設置定時器/計數器工作方式控制寄存器TMOD的GATE = 1(門控方式) ,C/T = 1 (計數方式)。
這樣,就可以用100ms作為一個控制門,在這個門有效(相應外部中斷)時,外部計數脈沖就可以進入這個門,定時器/計數器計數初值設為加1就溢出,中斷服務程序中計數就可以了。

㈣ 單片機脈沖計數

將定時器設置為外部輸入下降沿觸發,開中斷
在中斷程序里做一個變數寄存器如TOCNT
每進一次中斷t0cnt++;
if(t0cnt>10)
P1.1=~P1.1

㈤ 51單片機如何用計數器檢測脈沖信號(高低電平),程序怎麼做!沒有思路!

可以利用51單片機的計數器T0、T1,例如用計數器0的外部計數脈沖輸入端T0計數,當計滿100個脈沖數量後,觸發中斷。進入計數服務中斷程序。

如果有脈沖信號,經過電容微分後,在下降沿會產生一個向下的尖端脈沖,電阻R2是作為一個偏置,當有向下的尖端脈沖來後,反相端的電壓會低於同向端的電壓。

從而比較器輸出高電平,這個電路圖要注意的兩個參數是,1,比較器的選擇,你可以選LM339,要加上拉電阻。

(5)單片機脈沖計數實驗擴展閱讀:

通向輸入端的那兩個電阻是用來產生一個參考電壓的,電容用來微分你的PWM波,你可以用示波器在反向輸入端觀察微分信號。

主程序中可根據不同運行狀態調用部分子函數。需要開機按鍵設置時,優先執行按鍵程序,其它需要設置以後才能運行的子函數暫時不調用,減少單片機被佔用過多。

設置後,不需要按鍵了,就不調用按鍵程序了。如果需要隨時按鍵都要反應,可以把按鍵接到外部中斷上,以中斷方式響應按鍵,不受其他子函數影響。

㈥ 51單片機脈沖計數

你好!

那就用外部中斷來檢測吧,速度快精度高

void outside() interrupt 0
{
T0count++;
}
然後將計數,通過液晶顯示出來就可

㈦ 單片機定時/計數器實驗--脈沖計數器

這是個簡易頻率計,程序如下:

;---------------------------------

ORG0000H

JMPSTART

ORG000BH

JMPT0_INT

;---------------------------------

START:

MOVTMOD,#51H;/*01010001T1計數,T0定時*/

MOVTH0,#HIGH(65536-50000);50ms@12MHz

MOVTL0,#LOW(65536-50000)

MOVTH1,#0

MOVTL1,#0

SETBTR0

SETBTR1

SETBET0

SETBEA

MOVR7,#20

SJMP$

;---------------------------------

T0_INT:;50ms執行一次

MOVTL0,#LOW(65536-50000);重新寫入初始值

MOVTH0,#HIGH(65536-50000);50ms@12MHz

DJNZR7,T0_END

MOVR7,#20

MOVP1,TL1

MOVP2,TH1

MOVTL1,#0

MOVTH1,#0

T0_END:

RETI

;---------------------------------

用PROTEUS模擬如下圖。

圖中信號的頻率是5000Hz,顯示的是16進制,這是題目中要求的形式。

閱讀全文

與單片機脈沖計數實驗相關的資料

熱點內容
交警app怎麼綁定本人幾輛車 瀏覽:985
彩虹六號如何人工伺服器 瀏覽:632
mc伺服器地址怎麼登入 瀏覽:556
蘋果app怎麼掃描二維碼下載 瀏覽:959
css文件在線解壓 瀏覽:154
36歲程序員近況 瀏覽:283
哪裡可以下載不加密的歌 瀏覽:934
隱藏文件夾是什麼梗 瀏覽:918
插件注冊命令 瀏覽:497
梁一端加密一端不加密規范 瀏覽:82
代碼行數統計命令 瀏覽:104
單片機中2K表示什麼 瀏覽:482
紫禁城為什麼會斷開伺服器 瀏覽:580
華為手機的方舟編譯器在哪呢 瀏覽:124
下載壓縮虐殺原形2 瀏覽:907
linux腳本cd 瀏覽:168
間架結構pdf 瀏覽:845
重慶農村商業銀行app怎麼老出問題 瀏覽:473
慧編程配置要求 瀏覽:675
數控機床編程與操作視頻 瀏覽:462