當前位置:首頁 » 編程語言 » 單片機脈沖c語言

單片機脈沖c語言

發布時間: 2022-04-13 13:36:55

⑴ 用單片機對外來脈沖計數(c語言程序)

要設定16位定時讀數器T0或T1,工作方式1、2、3,計數值最大為65536=0xFFFFH,即給高低位分別裝入計數初始值TH0(TH1)=FFH,TL0=FFH,可設為中斷函數,當計數溢出後自動引發中斷,在程序運行時調用即可~

鍵盤設置到處都有,搜一下就行了

⑵ 單片機如何測量脈沖頻率用C語言!!!

一般測量頻率有2中方法:\
1,你用T1定時1S(只用T1是無法達到定時1s的目的的,因為時間太長,你還可以藉助別的單元+1,+1的形式),然後用T0記數在這1s內通過的方波個數,這個方法不是很精確

2,用外部中斷,選擇下降沿觸發,程序響應中斷後馬上開啟定時器,在下個下降沿來臨的時候關掉定時器就可以了(記得定時器先清零)

⑶ 51單片機c語言脈沖計數並顯示程序

TMOD=0x05;
TH0=0;TL0=0;
TR0=1;
while(1)
{
a=TH0*256+TL0;
display(a);
}

⑷ 單片機脈沖計數問題(C語言)

設計數值為num
num=0;
P0^0=jishu;
jishu=1;檢測低電平IO要設置高
main()
{
if(jishu==0)

{
num++;

whlie(jishu==0);為了防止P0^0一直為低電平num一直在加

}
if(num==9990)
{
P0^1=0;

num=0;繼續下一輪計數
}
}

⑸ 如何寫一個單片機輸入上升沿和下降沿的脈沖輸出信號的c語言程序

如果是循環中查詢的話我一般這樣做, 定義一個變數比如keyLastStatus來記錄上一次掃描周期的狀態
sbit key=P2.0; char keyLastStatus=0;
keyLastStatus=key; //初始化
while (1)
{
if(key==0 && keyLastStatus!=key) Todo(); //上升沿
if(key==1 && keyLastStatus!=key) Todo(); //下降沿
keyLastStatus=key; //記錄上一次的狀態
}

⑹ 51單片機使用T0和T1外部脈沖計數,C語言如何編程

使用T0和T1外部脈沖計數,控制兩個電機,到1700個脈沖電機停止,
--統計脈沖個數,用
外部中斷
更好。
--T0和T1,留著定時用。
用四個按鍵控制,按鍵1
控制電機
正轉
,按鍵2控制電機反轉,按鍵3控制電機1正轉,按鍵4控制電機2正轉,怎麼用
C語言編程

--編程前,要先設計出來電路。

⑺ c語言編寫單片機計數脈沖

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint times,freq;
sbit p35=P3^5;
main()
{
TMOD=0x01;
TH0=0;
TL0=0;
while(1)
{
while(p35);
TR0=1;
while(!p35);
while(p35);
TR0=0;
times=TH0*256+TL0;
freq=1000000/times;
//處理頻率,自己做
}
}

⑻ 怎麼用C語言編寫51單片機測脈寬的程序~ 跪求完整程序!

#include<reg51.h>

#define uint unsigned int
uint width;
sbit pulse=P3^2;
main()
{
TMOD=0x09; //定時器0模式1,GATE=1
TH0=0;
TL0=0;
while(pulse); //等待P3.2變低
TR0=1; //啟動定時器0
while(!pulse); //等待脈沖變高
while(pulse); //等待脈沖變低
TR0=0; //關閉定時器0
pulse=TH0*256+TL0; //取定時值。
while(1);
}

⑼ 單片機C語言實現紅外脈沖計數計算車速

以51單片機 12MHz晶振情況下為例

#define STAYTIME 781//定時200ms 其他時間可以自己算
int tcount,p_count;
double speed;
void t0_init(void)
{
TH0=0x00;
TL0=0x00;
TMOD|=0x02;
ET0=1;
TR0=1;
IT0=1;//外部中斷下降沿觸發
EX0=1;
}
void pulse_int(void) interrupt 0
{
p_count++;
}
void t0_int(void) interrupt 1
{
tcount++;
if(tcount>STAYTIME){
tcount=0;
EX0=0;//關輸入脈沖的中斷
ET0=0;
speed=p_count/20;//單位就是 轉/秒
//下面重新開始
p_count=0;
ET0=1;
EX0=1;
}
}
}
void main()
{
t0_init();
EA=1;
while(1);

}

熱點內容
sql語句動態 發布:2025-01-20 16:18:22 瀏覽:297
sql表或的語句 發布:2025-01-20 16:00:49 瀏覽:162
西瓜視頻怎麼緩存不了電影了 發布:2025-01-20 16:00:45 瀏覽:889
javatimer 發布:2025-01-20 15:55:56 瀏覽:63
ts使用什麼編譯器 發布:2025-01-20 15:54:59 瀏覽:381
資料庫中已存在 發布:2025-01-20 15:35:44 瀏覽:109
壓縮超過密度 發布:2025-01-20 15:35:33 瀏覽:647
和她在一起的日歷怎麼弄安卓 發布:2025-01-20 15:29:29 瀏覽:639
android6華為 發布:2025-01-20 15:28:06 瀏覽:692
荔枝fm怎麼上傳錄音 發布:2025-01-20 15:22:27 瀏覽:107