单片机原理及应用(第四章)小结

发布时间 2023-09-27 19:51:18作者: Simian_2018_12_22
1. C语言中 while 和 do while 的不同点是什么?
  • while 满足条件才会循环
  • do while 先运行一次再判断条件
2. 若在C语言中的 switch 操作漏掉 break,会发生什么?

会接着执行下一个case无论下一个case满足不满足条件,直至switch结束或遇到break

3. 编写程序用 for 循环实现1-20连加的和,并送P1口上的8位LED显示。
# include<reg51.h>
void delay(void)
{
	unsigned int i;
	for(i=0;i<30000;i++)
	;
}
int main(void)
{
	unsigned char i;
	while(1)
	{
		P0 = 0xff;
		for(i=1;i<=20;i++)
		{
			P0 = P0 + i;
			delay();
		}
	}
}
4. 编写程序实现判断两个一位数x和y的大小,大数送P1口8位LED显示,小数送P0口8位LED显示。
# include<reg51.h>
void delay(void)
{
	unsigned int i;
	for(i=0;i<30000;i++)
	;
}
int main(void)
{
	unsigned char x = 2,y = 5;
	while(1)
	{
		if(x > y)
		{
			P0 = y;
			P1 = x;
		}else
		{
			P0 = x;
			P1 = y;
		}
	}
}
5. 采用移位运算编程实现P1口上8位LED从高位到低位方向的跑马灯显示。
# include<reg51.h>
void delay(void)
{
	unsigned int i;
	for(i=0;i<30000;i++)
	;
}
int main(void)
{
	unsigned char i;
	while(1)
	{
		P0 = 0xff;
		delay();
		for(i=0;i<8;i++)
		{
			P0 = P0 >> 1;
			delay();
		}
	}
}