編程通過只是說明你的程序沒有語法錯誤,至於你的功能是什麼,能不能實現,編譯器是管不了的。編譯器所保證的就是正確的解釋你的代碼,把你的代碼解釋成單片機使用的機器碼,然後生成燒寫文件,至於你想要的功能卻達不到,那肯定是你的問題。
首先檢查硬體,驅動方式有沒有問題,電流夠不夠大,延時合不合理?如果硬體不確定的的話,試一試用軟體模擬,你是直接驅動IO口,功能還是很簡單的,keil的軟體模擬能夠隔開你的硬體,程序單步執行,看埠輸出能不能達到設計要求,如果能,還是硬體的問題;不能,那就找程序的錯誤。
② 51單片機LED點陣屏有燈不亮怎麼辦
可進入調試模式,在執行22句後,檢查595數據,看看其輸出是不是 0xaa,在執行23句後,檢查P0口數據,看看是不是 0x7f;
③ 單片機Led燈不亮
看你的板子,P1^0引腳上並沒有LED燈,那8個LED燈應該在P0口上吧,把程序的定義改一下。
sbitD1=P0^0;
另外寫主程序,要加一行while(1); 見下圖,兩個畫紅圈處的改法。
最後補充一點,普中的實驗板,用的是STC單片機,去STC官網下載正宗的燒錄軟體:STC-ISP。別用普中的燒錄軟體,不可靠,經常不能正常燒錄程序。
④ 51單片機學習板led燈不亮
首先從你給出的條件來說:你用sbit 聲明led1來代表P1^0口,但是在主函數中卻使用led來點亮,很明顯這個是不行的,而且編譯時會報錯。
再一個你要確定LED是連在P1口。
最後,你要清楚是共陰還是共陽接法,這樣決定是寫1亮還是寫0亮。
不懂的地方隨時回復我交流。
希望我的回答能幫助到你。
⑤ 單片機LED燈不亮問題!(初學者)
P0如果不等於0,默認就是高電平。看電路,P0為高時,LED負極是高電平時,不導通LED肯定不會亮 。