大家知道,大家用
MCU写程序的时候,只有移位的语句,没有循环移位的语句。那么如何实现循环移位呢,详见下述:
循环移位区别于一般移位的是移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程序中用得也不少。 设有数据说明:
a=01111011,循环左移2位 正确结果: 11101101
过程:
b=a>>(8-2) 用来得到正常左移丢失的位和循环移位后其正确位置 b=00000001;
a=a<<2;左移 a=11101100
a=a|b; a=11101101
如果不是用中间变量 a=(a>>(8-2))|(a<<2)
总长度N(8 16 32)
循环左移n: (a>>(N-n))|(a>>n)
循环右移n: (a<<(N-n))|(a>>n)
C语言的位运算功能是其区别于其他大多数高级程序设计语言的特色之一,用它可以方便实现一些特殊功能,灵活掌握是用C程序编写系统程序的基础。
关键字:单片机 C语言 循环移位
引用地址:
单片机C语言实现循环移位!
推荐阅读最新更新时间:2024-03-16 14:46
51单片机串口发送字符事例
#include reg52.h #define jingzhen 11059200UL /*使用22.1184M晶体*/ #define botelv 9600UL /*波特率定义为9600*/ unsigned char zifuchuan = 您好!n ; //待显示字符。 volatile unsigned char sending; sbit S4=P3^2; void delay(unsigned char i) { unsigned char j,k; for(j=i;j 0;j--) for(k=90;k 0;k--); } void init(v
[单片机]
飞思卡尔推新款8位车用MCU
飞思卡尔(Freescale)推出了专为入门级仪表板及暖气、通风与空调控制(Heating,Ventilation,and Air Conditioning,HVAC)所设计的S08微控制器系列。新款的8位S08LG32微控制器内建液晶屏幕(LCD)硬件驱动电路,能够为新兴汽车市场中(如中国和印度)广受欢迎的平价车款提供超值的LCD模块应用解决方案。 该微控制器可用在入门车款当中,也适用于二轮/三轮车辆,包括摩托车与轻型机车。目前S08LG32系列涵盖五款车用的5伏特微控制器,具备多种闪存容量(最高32KB)以及从48到80接脚的封装选项。芯片内含的LCD硬件驱动电路可支持高达296个节点区段的显示(8×37或4×41的LCD组
[单片机]
51单片机---定时器/计数器的配置
1.CPU时序 振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期)。比如开发板的时钟电路上的12MHZ晶振,它就提供了单片机的振荡周期。周期T=1/12M,单位为秒。 状态周期: 两个振荡周期为1个状态周期,用S表示。振荡周期又称为S周期或时钟周期。 机器周期:6个状态周期,即12个振荡周期。以12MHZ晶振为例,机器周期=12*(1/12M)=1/M=1us. 指令周期:完成一条指令所占用的全部时间,以机器周期为单位。以12MHZ为例,指令周期为1~4us. 2.定时器绪论 51单片机有2组定时器/计数器,既可以定时又可以计数。 定时器/计数器和单片机的CPU是相互独立的,定时器/计数器工作时不需要C
[单片机]
pic单片机控制电机启动、转动、停止C语言程序
#include pic.h #define MOTOR RB2 void DELAY(unsigned int); main(void) {char A; MOTOR=0; OPTION=0b00000000; //设定RB0为下降沿中断 TRISB=0b00000001; //设定RB0为输入,RB2为输出 TRISD=0b00000000; //PORTD全为输出口 A=0b00000001; PORTD=A; //PORTD的第0位LED亮 INTCON=0; //禁止中断 while(1) { if (RB0==1)
[单片机]
PIC单片机的中断资源及应用
1 PIC 单片机 简介 PIC系列 单片机 是美国Microchip技术公司推出的高性能价格比的8位嵌入式控制器(Embedded Controller),它采用了精简指令集计算机RISC(Reduced Instruction Set Computer)和哈佛(Harvard)双总线以及两级指令流水线结构。具有高速度、低工作电压、低功耗等特点和优良的性能价格比,因而PIC系列单片机越来越受到单片机开发与应用工程技术人员的青睐。该系列独特的结构和中断资源使其在使用时与其它系列的单片机有许多不同之处。下面以PIC16CXX系列微控制器为例来介绍PIC系列单片机的中断资源特点以及应用方法。 2 中断资源的开发与屏蔽 图1是PIC16
[单片机]
单片机基础(三):时钟系统与复位
单片机的时钟系统 一种是片内时钟震荡方式,需在XTAL1和XTAL2这两个引脚之间接石英晶体和震荡电容;一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚引入 机器周期和指令周期 机器周期:单片机的基本操作周期,每个机器周期包含S1、S2、S3……S6 共6个状态,每个状态包含两拍,P1和P2,每一拍为一个时钟周期(震荡周期),即一个机器周期包含12个时钟周期,依次可表示为S1P1、S1P2、S2P1、……S6P1、S6P2 振荡周期=1秒/晶振频率,因此单片机的机器周期=12秒/晶振频率 指令周期:计算机工作时不断地取指令和执行指令,取一条指令至执行完该指令需要的时间称为指令周期,不同的指
[单片机]
单片机和PTR2000实现短距离无线通信方案
1 引言 短距离无线传输具有抗干扰性能强、可靠性高、安全性好、受地理条件限制少、安装灵活等优点,在许多领域有着广泛的应用前景。常见的短距离无线通信有基于802.11的无线局域网WLAN、蓝牙 (blueTooth)、HomeRF及欧洲的HiperLAN(高性能无线局域网),但其硬件设计、接口方式、通信协议及软件堆栈复杂,需专门的开发系统,开发成本高、周期长,最终产品成本也高。普通RF产品不存在这些问题,且短距离无线数据传输技术成熟,功能简单、携带方便,使其在嵌入式短程无线产品中得到了广泛应用。 2 PTR2000引脚简介及设计 2.1 PTR2000器件引脚功能 PTR2000是基于nRF401器件的
[单片机]
海速芯8位MCU-TM52F1376用于电动剃须刀
电动剃须刀由不锈钢网罩、内刀片、微型电动机和壳体组成,其中主控方面控制按键开关、电机驱动、电源管理等,为保证性能,电动剃须刀需要选用一个稳定性能好的MCU。本文将推荐海速芯高性能、高稳定性的8位MCU-TM52F1376应用于电动剃须刀。 海速芯8位MCU-TM52F1376的主要应用优势特点如下: ①采用8051内核、8bit的MCU,主频高达18MHz,因而拥有高性价比、稳定性好的特点,适合电动剃须刀上的应用,节约成本; ②拥有3ch PWM控制资源,满足电动剃须刀对于电机方面的控制; ③封装形式多样,满足不同设计需求,同时可以有效简化PCB面积; ④工作温度为-40℃~85℃,非常适合对于消费类电子产品即电动剃须刀上的应
[单片机]