8 8点阵汉字显示电路及程序

消费类电子电路图

202人已加入

描述

8 8点阵汉字显示电路原理

点阵

内部原理:

点阵

8 8点阵汉字显示程序

/**********************************************************/
/**
/** 模 块 名: -------------------BootLoader.C--------------------------------
/**            -----------------8×8汉字显示模块------------------------------*/
/** 功能描述:
/**
/** 创 建 人: huangtiexiong    日期:2006-11-28   */
/** 修 改 人:                  日期:2006-11-28   */
/** 其他说明:
/********************************************************/

#include    //文件包含
#include

#define Row P0
#define Col P2

#define ResetBit(byte,i) byte &= (~(0x01<

typedef unsigned char int8u;

/*************************************************
    模块级变量申明                
*************************************************/
/*这是“中”的字模;该字模由LEDDOT生成;字模的提取方式为:逐行提取;
字模的显示方式为:单字单行显示;生成的字模格式:C51十六进制 */
int8u gRowBuff2[8] = {0x10,0xFE,0x92,0x92,0xFE,0x92,0x10,0x10};

/*这是“化”的字模;该字模由LEDDOT生成;字模的提取方式为:逐行提取;
字模的显示方式为:单字单行显示;生成的字模格式:C51十六进制 */
int8u gRowBuff3[8] = {0x48,0x4A,0xCE,0xCC,0x58,0x68,0x49,0x4E};

/*这是“大”的字模;该字模由LEDDOT生成;字模的提取方式为:逐行提取;
字模的显示方式为:单字单行显示;生成的字模格式:C51十六进制 */
int8u gRowBuff1[8] = {0x10,0x10,0xFF,0x10,0x18,0x28,0x46,0x82};

void Delay5ms(void);
/*************************************************
    子函数定义                 
*************************************************/

/************************************************************
*** 函 数 名: void main(void)
*** 功能描述:
*** 全局变量:
*** 输  入:
*** 输  出:
*** 创 建 人:huangtiexiong     日期:2006-11-28
*** 修 改 人:           日期:2006-11-28
*** 函数说明: 刷新频率25hz,可以更高至50hz~100hz;
/*************************************************************/
void main(void)
{
 int8u i;
  int sec="0";
 while(1)
 {
  Col = 0xff;
    sec++;
    if(sec <= 100)  //每个汉字显示四秒;
     {
    for(i=0;i<8;i++)
    {
     Col = 0xff;
     ResetBit(Col,i);  //扫描第i列;
     Row = gRowBuff1[i]; //送显示码;
     Delay5ms();
     }
      }
    else if((sec > 100) && (sec <= 200))  
     {
    for(i=0;i<8;i++)
    {
     Col = 0xff;
     ResetBit(Col,i);  //扫描第i列;
     Row = gRowBuff2[i];
     Delay5ms();
     }
      }
    else if(sec <= 300)
     {
    for(i=0;i<8;i++)
    {
     Col = 0xff;
     ResetBit(Col,i);  //扫描第i列;
     Row = gRowBuff3[i];
     Delay5ms();
     }
      }
    else
     {
      sec = 0;
      }  
   
  }
 }

// 延时5毫秒;
void Delay5ms()
{
 int8u i;
 int8u j;
 for(i=0;i<5;i++)
 for(j=0;j<200;j++)
 {
  _nop_();
  _nop_();
  }
 }
/********************************************************
****                              End Of File
*********************************************************/

附Proteus仿真图:

点阵

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分