请问C51单片机的循环左移和循环右移函数中的“循环”是指什么? C51中循环左移右移什么指令

51\u5355\u7247\u673a\u5982\u4f55\u5728\u4e00\u4e2a\u5de5\u7a0b\u4e2d\u540c\u65f6\u52a0\u5165\u5faa\u73af\u5de6\u79fb\u548c\u5faa\u73af\u53f3\u79fb\uff0c

\u8fd9\u4e2a\u95ee\u9898\u5f88\u7b80\u5355\uff0c\u56e0\u4e3a\u5faa\u73af\u5de6\u79fb\u548c\u5faa\u73af\u53f3\u79fb\u5e76\u4e0d\u76f8\u4e92\u6392\u65a5\uff0c\u53ef\u4ee5\u5355\u72ec\u5b58\u5728\uff0c\u4e0d\u4ec5\u4ec5\u5728\u4e00\u4e2a\u5de5\u7a0b\u4e2d\uff0c\u5728\u7528\u4e00\u4e2a\u6587\u4ef6\u6216\u8005\u540c\u4e00\u4e2a\u7a0b\u5e8f\u6bb5\u4e2d\u90fd\u662f\u53ef\u4ee5\u7684\u3002\u6bd4\u5982\u3002
#include
#include
void delay(int a)
{
int i,j;
for(i=0;i<a;i++)
for(j=0;j<110;j++);
}
main()
{
unsigned char led1=0xfe,led2=0x7f;
while(1)
{
P0=_crol_(led1);

P1=_cror_(led2);

delay(100);

}

}

\u5de6\u79fb\u51fd\u6570_crol_();
\u53f3\u79fb\u51fd\u6570_cror_();
\u8fd9\u4e24\u6307\u4ee4\u90fd\u5728\u5934\u6587\u4ef6

C51单片机的循环左移函数是,_crol_(变量名,n),循环右移函数是,_cror_(变量名,n),函数中的“循环”是指变量的8位二进制数依次向左移一位,或向右移一位。
你比如的,取8位数,让1111 1110循环左移一位,就是在1111 1110、1111 1101、1111 1011、1111 0111、1110 1111,等等,每移位一次,8位数向左或向右移一位。继续移位,就会循环重复的。

计算机中的二进制移位一般是以字节的整数倍数来进行
如果1字节左移1位: 11001101 左移后右侧位补0, 被 移 出的高位被舍弃, 得到10011010
如果1字节循环左移1位:
11001101 左移后右侧位补被 移 出的高位, 得到10011011, 高位循环补充到了右侧空位
右移和循环右移类似

比如,四个位是:ABCD。
循环左移一位,就是:BCDA。
再循环左移一位,就是:CDAB。
再循环左移一位,就是:DABC。
再循环左移一位,就是:ABCD。

循环意思是这个(二进制下),一般循环都八位。

  • 寰幆宸︾Щ 鍜屽惊鐜彸绉绘槸浠涔堟剰鎬濆晩
    绛旓細寰幆绉浣嶅氨鏄妸鏁板煎彉鎴愪簩杩涘埗锛岀劧鍚庡惊鐜Щ鍔ㄧ殑杩囩▼銆傛崲鍙ヨ瘽璇达紝寰幆绉讳綅灏辨槸灏嗙Щ鍑虹殑浣庝綅鏀惧埌璇ユ暟鐨勯珮浣嶏紙寰幆鍙崇Щ锛夋垨鎶婄Щ鍑虹殑楂樹綅鏀惧埌璇ユ暟鐨勪綆浣嶏紙寰幆宸︾Щ锛夛紝宸︾Щ锛屽拰鍙崇Щ鍔ㄩ兘鏄鏁存暟杩涜鐨勬搷浣滐紝鍦╓in32鎺у埗鍙板簲鐢ㄧ▼搴忎腑锛屾暣褰㈠崰4Byte鑺32bit銆傚惊鐜乏绉荤殑杩囩▼鍙互鍒嗕负3姝ワ細1銆佸皢x宸︾鐨刵...
  • 鍗曠墖鏈轰腑瀵16浣嶆暟杩涜寰幆宸︾Щ鍜绠楁湳宸︾Щ鐨勫尯鍒
    绛旓細姣斿1010 0100 1010 1100锛寰幆宸︾Щ涓浣嶅氨鏄珮浣(绗15浣)绉诲嚭鏀惧埌鏈浣庝綅(绗0浣)锛屽叾瀹冧綅渚濇寰楂樹綅绉诲姩涓浣嶏紝缁撴灉鏄0100 1001 0101 1001锛屽惊鐜乏绉讳袱浣嶅氨鍙樻垚浜1001 0010 1011 0010锛岀畻鏈乏绉诲氨鏄Щ鍑哄幓鐨勯珮浣嶄涪澶憋紝渚濇寰鏈浣庝綅琛0锛岀畻鏈乏绉讳竴浣嶇粨鏋滄槸0100 1001 0101 1000锛岀畻鏈乏绉讳袱浣嶆槸...
  • 51鍗曠墖鏈涓嶈兘瀵圭鍙h繘琛寰幆宸︾Щ,绠鍗曢棶棰樻眰澶х
    绛旓細P0=_crol_(P0,1);杩欎釜鎿嶄綔锛屾槸鍏堣緭鍏 P0 鐨勫唴瀹癸紝绉讳綅鍚庯紝鍐嶈緭鍑恒傝緭鍑轰簡涔嬪悗锛屼笅娆″啀杈撳叆锛屽苟涓嶄竴瀹氭槸閮界浉鍚岀殑銆傝緭鍑虹殑1锛屽啀杈撳叆锛屾槸1杩樻槸0锛屽苟涓嶄竴瀹氥傝緭鍑轰簡1锛屽氨鏄缃垚浜嗚緭鍏ョ姸鎬侊紝杈撳叆杩涙潵浠涔堬紝瑕佸彇鍐充簬澶栬銆傝鎯崇ǔ瀹氱殑涓嶅彉锛屽氨搴旇鐢ㄥ唴閮ㄧ殑鍙橀噺锛屽拰澶栬锛屾病鏈変换浣曞叧绯绘墠濂姐
  • 涓轰粈涔堟垜鐢C51閲宸︾Щ鐨勬寚浠や笉鑳藉疄鐜版祦姘寸伅鐨勫惊鐜?
    绛旓細绋嬪簭鍐欑殑涓嶅锛屼綘涓诲嚱鏁伴噷闈 void main(){ aa=0xde;while(1){ P1=aa;delayms(500);aa=aa<<1; //鍙绉涓浣嶏紝绉8娆″嚭鍘伙紝杩樺湪寰鍙崇Щ鍔紝閮界Щ鍔ㄥ嚭鐣屼簡鍝堝搱锛亇 } 鍦ㄧ▼搴忛噷闈㈠啓涓垽鏂鍙ョЩ鍔ㄥ畬鎴愬悗锛屽湪浠庢柊寮濮嬬Щ鍔ㄧ▼搴忓涓嬶細int main(void){ aa=0xde;while(1){ P1=aa;delayms(500);a...
  • 楂樻墜鏀嫑:璇烽棶鐢–璇█缂栫▼浣51鍗曠墖鏈虹殑鏁扮爜绠宸︾Щ寰幆鏄剧ず0-7鐨勭▼搴...
    绛旓細include <reg52.h> include <intrins.h> define uchar unsigned char define uint unsigned int /*** 寤舵椂鍑芥暟 ***/ delay(uint i){while(i--);} /*** 鏁扮爜绠℃樉绀哄瓙绋嬪簭寮濮 ***/ sbit wr=P2^2;sbit cs1=P2^0;sbit cs2=P2^1;define LEDdata P0 uchar code LEDcode[]=...
  • C51鍗曠墖鏈閲岀殑_crol_()璇彞鐢ㄦ櫘閫氱殑璇彞鎬庝箞瀹炵幇
    绛旓細姹囩紪鏈绠鍗曪細RL A ;寰幆宸︾Щ C楹荤儲涓鐐癸細unsigned char corl(unsigned char a){ if(a&0x80)a=(a<<1)|0x01;else a=a<<1;return(a);}
  • 51鍗曠墖鏈鍙戝厜浜屾瀬绠寰幆宸︾Щ鏃,闂撮殧1s,浣嗚繖涓▼搴忓彧鏈夌涓涓伅寤舵椂1...
    绛旓細閭e綋鐒朵簡锛屼綘鐨勮繖涓狶ED宸︾Щ鍜delay鏄悓姝ヨ繘琛岀殑
  • 姹備竴娈佃兘鍦51鍗曠墖鏈鍏遍槼鏁扮爜绠涓乏绉诲惊鐜鏄剧ず鏁板瓧鐨勭▼搴忋
    绛旓細鏈嬪弸锛屼綘鏄鐢熶箞銆傛垜璁板緱鏍戜笂閮芥湁杩欐牱鐨勫姛鑳藉嚱鏁般備綘鐩存帴鎼氨鍙互浜嗗摝銆 鑰屼笖缃戜笂涔熸湁寰堝鐨勩傜▼搴忔濈淮锛氶鍏堢敤涓涓嚱鏁颁繚瀛0--9瀵瑰簲鐨勫崄鍏繘鍒舵暟鎹甋BUF[]銆傜劧鍚庣敤涓涓鍙f帶鍒朵綅P0^1锛岀敤涓涓鍙o紙8浣嶏級锛屾帶鍒舵鐮侊紝姣忔绉诲姩涓涓綅锛岀劧鍚庣鍙h緭鍑烘暟鎹腑鐨勬暟鎹紙濡傦細W=0X01;P0^1=~(W<<1)...
  • C51鍗曠墖鏈鍒濆鑰呮彁闂
    绛旓細鎴戣涓鸿繖涓搷浣滄槸寰幆绉浣嶏紝灏辨槸灏哖2鐨勬渶楂樹綅鏀惧埌鏈浣庝綅锛屽叾浣欎綅鍚戝墠绉诲姩涓浣嶃傚亣璁 P2 = 10010101 P2<<1 : 00101010 P2>>7 : 00000001 P2<<1|P2>>7 :00101011 涓嶱2鐩告瘮灏辩浉褰撲簬鏈楂樹綅鏀惧埌鏈浣庝綅锛屽叾浣欎綅鍓嶇Щ浜嗭紝灏辩浉褰撲簬寰幆绉讳綅浜嗐傚鏋滆繕鏈変粈涔堥棶棰樺彲浠ュ幓http://www.kingst.org缃戠珯鎻愰棶...
  • 姹51鍗曠墖鏈C璇█瀹氭椂涓柇娴佹按鐏(鍏宸︾Щ鍚庡彸绉,涓鐩寰幆),涓嶈寤惰繜鐨...
    绛旓細include<reg52.h> define uchar unsigned char uchar m=0,i=0;void main(){ TMOD|=0x01; //瀹氭椂鍣0宸ヤ綔鏂瑰紡涓1 TH0=(65536-50000)/256; //瑁呭垵鍊 TL0=(65536-50000)%256;EA=1; //寮鎬讳腑鏂 ET0=1; //寮瀹氭椂鍣ㄤ腑鏂 TR0=1; //寮鍚畾鏃跺櫒 while(1); //绛夊緟涓柇 }...
  • 扩展阅读:循环左移代码 ... cnc无限循环加工指令 ... c51实现移位的语句有哪些 ... 如何终止一个嵌套循环 ... 51左移右移流水灯代码 ... 单片机循环左移怎么写 ... 汇编循环左移指令 ... 单片机流水灯8个延时1秒 ... c51循环右移 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网