1、OB35 设定1000ms循环
2、在ob35中个累加,并且安分钟和小时寄存
3、比较,当分钟的寄存器=30时,继电器输出1s
4、分钟继存器=0时,写一段循环程序:当当前小时大于临时寄存器 进行下面的程序,继电器的输出1s和一个临时寄存器的累加, 当临时寄存器的累加值大于当前小时,就不进行循环,
5、秒闪烁这个就是500ms输出,然后弄一个500ms定时器进行不输出。
就这么多了,很简单的程序,
#include<reg51.h>sbit LED0=P0^0
sbit wei=P1^1
sbit duan=P1^0
sbit lcden=P1^7
sbit dianzhen=P1^3
sbit leden=P1^2
void Delay(unsigned int t)
void main (void)
{
unsigned int CYCLE=600,PWM_LOW=0//定义周期并赋值
lcden=0
P0=0x00
dianzhen=0
P0=0xff
wei=0
duan=0
while (1) //主循环
{
LED0=1
Delay(150000)//特意加延时,可以看到熄灭的过程
for(PWM_LOW=1PWM_LOW<CYCLEPWM_LOW++)
{
LED0=0
Delay(PWM_LOW)
LED0=1
Delay(CYCLE-PWM_LOW)
}
for(PWM_LOW=CYCLE-1PWM_LOW>0PWM_LOW--)
{
LED0=0
Delay(PWM_LOW)
LED0=1
Delay(CYCLE-PWM_LOW)
}
}
}
void Delay(unsigned int t)
{
while(t--)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)