资源简介
关于595及164组成的级联点阵设计,里面包括相关文档说明,原理图及相关程序代码,COOL
代码片段和文件信息
/*16*16点阵屏的显示*/
#include
#include
#define DATAOUT P2 //指定P2口做为输出
sbit DATA=DATAOUT^0; //行数据输出位
sbit SCLH=DATAOUT^1; //行扫描时钟位
sbit SCLT=DATAOUT^2; //行数据锁存位
sbit AB=DATAOUT^3; //列数据输出位
sbit SCK=DATAOUT^4; //列扫描时钟位
unsigned char lhj[32];//32字节RAM做为16*16点阵屏显示缓存
void display();//做为点阵扫描函数,将显示缓存的数据输出到点阵屏
void displayS(unsigned int timer);//指定时间扫描显示
code unsigned char jin[32]={//汉字“精“的点阵数据。汉字点阵数据,可用汉字库点阵生成软件获得
0x080x240x070x380x000xE00xFF0xFF0x000xB00x010x2C0x020x000x000x22
0xFF0xAA0x0A0xAA0x0A0xBF0x4A0xAA0x8A0xAA0x7F0xAA0x000x220x000x00
};
code unsigned char chuang[32]={//创
0x000x400x000x200x3F0xD00x400x4C0x400x430x420x440x440x480x430xD8
0x780x300x000x100x000x000x070xFC0x200x000x400x000x3F0xFF0x000x00
};
code unsigned char dian[32]={//电
0x000x000x000x000x0F0xF80x040x480x040x480x040x480x040x480x3F0xFF
0x440x480x440x480x440x480x440x480x4F0xF80x400x000x700x000x000x00
};
code unsigned char zi[32]={//子
0x010x000x010x000x010x020x010x020x010x020x410x020x810x020x7F0xE2
0x010x120x010x0A0x010x060x010x020x010x000x010x800x010x000x000x00
};
code unsigned char LY[32]={//图案数据
0x000x000x000x000x000x000x000x3F0x000x3F0x000x380x000x380x000x38
0x000x380x000x380x000xFE0x000x7C0x000x380x000x100x000x000x000x00
};
void main(void) //主入口函数
{
unsigned char i=0j=0;
while(1){
for(i=0;i<32;i++)
lhj[i]=LY[i];//将图案数据复制到显示缓存
displayS(2); //显示图案约2秒
for(i=0;i<32;i++)
lhj[i]=jin[i];//将“林“字数据复制到显示缓存
displayS(2); //显示图案约2秒
for(i=0;i<32;i++)
lhj[i]=chuang[i];//将“创“字数据复制到显示缓存
displayS(2); //显示图案约2秒
for(i=0;i<32;i++)
lhj[i]=dian[i];//将“电“字数据复制到显示缓存
displayS(2); //显示图案约2秒
for(i=0;i<32;i++)
lhj[i]=zi[i];//将“子“字数据复制到显示缓存
displayS(2); //显示图案约2秒
}
}
void display()//显示
{
unsigned char iiajtmp; //定义变量
DATAOUT=0XFF; //置位高电平做准备
AB=0; //将列数据位清0,准备移位
for(i=0;i<16;i++){ //循环输出16行数据
SCK=0; //为列移位做准备
SCLT=0; //为行锁存做准备
for(ia=2;ia>0;){ //每行16个点,循环位移两个字节
ia--; //循环两次
tmp=~lhj[i*2+ia]; //读取点阵数据做输出,这里用到ia目的是先读取点阵数据的第二位字节,因一行16个点由两个字节组成,
//电路中的移位寄存器最后一位对应最后一列,所以要先输出一行中的第二个字节数据
for(j=0;j<8;j++){ //循环两次,每次移一个字节,
SCLH=0; //为列移位做准备
DATA=tmp&0x01; //将数据低位做输出,由电路图可知,移位寄存器的最后一位对应最后一列,因此先移最后一位
tmp>>=1; //将数据缓冲右移一位,为下次输出做准备
SCLH=1; //将DATA上的数据移入寄存器
} //移入单字节结束
} //移入两个字节结束
SCK=1; //SCK拉高,列数据移位,相应行拉低,三极管导通输出电量到相应行点阵管阳极(共阳)
SCLT=1; //SCLT拉高,将数据锁存输出到相应行的点阵发光管显示,显示一行后将保持到下一行显示开始
AB=1; //列数据位只在第一行时为0,其它时候都为1,当将这个0移入寄存器后,从第一位开始一直移位最后一位,
//移位的过程,AB就必需是1,这是因为不能同时有两个及两个以上0的出现,否则显示出乱
}
j=64;
while(j--); //每一行的显示,保持16个移位时间,因此,最后一行的显示,也要加入保持时间,补尝显示的亮度
SCK=0; //
SCK=1; //将最后一行数据移出
}
void displayS(unsigned int timer) //指定时间扫描显示
{
unsigned char i;
while(timer--){ //当timer=1时,大约1秒时间
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 468145 2009-06-07 23:19 LED汉字点阵光盘\LED汉字点阵光盘\说明书\LED点阵扩展板使用说明.pdf
文件 57467 2009-06-10 20:08 LED汉字点阵光盘\LED汉字点阵光盘\电路图\LED.pdf
文件 80 2009-10-13 00:11 LED汉字点阵光盘\LED汉字点阵光盘\汉字 图形字模提取软件\zimo.ini
文件 269824 2009-02-22 14:31 LED汉字点阵光盘\LED汉字点阵光盘\汉字 图形字模提取软件\zimo221.exe
文件 51974 2008-07-04 20:00 LED汉字点阵光盘\LED汉字点阵光盘\IC资料\74HC164.pdf
文件 125142 2008-07-11 14:18 LED汉字点阵光盘\LED汉字点阵光盘\IC资料\74HC595.pdf
文件 10654 2009-09-13 22:36 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\51_64汉字b\lhj
文件 3981 2009-09-13 22:36 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\51_64汉字b\lhj.hex
文件 1260 2009-09-20 11:00 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\51_64汉字b\lhj.Opt
文件 186 2009-09-20 10:51 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\51_64汉字b\lhj.plg
文件 1996 2009-09-08 23:47 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\51_64汉字b\lhj.Uv2
文件 1259 2009-09-13 22:39 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\51_64汉字b\lhj_Opt.Bak
文件 1988 2009-09-07 16:09 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\51_64汉字b\lhj_Uv2.Bak
文件 8132 2009-09-13 22:35 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\51_64汉字b\电信学院.c
文件 13069 2009-09-13 22:36 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\51_64汉字b\电信学院.OBJ
文件 8417 2009-05-28 19:26 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵b\LED8.c
文件 13269 2009-05-28 19:25 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵b\LED8.OBJ
文件 10599 2009-05-28 19:25 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵b\lhj
文件 3933 2009-05-28 19:25 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵b\lhj.hex
文件 1251 2009-05-28 19:26 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵b\lhj.Opt
文件 1529 2009-05-28 19:26 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵b\lhj.plg
文件 1988 2009-05-28 19:26 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵b\lhj.Uv2
文件 1250 2009-02-21 14:00 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵b\lhj_Opt.Bak
文件 1853 2007-03-19 19:44 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵b\lhj_Uv2.Bak
文件 3962 2009-05-28 19:07 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵a\LED8.c
文件 6271 2009-05-28 19:07 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵a\LED8.OBJ
文件 5227 2009-05-28 19:07 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵a\lhj
文件 1762 2009-05-28 19:07 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵a\lhj.hex
文件 1252 2009-05-28 19:08 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵a\lhj.Opt
文件 617 2009-05-28 19:08 LED汉字点阵光盘\LED汉字点阵光盘\C程序实例\48_16点阵a\lhj.plg
............此处省略56个文件信息
评论
共有 条评论