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

📄 shuxian.txt

📁 单片机控制的数字显示程序
💻 TXT
字号:
		  //采用AT89S52单片机,12MHZ晶振,P0输出一行数据,P2做行扫描,共阳LED管
//P1接3个按键,用于逐字显示,向上滚动和暂时备用
#include"reg51.h"
#define char unsigned char 
#define int unsigned int
//
char key ,keytmp;
char code distab[]=
{
/*********电子设计8*8字模*******************/
0xEF,0x83,0xAB,0x83,0xAB,0x83,0xEE,0xE0,
0xEF,0xC7,0xEF,0x83,0xEF,0xEF,0xCF,0xEF,
0xB1,0xB5,0x04,0xBF,0xB1,0xB5,0x9B,0xA4,
0xBB,0xBB,0x1B,0xA0,0xBB,0xBB,0x9B,0xBB,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
};
//
char code  scan_con[8]=
{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//列扫描控制字
//
//*************按键扫描函数***************// 
void keyscan()
{
key=(~P1)&0x0f;           //读入键值
if (key!=0)
  {
	while(((~P1)&0x0f)!=0);//等待按键释放
	keytmp=key;			   //键值存放
  }
}
//*********1ms延时程序***********//
delay1ms(int t)
{
  int i,j;
  for(i=0;i<t;i++)
    for(j=0;j<120;j++)
	keyscan();
}
/*********功能程序*************/
/********逐字显示***************/
fun0()
{
int  m,n,h;
for(h=0;h<32;h=h+8)
 {for(n=0;n<100;n++)
  {for(m=0;m<8;m++)
	{P0=distab[m+h];P2=scan_con[m];delay1ms(1);}
  
  }

 }
}
/**********向上滚动显示*************/
fun1()
{
  int m,n,h;
  for(h=0;h<32;h++)     //控制显示字数(32÷8=4个)     
  {for(n=0;n<10;n++)	//控制移动速度
    {for(m=0;m<8;m++)	//显示1扫描(分8 行,每行亮1ms)
	  {P0=distab[m+h];P2=scan_con[m];delay1ms(1);}
	}
  
  }
}
//**********主程序****************//
main()
{
  keytmp=1;  //上电自动演示功能(逐字显示)
  while(1)
  {
   keyscan();
   switch(keytmp)
   {
    case 1:{fun0();break;}
	case 2:{fun1();break;}
	case 4:{keyscan();P0=0xff;break;}//备用(暂停黑屏)
   }
  }
}
//*************结束******************//

⌨️ 快捷键说明

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