目录
4.1实验目的
4.2实验设备
4.3实验内容及原理
4.4实验步骤
4.5字符提取方法
4.4字库取模软件下载
4.1实验目的
4.2实验设备
PC机一台,TDX-PITE 实验装置一套。
4.3实验内容及原理
编写程序,控制点阵向上卷动显示“西安唐都科教仪器公司!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 所示。


4.4实验步骤
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 <stdio.h> #include <stdlib.h> #include <conio.h> #include <bios.h> #include <ctype.h> #include <process.h> #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显示设计实验

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/68931.html