C51--04--动态数码管显示

点击查看代码
/*
   动态数码管显示  (数码管扫描)
	 
	 xff
	
	 2025/1/7
	 
	 扫描方式:单片机直接扫描
*/



#include <REGX52.H>
#include "Delay.h"

void NixieDisplay(unsigned int loc,num);

void main()
{
	while(1)
	{
		
	NixieDisplay(1,1);
	NixieDisplay(2,2);
	NixieDisplay(3,3);
		
	}

}

void NixieDisplay(unsigned int loc,num)
{

	unsigned int NixieNumber[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00};
  
	switch(loc)
  {
	  case 1:P2_4=1;P2_3=1;P2_2=1;break;
		case 2:P2_4=1;P2_3=1;P2_2=0;break;
		case 3:P2_4=1;P2_3=0;P2_2=1;break;
		case 4:P2_4=1;P2_3=0;P2_2=0;break;
		case 5:P2_4=0;P2_3=1;P2_2=1;break;
		case 6:P2_4=0;P2_3=1;P2_2=0;break;
		case 7:P2_4=0;P2_3=0;P2_2=1;break;
		case 8:P2_4=0;P2_3=0;P2_2=0;break;
	}
	
	P0=NixieNumber[num];
	Delay(1);  //保持稳定显示 保证亮度
	P0=0x00;    // 数据清零  实现消影

}
posted @ 2025-01-07 17:45  Mirco1218  阅读(80)  评论(0)    收藏  举报