⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p300_s1.c

📁 msp430开发版程序
💻 C
字号:
/*
将4位的数码管电路板接到J11接插件上,注意插针引脚顺序
*/

//动态显示方式 P300
//例如,要在8个数码管上分别显示“1”“2”“3”“4”,动态扫描显示的C语言程序如下(共阳极方式):

//针对本开发板,修改了部分代码

#include  <msp430x14x.h>
//共阳数码管的表格为:
//本表格通过LEDSET软件可以快速得到
const unsigned char Seg[]=
{
0X84,  // 0
0XBD,  // 1
0XE0,  // 2
0XB0,  // 3
0X99,  // 4
0X92,  // 5
0X82,  // 6
0XBC,  // 7
0X80,  // 8
0X90,  // 9
0X88,  // A
0X83,  // b
0XC6,  // C 
0XA1,  // d
0XC2,  // E
0XCA  // F
};

unsigned char DispBuf[4] = {1,2,3,4};	//显示缓冲区

void Delay(unsigned int wDelay)  //延时函数
{
	while (wDelay != 0)
	wDelay--;	
}

main()
{
  	unsigned int i;
  	WDTCTL = WDTPW + WDTHOLD; 	// 停止看门狗
//初始化端口
  	P4DIR = 0XFF;	//P4作为段输出
	P5DIR = 0X0F;	//P5作为位输出
	P4OUT = 0XFF;	//熄灭所有数码管
	P5OUT = 0X00;	//熄灭所有数码管
	while(1)
	{
//建议放在主循环中轮流显示每一位值,同时相邻两位间的时间间隔不能太长,这样就不会闪烁。	  
	  	Delay(1000);
		P5OUT = 0x01;  //点亮数码管LED1,
		P4OUT = Seg[DispBuf[0]];  //查段码表,并送出断码
	  	Delay(1000);
		P5OUT = 0x02;  //点亮数码管LED2,
		P4OUT = Seg[DispBuf[1]];  //查段码表,并送出断码
	  	Delay(1000);
		P5OUT = 0x04;  //点亮数码管LED3,
		P4OUT = Seg[DispBuf[2]];  //查段码表,并送出断码
	  	Delay(1000);
		P5OUT = 0x08;  //点亮数码管LED4,
		P4OUT = Seg[DispBuf[3]];  //查段码表,并送出断码
	  	Delay(1000);
		
		i++;
		if((i%50)==0)	//循环50次改变值
		{
//显示值加1		  
			DispBuf[0]++;
			DispBuf[1]++;
			DispBuf[2]++;
			DispBuf[3]++;
//防止溢出			
			if(DispBuf[3]>15)
			{
				DispBuf[0]=0;
				DispBuf[1]=1;
				DispBuf[2]=2;
				DispBuf[3]=3;
			}		
		}
	}
}

⌨️ 快捷键说明

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