-
有兩種方法供您參考:1)編碼3個鍵,將3個鍵編碼成,這樣只需2行輸入就足夠了,只需使用2個中斷,任何中斷都呼叫鍵盤程式;2)將3個按鍵的3條輸出線通過二極體引到中斷輸入埠(相當於3個輸入和門),這樣任何按鍵都會造成中斷,只需要占用乙個中斷埠。但是,如果使用軟體延時,仍然不能保證金鑰的延時精度。
-
如果主程式有很長的延遲,則意味著您的主程式沒有設計為有意義,除非情況非常特殊。
一般來說,主程式應該很短,主要是呼叫子程式,這樣一開始除錯起來就方便了,以後再新增功能,也非常方便,直接寫好子程式,然後在主程式中呼叫,如果新程式有問題,也很容易找到原因, 問題必須出現在新新增的子程式中,或者與分支衝突。
如果需要延時,可以使用定時器進行定時,檢查主程式中的定時器,如果定時要求非常準確,則可以使用中斷模式。
例如,如果需要 200 毫秒的延遲,則在主程式中的 1ms 定時器中增加 200 毫秒(您可以根據實際需要調整定時的長度)。
這樣,就可以在主程式中呼叫掃瞄鍵的子程式。
主程式的迴圈時間應該很短,然後考慮到按鍵的去抖動或去毛刺過濾時間,所以與按鍵的時間相比,基本不需要考慮它的靈敏度。 基本上,人們可以感覺到,如果他們按下它,微控制器一定能夠收集它,否則設計不夠合理。
對於普通的51微控制器這樣的單執行緒任務系統來說,在乙個地方延遲等待是對系統的浪費,並且很可能會影響其他任務的執行效率。 一般等待主要是針對定時要求,即幾個指令週期的延遲等待。
-
所有帶有掃瞄按鈕的程式,基本上都想把按鍵掃瞄變成乙個無限迴圈,然後在這個迴圈中做其他事情,大致如下。 main
while(1)
擊鍵掃瞄。 中斷處理。
-
那很好,採取定時器中斷方法。
將定時器 t0 或 (t1, t2) 設定為每 5 毫秒或 10 毫秒中斷一次。
確定中斷程式中是否按下了該鍵。
由於定時器是週期性中斷,因此無需考慮軟體的抖動。
中斷時判斷是否按下了3個鍵,如果第一次按下該鍵,則中斷會跳出並等待下一次中斷(相當於延遲解抖)。
再次進入中斷程式時,如果仍然按下按鈕,則表示按鈕確實被按下了。
這樣,您就可以成功識別您的三個金鑰。
而且它非常高效,你只需要初始化計時器並等待中斷,其餘時間你可以處理其他事情。
只需在主程式中確定金鑰識別符號即可。
-
使用定時器中斷做乙個鍵掃瞄,定時讀取鍵值,然後放入緩衝區,將鍵處理程式放入 main() 主迴圈中,查詢主迴圈中的緩衝區中是否有新資料,出來後立即處理。 這樣的程式是相對實時的
-
首先,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。
-
12主要為內部ROM(程式儲存器的容量,程式越大,可以寫入的程式越大),1為1*4k=4k
2 是 2*4=8k。 內部 RAM(從 128 位元組增加到 256 位元組)、其他小的內部資源調整等也有所增加。
-
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封裝,屬於工業產品,按標準加工工藝生產。
-
有很多功能,它是乙個 8 位 CPU,它不是很快,但它可以做很多你想讓它做的事情。
-
這取決於你如何使用它,只要你能做到。
它主要用於控制或檢測系統。
-
他只是乙個大腦,你說大腦是做什麼的?
-
就程式設計而言,孫驥表示沒有太大的區別,主要是硬體資源上的差異。
區別如下:1、RAM空間增加:AT89C51內部RAM為128位元組,AT89C52內部RAM為256位元組;
2.內部快閃記憶體變大:AT89C51有4K位元組的內部快閃記憶體,而。 AT89C52的內部Flash Peram已翻倍至8K。
3.增加中斷源: AT89C52 除了神府,神府還有AT89C51的定時器計數器T0和定時器計數器T1,優凱還有乙個定時器計數器T2。
1.介紹數字時鐘的工作原理。
這項工作使用ATMEL基於組合語言的AT89C51微控制器,設計了一種帶有四位數碼管顯示小時和分鐘的時鐘。 在實際圖片中,左側電源附近的綠色發光二極體(常亮)為電源指示燈,表示5V穩定電源工作正常; 微控制器左下角的紅色發光二極體為第二盞燈,每閃爍一次表示時間移動一秒; 按鈕正上方的綠光二極體是設定燈,當時間正常移動時,此時不亮,第一次按下設定鍵(右鍵)時,綠燈亮,第二個同時熄滅,分鐘兩位數碼管閃爍, 時間停止移動,進入校準狀態,表示此時可以調整分鐘,當按一次加一鍵(左鍵)時可實現分鐘加一的功能,分鐘為60點到極限,超過60點則返回0, 從 0 重新計算;如果再次按下設定鍵,第二盞燈和設定燈仍然熄滅並亮起,表示分鐘的數碼管停止閃爍,而指示小時的兩位數碼管又開始閃爍,此時可以調整小時,按下加1鍵即可實現加1到小時的功能, 小時調整上限為 24 小時,新返回 0 也超過24小時;第三次按下設定鍵時,數碼管停止閃爍,設定燈熄滅,第二盞燈再次閃爍,時間定時於設定值。 >>>More
首先,弄清楚PID是一種控制演算法!
1、“如果微控制器的恆溫能使溫度達到預定值停止加熱,低加熱,用溫度感測器反饋,這是自動控制嗎”你是乙個控制系統,但是效果會很差,特別是對於這種大慣量系統的溫度控制,要達到預定值就停止加熱, 但是由於慣性,溫度肯定會繼續上公升,當電爐燒開水時,水被燒開,斷電後水會沸騰一段時間(煮沸非常耗能,可以看出如果加熱,溫公升比較嚴重,也可以用溫度計自己試試);這與“在低時加熱”是一樣的。 如果系統對控制精度有要求,你肯定達不到要求。 PID是一種控制演算法,與其他控制演算法相比,它是最簡單的。 >>>More