标题: 跪求这段单片机代码的详细讲解 [打印本页]

作者: 625471    时间: 2015-10-13 19:48
标题: 跪求这段单片机代码的详细讲解
#include<reg52.h>
typedef unsigned char  u8;
typedef unsigned int   u16;
sbit key = P3^2;
sbit led = P1^0;
void delay(unsigned int y)
{
        unsigned int x,z;
        for(x=y; x>0; x--)
                for(z=110; z>0; z--);
}
void main (void)
{
        led = 1;
        while (1)
        {
                if (key == 0)
                {
                        delay(10);
                        if (key == 0)
                                led = ~led;
                }
                while(!key);
        }
}


作者: admin    时间: 2015-10-13 20:31
看样子是一个闪烁灯的程序,而且还带有一个按钮
作者: 249012178    时间: 2015-10-13 22:11
闪烁      有一个延时程序的调用
作者: xie先生    时间: 2015-10-13 23:24
这是一个按钮控制LED灯亮灭的程序,每按一下按钮,LED灯的状态都会改变
作者: 腾飞的龙    时间: 2015-10-15 12:03
#include<reg52.h>//包含51的头文件
typedef unsigned char  u8;//宏定义无符号char型
typedef unsigned int   u16;
sbit key = P3^2;//定义按键在P3.2口
sbit led = P1^0;//定义LED灯在P1.0输出
void delay(unsigned int y)//延时子函数
{
        unsigned int x,z;//定义两个变量为无符号int型
        for(x=y; x>0; x--)//循环
                for(z=110; z>0; z--);//循环嵌套
}
void main (void)//主函数
{
        led = 1;//LED初始为1(就是高电平)
        while (1)//大循环也叫死循环
        {
                if (key == 0)//判断按键按下
                {
                        delay(10);//延时消抖
                        if (key == 0)//再一次判断按键按下
                                led = ~led;//LED取反。就是开始是关闭,按键按下亮
                }
                while(!key);//等待按键释放
        }
}

作者: 123456love    时间: 2015-10-15 16:45
一个按键控制led亮灭的程序

作者: 798265341    时间: 2015-10-16 14:26
这是一个点灯的小程序
作者: Lymm    时间: 2015-10-16 16:24
点灯的小程序
作者: 小么小二郎    时间: 2015-10-16 17:20
typedef unsigned char  u8; typedef unsigned int   u16;这两句没用  你后面也没用到   sbit key = P3^2; sbit led = P1^0;定义KEY和LED的端口      void delay(unsigned int y) {         unsigned int x,z;         for(x=y; x>0; x--)                 for(z=110; z>0; z--); }这个函数是个简单的粗略延时     led = 1;主函数开始给LED一个初始状态,具体是亮还是灭,取决于硬件怎么连的       if (key == 0)                 {                         delay(10);                         if (key == 0)                                 led = ~led;                 }判断有没有按键按下,要是有   延时一小下   再重新判断一次  要是还有按键按下  确定按下了   LED取反一下    最后那句是松手检测   避免你一直按着按键  LED一直取反
作者: ccgdjs    时间: 2015-10-19 15:46
就是一个按钮控制灯的闪烁的程序,延时那段是控制闪烁的
作者: a15616    时间: 2015-10-20 11:13
这个程序我看懂了,用一个按钮控制一个LED状态转换,按下一次,LED状态变化一次,还设置了长按无效限制,确保按下一次,只转换一次。
作者: kidcao1987    时间: 2015-10-20 16:09
不带注释的程序看起来相当不舒服咯。。
作者: kidcao1987    时间: 2015-10-20 16:10
应该就是一个按键控制LED的程序  带防抖和松开检测
作者: yoxi    时间: 2019-1-29 01:38
这是很基础的例子啊?视频中反复讲的都是这些内容。
作者: curster    时间: 2019-1-29 14:26
這是按下按鍵就會變亮,再按一下就會變暗,一直循環下去.




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1