Ⅰ 單片機的程序計數器PC的作用是啥子
根據二進制編碼、解碼的原理,n根導線可以譯成2^n個地址號,單片機中的程序計數器PC是16位,也就是16根地址線,可以譯成2^16=65536個地址號,也成為16根地址線的最大定址范圍。
單片機中用於存放下一條指令所在單元的地址的就是程序計數器,其作用是保證程序(在操作系統中理解為進程)能夠連續地執行下去,又稱為指令計數器。
每當一個指令被獲取,程序計數器的存儲地址就加1,指向順序中的下一條指令,計算機重啟或復位後,程序計數器通常恢復到0。
(1)單片機程序計數器的功能擴展閱讀
51單片機程序計數器中特殊功能單元:
1)0000H:8051單片機復位後,程序從0000H開始執行指令;
2)0003H:外部中斷0入口;
3)000BH:定時器0溢出中斷入口;
4)0013H:外部中斷1入口;
5)001BH:定時器1溢出中斷入口;
6)0023H:串列口中斷入口。
Ⅱ 單片機 計數器 設定計數初值
單片機的計數器主要用於計數功能。單片機內部配備晶振,類似人體的心臟,為單片機工作提供脈沖信號。每接收到一個脈沖信號,計數器就會增加一次計數值,記錄的是單片機內部的時鍾脈沖數。利用這一特性,計數器還可以實現定時功能。每完成一次計數,都會產生一個固定的時間段,因此通過計數的方式能夠實現定時效果。
計數器的初值是程序中根據需要設定的,而非通過手動按鍵來調整。常見的設定初值的方法有兩種:第一種是每當計數器計數至65536時需要重新賦初值,這種方法通常在中斷函數中重新編寫賦初值的語句。這種方式雖然能實現計數功能,但由於計數到最大值後需要重新賦值,因此在精度上有所欠缺。另一種方式是8位自動重裝模式,無需再次賦值,這種方式在精度上比第一種方法更加可靠。
如果需要設計類似於鍾表的計時儀器,單片機的計數器可能無法滿足需求,因為它們的計數精度可能不夠。在這種情況下,可以考慮使用市面上專門設計的時鍾晶元來實現更精確的計時功能。
掌握這兩種計數方式對於單片機編程來說非常重要。而關於方式0,據稱在更早的單片機中曾被使用,但現在已經很少見。80C51單片機與其早期版本保持兼容,因此也保留了這種方式。對於方式二,建議嘗試使用,它可能為計數器應用提供更多可能性。