標題: 51單片機如何實現(xiàn)計數(shù)器對外部脈沖計數(shù) [打印本頁]

作者: CJSH1997    時間: 2018-5-31 01:06
標題: 51單片機如何實現(xiàn)計數(shù)器對外部脈沖計數(shù)
鉆研好久不會,用計數(shù)器1對按鍵計數(shù)10次,每10次led狀態(tài)取反,按鍵接P35中斷也開了,led狀態(tài)就是不變,怎么也找不出問題來,網(wǎng)上也沒有類似的計數(shù)器外部脈沖計數(shù)的,外部中斷計數(shù)到挺多,特來次向大佬們支招
作者: zl2168    時間: 2018-5-31 07:06
本帖最后由 zl2168 于 2018-5-31 07:08 編輯

實例71  統(tǒng)計T0引腳上10分鐘內(nèi)的脈沖數(shù)
Proteus仿真一下,確認有效。
實例71 統(tǒng)計T0引腳上10分鐘內(nèi)脈沖數(shù).rar (52.96 KB, 下載次數(shù): 880)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行,可演示,可觀測,程序語句條條有注解。

作者: CJSH1997    時間: 2018-5-31 08:02
謝謝,筆芯!!!
作者: qq23230233    時間: 2018-5-31 08:38
直接有例子,對照弄不懂再問問
作者: ahshmj    時間: 2018-5-31 17:13
你的脈沖信號從那個腳接入的?TMOD的“C/T--功能選擇位”是怎么設置的?

看不見你的接線圖和程序,沒法幫到你。
作者: CJSH1997    時間: 2018-5-31 17:53
ahshmj 發(fā)表于 2018-5-31 17:13
你的脈沖信號從那個腳接入的?TMOD的“C/T--功能選擇位”是怎么設置的?

看不見你的接線圖和程序,沒法 ...

你好,能幫我看下嗎,還是不知道哪兒錯了,謝謝

mmexport1527760273724.jpg (7.76 KB, 下載次數(shù): 232)

mmexport1527760273724.jpg

mmexport1527760268974.jpg (60.06 KB, 下載次數(shù): 90)

mmexport1527760268974.jpg

作者: CJSH1997    時間: 2018-5-31 17:55
ahshmj 發(fā)表于 2018-5-31 17:13
你的脈沖信號從那個腳接入的?TMOD的“C/T--功能選擇位”是怎么設置的?

看不見你的接線圖和程序,沒法 ...

你好,有時間能幫我看下嗎,還是不知道哪兒有錯,LED狀態(tài)一直不變,我要實現(xiàn)的是,按鍵10次,LED狀態(tài)取反,必須用計數(shù)器實現(xiàn)

mmexport1527760273724.jpg (7.76 KB, 下載次數(shù): 126)

mmexport1527760273724.jpg

mmexport1527760268974.jpg (60.06 KB, 下載次數(shù): 77)

mmexport1527760268974.jpg

作者: 流浪的熊貓    時間: 2018-5-31 18:30
有兩個外部中斷引腳可以接上去,然后就可以計數(shù)中斷的次數(shù),來計算脈沖的個數(shù)
作者: wulin    時間: 2018-6-1 10:04
CJSH1997 發(fā)表于 2018-5-31 17:55
你好,有時間能幫我看下嗎,還是不知道哪兒有錯,LED狀態(tài)一直不變,我要實現(xiàn)的是,按鍵10次,LED狀態(tài)取反 ...

外部脈沖計數(shù)示例,低電平有效。
#include<reg52.h>
sbit led=P1^0;
/*****定時器1初始化****/
void Timer1Init()
{
        TMOD= 0x60;                //設置定時器1計數(shù)/自動重載模式
        TL1 = 0xf6;                //設置定時初值
        TH1 = 0xf6;                //設置定時重載值
        TF1 = 0;                        //清除TF1標志
        TR1 = 1;                        //定時器1開始計數(shù)
        EA=1;                        //開總中斷
        ET1=1;                        //開定時器1中斷       
}
/********主函數(shù)**********/
void main()
{
        Timer1Init();
        while(1);
}
/******定時器1中斷服務*******/
void timer1() interrupt        3
{
        led=~led;
}




作者: CJSH1997    時間: 2018-6-1 13:43
wulin 發(fā)表于 2018-6-1 10:04
外部脈沖計數(shù)示例,低電平有效。
#include
sbit led=P1^0;

謝謝,也在此謝謝大家的幫助,已經(jīng)解決了,萌新第一次發(fā)帖,開心
作者: xiajifeihhz    時間: 2018-6-1 21:17
延時和抖動的問題考慮了嗎
作者: l441867853    時間: 2018-6-2 15:15
外部中斷計數(shù)
作者: Cooper0    時間: 2018-6-2 16:01
以T0定時器8位自動重裝為例,設置T0為計數(shù)模式,裝初值為256-10= 246,開啟中斷,當每次T0的外部輸入引腳輸入一個脈沖,計數(shù)器值加一,到255后再來一個脈沖觸發(fā)中斷,進入中斷服務函數(shù)
作者: xs3396    時間: 2018-7-10 10:35
zl2168 發(fā)表于 2018-5-31 07:06
實例71  統(tǒng)計T0引腳上10分鐘內(nèi)的脈沖數(shù)
先Proteus仿真一下,確認有效。
以上摘自張志良編著《80C51單片機 ...

源代碼在哪下載
作者: wdliming    時間: 2018-8-4 19:41
zl2168 發(fā)表于 2018-5-31 07:06
實例71  統(tǒng)計T0引腳上10分鐘內(nèi)的脈沖數(shù)
先Proteus仿真一下,確認有效。
以上摘自張志良編著《80C51單片機 ...

不錯的,謝謝分享
作者: beyondfortune    時間: 2019-5-15 12:39
下載下來,KEIL打開沒什么東西呢

作者: ketr丶下雨    時間: 2019-5-15 18:06
用計數(shù)器的辦法就是,配置T0為計數(shù)器8位自動重裝開中斷,按鍵接到定時器計數(shù)器引腳,引腳出現(xiàn)的每一個脈沖會使計數(shù)器+1,當計數(shù)器溢出的時候會產(chǎn)生中斷,進入中斷后進行相應的處理
作者: lele5211314    時間: 2019-5-16 17:39
外部中斷可以實現(xiàn)你說的那個效果,偏偏非要用計數(shù)器?頭鐵?
作者: 王相程    時間: 2020-3-5 21:51
zl2168 發(fā)表于 2018-5-31 07:06
實例71  統(tǒng)計T0引腳上10分鐘內(nèi)的脈沖數(shù)
先Proteus仿真一下,確認有效。
以上摘自張志良編著《80C51單片機 ...

這個怎么打開呀?打開的是亂碼

作者: xiejunli    時間: 2020-4-5 10:27
源程序沒有呀,





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1