-
答:1這是乙個迴圈,而且是乙個無休止的迴圈。 他經常用在微控制器上,其作用是只要微控制器通電,就能讓程式在無限迴圈中繼續執行內容!
2.這取決於您的微控制器的硬體電路,在程式設計之前您最好了解硬體電路。 通常LED的公共端是用三極體門控的!
看來你的LED是連線到公共陽極的,即8個LED正極連線到三極體的發射極,集電極連線到VCC,基極連線到P1埠。 P1=0,電晶體正嚮導通,VCC加到LED上,如果LED的另一端為低電平,使LED正偏置,則LED導通。 想想吧
在 while(1) 中不停地執行語句,但是當發生中斷時,CPU 必須先執行中斷,然後返回 while 繼續執行,這是對中斷的等待! 換句話說,如果有中斷,CPU 應該立即執行該中斷,如果沒有中斷,它將始終執行 while(1) 中的乙個。
-
第一,這是乙個迴圈,這樣主程式一直在執行,在這個迴圈中停止,這樣可以防止主程式無事可做,或者程式跑掉。
其次,你的LED連線到微控制器的P1口(你的連線方式是公陽),有乙個共同的一端,你把低點有效,這樣你就可以點亮任何部分。
第三,這不是在等待中斷,這是在一直執行 p1=0 的功能,你的 LED 會一直亮著,只有在處理中斷時你才會執行其他操作。 你只需要打斷就可以跳出來。
而(1)。
-
while(1),即當條件為真值1時,執行以下語句,其實等價於無限迴圈。
使用P口控制LED,按鍵取決於硬體的連線方式,如果是普通陽,那麼只要埠為0,它就會發光,如果是普通陰,那麼必須設定高才能亮起。
在中斷程式中,只要開啟了中斷,就需要等到中斷來了再進行後續程式,即在執行 ito=1 之後,需要等到有邊沿觸發中斷,然後執行 while(1) 和後續的中斷。
如果以上有任何錯誤,希望您能指出。
-
只要認為 SFR 宣告特殊函式暫存器就足夠了(而普通暫存器不能)。 有 8 位和 16 位宣告。 0x90是內部RAM中特殊功能暫存器P1分配的固定位址,P1代表P1埠的位址(8位),不會改變。
p0(0x80),p2(0xa0),p3(0xb0)。由於埠 P1 是 8 位(8 位是乙個位元組),因此 0x90 是此位元組的起始位址。 此位元組的範圍為 (0x90 0x97)。
設定就是表示你想讓CPU做什麼,只要CPU去做這個設定,它就沒用了,因為它已經幹了。 中斷只是優先順序更高的程式,程式不是沒有編寫的,而是已經包含的,但您不必自己編寫。
這很簡單,有點像 ARM 中的 IO 控制。
0x00004000"它是乙個 8 位十六進製數,即 32 位二進位數,這意味著您的 P0 埠可能是 32 位,或者您的控制匯流排可能是 32 位。 >>>More
這些概念可以說是可以的,這些概念怎麼會這麼重要呢? 一旦你理解了它,關鍵是把它轉化為你自己的理解,並以你自己的方式使用它。 不管暫存器是什麼,每個暫存器的功能基本不同,所以知道它們是如何工作的以及如何使用它們就足夠了! >>>More