找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11124|回复: 0
收起左侧

AT89C51单片机_cror_函数实现流水灯(带详细注释的程序+电路)

[复制链接]
ID:447551 发表于 2018-12-16 22:30 | 显示全部楼层 |阅读模式
单片机用的是 AT89C51代码如下
#include<reg52.h>       //52系列单片机头文件
#include <intrins.h>    //包含_crol_(循环左移)函数所在的头文件
void delay(int z);      //声明子函数
unsigned char temp;     //定义一个变量,用来给P1口赋值
int i,j;
void main()
{
        temp=0xfe;          //赋初值11111110
        P1=temp;            //先点亮第一个发光二极管
        while(1)            //大循环
        {
                for(i=7;i>0;i--)         //控制亮点从低位往高位移动7次
                {
                        delay(500);          //延时500毫秒
                        temp=_crol_(temp,1); //将temp循环左移一位后再赋给temp
P1=temp;         //将移位后的值赋给P1口,从低位到高位逐个点亮发光二极管
                }
                for(j=7;j>0;j--)         //控制亮点从高位往低位移动7次
                {
                        delay(500);          //延时500毫秒
                        temp=_cror_(temp,1); //将temp循环右移一位后再赋给temp
P1=temp;          //将移位后的值赋给P1口,从高位到地位逐个点亮发光二极管      
                }
        }
}

void delay(int z)
{
        unsigned int x,y;
        for(x=z;x>0;x--)              //延时z毫秒
                for(y=110;y>0;y--);
}

电路原理图如下:

数码管

数码管

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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