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

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

基于51单片机的流水灯【心形】(仿真)

13小时前
363
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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

共1个文件

利用80C51芯片和32颗LED灯,设计一个心形流水灯,设计功能要求如下:

1. 心形流水灯从P0.7口接的灯(即A7灯)亮开始右移一位,直到移到P0.0口(即A0灯),然后A0—A7灯全灭;

2. A0—A7灯全灭后,P1.0口接的灯(即B0灯)亮开始左移一位,直到移到P1.7口(即B7灯),然后B0—B7灯全灭;

3. B0—B7灯全灭后,P3.0口接的灯(即D0灯)亮开始左移一位,直到移到P3.7口(即D7灯),然后D0—D7灯全灭;

4. D0—D7灯全灭后,P2.0口接的灯(即C0灯)亮开始左移一位,直到移到P2.7口(即C7灯),然后C0—C7灯全灭;

5. 32颗灯循环一周后,要求所有的灯全灭,然后再全亮(即为闪烁一次),所有灯闪烁三次后,重复上面1-4的内容。


uchar time=0,mode=0,flag=0,cishu=0;

void main()	//主函数
{
	TMOD=1;//初始化定时器
	TH0=0X3C;
	TL0=0XB0;
	ET0=1;
	EA=1;
	TR0=1;
	while(1)
	{
	
	}
}

void timer0() interrupt 1//定时器中断
{
	if(time<6)
		time++;
	else
	{
		time=0;
		if(mode==0)//P0
		{
			P0=~(0x80>>flag);
			if(flag<8)
				flag++;
			else
			{
				flag=0;
				mode=1;
				P0=0XFF;
			}
		}
		if(mode==1)//P1
		{
			P1=~(1<<flag);
			if(flag<8)
				flag++;
			else
			{
				flag=0;
				mode=2;
				P1=0XFF;
			}
		}
		if(mode==2)//P3
		{
			P3=~(1<<flag);
			if(flag<8)
				flag++;
			else
			{
				flag=0;
				mode=3;
				P3=0XFF;
			}
		}
		if(mode==3)//P2
		{
			P2=~(1<<flag);
			if(flag<8)
				flag++;
			else
			{
				flag=0;
				mode=4;
				P2=0XFF;
			}
		}
		//闪烁
		if(mode==4)
		{
			if(flag==0)
			{
				P0=0xff;P1=0xff;P2=0xff;P3=0xff;
				if(cishu<3)
					cishu

资料借鉴于此纷传

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

相关推荐