标题: 单片机心形灯仿真源码,四五种效果 [打印本页]

作者: yin...    时间: 2018-10-14 14:44
标题: 单片机心形灯仿真源码,四五种效果
心形灯,四五种效果仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)



#include <REG52.H>    //包含51头文件
#include <intrins.h> //使用左移右移头文件
#define uint unsigned int
#define uchar unsigned char //宏定义

void delay_ms(uint x)    //毫秒级延时函数
{
    uint y;
    for(;x>0;x--)
    for(y=110;y>0;y--);   
}

void main()    //主函数
{
    uchar i,aa;
    uint k;
    while(1)
    {
//-------------顺时针流动2次------------//   
        for(k=0;k<2;k++)   
        {
            aa=0xFE;
            for(i=0;i<8;i++)
            {
                P0=aa;
                aa=_crol_(aa,1); //crol是左移
                delay_ms(100);
            }
            P0=0xFF;
            aa=0xFE;
            for(i=0;i<8;i++)
            {
                P2=aa;
                aa=_crol_(aa,1);
                delay_ms(100);
            }
            P2=0xFF;
            aa=0xFE;
            for(i=0;i<8;i++)
            {
                P3=aa;
                aa=_crol_(aa,1);
                delay_ms(100);
            }
            P3=0xFF;
            aa=0xFE;
            for(i=0;i<8;i++)
            {
                P1=aa;
                aa=_crol_(aa,1);
                delay_ms(100);
            }
            aa=P1=0xFF;
        }
        P0=~0x00;
        P1=~0x00;
        P2=~0x00;
        P3=~0x00; //与P3=0xFF;相同
        delay_ms(500);
   
    //----------------逆时针流动2次--------------//
        for(k=0;k<2;k++)   
        {
            for(i=0;i<8;i++)
            {
                P1=~(0x80>>i);
                delay_ms(100);
            }
            P1=0xFF;
            for(i=0;i<8;i++)
            {
                P3=~(0x80>>i);
                delay_ms(100);
            }
            P3=0xFF;
            for(i=0;i<8;i++)
            {
                P2=~(0x80>>i);
                delay_ms(100);
            }
            P2=0xFF;
            for(i=0;i<8;i++)
            {
                P0=~(0x80>>i);
                delay_ms(100);
            }
            P0=0xFF;
        }
        P0=~0x00;
        P1=~0x00;
        P2=~0x00;
        P3=~0x00;
        delay_ms(500);
   
    //---------------------上到下画爱心--------------//   
        for(k=0;k<2;k++)
        {
            for(i=0;i<8;i++)
            {
                P0=~(0x01<<i);
                P1=~(0x80>>i);
                delay_ms(100);
            }
            P1=0xFF;
            P0=0xFF;
            for(i=0;i<8;i++)
            {
                P2=~(0x01<<i);
                P3=~(0x80>>i);
                delay_ms(100);
            }
            P3=0xFF;
            P2=0xFF;   
        }
        P0=~0x00;
        P1=~0x00;
        P2=~0x00;
        P3=~0x00;
        delay_ms(500);
   
    //----------------下到上画爱心---------------//
        for(k=0;k<2;k++)     
        {
            for(i=0;i<8;i++)
            {
                P3=~(0x01<<i);
                P2=~(0x80>>i);
                delay_ms(100);
            }
            P2=0xFF;
            P3=0xFF;
            for(i=0;i<8;i++)
            {
                P1=~(0x01<<i);
                P0=~(0x80>>i);
                delay_ms(100);
            }
            P1=0xFF;
            P0=0xFF;   
        }   
        P0=~0x00;
        P1=~0x00;
        P2=~0x00;
        P3=~0x00;
        delay_ms(500);

//-----------------循环5次闪烁---------------//
        for(k=0;k<5;k++)
        {
            P0=0x00;
            P1=0x00;
            P2=0x00;
            P3=0x00;
            delay_ms(500);
            P0=~0x00;
            P1=~0x00;
            P2=~0x00;
            P3=~0x00;    //与P3=0xFF一样
            delay_ms(500);
        }
    }
}

心形灯.zip

77.89 KB, 下载次数: 45, 下载积分: 黑币 -5






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