首页 > 范文大全 > 正文

Proteus中基于AT27C512的汉字库加载技术及LED电子屏仿真

开篇:润墨网以专业的文秘视角,为您筛选了一篇Proteus中基于AT27C512的汉字库加载技术及LED电子屏仿真范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:以往proteus中利用LED显示汉字,需要先打开汉字取模软件取模、然后拷贝点阵数据到程序,步骤繁琐。将汉字库HZK16加载到Proteus中程序存储器AT27C512中,设计出数据读取电路,并利用Proteus中设计的LED显示屏,得到了显示汉字的效果。实验结果表明,采用AT27C512存储汉字库文件的方式,打破了只能显示固定汉字的模式,可以任意汉字显示出来,提高了开发效率,降低了开发成本。

关键词:Proteus;汉字库;加载技术led电子屏

中图分类号:TN27文献标识码:A文章编号:1009-3044(2011)09-2177-02

The Loading of Chinese Character and LED Display Simulation Based AT27C512 in Proteus

WEI Shu-hong, LI Jian-bo

(Guangdong Jidian Polytechnic, Guangzhou 510515, China)

Abstract: In the past, the use of LED displays in Chinese characters, Chinese characters need to open the software modulus, and then copy the dot matrix data to the program, the steps cumbersome.Now the Chinese Character HZK16 is loaded in program memory AT27C512 in Proteus, Data acquisition circuit is designed, the effect of Chinese characters is showed by LED display in Proteus. Experimental results show that using AT27C512 stored character, breaking only show a fixed pattern of Chinese characters, you can display any Chinese characters and improve the efficiency of development, reducing development costs.

Key words: proteus; Chinese character; loading technology; LED electronic display

LED显示屏以色彩光艳夺目,美观大方,显示信息量大、寿命长、耗电量小、重量轻,易于操作、安装和维护等特点,在显示行业中独树一帜。

Proteus是由英国Labcenter Electronics公司开发的EDA工具软件,可以仿真几十种单片机。和硬件的结合,就是一个完整的单片机应用系统,能够进行单片机仿真,观察实践效果,对单片机开发起到极大的推动作用[1-2]。利用Proteus对LED屏的开发,可以缩短开发周期,节约开发成本。但是,在汉字显示方面开发力度不足,尤其是汉字点阵获取方面。比较多的开发者利用“汉字字模点阵数据批量生成工具”,输入汉字,生成汉字点阵,然后复制到编写的程序中[3-4]。这种方式,只能显示固定的汉字,如果需要显示其他汉字,还要修改程序,非常的不灵活。

为此,本人将汉字库HZK16文件加载到Proteus中程序存储器AT27C512中,设计了数据读取电路,只要知道汉字内码,就可以读出汉字的点阵数据,达到在Proteus的LED显示屏中显示汉字的效果。

1 硬件电路

硬件电路主要包括汉字库存储电路、LED电子屏显示电路、串口电路、最小系统电路四部分。

1.1 最小系统

图1为最小系统电路。

1.2 LED电子屏与单片机接口电路

在Proteus中设计了16×32的LED电子屏,采用2个74HC138驱动16行,采用4个74HC595驱动32个列,电路如图2所示。

1.3 汉字库HZK16存储电路

汉字库HZK16文件存放了汉字点阵数据,大小为262KB;笔者在Proteus中可以找到的最大程序存储器为AT27C512,容量为512Kb/8=64KB;所以需要AT27C512片数:262KB/64KB=4.09,取5。

AT27C512与单片机接口采用了3个74LS373,分别用来锁存AT27C512的片选信号、地址高字节、地址低字节,如图3所示(因为篇幅,只列出2个AT27C512)。软件编程时,用数组cs_512[5]保存5个AT27C512的片选信号:

uchar cs_512[5]={ // AT27C512片选信号

0xfe, //C512_0,11111110,第0个AT27C512

0xfd, //C512_1,11111101,第1个AT27C512

0xfb, //C512_2,11111011,第2个AT27C512

0xf7, //C512_3,11110111,第3个AT27C512

0xef,}; //C512_4,11101111,第4个AT27C512

在Proteus中双击AT27C512,选择Image File选项,并选择HZK16,即可将汉字库加载到程序存储器AT27C512中,如图4所示。

2 软件编程

在其他期刊关于电子显示屏的文章中,74HC138、74HC595已经有所介绍,因此本文主要介绍存储器中汉字点阵数据读取。

uchar Rom_Read()子函数形参有qu_ma、wei_ma、j,分别代表汉字区码、位码和第几个字节,返回值为存储器中的点阵数据。在主程序或其他合适的位置,调用字库数据读取子函数即可。

uchar Rom_Read(uchar qu_ma,uchar wei_ma,uchar j)

{ uchar addr_cs,addr_high,addr_low,ch;

unsigned long int addr;

//HZK16文件中,汉字点阵数据偏移地址

//ADDRESS=[(区码-0xa1)*94+(位码-0xa1)]*32。

addr =qu_ma;

addr = ((addr-0xa1)*94 + (wei_ma-0xa1))*32;

addr_low= addr%0x100; addr>>=8; //地址低字节

addr_high = addr%0x100; addr>>=8; //地址高字节

addr_cs = addr%0x100; //片选信号

L373_c=1;P0=cs_512[addr_cs];L373_c=0; //送片选信号

L373_b=1;P0=addr_high; L373_b=0; //送地址高字节

L373_a=1;P0=addr_low+j; L373_a=0; //送地址低字节

P0=0xff; //置高电平

C512_OE =0; ch=P0; C512_OE =1; //读存储器数据

return(ch);//返回存储器中的点阵数据

}

3 总结

成功将汉字库HZK16加载到Proteus中程序存储器AT27C512中,并设计出数据读取电路,在Proteus利用LED显示屏中直接显示汉字,不需要专门取模软件,提高了利用Proteus开发LED屏的灵活性。不足点的是,Proteus没有可以存储512KB的芯片,使HZK16存储电路看起来比较复杂。

参考文献:

[1] Proteus仿真技术在单片机教学中的应用[J].实验技术与管理,2007(3):96-98.

[2] 彭志刚.浅谈仿真软件在单片机技术课程教学中的应用[J].湖南工业职业技术学院学报,2008(1):134-135.

[3] 杨延宁,刘立军,张志勇.基于Proteus的单片机汉字点阵显示电路设计[J].液晶与显示,2009,24(1):99-102.

[4] 黄海宏,王海欣.液晶显示汉字的字模提取新方法[J].液晶与显示,2005,20(4):346-349.