从左到右的流水灯http://blog.163.com/paulucy@126/blog/static/949302822009112410354855/

 

本例子中,用库函数实现简单的流水灯操作。

1.可以在protues里面仿真,如下图:

P0口接8个LED,外接上拉电阻到电源。

 

02 从左到右的流水灯 - jzy23 - jzy23的博客

 

 

2.在keil建立工程,编写led_flash.c,程序如下:

/*****************************************************************************
实现从左到右的流水灯
应用_crol_库函数实现,该函数实现字符左旋,包含于intrins.h

***************************************************************************/

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

#define uint unsigned int
#define uchar unsigned char

/***************************************************
延时函数
功能:晶振为12MHz时,延时count个毫秒
参数:count
返回值:void
***************************************************/
void delay1Xms( uint count)
{
uint i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}

/*************************************
主函数
无限循环,并实现P0值的左旋
*************************************/
void main(void)
{
P0 = 0xFE;
while(1)
{
delay1Xms(1000); /*延时1秒*/
P0 = _crol_(P0,1); /*用左旋函数实现*/
}
}

3.关于库函数_crol_

函数原型: #include<intrins.h>

unsigned char _crol_(unsigned char c, unsigned char b)

功能说明: 将字符c左旋b位

参数: c 字符

b 旋转位数

返回值: 旋转后的c

--------------------------

参考:

《8051单片机C语言彻底应用》科学出版社 第4章 延时例程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值