标题: 分享一个四位左右循环流水灯单片机程序 [打印本页]

作者: 已飞的鹰    时间: 2021-5-28 11:53
标题: 分享一个四位左右循环流水灯单片机程序
论坛中常见的是8位流水灯程序,4位的很少见,而本人近期波及到这种设计,特分享以下程序,大佬飘过,一般学习者请笑纳:
/*****************************************
*实验效果:程序运行后,实现流水灯图形
*****************************************/

#include <REGX52.H>    //包含单片机寄存器的头文件
#include<intrins.h>

#define uchar unsigned char
uchar j, num;

void delay(unsigned int xms)   //延时x毫秒(ms)
{
    unsigned int i, j;
    for(i = xms; i > 0; i--)
        for(j = 112; j > 0; j--);
}


void main()
{
    num = 1;
    P0 = 0x01;        //P0=0000 0001,对应第1个灯亮
    delay(1000);      //延迟1秒
    while(1)            //无限循环,以使led灯持续闪烁,并防止程序跑飞
    {
        if(num == 1)
        {

            for(j = 0; j < 3; j++)
            {
                P0 = _crol_(P0, 1); //左移函数,依次是00000010,00000100,00001000
                delay(1000);        //延迟1秒
                if(P0 == 0x08)
                    num = 0;
            }
        }
        else
        {
            for(j = 0; j < 3; j++)
            {
                P0 = _cror_(P0, 1);  //左移函数,依次是0000 0100,0000 0010,0000 0001
                delay(1000);         //延迟1秒
                if(P0 == 0x01)
                    num = 1;
            }
        }
    }
}



作者: sonique0371    时间: 2021-5-28 16:00
_crol_(P0, 1)和_cror_(P0, 1)能直接拿来用?
作者: 已飞的鹰    时间: 2021-5-28 16:30
sonique0371 发表于 2021-5-28 16:00
_crol_(P0, 1)和_cror_(P0, 1)能直接拿来用?

在普中的板子实测了的,没有问题




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