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

📄 leddisp.c

📁 基于89S51的LED汉字显示,开发环境KEIL,仿真环境PROTEUS
💻 C
字号:
/*********************************************************************/
//            
//                  采用8*8LED动态显示文字演示程序
//                    LRM 2004.10.9      
/*********************************************************************/
//使用AT89C52单片机,12MHZ晶振,P0口输出一行数据,P2口作行扫描,用共阳LED管
//P1口接三个按键,用于逐字显示、向上滚动显示文字、暂停备用。
#include "reg51.h"
#define char unsigned char
#define int unsigned int
//
char key,keytmp;
char code distab[]=
{
/********电子设计8*8字模********************/
     
   //0x93,0x35,0x00,0xb5,0x95,0x33,0xa2,0x2c, //我
   //0xff,0xff,0x00,0xff,0x00,0xff,0x00,0xff
   0x00,0xdb,0x00,0x81,0x81,0x81,0xdb,0x18,//黄
   //0xEF,0x83,0xAB,0x83,0xAB,0x83,0xEE,0xE0,
   0xFF,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;              // 键值存放
  }
 }
//
//
//********1毫秒延时程序************//
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];delay1ms(1);P2=scan_con[m];}
        }
     }
}
/***********向上滚动显示**********/
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行,每行亮1毫秒)
        {P0=distab[m+h];delay1ms(1);P2=scan_con[m];}
      }
    }
}
//
//
//*********主程序**********//
main()
{
keytmp=1;              //上电自动演示功能0)
while(1)
 {
  keyscan();
  switch(keytmp)
   {
    case 1:{fun0();break;}
    case 2:{fun1();break;}
    case 4:{keyscan();P0=0xff;break;}  //备用(暂停黑屏)
    default:{break;}
   }   
 }
}
//
//
//*********************结束***********************//

⌨️ 快捷键说明

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