熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2021-2-9 14:11
正文摘要:本帖最后由 msgd6688 于 2021-2-9 23:00 編輯 新手,用的stc15f101w(其實(shí)是買錯(cuò)了),使用了這位兄弟的代碼http://www.torrancerestoration.com/bbs/dpj-106461-1.html ,在proteus里面用51仿真正常。 程序燒錄也成功,但是通 ... |
很大概率是硬件連接問題, 我debug時(shí)一般會(huì)寫個(gè)簡(jiǎn)單程式來逐個(gè)點(diǎn)亮熄滅每個(gè)燈,如果硬件沒有問題,再來分析代碼問題, 把功能減到最少比如1個(gè)燈再來確認(rèn),確認(rèn)好再逐步添加功能,希望這個(gè)思路能幫到你! |
為什么我第一反應(yīng)是用的晶振頻率過大,延時(shí)效果看不出來![]() |
建議檢查一下101w的io口是否正常,沒有儀器用萬用表也行,用led逐個(gè)檢查也行 |
msgd6688 發(fā)表于 2021-2-10 11:57 樓主先按下面閃爍燈程序驗(yàn)證你的硬件是否正常,免得搞不清是驢不走還是磨不轉(zhuǎn)。 #include <reg51.H> /**1ms延時(shí)子程序(11.0592MHz 1T)****/ void delay(unsigned int k) { unsigned int i,j; for(i=k;i>0;i--) for(j=829;j>0;j--); } void main() { while(1) { P3=~P3; delay(500);//0.5秒 } } |
wulin 發(fā)表于 2021-2-10 07:18 按照你說的,我改了模式,然后改成低電平驅(qū)動(dòng)還是6個(gè)IO口接的燈都全亮,會(huì)是這個(gè)單片機(jī)壞了嗎?燒錄都一直成功 |
程序設(shè)置后硬件電路不對(duì)應(yīng),導(dǎo)致與輸出結(jié)果不一致 |
原程序作者是采用低電平驅(qū)動(dòng),樓主改高電平驅(qū)動(dòng)要把LED驅(qū)動(dòng)碼通通取反,采用stc15f101w還要修改IO口輸出模式。 void main() { int t=0; char f=0;//亮暗標(biāo)志,0為亮 P3M0 = 0xff;//推挽輸出模式 P3M1 = 0x00;//推挽輸出模式 Init(); while(1) //主循環(huán)。 { ...... |
418854190 發(fā)表于 2021-2-9 18:53 跟我是高電平驅(qū)動(dòng)有關(guān)嗎,剛剛學(xué)到這 |
我用15F104W實(shí)驗(yàn)了 程序沒問題 你在好好檢查一下接線是否接錯(cuò)了 |
雖然樓主鏈接的這個(gè)程序不咋地,甚至有錯(cuò)誤,但還是可以勉強(qiáng)運(yùn)行。程序燒錄成功,但是通電以后所有燈全亮可能是樓主硬件電路有問題。 |
建議使用示波器查看燈的IO口是否輸出高低電平 |
建議使用示波器看一下控制燈的IO口是否輸出高低變化的電平。 |
Powered by 單片機(jī)教程網(wǎng)