航标灯单片机程序

航标灯单片机程序,第1张

#include<reg52.h>unsigned char t=...main(){TMOD=0x01 TL0=....//重装计算初值,看你定时多长时间中断一次TH0=...

EA=1

ET0=1

TR0=1

while(1) {}}void time0() interrupt 1{TL0=....//重装计算初值,看你定时多长时间中断一次TH0=...t--if(t==0) { t= ...//t乘以定时器定时的时间等于2秒 p1^0 = ~p1^0//假设是灯的驱动管脚,取反就可以了}} 上面的程序只是让灯能每隔2秒亮、灭,不能判断白天黑夜,判断白天黑夜工程上的做法一般是用光敏电阻,搭一个单片机的外部中断输入,一般是一个触发脉冲,也就是当外部中断到来时判断启停定时中断。你要是不嫌麻烦也可以用单片机做时钟,软件判断几点开始为白天,几点开始为黑夜,再来开启或关闭定时中断,但是这样要时钟跑的很准(一般不容易做到)。

利用51单片机来实现航标灯的控制,使用定时器来控制二极管的发光,可以模拟水上航标灯的功能

#include<REG51.H>

sbit guang=P1^1

sbit deng=P1^2

void mian(void)

{

unsigned char i=0

unsigned char j=0

TMOD=0x01//定时器0,工作方式1

TH0=0x4c

TL0=0x00

TR0=1

deng=0

while(1)

{

if(guang==0)

{

TR0=1

if(TF0)

{

TF0=0

TH0=0x4c

TL0=0x00

i++

}

if(i==40)

{

i=0

deng=!deng

}

}

if(guang==1)

{

TR0=0

TH0=0x4c

TL0=0x00

deng=1

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10988233.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存