matrix-8×8点阵的proteus仿真

  最近在做3208数字时钟,对时钟IC1302研究了N久N久,还是写不出来正确程序,于是打算仿制网友作品。由于该时钟是建立在matrix-8×8基础上的,为了不至于走弯路,我在proteus中对该部分进行了仿真。

  proteus中的8×8点阵LED仿真元件有四种:Matrix-8×8-REDMatrix-8×8-GREENMatrix-8×8-BLUE、Matrix-8×8-ORANGE,但是说明中并未指明其内部电路情况,可以用proteus仿真测试一下,看看内部LED电路如何。分析一下可以得知Matrix-8×8-RED为共阳的LED点阵,而Matrix-8×8-GREENMatrix-8×8-ORANGE则是共阴的LED点阵。在此使用Matrix-8×8-RED。

  从proteus元件库中找到“Matrix-8X8-RED”元器件,并将四块该元器件放入proteus文档区编辑窗口中。此时需要注意,如果该元器件保持初始的位置(没有转动方向),我们要首先将其左转90°,使其水平放置,那么此时它的左面8个引脚是其行线,右边8个引脚是其列线(当然,如果你是将右转,则右边8个引脚是行线)。然后P2作为行驱动,P1作为列驱动。因为数字“1”的字模比较简单,我们用阵列显示“1”。

xxxx如下图所示:

C51程序代码如下:

#include<reg52.h>//-------包含标准头文件
#define uchar unsigned char//定义数据格式简写
uchar tab[]={0x00,0x00,0x82,0xff,0x80,0x00,0x00,0x00};
int i,j,k,t;

void delay(t)//---延时子程序
{while(t--);}

main()
{
while(1)//---------------------------死循环,一直显示
{
   for(j=0;j<8;j++)//---------------控制左移变量
   {
    for(k=0;k<0x20;k++)//--------控制静态显示一会,使之不致左移过快
    {
     P1=0x01;//---------------列扫描码
     for(i=0;i<8;i++)//-------共8列,扫8次
     {
      P2=tab[(i+j)%8];//---取行扫描码输出
      delay(100);//--------延时
      P1=P1<<1;//----------列扫描指向下一列
     }
    }
   }
}
}

【不好意思,图片贴不上来,改天附上】



郑重声明:资讯 【matrix-8×8点阵的proteus仿真】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——