新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用戶函數(shù)庫之循環(huán)移動(dòng)函數(shù)

用戶函數(shù)庫之循環(huán)移動(dòng)函數(shù)

作者: 時(shí)間:2012-08-16 來源:網(wǎng)絡(luò) 收藏
////////////////////////////////////////   循環(huán)左移/右移函數(shù)//時(shí)   間:2011年8月29//作   者:簡(jiǎn)の約//說   明:用Keil軟件調(diào)試成功!//備注:// -----//  可以不用再包含#include intrins.h>,而是用自己的函數(shù)//版本:// -----2011.08.29.0.1///////////////////////////////////////#include reg52.h> //51系列單片機(jī)頭文件,用于SFR的聲明#include intrins.h>//引用_crol_();和_cror_();用到的聲明//函數(shù)聲明unsigned char Loop_Left(unsigned char Value,unsigned char num); //___0xAC 1010 1100 2unsigned char Loop_Right(unsigned char Value,unsigned char num);//___0xAC 1010 1100 2//主函數(shù)void main(void){        unsigned char temp1,temp2;//聲明兩個(gè)變量,用于存放左移函數(shù)返回值  unsigned char temp3,temp4;//聲明兩個(gè)變量,用于存放左移函數(shù)返回值     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);//最后,停留在此處進(jìn)行循環(huán) }////////////////////////////////////////// 循環(huán)左移函數(shù)// 調(diào)用說明:Loop_Left(Value,num);Value:要循環(huán)的變量;num: 循環(huán)的次數(shù)//  返 回 值:循環(huán)移動(dòng)后的值// ////////////////////////////////////////unsigned char Loop_Left(unsigned char Value,unsigned char num)//___0xAC 1010 1100 2{  unsigned char n = 0,temp = 0;  n = num % 8;//大于8次,只循環(huán)其余數(shù)  temp =  Value  n; //1010 1100  1011 0000  Value = Value >> (8 - n);     // >>0000 0010  temp = temp | Value;//合并數(shù)據(jù)  1011 0010 ___0xB2  return temp;//返回?cái)?shù)據(jù)}////////////////////////////////////////// 循環(huán)右移函數(shù)// 調(diào)用說明:Loop_Right(Value,num);Value:要循環(huán)的變量;num: 循環(huán)的次數(shù)// 返 回 值:循環(huán)移動(dòng)后的值//  ////////////////////////////////////////unsigned char Loop_Right(unsigned char Value,unsigned char num)//___0xAC 1010 1100 2{  unsigned char n = 0,temp = 0;    n = num % 8;//大于8次,只循環(huán)其余數(shù)    temp = Value >> n; //1010 1100 >> 0010 1011    Value = Value  (8 - n);  //0000 0000  temp = temp | Value;//合并數(shù)據(jù):0010 1011 ___0x2B  return temp;//返回?cái)?shù)據(jù) }//////////////////////////////////////////  可以自己建立一個(gè),存放自己經(jīng)常用的函數(shù)。////////////////////////////////////////


評(píng)論


技術(shù)專區(qū)

關(guān)閉