① 你好 请问用单片机控制电路定时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
⑨ 怎么用单片机设计断电延时型电子定时器
这个很简单,不是真的断电了,是在你准备断电时,告诉单片机过一会儿再断电.