您当前的位置:五五电子网电子知识单元电路显示电路-显示屏基于AT89C52的节气汉字显示电路设计 正文
基于AT89C52的节气汉字显示电路设计

基于AT89C52的节气汉字显示电路设计

点击数:7725 次   录入时间:03-04 11:54:00   整理:http://www.55dianzi.com   显示电路-显示屏

  电子日历中的阴历日期和24节气日期可以根据阴历和阳历的对照关系查表得到,节气的显示则可以用发光二极管点阵显示汉字。下图为节气汉字显示电路。

节气汉字显示电路


  
  一、硬件
  
  显示电路的核心为AT89C52。显示节气的汉字用8块8x8的点阵模块(型号为MTAN7180M)组成16x32点阵,LED直径2毫米,采用16分区扫描显示方式。此处把一行算作一区,16行逐行显示,某一行点亮与否由16个开关管9012决定。32列用4片74HC595驱动。
  
  CPU的P1.0~P1.4接两片74LS138的输入端用于产生16条行选通线,控制16个行开关管9012。9012导通时其对应行点亮。P1.4接74LS138的⑤脚,作为关显示控制,P1.4为高电平,74LS138输出呈高阻态,16行都不亮。
  
  74HC595为串入、串/并出带三态输出锁存器,引脚15、1~7脚是锁存输出端。其输出端和LED间接有15Ω电阻,可以使LED点亮的数量不等时,亮度均匀。11脚SCK是时钟端,接CPU的P1.6。12脚RCK接CPU的P1.7,是输出使能端。在寄存器移位输入时,8个锁存器的状态不变。当12脚出现由负到正的跳变时移位寄存器的数据锁存到8个锁存器。16、8脚分别为电源和地。
  
  ⑩脚为清零端,低电平有效,在这里接+5V。13脚G是输出显示使能端,低电平有效,这里接地。⑨脚是移位寄存器的输出端,用于和下一级级联。14脚是数据输入端,第一片的数据输入端14脚接CPU的P1.5,⑨脚接下一片74HC595的14脚。P1.5、P1.6作为模拟串口使用。
  
  CPU的PO口用于连接时钟芯片DS12887。串口P3.0,P3.1用于连接日历时钟显示电路。
  
  二、软件
  
  24节气的48个汉字采用16x16点阵字符的字模,共48x32=1536个字节,存储在AT89C52的EEPROM中,供显示时调用。
  
  主程序除初始化和日历时钟的程序外没有其他功能。汉字显示程序在TO的中断服务程序中完成。在初始化程序中设定T01.25ms产生一次中断。因为要使画面不闪烁,ls内要扫描画面约50次,而一幅画面分16次扫描,则一次扫描的时间是Is÷(50x16)=0.00125s=1.25ms。
  
  在TO的中断服务程序中,根据阳历的日期,查表算出阴历的序号(从年初开始算第几个节气),计算出欲送显示的字模的起始地址和16行中某一行4个数据的地址从模拟串口送出,并通过P1.7送一个正脉冲使之输出显示。
  
  在P1.7送正脉冲之前,先给P1.4送高电平,关显示。在P1.7送正脉冲之后再把P1.0~P1.3送下一行显示,P1.4呈低电平,使之显示有效。中断服务程序流程图如下图所示。

中断服务程序流程图


  
  三、节气字模的建立
  
  在UCDOS操作系统中有16×16点阵汉字库HzK16,将其拷贝到一子目录下,如C:\DBUG。假定目前使用的是WINDOWS98操作系统,在机器启动后进入“程序-DOS”状态。然后进入C:\DBUG子目录,运行“DEBUGHZK16”命令。这时出现DEBUG程序的标志“一”。键入“D”回车,屏幕会显示汉字库HZK16在内存中的段地址和偏移地址,如“1270:0100”。偏移地址总是0100。不同的机器、不同的配置段地址是会有区别的。根据莱一汉字的区位码,可以计算出它所在的段地址和偏移地址,例如“大”的地址是“1270:EA80”。这时键入“D1270:EA80”,屏幕将显示出从这一地址开始的128个字节的十六进制数。前两行,32个字节就是“大”汉字字模。
  
  汉字在文件中的偏移地址计算方,法如下:先从汉字的区位码表格中查J到需要的汉字,例如“大”的区位码是120区83号字。设区号为X,位号为Y,I则该汉字的字模首地址是Q=((区号一1x94+(位号一1)]x32=[(20-1)x94+(83-1)]x32=59776=E980H。用计算出的Q值加上汉字库HZK16在内存中的首地址就得到该汉字的偏移地址。
  
  “大”的偏移地址是(1270:100)+E980=1270:EA80。当计算出的Q值大于FFFH时,例如“立”的Q值是17820H,Q的最高位加在段的最高位,即(1270:100)+17820H=2270:7920。0值加100H后的值大于FFFFH时也在段的最高位加1。




本文关键字:汉字  显示电路-显示屏单元电路 - 显示电路-显示屏