单片机P1开关控制低四位流水灯

发布者:CelestialSoul最新更新时间:2020-11-27 来源: 51hei关键字:单片机  开关控制 手机看文章 扫描二维码
随时随地手机看文章

P1开关控制低四位流水灯,速度有点快自己调,有备注。

单片机源程序如下:

#include

#define led P1                //可以改为其他口

void delay(int x);

void left(int x);

void right(int x);

void flash1(int x);

void flash2(int x);

void delay(int x)            //延迟函数1ms(大概)

{int i;

while(x)

{

  for(i=0;i<125;i++);

  x--;

}

}

void left(int x)                //从P1^3到P1^0(我叫它左移)

{int i,j;

while(x)

  {for(i=0;i<3;i++)            // 循环3遍

   {led=0xfe;                  

    delay(50);                    //每个灯亮50ms

    for(j=0;j<3;j++)        //一共四位

     {

      led=led<<1|0xf1;

      delay(50);

     }

   }

   x--;

}

}

void right(int x)            //从最低位的最高位(我叫它右移)

{int i,j;

while(x)                        //其他同左移

  {for(i=0;i<3;i++)

   { led=0xf7;

     delay(50);

     for(j=0;j<3;j++)

     {

      led=led>>1|0xf8;

      delay(50);

     }

   }

  x--;

}

}

void flash1(int x)                //四位全闪 (可以改很多种)

{int i;

while(x)

{led=0xf0;

  delay(100);                //一次亮100ms

  for(i=0;i<1;i++)      //可以改循环次数

   {

    led=~led|0xf0;                //屏蔽高四位

    delay(100);

   }

   x--;

}

}

void flash2(int x)                //隔一位闪烁(全闪改)

{int i;

while(x)                                //基本和全闪一样

{led=0xf5;

  delay(100);

  for(i=0;i<1;i++)

  {

   led=~led|0xf0;

   delay(100);

  }

  x--;

}

}

main()

{while(1)

{led=0xff;

switch(led)                                         //在灯全灭的情况下,多个按键同时按下时不会动作;

   {case 0xef :{left(2);}break;         //按下P1^4,执行左移,可以修改循环次数

    case 0xdf :{right(2);}break; //按下P1^5,执行右移

    case 0xbf :{flash1(2);}break;//按下P1^6,执行全闪

    case 0x7f :{flash2(2);}break;//按下P1^7,执行全闪改

        default:{led=0xff;}

   }

}

}

复制代码

#include

#define led P1                //可以改为其他口

void delay(int x);

void left(int x);

void right(int x);

void flash1(int x);

void flash2(int x);

void delay(int x)            //延迟函数1ms(大概)

{int i;

while(x)

{

  for(i=0;i<125;i++);

  x--;

}

}

void left(int x)                //从P1^3到P1^0(我叫它左移)

{int i,j;

while(x)

  {for(i=0;i<3;i++)            // 循环3遍

   {led=0xfe;                  

    delay(50);                    //每个灯亮50ms

    for(j=0;j<3;j++)        //一共四位

     {

      led=led<<1|0xf1;

      delay(50);

     }

   }

   x--;

}

}

void right(int x)            //从最低位的最高位(我叫它右移)

{int i,j;

while(x)                        //其他同左移

  {for(i=0;i<3;i++)

   { led=0xf7;

     delay(50);

     for(j=0;j<3;j++)

     {

      led=led>>1|0xf8;

      delay(50);

     }

   }

  x--;

}

}

void flash1(int x)                //四位全闪 (可以改很多种)

{int i;

while(x)

{led=0xf0;

  delay(100);               //一次亮100ms

  for(i=0;i<1;i++)     //可以改循环次数

   {

    led=~led|0xf0;           //屏蔽高四位

    delay(100);

   }

   x--;

}

}

void flash2(int x)                //隔一位闪烁(全闪改)

{int i;

while(x)                                //基本和全闪一样

{led=0xf5;

  delay(100);

  for(i=0;i<1;i++)

  {

   led=~led|0xf0;

   delay(100);

  }

  x--;

}

}

main()

{while(1)

{led=0xff;                         //在灯全灭的情况下,多个按键同时按下时不会动作;

if(led==0xef)                 //按下P1^4,执行左移,可以修改循环次数 ;

   {left(2);}

  else if(led==0xdf) //按下P1^5,执行右移

   {right(2);}

  else if(led==0xbf) //按下P1^6,执行全闪

   {flash1(2);}

  else if(led==0x7f) //按下P1^7,执行全闪改

   {flash2(2);}

}

}



关键字:单片机  开关控制 引用地址:单片机P1开关控制低四位流水灯

上一篇:单片机温控红外遥控风扇源程序 舵机对直流电机控制方向
下一篇:stc89c51单片机和lcd12864显示sin函数图像

推荐阅读最新更新时间:2024-11-13 10:36

PIC单片机温度测量领域应用及Protues仿真调试
简介:本文基于PIC单片机来设计数字式测温计,直接采用数字式温度传感器DS18B20,用单片机对18B20进行控制,来进行测温。显示部分可用lcd1602,单片机可直接驱动lcd1602显示温度,硬件较简单,稳定。DS18B20采用单总线技术,容易扩展,并且具有转换速度快,转换精度高,可由片机直接读出温度并显示出来等优点。 0 引言 在日常生活经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻,而热电偶和热电阻测出的一般是电压,在转换成对应的温度,需要比较多的硬件支持,硬件电路很复杂,软件调试也复杂,制作成本高。而且测出来的温度精度也没有技术成熟的温度传感器高。 本文基于PIC单片机来设计数字式测温计,直接采用
[单片机]
PIC<font color='red'>单片机</font>温度测量领域应用及Protues仿真调试
STC12C5A60S2单片机的内部构造及功能详细介绍
STC12C5A60S2单片机是一款功能比较强大的单片机,在众多的51系列单片机中,要算国内STC 公司的1T增强系列更具有竞争力,因他不但和8051指令、管脚完全兼容,而且其片内的具有大容量程序存储器且是FLASH工艺的,如STC12C5A60S2单片机内部就自带高达60K FLASH ROM,这种工艺的存储器用户可以用电的方式瞬间擦除、改写。而且STC系列单片机支持串口程序烧写。 1、STC12C5A60S2简介 STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX
[单片机]
STM32按键控制开关
1.按键操作的原理 1.在stm32f103rc中,存在三个按键(不包括复位),分别为key0(PC5),key1(PA15),wkup(PA0),按下key0和key1时对应的io口输出低电平,按下wkup对应io口输出高电平 2.所以可以采用库函数读取io口的电平,从而用不同的情况来控制灯的开闭 GPIO_ReadInputDataBit(GPIOX,GPIO_PIN_a)读取相应接口电平 #define KEY0 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_5) #define KEY1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15) #defi
[单片机]
pic单片机功耗问题的解决
最近一周一直在做pic单片机功耗问题。由于项目使用电池供电,所以功耗问题显得非常重要。根据数据手册以及网络上的资料,影响单片机功耗主要由以下几个因素: 1:所有I/O引脚保持为高阻输入高点平或低电平 2:关闭比较器和CVref(可编程偏上参考电压)、WTD、T1OSC、BOR(欠压复位)等 3:PORTB片内弱上拉 4:所有不用的模块全部关闭,在用到时再打开 5:MCLR引脚必须处于逻辑高电平 PIC单片机在执行SLEEP指令后进入睡眠省电模式。进入SLEEP模式后,主振荡停止,如果看门狗在烧写时打开了,看门狗定时器将被清并保持运行。I/O口,周边模块和内部RAM将保持原来状态,所以如果要求睡眠后有很低功耗,应该在进入
[单片机]
51单片机-多个数码管显示
1.余晖效应 流水灯如果在流速太快的基础上再加速,那么我们看到的则是一排灯都在亮着,这就叫人眼的余晖效应。同理,我们想让多个数码管同时亮,那么就要让三八译码器的IO0~IO5每个输出引脚轮流快速切换出低电平,需要显示什么数字再由P0的8个IO端口控制。 这里提供了一段代码供大家调试玩玩,用实验现象领悟余晖效应。 #include reg52.h sbit ADDR2 = P1^2; sbit ADDR1 = P1^1; sbit ADDR0 = P1^0; sbit ENLED = P1^4; sbit ADDR3 = P1^3; void main() { unsigned char i=1; uns
[单片机]
STC15单片机DHT11温湿度检测(注释详细)oled显示程序
我这里加了oled用来显示温湿度,采用STC15,dht11模块 #include STC15.H #include intrins.h //用于提供_nop_();函数 #include OLED_Contrul_Hygrothermograph.c //OLED控制函数 sbit YLED=P3^1; sbit RLED=P3^0; sbit DHT=P3^5;//DHT11模块 unsigned int Temperature ={1,1,1};//前两位为整数部分,后一位为小数部分 unsigned int Humidity ={1,1};//传回的湿度数据只有整数部分 unsigned char Da
[单片机]
51单片机驱动ds1302程序(12864液晶显示)
这个是主界面 这个是主菜单界面 这个是设置时间的子界面 这个是设置日期 设置背景光 这是设置了按键音和闹铃以后,主界面出现状态 标志 闹铃的界面,喇叭出现铃声。 生日倒计时提醒功能。 全部完整的源代码下载: http://www.51hei.com/bbs/dpj-20391-1.html 下面是ds1602部分的驱动程序: /*------------------------------------ 名称:DS1302Driver 编写:YuMin_Dong 时间:2013.01.20 --------
[单片机]
51<font color='red'>单片机</font>驱动ds1302程序(12864液晶显示)
集Hi-Fi、智能和USB多通道等特征于一体的微控制器——迎接数字音频新时代
随着诸多技术突破和全新流媒体服务的不断融合,在智能家居和智能音箱市场日益繁荣的今天,消费者对于音频的需求已不再仅仅局限于音质本身,更多的是追求高品质的生活体验和便捷的智慧互联。因此, 要想更好的迎接数字音频新时代,当今的数字音频,不仅要能够提供Hi-Fi的音质,而且还能够作为智能设备的人机界面,同时还能够用USB多通道等方式方便连接...... XMOS在其最新的xcore器件中集成了边缘AI、DSP、控制单元和I/O等功能,因而可以在新一代音频、电机控制、工业自动化和边缘计算等许多应用和场景中,利用软件就能开发出功能非常先进的系统。这种在实现高性能硬件的同时,保持灵活性和可编程性的特性,可以为工程师和系统企业带来更快的产品
[模拟电子]
集Hi-Fi、智能和USB多通道等特征于一体的<font color='red'>微控制</font>器——迎接数字音频新时代
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved