加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的流水灯【3模式,万能编码】(仿真)

01/03 08:53
699
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

有需要资料的可了解一下.docx

共1个文件

bit k1=P3^0;//按钮
sbit k2=P3^1;
sbit k3=P3^2;
//=================================================
#define led_num1 15//编码个数
uchar code table1[15]={//花样1编码
0x00,0x00,0xff,
0x00,0x00,0xff,
0x00,0x00,0xff,
0x00,0x00,0xff,
0x00,0x00,0xff
};
//=================================================
#define led_num2 8//编码个数
uchar code table2[8]={//花样2编码
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00
};
//=================================================
#define led_num3 10//编码个数
uchar code table3[10]={//花样3编码
0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6
};

uchar time=0,mode=0;//系统变量
uchar flag=0;

void main()	//主函数
{
	TMOD|=0X01;
	TH0=(65536-50000)/256;//50ms
	TL0=(65536-50000)%256;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		if(!k1)	   //花样1
		{
			mode=1;
		}
		if(!k2)	   //花样2
		{
			mode=2;
		}
		if(!k3)	   //花样3
		{
			mode=3;
		} 
	}
}
//定时器中断
void Timer0() interrupt 1
{
	if(time<10)//0.5s
		time++;
	else
	{
		time=0;
		if(mode==1)//花样1
		{
			P1=table1[flag];
			if(flag<led_num1)
				flag++;
			else
			{
				flag=0;
				P1=0xff;
				mode=0;//停止
			}
		}
		if(mode==2)//花样2
		{
			P1=table2[flag];
			if(flag<led_num2)
				flag++;
			else
			{
				flag=0;
				P1=0;
				mode=0;//停止
			}

资料借鉴于此纷传

  • 有需要资料的可了解一下.docx
    下载

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!