单片机 编程实例.docx
《单片机 编程实例.docx》由会员分享,可在线阅读,更多相关《单片机 编程实例.docx(66页珍藏版)》请在冰点文库上搜索。
![单片机 编程实例.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/f658b9c2-5a9e-4a09-a0a1-a8a84cfbb6c7/f658b9c2-5a9e-4a09-a0a1-a8a84cfbb6c71.gif)
单片机编程实例
超炫带20种模式的流水灯模式
#include//头文件
rzmzy();//红色走马左移声明
rlszy();//红色流水左移声明
rlsyy();//红色流水右移声明
rzmyy();//红色走马右移声明
rzmnwyd();//红色走马内外移动声明
rlsnwyd();//红色流水内外移动声明
rtbyd();//红色跳变移动声明
rsdzmyy();//红色3灯走马右移声明
rsdzmzy();//红色3灯走马左移声明
rjl();//红色渐亮声明
rja();//红色渐暗声明
rdlszy();//倒流水左移函数
//rdlsyy();//倒流水右移函数,还未加入
zkb(unsignedchard);
voidys1ms(unsignedints);//延时声明,修改s的数值,就可以改变时间
main()//主函数,由于模块化设计,只要修改下面各模块的排列顺序和时间,就可以实现各种变化模式
{
EA=1;//打开中断,使用中断方便调试查看模式
EX0=1;//允许外部中断0中断
EX1=1;//允许外部中断1中断
PX0=1;//外部中断0位高优先级
while
(1)//无限循环
{
rdlszy();//倒流水左移
rja();//渐暗
P0=0xff;
ys1ms(300);//延时0.3秒
//rdlsyy();//倒流水右移
//P0=0xff;
//ys1ms(300);
rzmyy();//走马右移
P0=0xff;
ys1ms(300);
rzmzy();//走马左移
P0=0xff;
ys1ms(300);
rjl();//渐亮
rja();//渐暗
P0=0xff;
ys1ms(300);
rzmnwyd();//走马内外移动
P0=0xff;
ys1ms(300);
rlszy();//流水左移
rja();//渐暗
ys1ms(300);
rlsyy();//流水右移
rja();//渐暗
ys1ms(300);
rsdzmyy();//3灯走马右移
P0=0xff;
ys1ms(300);
rsdzmzy();//3灯走马右移
P0=0xff;
ys1ms(300);
rlsnwyd();//流水内外移动
P0=0xff;
ys1ms(300);
rtbyd();//跳变7种模式
P0=0xff;
ys1ms(300);
}
}
rzmyy()//走马拖尾右移函数
{
P0=0x7f;
ys1ms(60);
P0=0xbf;
if(P0_7==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_7=0;
for(i=0;i<15;i++);//调节亮度高低
P0_7=1;
for(i=0;i<50;i++);
}
}
P0=0xdf;
if(P0_6==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_6=0;
for(i=0;i<15;i++);//调节亮度高低
P0_7=0;
for(i=0;i<1;i++);//调节亮度高低
P0_6=1;
P0_7=1;
for(i=0;i<50;i++);
}
}
P0=0xef;
if(P0_5==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_5=0;
for(i=0;i<15;i++);//调节亮度高低
P0_6=0;
for(i=0;i<1;i++);//调节亮度高低
P0_5=1;
P0_6=1;
for(i=0;i<50;i++);
}
}
P0=0xf7;
if(P0_4==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_4=0;
for(i=0;i<15;i++);//调节亮度高低
P0_5=0;
for(i=0;i<1;i++);//调节亮度高低
P0_4=1;
P0_5=1;
for(i=0;i<50;i++);
}
}
P0=0xfb;
if(P0_3==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_3=0;
for(i=0;i<15;i++);//调节亮度高低
P0_4=0;
for(i=0;i<1;i++);//调节亮度高低
P0_3=1;
P0_4=1;
for(i=0;i<50;i++);
}
}
P0=0xfd;
if(P0_2==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_2=0;
for(i=0;i<15;i++);//调节亮度高低
P0_3=0;
for(i=0;i<1;i++);//调节亮度高低
P0_2=1;
P0_3=1;
for(i=0;i<50;i++);
}
}
P0=0xfe;
if(P0_1==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_1=0;
for(i=0;i<15;i++);//调节亮度高低
P0_2=0;
for(i=0;i<1;i++);//调节亮度高低
P0_1=1;
P0_2=1;
for(i=0;i<50;i++);
}
}
P0=0xff;
if(P0_0==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_0=0;
for(i=0;i<15;i++);//调节亮度高低
P0_1=0;
for(i=0;i<1;i++);//调节亮度高低
P0_0=1;
P0_1=1;
for(i=0;i<50;i++);
}
}
if(P0_7==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_0=0;
for(i=0;i<1;i++);//调节亮度高低
P0_0=1;
for(i=0;i<50;i++);
}
}
}
/****************************************************************************/
rzmzy()//走马拖尾左移函数
{
P0=0xfe;
ys1ms(60);
P0=0xfd;
if(P0_0==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_0=0;
for(i=0;i<10;i++);//调节亮度高低
P0_0=1;
for(i=0;i<50;i++);
}
}
P0=0xfb;
if(P0_1==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_1=0;
for(i=0;i<15;i++);//调节亮度高低
P0_0=0;
for(i=0;i<1;i++);//调节亮度高低
P0_1=1;
P0_0=1;
for(i=0;i<50;i++);
}
}
P0=0xf7;
if(P0_2==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_2=0;
for(i=0;i<15;i++);//调节亮度高低
P0_1=0;
for(i=0;i<1;i++);//调节亮度高低
P0_2=1;
P0_1=1;
for(i=0;i<50;i++);
}
}
P0=0xef;
if(P0_3==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_3=0;
for(i=0;i<15;i++);//调节亮度高低
P0_2=0;
for(i=0;i<1;i++);//调节亮度高低
P0_3=1;
P0_2=1;
for(i=0;i<50;i++);
}
}
P0=0xdf;
if(P0_4==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_4=0;
for(i=0;i<15;i++);//调节亮度高低
P0_3=0;
for(i=0;i<1;i++);//调节亮度高低
P0_4=1;
P0_3=1;
for(i=0;i<50;i++);
}
}
P0=0xbf;
if(P0_5==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_5=0;
for(i=0;i<15;i++);//调节亮度高低
P0_4=0;
for(i=0;i<1;i++);//调节亮度高低
P0_5=1;
P0_4=1;
for(i=0;i<50;i++);
}
}
P0=0x7f;
if(P0_6==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_6=0;
for(i=0;i<15;i++);//调节亮度高低
P0_5=0;
for(i=0;i<1;i++);//调节亮度高低
P0_6=1;
P0_5=1;
for(i=0;i<50;i++);
}
}
P0=0xff;
if(P0_7==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_7=0;
for(i=0;i<15;i++);//调节亮度高低
P0_6=0;
for(i=0;i<1;i++);//调节亮度高低
P0_7=1;
P0_6=1;
for(i=0;i<50;i++);
}
}
if(P0_0==1)
{
unsignedinta;
for(a=0;a<350;a++)//调节点亮时间
{
unsignedchari;
P0_7=0;
for(i=0;i<1;i++);//调节亮度高低
P0_7=1;
for(i=0;i<50;i++);
}
}
}
/****************************************************************************/
rlszy()//流水左移函数
{
unsignedchara,i,led;//声明无字符整形变量a,i,led
led=0xfe;//左移初始值定位
P0=led;//输出
ys1ms(120);//延时
for(i=1;i<8;i++)//设置移动7次
{
a=led<
P0=a;//依次点亮
ys1ms(120);
}
}
/***************************************************************************/
rlsyy()//流水右移函数
{
unsignedchara,i,led;//声明无字符整形变量a,i,led
led=0x7f;//左移初始值定位
P0=led;//输出
ys1ms(120);//延时
for(i=1;i<8;i++)//设置移动7次
{
a=led>>i;//灯右移i位
P0=a;//依次点亮
ys1ms(120);
}
}
/***************************************************************************/
rdlszy()//倒流水左移函数
{
P0=0xfe;
ys1ms(60);
P0=0xfd;
ys1ms(60);
P0=0xfb;
ys1ms(60);
P0=0xf7;
ys1ms(60);
P0=0xef;
ys1ms(60);
P0=0xdf;
ys1ms(60);
P0=0xbf;
ys1ms(60);
P0=0x7f;
ys1ms(60);
P0=0x7e;
ys1ms(60);
P0=0x7d;
ys1ms(60);
P0=0x7b;
ys1ms(60);
P0=0x6f;
ys1ms(60);
P0=0x5f;
ys1ms(60);
P0=0x3f;
ys1ms(60);
P0=0x3d;
ys1ms(60);
P0=0x3b;
ys1ms(60);
P0=0x37;
ys1ms(60);
P0=0x2f;
ys1ms(60);
P0=0x1f;
ys1ms(60);
P0=0x1e;
ys1ms(60);
P0=0x1d;
ys1ms(60);
P0=0x1b;
ys1ms(60);
P0=0x17;
ys1ms(60);
P0=0x0f;
ys1ms(60);
P0=0x0e;
ys1ms(60);
P0=0x0d;
ys1ms(60);
P0=0x0b;
ys1ms(60);
P0=0x07;
ys1ms(60);
P0=0x06;
ys1ms(60);
P0=0x05;
ys1ms(60);
P0=0x04;
ys1ms(60);
P0=0x03;
ys1ms(60);
P0=0x02;
ys1ms(60);
P0=0x01;
ys1ms(60);
P0=0x00;
}
/***************************************************************************
rdlsyy()//倒流水右移函数,参考上面左移
{
}
/***************************************************************************/
rsdzmyy()//3灯走马右移函数,可以参考单灯走马加入拖尾
{
P0=0x1f;
ys1ms(60);
P0=0x8f;
ys1ms(60);
P0=0xc7;
ys1ms(60);
P0=0xe3;
ys1ms(60);
P0=0xf1;
ys1ms(60);
P0=0xf8;
ys1ms(60);
P0=0xfc;
ys1ms(60);
P0=0xfe;
ys1ms(60);
P0=0xff;
}
/****************************************************************************/
rsdzmzy()//3灯走马左移函数,可以参考单灯走马加入拖尾
{
P0=0xf8;
ys1ms(60);
P0=0xf1;
ys1ms(60);
P0=0xe3;
ys1ms(60);
P0=0xc7;
ys1ms(60);
P0=0x8f;
ys1ms(60);
P0=0x1f;
ys1ms(60);
P0=0x3f;
ys1ms(60);
P0=0x7f;
ys1ms(60);
P0=0xff;
}
/****************************************************************************/
rzmnwyd()//走马内外移动函数
{
P0=0x7e;//
ys1ms(90);
P0=0xbd;
ys1ms(90);
P0=0xdb;
ys1ms(90);
P0=0xe7;
ys1ms(90);
P0=0xff;
ys1ms(300);
P0=0xe7;
ys1ms(90);
P0=0xdb;
ys1ms(90);
P0=0xbd;
ys1ms(90);
P0=0x7e;
ys1ms(90);
P0=0xff;
}
/****************************************************************************/
rlsnwyd()//红色流水内外移动函数
{
P0=0xe7;//
ys1ms(90);
P0=0xc3;
ys1ms(90);
P0=0x81;
ys1ms(90);
P0=0x00;
rja();
ys1ms(300);
P0=0x7e;
ys1ms(90);
P0=0x3c;
ys1ms(90);
P0=0x18;
ys1ms(90);
P0=0x00;
rja();
}
/****************************************************************************/
rtbyd()//红色跳变8模式移动函数
{
P0=0x1f;
ys1ms(180);
P0=0xff;
ys1ms(120);
P0=0xf8;
ys1ms(180);
P0=0xff;
ys1ms(120);
P0=0xe7;
ys1ms(180);
P0=0xff;
ys1ms(300);
/****************************************************************************/
P0=0xfc;
ys1ms(180);
P0=0xff;
ys1ms(120);
P0=0x3f;
ys1ms(180);
P0=0xff;
ys1ms(300);
/****************************************************************************/
P0=0x3c;
ys1ms(180);
P0=0xff;
ys1ms(120);
P0=0x3c;
ys1ms(180);
P0=0xff;
ys1ms(300);
/****************************************************************************/
P0=0xc3;
ys1ms(120);
P0=0xff;
ys1ms(120);
P0=0xc3;
ys1ms(120);
P0=0xff;
ys1ms(120);
/****************************************************************************/
P0=0xf0;
ys1ms(180);
P0=0xff;
ys1ms(120);
P0=0xf0;
ys1ms(180);
P0=0xff;
ys1ms(300);
/************************************************************************