51单片机有关广州塔实验程序

发布时间:2022-12-19  

include
#include//循环函数的头文件
#define unint unsigned int
#define unchar unsigned char
unchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//从低位往高位移一个灯
unchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//从高位往低位移一个灯
unchar code table2[]={0xfe,0xfa,0xf8,0xf0,0xe0,0xa0,0x80,0x00};//从低位到高位逐步全部点亮
unchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//从高位到低位逐步全部点亮
unchar code table4[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//从低位到高位逐步全部熄灭
unchar code table5[]={0x80,0xa0,0xe0,0xf0,0xf8,0xfa,0xfe,0xff};//从高位到低位逐步全部熄灭
unchar code table6[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//从低位到高位,灭一个灯移动
unchar code table7[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//从高位到低位,灭一个灯移动

unchar i;

void delay(unint z) //延时函数
{
unint x,y;
for(x=z;x>0;x--)
for(y=314;y>0;y--);
}
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
void deng123()//
{
for(i=0;i<8;i++)
{
P2=table1[i];
P0=table1[i];
delay(25);
}
}
/***********************************************
************************************************/
void deng0()//所有灯亮一会儿
{
P0=0x00;P1=0x00;P2=0x00;P3=0x00;
delay(150);
}
/////////////////////////////////
void deng0_1()//所有灯灭一会儿
{
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
delay(150);
}
//////////////////////////////////////
void deng1()//两列灯顺时针旋转2遍,然后逐渐降低
{
unchar c;
P1=0x00;P3=0x00;

for(c=2;c>0;c--)
{
deng123();
}
////////////////

P1=0x03;
deng123();
/////////////////
P1=0x0f;
deng123();
////////////////
P1=0x3f;
deng123();
///////////////
P1=0xff;
deng123();
////////////////////////
P3=0x03;
deng123();
//////////////
P3=0x0f;
deng123();
//////////////
P3=0x3f;
deng123();
/////////////
P3=0xff;
deng123();
P2=0xff;P0=0xff;

}

///////////////////////////////////////////////

void deng2()//四列灯顺时针旋转2遍
{
unchar a;
unchar b;
b=0x77;
P2=b;
P0=b;
P1=0x00;P3=0x00;
for(a=4;a>0;a--)
{
for(i=0;i<8;i++)
{
b=_cror_(b,1);//循环左移
delay(25);
P2=b;
P0=b;
}
}

P2=0xff;P0=0xff;P1=0xff;P3=0xff;

}
//////////////////////////////////////////////
void deng3()//单层,向上升
{
P0=0x00;
P2=0x00;

for(i=0;i<8;i++)
{
P3=table1[i];
delay(25);
}
P3=0xff;
/*----------------------*/
for(i=0;i<8;i++)
{
P1=table1[i];
delay(25);
}
P1=0xff;
}
/////////////////////////////////////////
void deng4()//单层,向下降
{
P2=0x00;P0=0x00;
for(i=0;i<8;i++)
{
P1=table0[i];
delay(25);
}
P1=0xff;
/*----------------------*/
for(i=0;i<8;i++)
{
P3=table0[i];
delay(25);
}
P3=0xff;P1=0xff;P0=0xff;P2=0xff;
}
/////////////////////////////////////////
void deng5()//从上到下,逐层全部点亮】
{
P0=0x00;P2=0x00;
for(i=0;i<8;i++)
{
P1=table2[i];
delay(25);
}
for(i=0;i<8;i++)
{
P3=table2[i];
delay(25);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
}
////////////////////////////////////////
void deng6()//从上到下,逐层全部熄灭】
{
P0=0x00;P2=0x00;
P1=0x00;P3=0x00;
for(i=0;i<8;i++)
{
P1=table4[i];
delay(25);
}
P1=0xff;
for(i=0;i<8;i++)
{
P3=table4[i];
delay(25);
}
P3=0xff;
P0=0xff;P2=0xff;
}
///////////////////////////////////

void deng7()//四组灯,交替两次
{
for(i=2;i>0;i--)
{
P1=0x00;P2=0x00;//上左
delay(40);
P1=0xff;P2=0xff;
delay(40);


/////////////
P3=0x00;P0=0x00;//下右
delay(40);
P3=0xff;P0=0xff;
delay(40);
/////////////
P3=0x00;P2=0x00;//下左
delay(40);
P3=0xff;P2=0xff;
delay(40);
/////////////
P1=0x00;P0=0x00;//上右
delay(40);
P1=0xff;P0=0xff;
delay(40);
}

}
void deng8()//上半先逐步列点亮,然后再向下点点亮
{
P0=0xff;P2=0xff;P3=0xff;
P1=0x00;
for(i=0;i<8;i++)
{
P0=table3[i];
P2=table3[i];
delay(25);
}
delay(70);
P1=0x00;P2=0x00;P0=0x00;
for(i=0;i<8;i++)
{
P3=table2[i];
delay(25);
}


}
//////////////////////////////////////
void deng9()//从中间向上、下点亮,再熄灭
{
P0=0x00;P2=0x00;
for(i=0;i<8;i++)
{
P1=table3[i];
P3=table2[i];
delay(25);
}
for(i=0;i<8;i++)
{
P1=table4[i];
P3=table5[i];
delay(25);
}
}
///////////////////////////////////////////
void deng10()//从中间向上、下熄灭
{
P0=0x00;P2=0x00;
for(i=0;i<8;i++)
{
P1=table5[i];
P3=table4[i];
delay(25);
}
P1=0xff;P3=0xff;

}
void deng11()//逆时针逐列点亮所有灯
{
P1=0x00;P3=0x00;
P0=0xff;P2=0xff;
for(i=0;i<8;i++)
{
P0=table2[i];
delay(25);
}
for(i=0;i<8;i++)
{
P2=table2[i];
delay(25);
}
P0=0xff;P2=0xff;P3=0xff;P1=0xff;
}
///////////////////////////////////////////
void deng12()//闪烁
{
uchar i;
uchar b;
b=0xaa;
P2=b;
P0=b;
P1=b;
P3=b;

for(i=0;i<8;i++)
{
b=_cror_(b,1);//循环左移
delay(50);
P2=b;
P0=b;
P1=b;
P3=b;

}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
}
void deng13()//两层灯,分别从中间向上、下移动
{
P2=0x00;P0=0x00;
for(i=0;i<8;i++)
{
P1=table1[i];
P3=table0[i];
delay(25);
}
P2=0xff;P0=0xff;P1=0xff;P3=0xff;
}
void deng14_1()//点满一圈的小函数(限内部用)
{
P2=0xff;P0=0xff;

for(i=0;i<8;i++)
{
P2=table2[i];
delay(15);
}

for(i=0;i<8;i++)
{
P0=table2[i];
delay(15);
}
P2=0xff;P0=0xff;
}

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    的进步,电磁干扰问题越来越突出,推广现有的、成熟的抗干扰技术,研究抗干扰的新技术、新方向是单片机应用技术的当务之急。在单片机应用系统设计及应用中,只要充分考虑设备的电磁兼容性,并通过各种技术......
    干扰因素影响。因此,针对不同类型的干扰因素制定对应的 技术,促进单片机应用与发展的多向化实践。 2. 1. 1 工业区域的电磁干扰 在单片机的六大应用领域中,工业控制是普及 程度最高、应用......
    ESP8266自动下载电路设计方案;前言 使用过51单片机的朋友会清楚:51单片机在烧写程序的时候需要断一下电再上电;使用过STM32单片机的朋友会清楚:烧写程序时需要设置Boot模式......
    STM32单片机的GPIO输入、输出模式与配置方法;STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块和实现微控制器应用所需的社区支持。在单片机应用......
    了STM32CubeMX配置工具和STM32Cube HAL库,提供了丰富的功能和工具,方便开发者进行单片机应用程序的开发、调试和部署。 IAR Embedded Workbench是另一款流行的单片机......
    了一个既小巧又完善的计算机硬件系统。 2、单片机用途 (1)智能仪器仪表,如示波器、万用表 (2)机电一体化产品,如机器人、数控机床、打印机 (3)实时工业控制,如电机转速控制 (4)家用电器,如冰箱、洗衣机 3、单片机应用......
    知道如何下手去使用它进行开发了。   如何学习单片机:   前边提到过,单片机是一门实用技术,我们学习它已经不是为了应付考试了,我给大家总结了单片机的学习方法是:一个要领,四个步骤。   学习单片机的要领就是:在实......
    知道如何下手去使用它进行开发了。   如何学习单片机:   前边提到过,单片机是一门实用技术,我们学习它已经不是为了应付考试了,我给大家总结了单片机的学习方法是:一个要领,四个步骤。   学习单片机的要领就是:在实......
    跑马灯实验用汇编语言和C51语言做出的不同效果;当前开发单片机应用系统程序主要应用汇编语言和C51语言,采用汇编语言编写可直接操纵系统的硬件资源,能编写出高效运行的程序代码,程序运行速度快。而采......
    : 前边提到过,单片机是一门实用技术,我们学习它已经不是为了应付考试了,我给大家总结了单片机的学习方法是:一个要领,四个步骤。 学习单片机的要领就是:在实践中成长。 可为什么那么多人学单片机......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>