找回密码
 立即注册

QQ登录

只需一步,快速开始

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

想请教大佬们,单片机C语言如何用cror和crol 实现跑马灯?

[复制链接]
跳转到指定楼层
楼主
ID:1017635 发表于 2022-4-11 20:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1016543 发表于 2022-4-11 20:54 | 只看该作者
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa;
void main()
{
     aa=0xfe;
     while(1)
     {
            P1=aa;
            delayms(500);
            aa=_crol_(aa, 1);
      }
}
void delayms(uint xms)
{
       uint i , j;
       for (i=xms;i>0;i--)
                 for(j=110;j>0;j--);
}
回复

使用道具 举报

板凳
ID:121859 发表于 2022-4-11 21:10 | 只看该作者
所谓cror和crol 其实就相当于汇编语言的RR A和 RL A,也就是循环右移和循环左移指令,做流水灯是最方便的,使用是需要头文件intrins.h,_crol_(Pn,1);或者_cror_(Pn,1);就可以了。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:624769 发表于 2022-4-11 23:54 | 只看该作者

#include<reg52.h>
#include<intrins.h>

void main()
{
     unsigned char  i,j;
     P1 = 0xfe;
      while(1)
      {
             P1 = _cror_(P1,1);
            //P1 = _crol_(P1,1);
             i = 200;
             while(--i){while(--j);}
       }
}
回复

使用道具 举报

5#
ID:123289 发表于 2022-4-12 11:07 | 只看该作者
建议现搞清楚,跑马的道理。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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