单片机
返回首页

基于单片机的点阵式LED滚动汉字显示屏仿真设计

2013-01-18 来源:21ic

  1.引言

  点阵式led组成的汉字显示屏在公共场所应用非常广泛。例如,车站发车时间提示、股票大厅中的股票价格显示板、商场的活动广告栏、候机厅的起飞时间表。点阵显示器的特点是可以按照需要的大小、形状和颜色进行组合,用单片机控制实行各种文字或图型的变化,达到广告宣传和提示的目的。

  Proteus是一款新颖的嵌入式系统软硬件设计仿真平台,特别适用于单片机仿真,能够在线、实时仿真多种类型的单片机,诸如MCS-51系列单片机、PIC单片机、AVR单片机等,能够像硬件仿真器一样进行软硬件调试,而没必要花钱去购买和维护价格不菲的仿真器,对于初学单片机的人来说,既减少了学习成本,又达到了良好的学习效果。

  2.硬件电路设计

  点阵式LED滚动汉字显示屏硬件电路设计框图如图1所示。电路包括单片机、电源电路时钟电路、复位电路、驱动电路和LED点阵电路等。本设计的核心是利用单片机读取显示字型码,通过驱动电路对16×16 LED点阵进行动态列扫描,以实现汉字的滚动显示。本设计选用的单片机为ATMEL公司的AT89C52,显示屏采用16×16 LED点阵。电源电路通过变压整流元件为单片机和其他电路提供稳定的+5V工作电压。时钟电路是单片机的驱动电路,复位电路可在需要时,手动使单片机程序计数器复位清零。通过阳极驱动电路向16×16点阵送字型码,本设计采用74LS273。通过阴极驱动电路对16×16点阵进行列扫描,本设计采用74HC138。

图1 LED显示屏硬件电路设计框图

图1 硬件电路设计框图

  利用Proteus软件设计点阵式LED滚动汉字显示屏硬件电路原理图如图2所示。在Proteus软件中,单片机模型本身包含了工作电源和可改变的工作频率,因此在仿真时无需设计电源电路和时钟电路。需要说明的是在Proteus软件目前版本中还没有16×16点阵模块,本设计中采用Proteus软件中现有的8×8点阵模块组合成一个16×16点阵模块。从图2中可以看出,16×16点阵的阳极驱动由P0口经输出缓冲器74LS273构成,在本设计中需要用两片,分别送出上8行和下8行的字型码。16×16点阵的阴极驱动由P2口经74HC138译码后动态扫描16×16点阵的各列,本设计中需要四片74HC138译码器,循环扫描各列,显示一个完整的汉字需要扫描32次。RP3为排阻,含有8个电阻,作P0口各位的上拉电阻,以保证P0口能够输出高电平。复位电路的作用是,在任何时刻可以手动复位单片机,使程序重新执行。

图2.LED显示屏硬件电路原理图

图2.硬件电路原理图

   3. 软件设计

  AT89C51单片机是8位机,每次只能送出8位数据,因此要向16×16点阵送出16行阳极驱动,需要送两次,或先送上8行,或先送下8行,为了能够实现每一列字型码的完整显示,采用74LS273进行锁存,否则会出现字型残缺现象。根据设计要求并结合图2的硬件连接进行程序设计,程序设计流程图如图3所示。

  利用单片机C语言实现“2008北京欢迎您!”10个字的滚动显示,阿拉伯数字和标点符号按16×8点阵编码,汉字按16×16点阵编码, “2008北京欢迎您!”字型码表如下:

  {0x00,0x00,0x0C,0x1C,0x10,0x24,0x10,0x24,0x10,0x44,0x10,0x84,0x0F,0x0E,0x00,0x00},

  {0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},

  {0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},

  {0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00},

  {0x00,0x00,0x0E,0x04,0x08,0x0C,0x08,0x0C,0x08,0x08,0x08,0x10,0xFF,0xFE,0x00,0x00},

  {0x00,0x00,0x3F,0xFC,0x41,0x02,0x42,0x02,0x06,0x02,0x0E,0x06,0x0C,0x0C,0x00,0x00},

  {0x00,0x00,0x20,0x04,0x20,0x08,0x27,0x98,0x24,0xB0,0x24,0x82,0xA4,0x81,0x64,0xFE},

  {0x24,0x80,0x24,0x80,0x24,0xA0,0x27,0xB0,0x60,0x1C,0x20,0x08,0x00,0x00,0x00,0x00},

  {0x28,0x04,0x24,0x08,0x22,0x32,0x21,0xC2,0x26,0xC2,0x38,0x34,0x04,0x04,0x18,0x08},

  {0xF0,0x30,0x17,0xC0,0x10,0x60,0x10,0x18,0x14,0x0C,0x18,0x06,0x10,0x04,0x00,0x00},

  {0x02,0x02,0x82,0x04,0x73,0xF8,0x20,0x04,0x00,0x02,0x3F,0xE2,0x20,0x42,0x40,0x82},

  {0x40,0x02,0x3F,0xFA,0x20,0x02,0x20,0x42,0x20,0x22,0x3F,0xC2,0x00,0x02,0x00,0x00},

  {0x01,0x00,0x02,0x04,0x0C,0x1C,0x3F,0xC0,0xC0,0x1C,0x09,0x02,0x16,0x02,0x60,0x92},

  {0x20,0x4A,0x2F,0x82,0x20,0x02,0x24,0x0E,0x22,0x00,0x31,0x90,0x20,0x0C,0x00,0x00},

  {0x00,0x00,0x00,0x08,0x1F,0xDC,0x3F,0x08,0x3C,0x00,0x30,0x00,0x00,0x00,0x00,0x00},

  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}。

图3. LED显示屏程序流程图


(a)主程序流程图                    (b)中断服务程序流程图

图3. 程序流程图

  动态扫描显示程序代码如下:

  while (1)

  {for (i=0;i<8;i++) //显示左半边屏幕

  { P0=*(p+offset+2*i);

  P2=i|0x90; //P2.4=1,P2.3=0 选中U3, 输出扫描码给U7

  delay();

  P0=*(p+offset+2*i+1);

  P2=i|0x08; //P2.4=0,P2.3=1 选中U2, 输出扫描码给U6

  delay(); }

  for (i=8;i<16;i++) //显示右半边屏幕

  { P0=*(p+offset+2*i);

  P2=(i-8)|0xC0; //P2.6=1 P2.5=0, P2.4=0 选中U5,输出扫描码U9

  delay();

  P0=*(p+offset+2*i+1);

  P2=(i-8)|0x20; //P2.5=1 P2.4=0, P2.3=0 选中U4,输出扫描码U8

  delay();

  } }

    4. 调试与仿真

  Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。本设计利用Keil μVision2, 在新建Keil项目时选择AT89C52单片机作为CPU,将C语言源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选中AT89C52并单击鼠标左键,对AT89C52进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。仿真过程中如有硬件问题可在Proteus ISIS中直接修改,如有软件问题可在Keil μVision2中直接修改,通过Keil与Proteus的联合调试就可以得到满意的结果。本设计的仿真结果如图4所示。

图4. LED显示屏仿真结果

    图4. 仿真结果

  5.结论

  利用Proteus实现了对点阵式LED滚动汉字显示屏的仿真,完成了“2008北京欢迎您!”10个字的滚动显示,达到了良好的设计效果。该仿真电路接近实际电路,可以直接由该电路利用相关软件设计印制电路板,加上电源电路和时钟电路,就可以制作出实际的点阵式LED滚动汉字显示屏。通过前期仿真缩短了开发周期,降低了开发成本,达到事半功倍之成效。

  6.本文作者创新点

  本文作者创新点在于:在深入研究嵌入式系统软硬件设计仿真平台Proteus的基础上,成功完成了对点阵式LED滚动汉字显示屏的设计仿真,为单片机设计开发提供了一种新的方法和手段。

  参考文献

  [1].韩志军等.单片机应用系统设计[M].机械工业出版社,2004

  [2].周润景等. Proteus在MCS-51&ARM7系统中的应用百例[M].电子工业出版社,2006

  [3].马忠梅等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2006

  [4].刘树中,孙书膺,王春平.单片机和液晶显示驱动器串行接口的实现[J].微计算机信息,2007,02:137-138。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 光控音效发生器电路

  • 非常简单的150W功放电路图

  • 一个简单的警笛电路图

  • 一个简单的立体声平衡指示器电路

  • 分享一个电网倾角计电路

  • 使用NE555和磁簧开关的橱柜照明电路

    相关电子头条文章