目录
4.1实验目的
4.2实验设备
4.3实验内容及原理
4.4实验步骤
4.5字符提取方法
4.4字库取模软件下载
1.了解 LED 点的基本结构。
2.学习 LED 点阵扫描显示程序的设计方法。
PC机一台,TDX-PITE 实验装置一套。
编写程序,控制点阵向上卷动显示“西安唐都科教仪器公司!3实验系统中的 16X16LED 点阵由四块 8X8 LED 点阵组成,如图 4.1 所示,8X8 点阵内部结构图如图 4.2 所示。由图 4.2 可知,当行为“1”,列为“0”,则对应行、列上的 LED点亮。图 4.3 为点阵外部引脚图。汉字显示如图 4.4 所示。
本实验采用 SM16206 作为列信号控制芯片,它是 LED 恒流驱动芯片,内建 CMOS 移位寄存器与锁存功能,可以将串行的输入数据转换成并行输出数据格式。其输出端口耐压可达+15V,因此可以在每个输出端申接多个 LED 灯;另外SM16206 高达2MHz的时钟频率可以满足系统对大量数据传输的需求。芯片引脚如图 4.6 所。
本实验采用 SM5166 作为行信号控制芯片,它是高集成度 LED 驱动控制片。内置 3-8译码器,提供 8 通道的输出电流驱动,每个通道最大电流可达 2.5A。OUT1~OUT8 端口内置电压钳位电路,能消除 LED 显示屏的“列上拖影”,提高显示屏刷新率。内置短路保护功能,
具有短路防烧灯、防烧板等特点,提升整体方案的应用可靠性。由于其高集成度的特点,可为应用方案节省空间,降低走线复杂度,降低应用风险。芯片引脚如图 4.7 所示。
1.按图 4.9 连接实验电路图。
2.编写实验程序(例程文件名为: LED16.C),检查无误后,编译、链接并装入系统。
hz.h文件 //(存放要显示的字的宏定义和数组),在这里我要LED点阵显示 “我爱湖南耒阳”
/*本文件为16×16点阵中文字库文件,字的横向8点构成一字节,左边点在字节的高位,字符点阵四角按左上角→右上角→左下角→右下角取字*/
/*如你想在以后继续用HZDotReader打开文件,追加汉字点阵数据,请不要修改或增删所有注释*/
#define CCED2 0x0000 /*我 */
#define CB0AE CCED2+1 /*爱 */
#define CBAFE CB0AE+1 /*湖 */
#define CC4CF CBAFE+1 /*南 */
#define CF1E7 CC4CF+1 /*耒 */
#define CD1F4 CF1E7+1 /*阳 */
unsigned char hzdot[192] = {
/*我 CCED2 */
0x04,0x40,0x0E,0x50,0x78,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x44,
0x0A,0x44,0x0C,0x48,0x18,0x30,0x68,0x22,0x08,0x52,0x08,0x8A,0x2B,0x06,0x10,0x02,
/*爱 CB0AE */
0x00,0x08,0x01,0xFC,0x7E,0x10,0x22,0x10,0x11,0x20,0x7F,0xFE,0x42,0x02,0x82,0x04,
0x7F,0xF8,0x04,0x00,0x07,0xF0,0x0A,0x10,0x11,0x20,0x20,0xC0,0x43,0x30,0x1C,0x0E,
/*湖 CBAFE */
0x01,0x00,0x21,0x1E,0x11,0x12,0x17,0xD2,0x81,0x12,0x41,0x1E,0x41,0x12,0x17,0xD2,
0x14,0x52,0x24,0x5E,0xE4,0x52,0x27,0xD2,0x24,0x52,0x20,0x22,0x20,0x2A,0x00,0x44,
/*南 CC4CF */
0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x7F,0xFC,0x48,0x24,0x44,0x44,
0x4F,0xE4,0x41,0x04,0x41,0x04,0x5F,0xF4,0x41,0x04,0x41,0x04,0x41,0x14,0x40,0x08,
/*耒 CF1E7 */
0x01,0x00,0x01,0x00,0x7F,0xFC,0x01,0x00,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,
0xFF,0xFE,0x03,0x80,0x05,0x40,0x09,0x20,0x31,0x18,0xC1,0x06,0x01,0x00,0x01,0x00,
/*阳 CD1F4 */
0x00,0x00,0x7C,0x00,0x45,0xFC,0x49,0x04,0x49,0x04,0x51,0x04,0x49,0x04,0x49,0x04,
0x45,0xFC,0x45,0x04,0x45,0x04,0x69,0x04,0x51,0x04,0x41,0x04,0x41,0xFC,0x41,0x04
};
LED16.C文件 //(存放要显示的字的播放逻辑)
#include
#include
#include
#include
#include
#include
#include "hz.h"
#define IOY0 0x0600
#define MY8255_A IOY0 + 0x00*2
#define MY8255_B IOY0 + 0x01*2
#define MY8255_C IOY0 + 0x02*2
#define MY8255_MODE IOY0 + 0x03*2
#define Num 10
unsigned char ROW;
unsigned int COL;
void delay(int time)
{
int i;
int j;
for(i=0;i<=time;i++)
{}
}
void send(unsigned int addr,unsigned int dat)
{
unsigned int i,by=0x0001;
unsigned char bit[16]={0};
for(i=0;i<16;i++)
{
bit[i] =(dat & by)>>i;
by =by*2;
outp(addr, (0x80|ROW)|(bit[i]<<4));
outp(addr, (0x80|ROW)|(bit[i]<<4));
outp(addr, (0xA0|ROW)|(bit[i]<<4));
outp(addr, (0xA0|ROW));
}
outp(addr,(0x40|ROW));
outp(addr,(0x00|ROW));
delay(100);
}
void main()
{
int i,j;
int t;
unsigned int NCOL;
unsigned int count=0;
while(1)
{
for(j=0; j<15; j++) //滚动速度
{
ROW = 0;
send(IOY0,0x0000); //消隐
for(i=0; i<16; i++) //显示一个汉字
{
COL=hzdot[count+1]|hzdot[count]<<8; //取字库数据拼16列
NCOL = 0x0000;
for(t=0;t<16;t++){
NCOL = NCOL<<1 | (COL>>t & 0x0001);
}
COL = NCOL;
send(IOY0,COL); //B口送列
ROW += 1;
count += 2;
}
count -= 32;
}
count += 2;
if(count==(Num-1)*32) count = 0; //判断是否显示结束
}
}
3,运行实验程序,观察点阵的显示,验证程序功能。
微机接口应用技术实验_点阵LED显示设计实验
4,自己可以设计实验,使点阵显示不同的符号。
使用点阵显示符号时,必须首先得到显示符号的编码,这可以根据需要通过不同的工具获得。在本例子中,我们首先得到了显示汉字的字库文件,然后将该字库文件修改后包含到主文件中。参考4.5节所述。
·1,将 HZDotReader 文件夹拷贝到硬盘上,然后双击文件 "HZDotReader"运行程序;
2.在“设置”下拉菜单中选择“取模字体”选项,设置需要显示汉字的字体;
3.在“设置”下拉菜单中选择“取模方式”选项,在本系统中选择如图所示,即以横向 8个连续点构成一个字节,最左边的点为字节的最低位,即 BIT,最右边的点为 BIT7。16X16汉字按每行 2 字节,共 16 行取字模,每个汉字共 32 字节,点阵四个角取字顺序为左上角-右上角一左下角右下角;
4.在“设置”下拉菜单中选择“输出设置”选项,以设置输出格式,可以为汇编格式或C语言格式,根据实验程序语言而定,如图 4.12 所示;
5.点击"字" 按钮,弹出字符输入对话框,输入“我爱湖南耒阳”,如图 4.13所示,然后点击输入按钮;
6.字符输入后,可得到输入字符的点阵编码以及对应汉字的显示,如图 4.14 所示。此时可以对点阵进行编辑,方法是右键点击某一汉字,此时该汉字的编码反蓝,然后点击“编辑”下拉菜单中的“编辑点阵”选项来编辑该汉字,如图 4.15 所示。鼠标左键为点亮某点,鼠标右键为取消某点。若无需编辑,则进行保存,软件会将此点阵文件保存为 dot 格式;
7.使用 Word 软件打开保存的文件,然后将字库复制到自己的程序中使用。
点阵LED显示设计实验到这里就结束了,然后需要字库提取软件的,我把链接放到下面,自行下载即可。
链接:【免费】点阵LED显示字库取模软件资源-CSDN文库