仿真电路图:

基于51单片机,8个LED组成流水灯,通过一个按键切换模式

部分代码:

#include<reg51.h>void delay(unsigned char ms)          //延时函数
{unsigned char i,j,k,n;for (k=0;k<ms;k++)for(i=0;i<20;i++)  for(j=0;j<13;j++)     for(n=0;n<2;n++);
}     void code shanshou0()  //显示模式函数  {    P1 = 0xff;
}
void code shanshou1()
{unsigned char i,j;j=0x01;for(i=0;i<8;i++)
{P1=~j;delay(20000);j<<=1;
}
}
void code shanshou2()
{P1=0Xaa;delay(100);P1=~0Xaa;delay(100);/* unsigned char i,j;j=0x55;for(i=8;i>0;i--)
{P1=~j;delay(50000);j<<=1;
}*/
}
void code shanshou3()
{ char a;a=8;P1=0x7f;while(a--){delay(40);P1=(P1>>1)+0x80;}/*unsigned char i,j,n;j=0x01;for(i=0;i<8;i++){for(n=0;n<3;n++){P1=~j;delay(20000);P1=0xff;delay(20000);}j<<=1;}*/
}
void code shanshou4()
{char a,b;char x;       x=3;P1=0xe7;delay(40);while(x--){a=P1&0xf0;         //获取P1口高4位b=P1&0x0f;       //获取P1口低4位a=(a<<1)+0x10;b=(b>>1)+0x08;P1=a+b;delay(40);}/*unsigned char i,j,n;j=0x55;for(i=0;i<8;i++){for(n=0;n<3;n++){P1=~j;delay(20000);P1=0xff;delay(20000);}j<<=1;}*/
}   void code shanshou5()
{P1 = 0x00;delay(20);P1=0xff;delay(20);
}
unsigned char  i=0;     //切换显示函数用变量
sbit key = P0^2;  //按键接口
void (* shanshou)() = shanshou0;    //指向函数的指针 用于切换显示模式 初始化显示方式0void key_scan()
{TR0 = 0;TH0 = 0x3c;TL0 = 0xb0;  TR0 = 1;key = 1;delay(1);if (key == 0 )   {delay(10);      //按键消抖if (key == 0 ){i++;if(i>5) i=0;switch(i){case 0 : shanshou=shanshou0;break;case 1 : shanshou=shanshou1;break;case 2 : shanshou=shanshou2;break;case 3 : shanshou=shanshou3;break;case 4 : shanshou=shanshou4;break;case 5 : shanshou=shanshou5;break;    }   while( key == 0)  //防止按一次键读取多个值delay(10);                 }}
}void timer0 ()  interrupt 1
{key_scan();
}void main()
{TMOD = 0x01;TH0 = 0x3c;TL0 = 0xb0;EA = 1;ET0 = 1;TR0 = 1;    while(1){shanshou();        }}/*  #include<reg51.h>void delay(unsigned char ms)           //延时函数
{unsigned char i,j,k,n;for (k=0;k<ms;k++)for(i=0;i<20;i++)  for(j=0;j<13;j++)     for(n=0;n<2;n++);
}     void code xianshi0()  //显示模式函数  其中code是表示放在程序区 可以不要{  P0 = 0xff;
}
void code xianshi1()
{unsigned char i,j;j=0x01;for(i=0;i<8;i++)
{P0=~j;delay(50000);j<<=1;
}
}
void code xianshi2()
{unsigned char i,j;j=0x55;for(i=8;i>0;i--)
{P0=~j;delay(50000);j<<=1;
}
}
void code xianshi3()
{ unsigned char i,j,n;j=0x01;for(i=0;i<8;i++){for(n=0;n<3;n++){P0=~j;delay(20000);P0=0xff;delay(20000);}j<<=1;}}
void code xianshi4()
{unsigned char i,j,n;j=0x55;for(i=0;i<8;i++){for(n=0;n<3;n++){P0=~j;delay(20000);P0=0xff;delay(20000);}j<<=1;}}

附:http://www.jh-tec.cn/archives/7474

基于51单片机的多彩霓虹灯控制系统proteus仿真相关推荐

  1. 基于51单片机的智能路灯控制系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前时间/环境光强/工作模式 2.支持路灯故障检测 3.工作时间内(17~24时),两个路灯同时点亮,24时以后,B路灯 ...

  2. 基于51单片机的智能水龙头控制系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.液晶实时显示当前的设定温度/实际温度/水龙头状态和水流量 2.按键可开关水龙头,当温度低于设定温度时,启动加热控制继电器,给水加热, 当加热到 ...

  3. 【011】基于51单片机的低频信号发生proteus仿真与实物设计

    ​一.资料内容 (1).基于51单片机的低频信号发生proteus仿真设计一份: (2).基于51单片机的低频信号发生proteus仿真设计keli源代码一份: (3).基于51单片机的低频信号发生A ...

  4. 基于51单片机的LCD1602电子钟闹钟proteus仿真设计

    本设计是基于51单片机的LCD1602电子钟闹钟proteus仿真设计 源码+仿真+原理图+器件清单 仿真软件版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编 ...

  5. 【004】基于51单片机的音乐播放器proteus仿真设计

    一.压缩包资料内容(私信获取) (1).基于51单片机的音乐播放器proteus仿真设计一份: (2).基于51单片机的音乐播放器proteus仿真设计keli源代码一份: (3).基于51单片机的音 ...

  6. 【006】基于51单片机的简易电子计算器Proteus仿真设计

    一.压缩包资料内容(私信获取) (1).基于51单片机的简易电子计算器proteus仿真设计一份: (2).基于51单片机的简易电子计算器proteus仿真设计keli源代码一份: (3).基于51单 ...

  7. 基于stm32单片机智能温控风扇控制系统Proteus仿真

    资料编号:103  下面是相关功能视频演示: 103-基于stm32单片机智能温控风扇控制系统Proteus仿真(源码+仿真+全套资料) 功能介绍:采用stm32单片机.ds18b20温度传感器采集温 ...

  8. 基于51单片机的八路电压表采集Proteus仿真(源码+仿真+原理图+全套资料)

    资料编号:110 程序语言:C语言 仿真软件:Proteus8.9版本 功能讲解如下: 利用单片机及其外围器件(A/D转换器等)实现一款简易电压表,实现以下功能: 1   电压表能够进行8路模拟电压测 ...

  9. 基于51单片机火灾监测自动灭火装置Proteus仿真

    资料编号:167   下面是相关功能视频演示: 167-基于51单片机火灾监测自动灭火装置Proteus仿真(源码+仿真+全套资料) 功能讲解: 采用51单片机作为控制CPU,采用ADC0832采集火 ...

最新文章

  1. nginx upstream 调度策略
  2. 【算法】算法岗需要顶会才能入场?
  3. 使用代码设置Item级的权限(权限总结1)
  4. TCP文件上传Java_Java 理解TCP通信案例:文件上传案例
  5. 玩生死狙击找不到服务器怎么办,生死狙击手游进不了游戏解决方法 生死狙击手游进游戏诀窍...
  6. FD.io——助你创新更高效、更灵活的报文处理方案
  7. VBS中Sub与Function的区别[资料]
  8. 什么是数据脱敏,数据脱敏有哪些方式
  9. unity3d 双人巡逻兵网络游戏
  10. php调用手写板,手写板使用起来方便、快捷 其原理你知道吗?
  11. 论文笔记:Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference
  12. nc 自开节点做参照_NC6period;3常见问题记录
  13. 【精简操作】Mathtype安装出现错误“53”/未找到.wll文件/选项卡灰色等问题
  14. html直角三角形怎么实现,直角三角形怎么画
  15. ICS-GNN:Lightweight Interactive Community Search via Graph Neural Network
  16. android tv 菜单键,Android TV开发总结(三)构建一个TV app的焦点控制及遇到的坑
  17. 20年研发管理经验谈(四)
  18. 设计模式(Java随笔)—生成器模式
  19. linux搭建dlna媒体服务器,[ubuntu]dlna平台搭建(在家里,寝室搭建自己的影音平台)...
  20. ionic android 禁止截屏设置

热门文章

  1. 华为荣耀linux系统,中国国产操作系统来了,华为荣耀笔记本首度搭载
  2. html结合css实现浏览器展示3D相册
  3. 文件路径 (/mnt/sdcard/...) 、Uri路径(content://media/external/...)
  4. Java变量初始化顺序
  5. 阿里巴巴的采源宝你知多少?
  6. CPU、GPU、TPU是个啥?
  7. 搭建Eclipse PHP开发环境
  8. C++知识进阶之#defines使用优化
  9. 湖南软件工程自考本科总结
  10. Attention机制中 Q、K、V分别从哪里来?