51单片机 4个独立按键控制LED灯 (protues仿真)(C语言版) |
您所在的位置:网站首页 › 流水灯p1口接8个led › 51单片机 4个独立按键控制LED灯 (protues仿真)(C语言版) |
51单片机 4个独立按键控制LED灯 仿真操作及代码展示 _ (protues仿真)_(C语言版)
一、思路及相关问题
1、逻辑思路:
当按下key1时 led1亮起来 因为按下去具有瞬时性不用while,用if语句,当松开时,用while(!key1) ,函数调用。 先在脑海里想象它的大致运行过程,其次在仿真软件protues上摆好元器件并连接,最后用keil4写对应代码。 需注意keil4软件上的设置如波特率,添加文件,勾选等等。 至少要了解C语言程序设计的基本功。 2、关于消抖:通常的按键所用开关为机械性开关,当机械触电断开、闭合时、由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开、因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖 按键消抖有两种, 一种是 软件消抖: ;硬件消抖是通过采用外加零件来消除干扰抖动杂脉冲波,通常采用电容滤波、单稳延时电路等等。 一种是 软件消抖: 延时函数 参考链接:http://www.eeworld.com.cn/mcu/2012/0806/article_9776.html 二、有proteus及keil进行仿真效果
#include unsigned int i; sbit led1=P2^0; //定义第一个led灯 sbit led2=P2^1; //定义第二个led灯 sbit led3=P2^2; //定义第三个led灯 sbit led4=P2^3; //定义第四个led灯 sbit key1=P3^1; __ //定义第一个开关__ sbit key2=P3^2; //定义第二个开关 sbit key3=P3^3; //定义第三个开关 sbit key4=P3^4; //定义第四个开关 void delay() //延时函数 用于消抖 { for(i=0;i |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |