基于Proteus的四位数码管显示

1实验原理

P0口接断码线, P2口低四位接位选线,第一位数码管的位选线由P2.0来控制,第二位数码管的位选线由P2.1来控制,依次类推,
由此可知可以控制P2.0到p2.3引脚,从而控制这个数码管哪一位来显示字符,而通过控制P0口输出断码值来控制数码管显示什么样的字符
从而实现四位数码管的显示,由此也可推出多位数码管显示的原理。

2Proteus仿真电路图

基于Proteus的四位数码管显示_第1张图片
此实验用到的是一个共阴极数码管

3所用元器件图

基于Proteus的四位数码管显示_第2张图片

4C51代码

#include //定义头文件
#define uchar unsigned char	  //宏定义
#define uint unsigned int

void delay(uint ms) //定义延时子函数
{
     
	uint i,j;
	for(i=ms;i>0;i--) //通过改变ms的次数来改变延时时间	 
	  for(j=110;j>0;j--); 
}
	
void main()		 //主函数
{
     
	while(1)
	{
     
		P2 = 0Xfe;	  // 1111 1110
		P0 = 0X06;    // 0000 0110 显示1
		delay(500);

		P2 = 0Xfd;	  // 1111 1101
		P0 = 0X5b;    	// 显示2
		delay(500);		

		P2 = 0Xfb;		// 1111 1011
		P0 = 0X4f;    	//显示3
		delay(500);
						   
		P2 = 0Xf7;			// 1111 0111
		P0 = 0X66;    		//显示4
		delay(500);			
		}
}

该代码可实现依次显示数字“1,2,3,4”的效果
当然也可以通过缩短延时时间,达到同时显示数字“1,2,3,4”的效果

你可能感兴趣的:(单片机)