久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: C51單片機多字節(jié)移位 [打印本頁]

作者: senlinwang    時間: 2010-6-7 10:56
標(biāo)題: C51單片機多字節(jié)移位

    前輩們,指點一下喲。

    原來用匯編編程很容易的就進行多字節(jié)的移位,現(xiàn)在剛開始學(xué)用Keil  C編程,就搞不懂從哪下手:

 

    就是比如一次性移位11個字節(jié),比如左移,將最高字節(jié)的最高位移出丟失,并將下一字節(jié)的最高位移進前一字節(jié)的最低位,如此進行將后10個字節(jié)的最高位分別移進其前一字節(jié)的最低位,最后一個字節(jié)的最低位補0(或補1)。右移反過來。

 

   匯編的時候有RRL,RRC就搞定了,C怎么弄啊?


作者: brantyou    時間: 2010-6-7 21:08

給你看一個C的移位流水燈程序吧!

#include <AT89X51.H>
#include <../stdint.h>

#define PORT P1


void delay()
{
 uint16_t i;
 for(i=0; i<20000; i++);
}


void led_8()
{
 uint8_t i;
 uint8_t tmp = 0x01;
 for(i=0; i<8; i++)
 {
  PORT =  ~(tmp<<i);//左移
  delay();
 }
 tmp = 0x80;
 for(i=0; i<8; i++)
 {
  PORT =  ~(tmp>>i);//右移
  delay();
 }
}

void main()
{
 while(1)
 {
  led_8();
 }
}

[此貼子已經(jīng)被作者于2010-6-7 21:08:59編輯過]

作者: senlinwang    時間: 2010-6-8 12:20

 

  我這樣做的,比如有這些字節(jié)要參與移位:unsigned char  a[]={0xfe,0x25,0x32,0x56,0x4e,0x56,0xab,0xef,0xf3}:

 

   a[ i]=a[ i]<<1|((a[i+1]&0x80)? 1:0);      //    i 由0到7 。

   a[8]=a[8]<<1;

 

 

   這樣子就可以同時將9個字節(jié)順次向前移一位,如果要連續(xù)移多位,再加個循環(huán)控制就行了。

 

  我這樣做是想讓LED顯示屏上的漢字向左或向右移動,昨晚就這樣寫搞定了。


作者: brantyou    時間: 2010-6-9 12:15
牛。。。。。。。。
作者: tuy0326    時間: 2010-6-10 18:32
3樓的不錯,不過我會老老實實的做個循環(huán).
作者: suqianfu    時間: 2021-4-21 00:32
3樓大佬的算法夠簡潔啊。不過暫時領(lǐng)會不到。還是老老實實循環(huán)吧送數(shù)吧




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 一区二区三区中文字幕 | 亚洲 精品 综合 精品 自拍 | 国产无人区一区二区三区 | 久久久久久久成人 | 99久久婷婷国产综合精品电影 | 国产精品国产三级国产aⅴ中文 | 久久精品一区二区 | 天天操操操操操 | 国产麻豆乱码精品一区二区三区 | 国产四虎 | 亚洲二区视频 | 成人一区二区视频 | 精品国产一区二区三区久久 | 欧美群妇大交群中文字幕 | 99精品免费久久久久久日本 | 欧美一级片在线观看 | 日韩一区二区av | 免费小视频在线观看 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 在线一区视频 | 一区中文字幕 | 亚州精品天堂中文字幕 | 欧美在线观看一区二区 | 免费黄色的视频 | 日韩美女一区二区三区在线观看 | 在线观看深夜视频 | 成人免费视频观看视频 | 欧美一区二区三区在线 | 妖精视频一区二区三区 | 亚洲欧洲激情 | 国产精品久久久久久妇女6080 | 国产不卡在线观看 | 中文字幕一区二区三区乱码图片 | 亭亭五月激情 | 欧美日韩综合 | 日韩av在线一区二区 | 久久亚 | 国产一二区视频 | 在线黄av| 99久久久国产精品免费消防器 | 一区二区三区在线 |