标题: 一排流水灯闪烁三下的程序(带详细注释)初学单片机,多多指教! [打印本页]

作者: 钟敢敢    时间: 2020-11-6 12:20
标题: 一排流水灯闪烁三下的程序(带详细注释)初学单片机,多多指教!
#include<reg52.h>                      //52系列单片机头文件
#define uint unsigned int              //宏定义
/*************"if...else"写法*************/
void delay1s();                      //声明延时函数
uint n;                             
void main()                          //主函数
{
    while(1)                          //大循环
    for(n=1;n>=0;n++)
    {
        if(n%4==0)                      //4的整数倍数
        {                              //关闭发光二极管
            P1=0xff;
            delay1s();                  //调用延时函数
            delay1s();
            delay1s();
        }
        else
        {
            delay1s();                  //调用延时函数
            P1=0;                      //打开发光二极管
            delay1s();
            P1=0xff;                  //关闭发光二极管
            delay1s();
        }
    }
}
void delay1s()                          //定义延时函数
{
    uint i,j;
    for(i=1000;i>0;i--)
        for(j=110;j>0;j--);
}

#include<reg52.h>                      //52系列单片机头文件
#define uint unsigned int              //宏定义

/*************"while..."写法*************/
void main()
{
//    while(1);
    uint n;                              //定义局部变量
    for(n=1;n>0;n++)
    {   
        delay1s();                      //调用延时函数
        P1=0;                          //打开发光二极管
        delay1s();                      //关闭发光二极管
        P1=0xff;
        while(n%3==0)
        {
            P1=0xff;                  //关闭发光二极管
            delay1s();                  //调用延时函数
            delay1s();
            delay1s();        
        }   
        
    }

}

#include<reg52.h>                      //52系列单片机头文件
#define uint unsigned int              //宏定义
/*************"switch..."写法*************/
void lights_flased();                  //声明发光二极管闪烁三下函数
void lights_extinguish();              //声明发光二极管熄灭函数
void main()
{
    uint n;                              //定义局部变量
    for(n=1;n>=0;n++)                  //大循环
    {
        switch(n)                      //选择函数
        {
            case 1:
            case 2:
            case 3:lights_flased();break;//当值为1、2、3时都选择调用发光二极管闪烁三下函数
            default:lights_extinguish(); //当值不为1、2、3选择调用发光二极管熄灭函数
        }
        if(n==4)                      //当for循环执行4次时n置零
            n=0;
    }
}
void lights_flased()                  //定义发光二极管闪烁三下函数
{
    delay1s();
    P1=0;                              //打开发光二极管
    delay1s();
    P1=0xff;                          //关闭发光二极管
}
void lights_extinguish()              //定义发光二极管熄灭函数
{
    P1=0xff;                          //关闭发光二极管
    delay1s();                          //调用延时函数
    delay1s();
    delay1s();
}

#include<reg52.h>                      //52系列单片机头文件
#define uint unsigned int              //宏定义
/***********for内嵌循环..."写法*************/
void main()
{
    uint i,j;
    for(i=1;i>0;i++)
    {
        for(j=0;j<3;j++)
        {
            delay1s();                      //调用延时函数
            P1=0;                          //打开发光二极管
            delay1s();                      //关闭发光二极管
            P1=0xff;
        }
        P1=0xff;                           //关闭发光二极管
        delay1s();                              //调用延时函数
        delay1s();
        delay1s();
    }   
}







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