找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3123|回复: 2
打印 上一主题 下一主题
收起左侧

关于单片机LED点阵控制仿真,原理图,文档

[复制链接]
跳转到指定楼层
楼主
设计做的有关于LED点阵仿真,花了一个星期的时间完成了这个,总体来说效果是不错的,本次发帖是因为我知道51黑电子论坛是对于我们学习很好的一个平台,所以想把自己所做的成果分享给大家,谢谢!

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


自己设计8X8点阵显示屏,并调试好电路板。运用keil软件进行编程,利用单片机STC89C52来显示图案并控制图案变换。
三、实验原理
8X8点阵共由64个发光 极管组成,且每个发光极管是放置在行线和列线交叉点上,当对应的某一 列置0电平,某行置I电平,则相应的二极管就亮。
  •   要设计该字的点阵字形,编好行(或列)点阵码,然后在单片机的控制下对点阵进行逐行或列扫描。
  •   在人眼的暂存效应下我们会看到完整的字形,从而实现了字体在点阵显示屏上的输出,由于只控制8*8点阵显示田。故 不需要扩展单片机的I/O接口。考虑到PO口需要接上电阻,使得电路较为复杂。
  •   因此利进单机的PI口来控制点阵的行。用P2口控制点阵的列。
四、实验步骤及结果
1、PCB原理图设计:
首先打开Altium designer,在【文件】中新建一个原理图,在【库】中找出与点阵原理图一样的元器件放在原理图文件中,进行连线。连接好的点阵PCB原理图如下图(1)所示。

(图1)
  • PCB设计如图2所示


(图2)
  • ISIS原理图设计
(1)首先打开ISIS professional,在【File】中新建一个A4大小的原理图文件。
(2)在下方的(P L DEVIVES )中找到以下器件并放入原理图文件中。
1.74HC138 、2.AT89C52、3.CAP 、4.CRYSTAL 、5.MATRIX-8X8-BLUE、6.MATRIX-8X8-RED、7.MINRES4K7、8.RESPACK-8
(3)找到以上元器件放入之后进行连线,生成原理图如(图3)所示
(图3)
(4)生成原理图之后在【Keil】下新建一个工程,在建的工程下建一个文件输入程序,将这个文件加入自己建的工程中,加入的程序如下:

#define int8 unsigned char
          #define int16 unsigned int
            #define int32 unsigned long
           int8 code num_tab[][8]={
         /*-8*8--阴码--逐行扫描--逆向(低位在前)--*/
         {0x00,0x00,0x02,0x05,0x05,0x05,0x02,0x00},/*"0",0*
         {0x00,0x00,0x00,0x06,0x04,0x04,0x0E,0x00},/*"1",1*/
       {0x00,0x00,0x07,0x05,0x02,0x01,0x07,0x00},/*"2",2*/
         {0x00,0x00,0x07,0x03,0x04,0x05,0x07,0x00},/*"3",3
          {0x00,0x00,0x04,0x06,0x05,0x06,0x04,0x00},/*"4",4*/
         {0x00,0x00,0x07,0x01,0x07,0x05,0x07,0x00},/*"5",5*
          {0x00,0x00,0x06,0x01,0x0F,0x09,0x0E,0x00},/*"6",6*/
        {0x00,0x00,0x0E,0x04,0x04,0x04,0x04,0x00},/*"7",7*/
  COMPILER V8.02   KEIL                                                                        
         void delay(void);
        void main(void){
     int8 i;
      int8 j;
      while(1)
      {
            for(i=0;i<8;i++){
              delay();
               P0=num_tab[0];
              P2=i|0x18;
          }   
     }
*** WARNING C280 IN LINE 62 OF KEIL.C: 'j': unreferenced local variable
          void delay(void){
     int16 i;
       for(i=0;i<500;i++)
       }

在Keil对加入的程序进行编译如(图4)所示:
(图4)

(5)对这个程序输出keil.hex文件如(图5)所示:

(图5)
(6)在ISIS professional原理图中双击AT89C52,对Keil.hex文件载入到单片机原理图中如(图6)所示:
(图6)
(7)加入文件之后运行显示数字“0”结果如(图7)所示:
(图7)
五、实验总结
通过本次点阵显示实验,使我对单片机的应用更加深入的理解,以及对PCB及Proteus 的软件的使用,综合的应用,有助于我对本门实验课更加的深刻学习,这对我以后的学习有着十分大的帮助。

仿真图下载(缺少程序):
LED矩阵显示.zip (760.33 KB, 下载次数: 39)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:845951 发表于 2020-12-13 12:01 | 只看该作者
谢谢,很有用处
回复

使用道具 举报

板凳
ID:845951 发表于 2020-12-13 12:03 | 只看该作者
有程序吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表