用户函数库之循环移动函数

发布者:数字火箭最新更新时间:2012-08-16 来源: 51hei关键字:用户函数库  循环移动函数  函数库 手机看文章 扫描二维码
随时随地手机看文章
//////////////////////////////////////
//   循环左移/右移函数
//时   间:2011年8月29
//作   者:简の约
//说   明:用Keil软件调试成功!
//备注:
// -----
//  可以不用再包含#include ,而是用自己的函数
//版本:
// -----2011.08.29.0.1
///////////////////////////////////////

#include  //51系列单片机头文件,用于SFR的声明
#include //引用_crol_();和_cror_();用到的声明

//函数声明
unsigned char Loop_Left(unsigned char Value,unsigned char num); //___0xAC 1010 1100 2
unsigned char Loop_Right(unsigned char Value,unsigned char num);//___0xAC 1010 1100 2

//主函数
void main(void)
{      
   unsigned char temp1,temp2;//声明两个变量,用于存放左移函数返回值
   unsigned char temp3,temp4;//声明两个变量,用于存放左移函数返回值 

   

  temp1 = Loop_Left(0xAC,2); //return: 0xB2
   temp2 = _crol_(0xAC,2);    //return: 0xB2

   temp3 = Loop_Right(0xAC,2);//return: 0x2B
   temp4 = _cror_(0xAC,2);    //return:0x2B

   

  while(1);//最后,停留在此处进行循环 
}
////////////////////////////////////////
// 循环左移函数
// 调用说明:Loop_Left(Value,num);Value:要循环的变量;num: 循环的次数
//  返 回 值:循环移动后的值
// 
////////////////////////////////////////
unsigned char Loop_Left(unsigned char Value,unsigned char num)//___0xAC 1010 1100 2
{
   unsigned char n = 0,temp = 0;
 
   n = num % 8;//大于8次,只循环其余数
 
   temp =  Value << n; //1010 1100 << 1011 0000
   Value = Value >> (8 - n);     // >>0000 0010

   temp = temp | Value;//合并数据  1011 0010 ___0xB2

 

  return temp;//返回数据
}
////////////////////////////////////////
// 循环右移函数
// 调用说明:Loop_Right(Value,num);Value:要循环的变量;num: 循环的次数
// 返 回 值:循环移动后的值
//  
////////////////////////////////////////
unsigned char Loop_Right(unsigned char Value,unsigned char num)//___0xAC 1010 1100 2
{
   unsigned char n = 0,temp = 0;

   

  n = num % 8;//大于8次,只循环其余数

     temp = Value >> n; //1010 1100 >> 0010 1011
     Value = Value << (8 - n);  //0000 0000

   temp = temp | Value;//合并数据:0010 1011 ___0x2B

 

  return temp;//返回数据 
}

////////////////////////////////////////

//  可以自己建立一个函数库,存放自己经常用的函数。

////////////////////////////////////////
关键字:用户函数库  循环移动函数  函数库 引用地址:用户函数库之循环移动函数

上一篇:Si4432无线芯片调试经验分享
下一篇:74hc595芯片数码管显示

推荐阅读最新更新时间:2024-03-16 13:05

MPLAB C18 C编译器 函数库(中文)
编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved