欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

要做一個單片機脈沖計數器。結果無論如何就是不成功

查看數: 4529 | 評論數: 11 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-9-19 21:49

正文摘要:

本來設計要做了個ADC電路,實驗挺成功的。下一步要做一個脈沖計數器。結果無論如何就是不成功。 先聲明,我自己做了NE555方波發生器。50%固定占空,頻率從 0.72Hz ~ 72kHz 可調。產生出來的波形送給51單片機P34引 ...

回復

ID:224104 發表于 2020-9-21 11:18
wulin 發表于 2020-9-21 06:00
已經設置自動重載模式就不需在中斷函數里面重新賦初值。

OK
ID:213173 發表于 2020-9-21 06:00
guysxpf 發表于 2020-9-20 21:02
初值的定義我理解錯了,謝謝指正。。

可是是有一點我不太理解,我選的是自動重載模式,但,您說“中斷 ...

已經設置自動重載模式就不需在中斷函數里面重新賦初值。
ID:224104 發表于 2020-9-20 21:02

太詳細了,謝謝您
ID:224104 發表于 2020-9-20 21:02
wulin 發表于 2020-9-20 10:39
定時器初值錯誤,應該是65536-8=65528=0xFFF8,中斷中也要重新賦初值FFF8。

初值的定義我理解錯了,謝謝指正。。

可是是有一點我不太理解,我選的是自動重載模式,但,您說“中斷函數里面要重新賦初值FFF8”,已經自動重載了還有這個必要嗎?
ID:224104 發表于 2020-9-20 20:51
laoshu2521 發表于 2020-9-20 10:10
親,你的定時器都沒有初始化,時鐘都沒設定。另外你要檢測555定時器的輸出脈沖的話,代碼不是這么寫的。需 ...

我的代碼不是自己寫的,是STC官方給的,簡單改了改。

不過問題已經有另外兩個大神解答了,不過還是謝謝您
ID:224104 發表于 2020-9-20 20:49
本帖最后由 guysxpf 于 2020-9-20 20:52 編輯
wulin 發表于 2020-9-20 10:39
定時器初值錯誤,應該是65536-8=65528=0xFFF8,中斷中也要重新賦初值FFF8。

我明白了,謝謝,定時器是從設定值累加到FF。看來是當時學的原理都忘光了。
學習了,謝謝您!
ID:342822 發表于 2020-9-20 18:24


#include <reg51.h>
#include <stdio.h>


#include "intrins.h"

sbit    P05         =   P0^5;

void TM0_Isr() interrupt 0
{
    P05 = ~P05;                                 //測試端口
}

void main()
{
  EA =1;
        EX0 =1;
        IT0= 1;

    while (1);

}

ID:719608 發表于 2020-9-20 15:47
好像有問題,稍后看看
ID:213173 發表于 2020-9-20 10:39
本帖最后由 wulin 于 2020-9-20 17:33 編輯

定時器初值錯誤,應該是65536-8=65528=0xFFF8,中斷中也要重新賦初值FFF8。
  1. #include "reg51.h"
  2. #include "intrins.h"

  3. sbit P05=P0^5;

  4. void TM0_Isr() interrupt 1
  5. {
  6.     P05=!P05;                                 //測試端口
  7.     TL0 = 0xf8;
  8.     TH0 = 0xff;
  9. }

  10. void main()
  11. {
  12.     TMOD = 0x04;                                //外部計數模式
  13.     TL0 = 0xf8;
  14.     TH0 = 0xff;
  15.     TR0 = 1;                                    //啟動定時器
  16.     ET0 = 1;                                    //使能定時器中斷
  17.     EA = 1;

  18.     while (1);
  19. }
復制代碼
ID:820855 發表于 2020-9-20 10:10
親,你的定時器都沒有初始化,時鐘都沒設定。另外你要檢測555定時器的輸出脈沖的話,代碼不是這么寫的。需要用捕獲模式,中斷函數里面也不對。你這段代碼即使把定時器設好了,也是上電閃幾次燈的事情,可能太快眼睛都看不見。
ID:155507 發表于 2020-9-20 09:19
你是怎么測試的? 就說不成功

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表