找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3216|回复: 2
打印 上一主题 下一主题
收起左侧

分享一个四位左右循环流水灯单片机程序

[复制链接]
跳转到指定楼层
楼主
ID:321836 发表于 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;
            }
        }
    }
}


评分

参与人数 1黑币 +30 收起 理由
admin + 30 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:863362 发表于 2021-5-28 16:00 | 只看该作者
_crol_(P0, 1)和_cror_(P0, 1)能直接拿来用?
回复

使用道具 举报

板凳
ID:321836 发表于 2021-5-28 16:30 | 只看该作者
sonique0371 发表于 2021-5-28 16:00
_crol_(P0, 1)和_cror_(P0, 1)能直接拿来用?

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表