文档介绍:实验6、LED屏显示实验
实验目的:
了解“STC89C54RD+”的基本结构和优势。
会使用keil c编译环境和c语言的开发。
了解与掌握汉字内码与标准字库的原理。
理解动态扫描显示的原理。
理解与掌握点阵LED屏显示的原理。
8*8点阵型LED屏的显示原理
8*8 LED显示模块的内部实际上是64个发光二极管按矩阵排列而成的发光二极管组,每个发光二极管是放置在行线和列线的交叉点上,如上图所示:在行信号端置“1”,而列信号端置“0”,相应的点-LED灯就会发光。
16*16的点阵显示模块的搭建
显示的汉字点阵为16*16点阵,也就是说显示一个汉字要用4个8*8的点阵LED。8*8的点阵LED有8条行线、8条列线,共16个管脚。如上图图所示:1、2、3、4 四个8*8的点阵LED,把点阵LED 1与2、点阵LED 3与4的行线分别连在一起,然后再把点阵LED 1与3、点阵LED 2与4的列线分别连在一起,这样4个8*8的点阵LED构成了一个16*16的点阵显示模块。这样就可以在一个16*16的点阵显示模块显示一个16*16点阵的汉字。
依此类推:把每个16*16的点阵显示模块的行线分别连在一起。比如:显示4个16*16汉字的显示屏,就得由4个16*16的点阵显示模块(16个8*8的点阵LED)组成一个大的LED显示屏。
动态显示的原理
列驱动依次锁存输出每行所要显示的列信号,同时行驱动也依次输出行信号,实现动态扫描显示。
行驱动
将两片138译码器(74HC138)连接在一起形成一个4-16线译码器,实现16行轮流驱动显示。只有在管脚E1、E2接低电平,而管脚E3接高电平时,芯片74HC138才工作。因此,当OE置“1”时,两个138都不工作。当OE置“0”,而ID置“1”时,下面的那个138工作,这样就轮流驱动8-15行。而当OE置“0”,而ID置“0”时,上面的那个138工作,这样就轮流驱动0-7行。
4-16线译码器的真值表
列驱动
利用多个74HC595级联组成串行转并行电路。电路的工作过程如下:利用本级74HC595最高位移位输出Q7‘控制下一级74HC595串行数据输入端SER,当RCLK上升沿到来时,SER引脚当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会向左移一位,同时Q7’也会串行输出移位寄存器中高位的值,这样连续进行8次,就可以把数组中每一个数(8位的数)送到移位寄存器;然后当SCLK上升沿到来时,移位寄存器的值将会被锁存到锁存器里,并从Q0~7引脚输出(片选/OE有效)。注意,列信号为低电平有效,而标准字库是“1”有效。
汉字的编码
1、区位码
GB2312 80中共有7445个字符符号:所有的字符符号组成一个94*94的方阵;在此方阵中,每一行称为一个“区”,每一列称为一个“位”。这个方阵实际上组成一个有94个区(编号由 01 到 94 ),每个区有94个位(编号由01到 94)的汉字字符集。一个汉字所在的区号和位号的组合就构成了该汉字的“区位码”,其中高两位为区号,低两位为位号。这样区位码可以唯一地确定某一汉字或字符;反之,任何一个汉字或符号都对应一个唯一的区位码,没有重码。
2、汉字机内码(内码)
PC机所有的数据都是以0和1保存的,按不同的数据操作,可以得到不同的结果。对于英文以ASCII码表示,只需要7位二进制(通常用一字节)存储即可。而对于中文,常用的就有5000个以上,一个汉字由两个字节机内码表示,即把ASCII表的高128个很少用到的数值,以两个字节为一组来表示汉字。因此计算机必须能区别汉字字符和英文字符。英文字符的的机内码是最高位二进制位为0的单字节ASCII码。
内码与区位码的关系
汉字机内码的范围用二进制表示是:10100001B—11111110B,机内码高位=区码+A0H 机内码,机内码低位=位码+A0H;也就是说,机内码高位和机内码低位分别比对应的区码和位码大(160)D或(10100000)B或(A0)H。
例如汉字“啊”的区位码为1601,其中区码为(16)D或(10)H,位码为(01)D或(01)H,则:机内码高位=10H+A0H=B0H,机内码低位=01H +A0H = A1H,所以:“啊”的机内码= B0A1H。