單片機不工作,稍微有點基礎的人都會去查電源、晶振等硬件及源代碼,關鍵是具體到一個特定項目(系統)怎么去查,就此做一些個人經驗介紹。

1.單片機本身就是集成數字電路,主要通過IO端口與外設聯系,當端口電平異常時(一直為邏輯0電平,一直為邏輯1電平或在它們范圍之外),將可能導致程序反復中斷或進入死循環,盡管單片機還在忙個不停,對外表現就是不工作了!此時應借助硬件仿真,查找對應IO口,進而查出與之相連元件及傳感器故障。

2.不同電壓等級單片都有特定的電源范圍,低于下限將造成單片機邏輯電平不定,高于上限則可能燒壞單片機,二者表現都是不工作,此時應驗證電源功率是否足夠大,去掉大功率外設試試!與單片機共用電源的元器件是否有短路點?如鉭電容擊穿短路,PCB走線有短路毛刺等。

單片機不工作與什么無關

3.您的單片系統是否考慮了EMC,當有強烈干擾源,如PWM方式控制IGBT,同時您的設計未考慮抵抗EMI措施,這將極易造成程序跑飛,表現是不工作,或反復重啟(有WDT),應對辦法是在干擾路徑上加濾波電路,如在電源交流通路上加共模電感,Y電容。或加屏蔽罩并對之合理接地。

4.單片機資源有限,常常采用串行方式與外設通信,當電平不兼容,如單片機是TTL電平,而外設是RS232電平標準,此時無法通過HMI進行控制,感覺上是單片不工作了,例如LCD無顯示,觸摸屏按鈕不起作用。聰明的你應該知道怎么處理了!

5.單片機是靠軟件循環工作的,低端單片機的內存RAM和程序存儲器一般都不大,如果你的系統比較復雜,同時你C語言比較牛,當全局變量和靜態變量使用太多時,內存不夠用,會出現很多無法預料的怪異現象,包括單片機不工作。