① 你好 請問用單片機控制電路定時10秒斷電怎麼弄
使用單片機的定時中斷。在中斷里,當定時時間到達時,控制一個引腳輸出低電平(假設是低電平控制斷電),就可以了。
② 單片機延時控制繼電器開關程序
u32 count=0;
while (--count);
打開繼電器
while(--count);
③ 單片機的中斷跟延時有什麼不同
中斷和延時是不一樣的,2個不同的概念。
中斷是停止當前正執行的任務,轉而去執行中斷任務,等中斷任務執行結束後繼續回來執行當前正在運行的任務。中斷程序要求盡可能的簡潔越短越好(尤其是在多中斷任務執行時),中斷首先要開啟中斷源,初始化中斷,然後響應中斷,從中斷的入口地址處執行中斷程序。
利用中斷可以使程序執行效率高效,實現「一邊。。。一邊。。。」初始化中斷源後主程序,就可以去干其他事情了。好比你一邊洗衣服一邊等電水壺水開一樣:
先給電水壺裝滿水插上電源,然後去洗衣服,當水開鳴笛時,停下洗衣服去倒開水;然後裝滿冷水,繼續燒水,再接著洗衣服等水開,倒水,裝水,洗衣服。。。。重復這個循環。
而延時僅僅是主程序在執行的過程中不斷調用的一段子程序。例如我們使用51單片機編寫程序如下:
//主程序不斷的調用延時程序DELAY,等待定時器T0產生定時中斷
//晶元使用STC89C52單片機,工作於12T,12M晶振。
ORG 0000H
LJMP START //系統復位入口地址
ORG 000BH
LJMP T0_INTERRPUT //T0中斷子程序入口地址
ORG 0030H //程序開始處
START:
MOV TMOD,#01H //定時器工作在16位定時模式
MOV TH0,#(65535-50000) / 255 //t0賦初值
MOV TL0,#(65535-50000) MOD 255
SETB TR0 //啟動定時器T0
SETB ET0 //允許T0中斷
SETB EA //開啟系統總中斷
LOOP:
LCALL DELAY //調用延時程序
SJMP LOOP
//主程序到此結束
//延時10MS
DELAY:
MOV R5,#20
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET //子程序返回
//t0定時中斷子程序
//定時50ms
T0_INTERRPUT :
PUSH ACC //保護斷點-入棧
PUSH PSW
PUSH DPH
PUSH DPL
MOV TH0,#(65536-50000) / 256 //再次裝如t0初值
MOV TL0,#(65536-50000) MOD 256
POP DPL //彈出斷點,先進後出
POP DPH
POP PSW
POP ACC
RETI //中斷返回
END
④ 用51單片機實現中斷,為什麼在中斷函數中要加延遲,不加連接P3^2和地就不停止,而是產生了延遲的效果
單片機里有個有趣的現象不知道你注意了沒有,當你按下一個鍵的時候,led屏上什麼都沒有了。
當你持續按住一個鍵,整個單片機就像斷電了一樣(或者叫短路了)
所以,按鍵一般都需要延遲(還有一個作用是防止按鍵抖動)
還有,代碼里沒有指定TMOD的值,這個習慣不好
⑤ 如何實現單片機讓開關斷電
如果只是控制開關斷電,很容易也很簡單,沒必要用單片機,反倒麻煩了,還需要寫程序。而只用一個繼電器就行,用繼電器的常閉觸點作開關,一旦繼電器吸合就斷電了。
⑥ 單片機控制led燈亮延時一段時間後自動滅,如果時間沒亮到兩分半斷電,再上電的時候會微閃一下,能消除嗎
什麼型號的???
程序跑飛了?
⑦ keil程序編寫一個51單片機延時1分鍾斷電的程序,並用proteus模擬
用FOR 循環或 While也可以 for (k=0; k<100; k++) { P1=0; Delay(); // 這里自己加個延時 P1=1; }
⑧ 求一個AT89C51單片機的延時一分鍾斷電程序
延時1分鍾匯編程序如下:
DELAY1M:
MOVR2,#6
DEL1:
MOVR3,#100
DEL2:
MOVR4,#200
DEL3:
MOVR5,#248
DJNZR5,$
DJNZR4,DEL3
DJNZR3,DEL2
DJNZR2,DEL1
RET
⑨ 怎麼用單片機設計斷電延時型電子定時器
這個很簡單,不是真的斷電了,是在你准備斷電時,告訴單片機過一會兒再斷電.