实验室流水灯

1、寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,寄存器有累加器(ACC)。
寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,CPU中的寄存器就是其中一种,作为软硬件的接口,为广泛的通用编程用户所熟知。
2、
循环左移右移函数
_ crol _(a,b);循环左移函数,a是左移的值,b是左移的位数。包含在intrins.h库函数里面。
_ cror _(a,b);循环右移函数,a是右移的值,b是右移的位数。包含在intrins.h库函数里面。

移位操作:
左移:操作符 “<<”,每执行一次左移指令,被操作的数将最高位移入单片机PSW寄存器的CY位,CY位中原来的数丢弃,最低位补0,其他位次依次向左移动一位,如图所示;
在这里插入图片描述
右移:操作符 “>>”,每执行一次右移指令,被操作的数将最低位移入单片机PSW寄存器的CY位,CY位中原来的数丢弃,最高位补0,其他位次依次向左移动一位,如图所示:
在这里插入图片描述
3、流水灯的程序:

#include <reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define led P2
unit

sbit led=P2^0;
void delay(uint x)
{
	uint i,j;
	for(i=x;i>0;i--)
		for(j=110;j>0;j--)
		;
}
void main()
{
	led = 0xff;
	while(1)
	{
		led=led<<1;
		delay(500);
		count++;
		if(count>7)
		{
			led=0xff;
			delay(500);
			count=0;
		}
	}

}	

4、仿真实验图:在这里插入图片描述

发布了43 篇原创文章 · 获赞 41 · 访问量 1814

猜你喜欢

转载自blog.csdn.net/weixin_45662626/article/details/101873858