89C51微控制器關於按鍵判斷問題

發布 科技 2024-08-16
12個回答
  1. 匿名使用者2024-02-01

    有兩種方法供您參考:1)編碼3個鍵,將3個鍵編碼成,這樣只需2行輸入就足夠了,只需使用2個中斷,任何中斷都呼叫鍵盤程式;2)將3個按鍵的3條輸出線通過二極體引到中斷輸入埠(相當於3個輸入和門),這樣任何按鍵都會造成中斷,只需要占用乙個中斷埠。但是,如果使用軟體延時,仍然不能保證金鑰的延時精度。

  2. 匿名使用者2024-01-31

    如果主程式有很長的延遲,則意味著您的主程式沒有設計為有意義,除非情況非常特殊。

    一般來說,主程式應該很短,主要是呼叫子程式,這樣一開始除錯起來就方便了,以後再新增功能,也非常方便,直接寫好子程式,然後在主程式中呼叫,如果新程式有問題,也很容易找到原因, 問題必須出現在新新增的子程式中,或者與分支衝突。

    如果需要延時,可以使用定時器進行定時,檢查主程式中的定時器,如果定時要求非常準確,則可以使用中斷模式。

    例如,如果需要 200 毫秒的延遲,則在主程式中的 1ms 定時器中增加 200 毫秒(您可以根據實際需要調整定時的長度)。

    這樣,就可以在主程式中呼叫掃瞄鍵的子程式。

    主程式的迴圈時間應該很短,然後考慮到按鍵的去抖動或去毛刺過濾時間,所以與按鍵的時間相比,基本不需要考慮它的靈敏度。 基本上,人們可以感覺到,如果他們按下它,微控制器一定能夠收集它,否則設計不夠合理。

    對於普通的51微控制器這樣的單執行緒任務系統來說,在乙個地方延遲等待是對系統的浪費,並且很可能會影響其他任務的執行效率。 一般等待主要是針對定時要求,即幾個指令週期的延遲等待。

  3. 匿名使用者2024-01-30

    所有帶有掃瞄按鈕的程式,基本上都想把按鍵掃瞄變成乙個無限迴圈,然後在這個迴圈中做其他事情,大致如下。 main

    while(1)

    擊鍵掃瞄。 中斷處理。

  4. 匿名使用者2024-01-29

    那很好,採取定時器中斷方法。

    將定時器 t0 或 (t1, t2) 設定為每 5 毫秒或 10 毫秒中斷一次。

    確定中斷程式中是否按下了該鍵。

    由於定時器是週期性中斷,因此無需考慮軟體的抖動。

    中斷時判斷是否按下了3個鍵,如果第一次按下該鍵,則中斷會跳出並等待下一次中斷(相當於延遲解抖)。

    再次進入中斷程式時,如果仍然按下按鈕,則表示按鈕確實被按下了。

    這樣,您就可以成功識別您的三個金鑰。

    而且它非常高效,你只需要初始化計時器並等待中斷,其餘時間你可以處理其他事情。

    只需在主程式中確定金鑰識別符號即可。

  5. 匿名使用者2024-01-28

    使用定時器中斷做乙個鍵掃瞄,定時讀取鍵值,然後放入緩衝區,將鍵處理程式放入 main() 主迴圈中,查詢主迴圈中的緩衝區中是否有新資料,出來後立即處理。 這樣的程式是相對實時的

  6. 匿名使用者2024-01-27

    首先,ROM 89C51 是 4K,但 89C52 是 8K。 其次,ram89c51 是 128 位元組,但 89c52256 位元組。

    在程式設計方面,差別不大,主要是硬體資源上的差異。

    區別如下:1、RAM空間增加:AT89C51內部RAM為128位元組,AT89C52內部RAM為256位元組;

    2.內部快閃記憶體變大:AT89C51有4K位元組的內部快閃記憶體,而。 AT89C52的內部Flash Peram已翻倍至8K。

    3.中斷源增加:AT89C52 AT89C51定時器計數器T0和定時器計數器T1,還增加了乙個額外的定時器計數器T2。

  7. 匿名使用者2024-01-26

    12主要為內部ROM(程式儲存器的容量,程式越大,可以寫入的程式越大),1為1*4k=4k

    2 是 2*4=8k。 內部 RAM(從 128 位元組增加到 256 位元組)、其他小的內部資源調整等也有所增加。

  8. 匿名使用者2024-01-25

    89系列微控制器的型號程式碼由字首、型號和字尾三部分組成。 它們的格式如下:

    at89c;××

    其中:at 為字首;

    89c 是模型;

    是字尾。 下面將介紹這三個部分,並相應地解釋相關引數的表示和含義。

    1.字首。 字首由字母“AT”組成,表示該裝置是 Atmel 的產品。

    2.型。 型號由“89C”或“89LV”或“89S”等表示。

    在 89c 中,9 表示裡面有快閃記憶體; C表示是CMOS產品。

    在 89LV 中,LV 代表低壓產品。

    在本節中,描述了零件的數量,例如:51、1051、8252 等。

    3.字尾。 字尾由“.每個引數都有不同的表示形式和含義。 部件號和字尾由“-”號分隔。

    字尾中的第乙個引數用於表示速度,其含義如下:

    12表示速度為12MHz,16表示速度為16MHz,20表示速度為20MHz,24表示速度為24MHz,字尾中的第二個引數用於表示封裝。 其含義如下:

    d,cerdip。

    J、塑料J引線晶元載體。

    l、無引線晶元載體。

    P,代表塑料雙列直插式 DIP 封裝。

    s,表示 SOIC 封裝。

    q:表示PQFP封裝。

    a:表示TQFP封裝。

    w,表示裸晶元。

    字尾中的第三個引數用於表示溫度範圍,其含義如下:

    c,表示商業產品,溫度範圍為 0 至 +70。

    i 表示工業產品,溫度範圍為 -40 至 +85。

    a,用於汽車產品,溫度範圍為-40至+125。

    m,表示溫度範圍為 -55 至 +150 的軍用產品。

    字尾中的第四個引數用於描述產品的處理,其含義如下:

    如果是空的,則表示處理過程是標準過程。

    883,表示處理過程採用MIL-STD-883標準。

    例如,有一種微控制器型號“AT89C51-12PI”,這意味著微控制器是Atmel的Flash微控制器,內部採用C51結構,速度為12MHz,採用DIP封裝,屬於工業產品,按標準加工工藝生產。

  9. 匿名使用者2024-01-24

    有很多功能,它是乙個 8 位 CPU,它不是很快,但它可以做很多你想讓它做的事情。

  10. 匿名使用者2024-01-23

    這取決於你如何使用它,只要你能做到。

    它主要用於控制或檢測系統。

  11. 匿名使用者2024-01-22

    他只是乙個大腦,你說大腦是做什麼的?

  12. 匿名使用者2024-01-21

    就程式設計而言,孫驥表示沒有太大的區別,主要是硬體資源上的差異。

    區別如下:1、RAM空間增加:AT89C51內部RAM為128位元組,AT89C52內部RAM為256位元組;

    2.內部快閃記憶體變大:AT89C51有4K位元組的內部快閃記憶體,而。 AT89C52的內部Flash Peram已翻倍至8K。

    3.增加中斷源: AT89C52 除了神府,神府還有AT89C51的定時器計數器T0和定時器計數器T1,優凱還有乙個定時器計數器T2。

相關回答
3個回答2024-08-16

1.介紹數字時鐘的工作原理。

這項工作使用ATMEL基於組合語言的AT89C51微控制器,設計了一種帶有四位數碼管顯示小時和分鐘的時鐘。 在實際圖片中,左側電源附近的綠色發光二極體(常亮)為電源指示燈,表示5V穩定電源工作正常; 微控制器左下角的紅色發光二極體為第二盞燈,每閃爍一次表示時間移動一秒; 按鈕正上方的綠光二極體是設定燈,當時間正常移動時,此時不亮,第一次按下設定鍵(右鍵)時,綠燈亮,第二個同時熄滅,分鐘兩位數碼管閃爍, 時間停止移動,進入校準狀態,表示此時可以調整分鐘,當按一次加一鍵(左鍵)時可實現分鐘加一的功能,分鐘為60點到極限,超過60點則返回0, 從 0 重新計算;如果再次按下設定鍵,第二盞燈和設定燈仍然熄滅並亮起,表示分鐘的數碼管停止閃爍,而指示小時的兩位數碼管又開始閃爍,此時可以調整小時,按下加1鍵即可實現加1到小時的功能, 小時調整上限為 24 小時,新返回 0 也超過24小時;第三次按下設定鍵時,數碼管停止閃爍,設定燈熄滅,第二盞燈再次閃爍,時間定時於設定值。 >>>More

4個回答2024-08-16

首先,弄清楚PID是一種控制演算法!

1、“如果微控制器的恆溫能使溫度達到預定值停止加熱,低加熱,用溫度感測器反饋,這是自動控制嗎”你是乙個控制系統,但是效果會很差,特別是對於這種大慣量系統的溫度控制,要達到預定值就停止加熱, 但是由於慣性,溫度肯定會繼續上公升,當電爐燒開水時,水被燒開,斷電後水會沸騰一段時間(煮沸非常耗能,可以看出如果加熱,溫公升比較嚴重,也可以用溫度計自己試試);這與“在低時加熱”是一樣的。 如果系統對控制精度有要求,你肯定達不到要求。 PID是一種控制演算法,與其他控制演算法相比,它是最簡單的。 >>>More

16個回答2024-08-16

1.設定狀態變數(如 flag),並將 flag=0 定義為 ON 狀態,將 flag=1 定義為關閉狀態。 >>>More

13個回答2024-08-16

傳送乙個程式供您參考,包括52個單晶元標頭檔案,一般不做改動,它包含特殊功能暫存器的定義。 >>>More