標(biāo)題: 分享一個(gè)四位左右循環(huán)流水燈單片機(jī)程序 [打印本頁(yè)]

作者: 已飛的鷹    時(shí)間: 2021-5-28 11:53
標(biāo)題: 分享一個(gè)四位左右循環(huán)流水燈單片機(jī)程序
論壇中常見的是8位流水燈程序,4位的很少見,而本人近期波及到這種設(shè)計(jì),特分享以下程序,大佬飄過,一般學(xué)習(xí)者請(qǐng)笑納:
/*****************************************
*實(shí)驗(yàn)效果:程序運(yùn)行后,實(shí)現(xiàn)流水燈圖形
*****************************************/

#include <REGX52.H>    //包含單片機(jī)寄存器的頭文件
#include<intrins.h>

#define uchar unsigned char
uchar j, num;

void delay(unsigned int xms)   //延時(shí)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,對(duì)應(yīng)第1個(gè)燈亮
    delay(1000);      //延遲1秒
    while(1)            //無(wú)限循環(huán),以使led燈持續(xù)閃爍,并防止程序跑飛
    {
        if(num == 1)
        {

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



作者: sonique0371    時(shí)間: 2021-5-28 16:00
_crol_(P0, 1)和_cror_(P0, 1)能直接拿來(lái)用?
作者: 已飛的鷹    時(shí)間: 2021-5-28 16:30
sonique0371 發(fā)表于 2021-5-28 16:00
_crol_(P0, 1)和_cror_(P0, 1)能直接拿來(lái)用?

在普中的板子實(shí)測(cè)了的,沒有問題




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1