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

標(biāo)題: 要做一個(gè)單片機(jī)脈沖計(jì)數(shù)器。結(jié)果無(wú)論如何就是不成功 [打印本頁(yè)]

作者: guysxpf    時(shí)間: 2020-9-19 21:49
標(biāo)題: 要做一個(gè)單片機(jī)脈沖計(jì)數(shù)器。結(jié)果無(wú)論如何就是不成功
本來(lái)設(shè)計(jì)要做了個(gè)ADC電路,實(shí)驗(yàn)挺成功的。下一步要做一個(gè)脈沖計(jì)數(shù)器。結(jié)果無(wú)論如何就是不成功。

先聲明,我自己做了NE555方波發(fā)生器。50%固定占空,頻率從 0.72Hz ~ 72kHz 可調(diào)。產(chǎn)生出來(lái)的波形送給51單片機(jī)P34引腳。雖然樣子丑了點(diǎn),但是功能完全正常。

單片機(jī)型號(hào)為STC8A8K64S4A12所有的測(cè)試都做過了。先寫了一個(gè)簡(jiǎn)單代碼,就是檢測(cè)外部脈沖,LED跟著閃爍就行



測(cè)試結(jié)果完全正常,說明準(zhǔn)雙向口輸入輸出均正常。


但下面妖魔鬼怪就來(lái)了。
  1. #include "reg51.h"
  2. #include "intrins.h"

  3. sbit    P05         =   P0^5;

  4. void TM0_Isr() interrupt 1
  5. {
  6.     P05 = !P05;                                 //測(cè)試端口
  7. }

  8. void main()
  9. {
  10.     TMOD = 0x04;                                //外部計(jì)數(shù)模式
  11.     TL0 = 0x08;
  12.     TH0 = 0x00;
  13.     TR0 = 1;                                    //啟動(dòng)定時(shí)器
  14.     ET0 = 1;                                    //使能定時(shí)器中斷
  15.     EA = 1;

  16.     while (1);
  17. }
復(fù)制代碼

這段程序可不是我寫的,是人家STC官方的范例程序,只是測(cè)試端口
修改為P05,計(jì)數(shù)次數(shù)改成了8次。然后就沒有然后了,我已無(wú)法用語(yǔ)言形容。更可恨的是換成定時(shí)器1、定時(shí)器2、定時(shí)器3、定時(shí)器4都不能正常計(jì)數(shù)。甚至連芯片都換了也白搭。

我已無(wú)法用見了鬼來(lái)形容了,無(wú)語(yǔ)了,詞窮了。

請(qǐng)各路大神來(lái)賜教一下吧,謝謝啦。

51hei圖片_20200919213659.jpg (72.43 KB, 下載次數(shù): 120)

51hei圖片_20200919213659.jpg

51hei圖片_20200919213705.jpg (69.34 KB, 下載次數(shù): 115)

51hei圖片_20200919213705.jpg

作者: angmall    時(shí)間: 2020-9-20 09:19
你是怎么測(cè)試的? 就說不成功

作者: laoshu2521    時(shí)間: 2020-9-20 10:10
親,你的定時(shí)器都沒有初始化,時(shí)鐘都沒設(shè)定。另外你要檢測(cè)555定時(shí)器的輸出脈沖的話,代碼不是這么寫的。需要用捕獲模式,中斷函數(shù)里面也不對(duì)。你這段代碼即使把定時(shí)器設(shè)好了,也是上電閃幾次燈的事情,可能太快眼睛都看不見。
作者: wulin    時(shí)間: 2020-9-20 10:39
本帖最后由 wulin 于 2020-9-20 17:33 編輯

定時(shí)器初值錯(cuò)誤,應(yīng)該是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;                                 //測(cè)試端口
  7.     TL0 = 0xf8;
  8.     TH0 = 0xff;
  9. }

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

  18.     while (1);
  19. }
復(fù)制代碼

作者: luchenzhijia    時(shí)間: 2020-9-20 15:47
好像有問題,稍后看看
作者: taotie    時(shí)間: 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;                                 //測(cè)試端口
}

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

    while (1);

}


作者: guysxpf    時(shí)間: 2020-9-20 20:49
本帖最后由 guysxpf 于 2020-9-20 20:52 編輯
wulin 發(fā)表于 2020-9-20 10:39
定時(shí)器初值錯(cuò)誤,應(yīng)該是65536-8=65528=0xFFF8,中斷中也要重新賦初值FFF8。

我明白了,謝謝,定時(shí)器是從設(shè)定值累加到FF?磥(lái)是當(dāng)時(shí)學(xué)的原理都忘光了。
學(xué)習(xí)了,謝謝您!

作者: guysxpf    時(shí)間: 2020-9-20 20:51
laoshu2521 發(fā)表于 2020-9-20 10:10
親,你的定時(shí)器都沒有初始化,時(shí)鐘都沒設(shè)定。另外你要檢測(cè)555定時(shí)器的輸出脈沖的話,代碼不是這么寫的。需 ...

我的代碼不是自己寫的,是STC官方給的,簡(jiǎn)單改了改。

不過問題已經(jīng)有另外兩個(gè)大神解答了,不過還是謝謝您
作者: guysxpf    時(shí)間: 2020-9-20 21:02
wulin 發(fā)表于 2020-9-20 10:39
定時(shí)器初值錯(cuò)誤,應(yīng)該是65536-8=65528=0xFFF8,中斷中也要重新賦初值FFF8。

初值的定義我理解錯(cuò)了,謝謝指正。。

可是是有一點(diǎn)我不太理解,我選的是自動(dòng)重載模式,但,您說“中斷函數(shù)里面要重新賦初值FFF8”,已經(jīng)自動(dòng)重載了還有這個(gè)必要嗎?
作者: guysxpf    時(shí)間: 2020-9-20 21:02
taotie 發(fā)表于 2020-9-20 18:24
#include
#include

太詳細(xì)了,謝謝您
作者: wulin    時(shí)間: 2020-9-21 06:00
guysxpf 發(fā)表于 2020-9-20 21:02
初值的定義我理解錯(cuò)了,謝謝指正。。

可是是有一點(diǎn)我不太理解,我選的是自動(dòng)重載模式,但,您說“中斷 ...

已經(jīng)設(shè)置自動(dòng)重載模式就不需在中斷函數(shù)里面重新賦初值。
作者: guysxpf    時(shí)間: 2020-9-21 11:18
wulin 發(fā)表于 2020-9-21 06:00
已經(jīng)設(shè)置自動(dòng)重載模式就不需在中斷函數(shù)里面重新賦初值。

OK




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