
以下是一个简单的51单片机程序,通过按下按键可以实现4种不同状态的灯亮灭,包括正闪、反闪、多种间隔闪。程序中使用了定时器来实现闪烁功能。
程序中使用了P1.0到P1.3作为控制灯的引脚,P3.2作为按键的引脚。每当按下按键时,通过判断状态值来切换不同的灯亮灭模式。定时器中断函数用来实现灯的闪烁,可根据需求自行调整闪烁频率。
编程不易,忘采纳
1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。
2、然后设计单片机端口与LED灯相连,如下图所示,输入代码。
3、接着创建延迟函数,如下图所示,输入以下代码。
4、然后创建C语言主函数,如下图所示,输入以下代码。
5、接着输入对输出取反,最后调用延迟函数,如下图所示就完成了。
#include <reg52.h> //包括一个52标准内核的头文件
#define uchar unsigned char
/******************************主函数*****************************/
void timer0()
void main() // 主程序
{
TMOD=0x01 //定时器0工作方式1
EA=1
ET0=1 //定时器0中断
TR0=1 //启动定时器0
TH0=(65536-50000)/256
TL0=(65536-50000)%256
while(1) //程序循环
}
/*****************************定时器0中断*************************/
void timer0() interrupt 1
{
uchar t//定义变量
TF0=0//定时器清0
t++ //中断一次累加1
if(t==20) //预置值,溢出20次就是1秒钟,晶振12MHZ
{
t=0
P3=~P3 //反转LED灯的亮灭
}
}
/*****************************************************************/
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)