找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

STC15F2K60S2單片機(jī)加TMTM1637驅(qū)動數(shù)碼管 檢測應(yīng)答錯(cuò)誤

查看數(shù): 1587 | 評論數(shù): 7 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時(shí)間: 2023-2-19 11:00

正文摘要:

程序如下:問題:當(dāng)我用多個(gè)_nop_()做延時(shí),LED2燈就會亮(我用LED檢測應(yīng)答,如果單片機(jī)沒收到應(yīng)簽就亮起),數(shù)碼管顯示正常。如果延時(shí)用for語句,for內(nèi)就一個(gè)_nop_(),LED2燈就不會亮,數(shù)碼管也正常。不知為什么, ...

回復(fù)

ID:961122 發(fā)表于 2023-2-20 13:43
lkc8210 發(fā)表于 2023-2-19 21:04
以下仿真用12Mhz開始時(shí)間:75.25us

感謝各位,受教了。不但知道了結(jié)果,也了解了分析問題的方法。嚴(yán)謹(jǐn)性值得佩服!
ID:161164 發(fā)表于 2023-2-19 21:04
以下仿真用12Mhz開始時(shí)間:75.25us



運(yùn)行For之后:78.75us, 耗時(shí):3.5us


運(yùn)行nop之后:79.92us, 耗時(shí):1.17us



用nop延時(shí)的時(shí)間太短
不足以讓1637返回Ack(拉低電平)
但1637收到命令和數(shù)據(jù)
所以也可以正常顯示
ID:1063483 發(fā)表于 2023-2-19 20:36
void I2C_delay(void)                                        //延時(shí)4us 在11059200時(shí)鐘下一個(gè)nop為1us
{
uint8 i;
//不用for語句用_nop();LED2會亮起,說明檢測應(yīng)答有誤
//_nop_();
//_nop_();
//_nop_();
//_nop_();

for(i=0;i<3;i++){   
    _nop_();
}

把for(i=0;i<1;i++)中的   i<1,改為  i<3,  循環(huán)4次,應(yīng)該可以. 并不是一個(gè)_nop_()不行,而是單片機(jī)就算響應(yīng)了,數(shù)碼管來不及響應(yīng)就過了,試試看吧
ID:961122 發(fā)表于 2023-2-19 14:02
都是在同一個(gè)芯片上運(yùn)行的
ID:213173 發(fā)表于 2023-2-19 13:48
STC15F2K60S2是1T單片機(jī),一個(gè)_nop_()延時(shí)時(shí)間在12MHz晶振12T單片機(jī)是1us,換了運(yùn)行環(huán)境就大相徑庭了。

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表