用proteus和keilc实现流水灯

在日常生活中,我们经常会看到一排led灯,按着顺序一个一个的亮,而且是亮过就灭。在实验中我们成为流水灯。现在来看看如何在使用按键的情况实现吧。

操作方法

  • 01

    首先要明白流水灯的实现原理。 当K1~K2分别按下时,经(P0 & 0X0F)运算得到的相应键值分别为0x0e、0x0d、0x0b、0x07,而无键按下时的键值为0x0f。因此,按键状态可以依据(P0 & 0X0F)是否等于0x0f进行判断。 说明:设置两个标志位:启停标志run(1表启动,0表停止),方向标dir(1表自上而下循环,0表自下而上循环)。 实现的功能:K1是总开关,当K1首次按下时,流水灯由下往上流动;当K2按下时停止流动;当K3按下时,使灯由上往下流动;K4则是由下往上流动。

  • 02

    思路:先判断是哪个键按下,K1为启动位,K2为停止,K3和K4转向。 按照这个思路写出keilc代码: #include "reg51.h" unsigned char led[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delay(unsigned char time){ unsigned int j = 15000; for(;time > 0; time--) for(;j > 0;j--); } void main(){ bit dir = 0,run = 0; char i; while(1){ switch(P0 & 0x0f){ case 0x0e:run = 1;break; case 0x0d:run = 0,dir = 0;break; case 0x0b:dir = 1;break; case 0x07:dir = 0;break; } if(run) if(dir) for(i = 0; i < 8; i++){ P2 = led[i]; delay(200); } else for(i = 7;i >= 0;i--){ P2 = led[i]; delay(200); } else P2 = 0xff; } } 然后生成hex文件。一般写完keilc代码并生成hex文件后会产生如下所示的目录。

  • 03

    根据以上思路画出电路图,如下所示:

  • 04

    之后,将hex文件导入80c51中即可执行。已测试,执行完好。 至于如何画电路图和生成hex文件,在以前的经验中都有涉及。

(0)

相关推荐

  • 利用Proteus和keil仿真51单片机流水灯

    流水灯可以说是单片机里面的Hello World,也就是最基础的部分. 这里我们利用Proteus绘制单片机流水灯的电路图,keil c51编写流水灯的程序. 仿真既可以帮助我们学习,也可以检验电路是 ...

  • 如何用keil与proteus模拟仿真流水灯?

    现如今,自动控制在我们的生活中到处可见,微机渗透到我们生活中的方方面面,许多人对此感兴趣但苦于没有设备来实验,而有了模拟仿真软件之后这将不再是难题,proteus就是这样一款仿真软件,在此提出一个制作 ...

  • C51单片机流水灯c语言程序详解

    C51单片机是我们学习单片机必学的一款单片机,流水灯也是单片机入门程序,下面给大家展示一下流水灯的程序编写方法适合初学者, 流水灯就是一组灯,然后在控制系统的控制下按照设定的顺序和时间来发亮和熄灭,这 ...

  • 51单片机C程序实验LED灯:[4]花样流水灯

    前篇的升级版. 目标:实现花样流水灯. 由于花样流水灯的变换很多,所需变量太多,所以一般没有使用移动语句,而是利用数组编译好每个时刻各个灯的赋值,然后读取数据输出到端口显示. proteus电路图 0 ...

  • 51单片机C程序实验LED灯:[2]左到右的流水灯

    依旧是基础的LED灯部分的实验 说明:实现一排灯从左到右依次一个一个点亮熄灭,实现流水灯 proteus电路图 01 元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极 ...

  • 用proteus和keilc实现LED闪烁

    在生活中我们经常会看到一些一闪一闪的灯,那么现在就来用proteus和keilc实现比较简单的LED灯闪烁. 操作方法 01 首先用proteus画LED闪烁实现电路图,具体画电路图的步骤可以参照上篇 ...

  • 单片机教学之流水灯程序制作

    随着时代的进步,单片机的应用是越来越广泛,今天给大家带来两个简单的程序,来实现流水灯的效果. 操作方法 01 在任意位置建立一个专门用于存放单片机试验程序的文件夹,启动keil c51 集成开发环境. ...

  • Keil uVision4实例 51单片机控制流水灯效果

    Keil uVision4实例 51单片机控制流水灯效果,设计内容:宏定义.自定义函数.位移函数,循环. 操作方法 01 创建项目:51单片机控制流水灯效果. 02 添加包含51头文件. 03 包含移 ...

  • 流水灯plc程序

    流水灯plc程序 操作方法 01 创建一个STEP7-Micro/Win的项目 02 通过界面上方的工具栏进行编程 03 网络1是关于是关于1号灯的控制程序 04 网络2是关于是关于2号灯的控制程序 ...