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

来源:互联网 发布:索爱k750软件 编辑:程序博客网 时间:2024/04/30 06:44

 

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

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章 延时例程

原创粉丝点击