|
你問的問題,本質(zhì)是軟件和電子硬件是如何結(jié)合的問題,相信很多寫軟件的人都對這個單片機(jī)底層的工作情況很困惑的,我也一度沒有想明白這個問題,查了很多資料,似乎也沒有什么人專門說道這個東西了,后來仔細(xì)想想,然后咨詢了一些朋友,單片機(jī)里邊不外是存放了很多三極管,二極管,電阻和電阻這些器件而已,所謂的寄存器,也是這些東西組成的,本質(zhì)上還是很多個數(shù)字電路的結(jié)合體而已,然后就是靠晶振產(chǎn)生的標(biāo)準(zhǔn)脈沖來驅(qū)動這些電路在工作,請關(guān)注:容濟(jì)點(diǎn)火器 單片機(jī)編譯到最后,就是二進(jìn)制代碼,在電路上就是高低電平,而寄存器,是可以用來存放這種高低電平的器件,寄存器是由具有存儲功能的觸發(fā)器組合起來構(gòu)成的。一個觸發(fā)器可以存儲一位二進(jìn)制代碼,存放上N位二進(jìn)制代碼的寄存器,需用n個觸發(fā)器來構(gòu)成。所以寄存器分解到最后,就是單個觸發(fā)器。 簡單的觸發(fā)器,是RS的,通過三極管和一些阻容器件來完成兩種高低狀態(tài)的控制了, 具體電路就不分析了,可以知道,它可以完成下邊的狀態(tài)功能 也就是R和S分別是置位和復(fù)位指令,會影響輸出Q的狀態(tài)了,這樣理論上就形成了簡單的可控輸出了,那些軟件的指令最終給到R和S端,就會直接控制了Q上的狀態(tài)。具體如下: 1、當(dāng)R端無效(1),S端有效時(0),則Q=1,Q非=0,觸發(fā)器置1。 2、當(dāng)R端有效(0)、S端無效時(1),則Q=0,Q非=1,觸發(fā)器置0。 3、當(dāng)RS端均無效時(0),觸發(fā)器狀態(tài)保持不變。 4、當(dāng)RS端均有效時(1),觸發(fā)器狀態(tài)不確定。 所謂的二進(jìn)制代碼,就是以上邊的高低電平體現(xiàn)在觸發(fā)器上,然后觸發(fā)器再經(jīng)過多種組合,會變成一種寄存器的東西,寄存器里邊,有一種叫移位寄存器的,可以在移位脈沖作用下依次逐位右移或左移,數(shù)據(jù)既可以并行輸入、并行輸出,也可以串行輸入、串行輸出,還可以并行輸入、串行輸出,串行輸入、并行輸出,所以通過晶振產(chǎn)生的脈沖,控制移位寄存器的狀態(tài),就能控制高低電平的各種狀態(tài)變化了,所謂的軟件,最后就變成了這些高低電平的狀態(tài)了。 |
|
|