• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的流水燈【心形】(仿真)

01/09 08:53
1784
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

共1個(gè)文件

利用80C51芯片和32顆LED燈,設(shè)計(jì)一個(gè)心形流水燈,設(shè)計(jì)功能要求如下:

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顆燈循環(huán)一周后,要求所有的燈全滅,然后再全亮(即為閃爍一次),所有燈閃爍三次后,重復(fù)上面1-4的內(nèi)容。


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

void main()	//主函數(shù)
{
	TMOD=1;//初始化定時(shí)器
	TH0=0X3C;
	TL0=0XB0;
	ET0=1;
	EA=1;
	TR0=1;
	while(1)
	{
	
	}
}

void timer0() interrupt 1//定時(shí)器中斷
{
	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
    下載

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時(shí)響應(yīng)!