数码管检测.c

来自「单片机C源程序+HEX文件。配合实验板。需要的话加Q:394011495.并注明」· C语言 代码 · 共 63 行

C
63
字号
//各个数码管依次从a段亮到dp段。

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit ser=P1^5;
sbit rclk=P1^4;
sbit srclk=P1^7;
uchar a,i,j,k,x,y,h,weitable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f},
		duantable[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};		  //位编码和段编码
void delay(uint x)	   //延时函数
{
	uint a,b;
	for(a=x;a>0;a--)
		for(b=112;b>0;b--);
}

void main()
{
	a=1;
	while(1)
	{
		x=0;
		for(h=0;h<8;h++)
		{
			for(i=0;i<8;i++)
			{
			
				k=weitable[x];	   //x的值表示第几个数码管亮
				for(j=0;j<8;j++)
				{
					srclk=0;
					k=k<<1;
					ser=CY;
					srclk=1;
	   	
				}
				k=duantable[y];
				for(j=0;j<8;j++)
				{
					srclk=0;
					k=k<<1;
					ser=CY;
					srclk=1;

				}
				rclk=0;
				rclk=1;	
				delay(500);
				a++;
				y++;
				if(a==9)	//当一个数码管的八段都亮完之后,a重新计数。
				{
					a=1;
					x++;
					y=0;   //y为段控制
				}
				
			}		
		}
		
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?