LED点阵
- 格式:doc
- 大小:53.00 KB
- 文档页数:7
我做过这样的毕业设计,16*64点阵显示屏,可以各种显示,时间,温度等功能。
给你一个参考:可以去我的博客下载:/seo/led-c51-core.htmlLED 点阵汉字显示屏概述这次比赛制作由于时间紧,同时为了降低制作难度,仅作了四个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。
设计制作主要运用于学校的宣传栏,如:本科评估的各种信息,学校学院重要通知,天气预报等各种信息。
系统设计一硬件电路(1)系统组成:主要硬件电路:LED 点阵条屏是由16 个8*8 的LED 点阵块组成,形成16*64 矩形点阵,以AT89S51为控制核心。
显示屏的其他主要硬件有:①带锁存输出的8位移位寄存器74HC595,作为LED的列线驱动输入;②四六译码器74LS154,作为LED行线的译码选择(实际制作中考虑成本问题改为两个74HC138联合);③三极管9012,连接四六译码器的十六个输出端,作为开关使用,驱动LED 的行线。
图二AT89S51单片机最小系统AT89S51相关器件连接的接脚如下:PA0-PA3连接4-16译码器的输入口A,B,C,D;PB0-PB3连接74HC595的输入口SI,SCK,RCK;PD6-PD7作串口通信使用连接RxD,TxD 两个三八译码器74LS138组成的16个输出端连接16 个9012的三极管的基极B,发射极E 连接5V电源,集电极C连接到三个汉字点阵的16 个行线控制端。
点阵的48 列数据线驱动由6 片74HC595 级联组成,前一片74HC595 的Q’H 引脚连接下一片的SI引脚,各片的SCK、RCK、SRCLR、G引脚分别并联。
(2)LED点阵块图三LED点阵块8*8的LED点阵为单色行共阴模块,单点的工作电压为正向(Vf)=1.8 v ,正向电流(IF)= 8-10 mA 。
静态点亮器件时(64点全亮)总电流为640mA,总电压为1.8 v,总功率为1.15 W。
动态时取决于扫描频率(1/8或1/16秒),单点瞬间电流可达80-160 mA。
16*16点阵静态时16*16*10mA,动态时单点电流80-160mA。
实际测试:整机电流700 mA(2)移位寄存器74HC595图四74HC595内部逻辑图74HC595是带锁存输出的8位移位寄存器,其管脚见下图,其中SI是串行数据的输入端;VCC、GND分别为电源和地;RCK是存储寄存器的输入时钟,SCK 是移位寄存器的输入时钟,SCLR是移位寄存器的输入清除,Q’H是串入数据的输出,G是对输入数据的输出使能控制,QA~QH串入数据的并行输出。
从SI 口输入的数据在移位寄存器的SCK脚上升沿的作用下输入到74HC595中,在RCK脚的上升沿作用下将输入的数据锁存在74HC595中,当G为低电平时时,数据并行输出。
SCLR为移位寄存器的输入清除端。
(3)74HC138以及驱动电路图五74HC138以及驱动电路实物图4-16线译码器(用两块74HC138组成),其管脚如图所示,A,B,C,D为译码的输入端,值的区间从0000到1111,Y1~Y15是对应A,B,C,D四个输入引脚的输出脚,其中选中的线用输出低电平,没有选中的输出高电平,G1、G2是使能端,只有输入相应D低电平才能使译码器正常工作。
驱动三极管为16个9012,用万能板焊接。
二软件设计单片机方的程序设计单片机在LED点阵汉字显示系统中主要负责数据的接收、存储和扫描显示LED点阵屏三大主要功能。
串行移动的子程序设计这是一个通用子程序,在显示子程序中都要被调用,功能是移位寄存器74HC595接收单片机发出的点阵行数据,逐位移动到对应位置后再进行锁存和输出工作,同时对四六译码器进行开关工作,控制屏幕的显示。
部分程序:初始化程序:#include <AT892051.H>#define uchar unsigned char#define uint unsigned int#define SPEED 3uchar col,disrow;uint word;uchar code HZ[];uchar BUFF[6];void loadoneline(void);void sendoneline(void);发送部分程序:void sendoneline(void){char s;uchar inc;if(col<8)inc=0;else inc=1;for(s=4+inc;s>=0+inc;s--){SBUF=two_onebyte(BUFF[s],BUFF[s+1]);while(!TI);TI=0;}}三调试调试主要分为硬件调试和软件调试:硬件调试:在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。
在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。
当然,在设计的过程中也存在着失误和不足。
软件调试:软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是C语言,所以这个系统在编写程序过程中都采用C语言编写。
刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。
但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。
四总结在LED点阵汉字显示屏的设计过程中,学到了很多东西,基本了解了整个嵌入式开发的流程。
例如,在进行整个设计之前,应该先根据需求分析,对单片机进行选型,然后对各个硬件模块进行搭试。
在画PCB电路板的时候,要注意基本的布板原则。
例如,在进行PCB布板的时候,滤波电容不够靠近芯片的电源脚和地脚。
在进行搭试点阵块的时候,因为电压过高,导致点阵块损坏。
这次第一届电子设计制作,本人受益非浅,在以后的电子设计制作过程中一定吸取教训。
参考文献:[1]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社.1998.[2]杜春雷.如何使用Visual Basic 6.0 dP3~ [M].北京:机械工业出版社,1999.[3]孙育才.新型AT89S51系列单片机及其应用[M].北京:清华大学出版社.2005.经验小结:1,在头文件增加“#pragma SRC(LED.ASM)”语句,可以生成汇编文件,对于理解汇编语言程序是有很大的好处的。
2,在制作PCB板过程中,业余条件下很难做双面板,不地不做的时候考虑如何布线才能达到最优最好。
3,在“/WNFZQ.htm”;Keil C51软件的安装,按照该软件的安装,可以得到无限量的程序编译。
因为在写程序的过程中发现,KEIL C51 只能编译2K的程序代码,不够用。
用C编写,感觉很容易理解。
程序编写过程中最好是先参考别人的程序,再修改能不能实用自己的程序要求,之后才自己去编写完全属于自己的程序。
4,单片机仿真软件PROTEUS 也是很不错的。
在上面可以仿真很多东西。
设想:1,可以挂在学校的十字路口,提供日期,时间,温度,湿度等天气信息,服务广大同学。
2,可以和电脑相连接,实现同步显示。
做一个完整的系统。
进一步学习下面的软件或者语言(知识):BVprotel 99 sekeil c51proteusc/c++easy isp 51Easy 51Pro.exe2007-5-25下面为静止显示“农林大学”四个字的程序:#include <REG51.h>#define uchar unsigned char#define uint unsigned intuchar disrow;uchar code HZ[];uchar BUFF[9];void loadonelineandsend(void);/********************************************//*******************************************************/ void main(void){while(1){for(disrow=0;disrow<16;disrow++){loadonelineandsend();P1=0x10+disrow;P1=0x20+disrow;}}}/******************************************************/ void loadonelineandsend(void){uchar s;int q;q=0;for(s=0;s<4;s++){BUFF[q]=HZ[32*s+disrow*2];BUFF[q+1]=HZ[32*s+disrow*2+1];SBUF=255-BUFF[q+1];while(!TI);TI=0;SBUF=255-BUFF[q];while(!TI);TI=0;}}/******************************************************//***********农林大学********************************************/uchar code HZ[]={0x01,0x00,0x01,0x00,0x7F,0xFE,0x41,0x02,0x81,0x04,0x02,0x00,0x02,0x08, 0x05,0x18,0x09,0x20,0x18,0xC0,0x28,0x80,0x48,0x40,0x88,0x30,0x0A,0x0E,0x0C,0x04 ,0x08,0x00,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x24,0xFE,0xFE,0x08,0x20,0x18,0x60, 0x1C,0x70,0x2A,0xA8,0x28,0xAE,0x49,0x24,0x8A,0x20,0x08,0x20,0x08,0x20,0x08,0x20 ,0x08,0x20,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00, 0x02,0x80,0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x0E,0x60,0x04, 0x00,0x00,0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04, 0x1F,0xE0,0x00,0x40,0x01,0x84,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00, 0x02,0x00,};。