51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机源码 > 详细内容
采用8*8LED动态显示文字演示程序
作者:佚名  发布时间:2009/11/14  阅读次数:1143  字体大小: 【】 【】【
/*********************************************************************/
//                      
//                                   采用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字模********************/
     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];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行,每行亮1毫秒)
         {P0=distab[m+h];P2=scan_con[m];delay1ms(1);}
     }
  }
}
//
//
//*********主程序**********//
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;}
     }    
  }
}
//
//
//*********************结束***********************//
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号