单片机16X16点阵的显示设计Word下载.docx
- 文档编号:18144273
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:11
- 大小:135.18KB
单片机16X16点阵的显示设计Word下载.docx
《单片机16X16点阵的显示设计Word下载.docx》由会员分享,可在线阅读,更多相关《单片机16X16点阵的显示设计Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
该电子显示屏可以显示各种文字或单色图像,采用4块8x8点阵LED显示模块来组成一个16x16点阵显示模式。
显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。
文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
一系统要求
1采用51系列单片机设计一个室内用LED图文显示屏.
2可显示图像和汉字等文字,显示的图形和文字应稳定,清晰无串扰、
二系统设计结构或设计
1方案设计
LED点阵总体框图如下图所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。
控制电路部分包括一个51CUP和一些外围电路。
在整个电路当中单片机负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。
点阵显示屏体、以及它的行和列的各个驱动电路。
此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该行与电源的一端接通)。
另一方而,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。
接通的列,就在该行该列点燃相应的LED;
未接通的列所对应的LED熄灭。
可通过扫描输出口的控制实现颜色的转换。
、
系统示意图
三系统硬件电路的设计
硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。
1单片机系统
单片机采用89C51或其兼容系列的芯片,采用24M或更高频率的晶振,以获得较高的刷新频率,使显示更稳定。
单片机的串口与列驱动器相连,用来送显示数据。
P1口低4位与行驱动器相连,送出行选信号;
P1.5~P1.7口则用来发送控制信号。
P0和P2口空着,在有必要时可以扩展系统的ROM和RAM。
2.引脚说明
MSC51单片机管脚说明如下:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的
1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3、行驱动电路
单片机P1口低4位输出的行号经4/16线译码器74LS154译码后生成16条行选通信号线,再经过驱动器驱动对应的行线。
一条行线上要带动16列的LED进行显示,按每一LED器件20mA电流计算,16个LED同时发光时,需要320mA电流,选用三极管8550作为驱动管可满足要求。
4、列驱动电路
列驱动电路由集成电路74HC595构成,它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。
74HC595的外形及内部结构如图所示。
它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。
引脚SI是串行数据的输入端。
引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。
移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。
RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入到输出锁存器。
引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高阻态。
SCLR信号是移位寄存器的清零输入端,当其为低时移位寄存器的输出全部为零。
由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。
芯片的输出端为QA~QH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。
但因QH受输出锁存器打入控制,所以还从输出锁存器前引出了QH’,作为与移位寄存器完全同步的级联输出。
74HC595外形及内部逻辑结构图
四系统软件电路的设计
显示屏软件模块:
初始化程序、主程序、显示程序、扫描程序。
显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。
软件设计中,显示屏的软件系统分为两层;
第一层是底层的显示驱动程序,第二层是上层的系统应用程序。
显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。
显示驱动器程序由定时器T0中断程序实现。
系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。
1显示驱动程序
显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:
刷频率(帧频)=1/16×
T0溢=1/16×
f/12(65536-t)
其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。
然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。
图六为显示驱动程序(显示屏扫描函数)流程图
2程序流程图
五调试及性能分析
1开发环境介绍
程序编写采用Keil51环境下调试,KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
2理论性能分析
LED显示屏硬件电路只要硬件质量可靠,引脚焊接正确,一般无需调试即可正常工作。
软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。
显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,表5-1给出了实验调试时采用的频率及其对应的定时器T0初值。
表5-1显示平刷新率与T0初值关系表(24MHz晶振)
刷新率
25
50
62.5
75
85
100
120
T0初值
0xec78
0xf63c
0xf830
0xf97e
0xfa42
0xfb1e
0xfbee
从理论上来说,24Hz以上的刷新频率就能看到稳定的连续的显示,刷新率越高,显示越稳定,同时刷新频率越高,显示驱动程序占用的CPU时间越多。
试验证明,在目测条件下刷新频率40Hz一下的画面看起来闪烁较严重,刷新频率50Hz以上的已基本察觉不出画面的闪烁,刷新频率达到85Hz以上时再增加画面闪烁没有明显的改善。
这个方案设计的16x16的点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;
显示屏各点亮度均匀、充足;
显示图形或文字稳定、清晰无串扰;
可用静止、移入移出等多种显示方式显示图形或文字。
3系统调试
调试主要分为硬件调试和软件调试:
硬件调试:
在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。
在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。
当然,在设计的过程中也存在着失误和不足。
软件调试:
软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是C语言,所以这个系统在编写程序过程中都采用C语言编写。
刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。
但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。
六总结体会
通过本次16×
16点阵LED显示的设计,理论知识学习和实际设计的结合锻炼了我的综合运用所学的专业基础知识解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。
为后继的学习奠定的基础。
七参考文献
[1]成同福,《LED点阵式城市客车电子显示路牌的功能》.城市车辆,2003年
[2]张义和,《例说8051》(第三版)。
人民邮电出版社。
2010年版
[3]上官同英,《单片机原理及应用技术》。
清华大学出版社2011年版
[4]侯玉宝,《基于proteus的51系列单片机设计与仿真》。
电子工业出版社。
[5]楼然苗.单片机课程设计指导.第三版.北京:
京航空航天大学出版社,2007年
[6]周润景,袁伟亭,景晓松.Proteus在MCS-51&
ARM7系统中的应用百例.北京:
电子工业出版社,2006年
[7]胡汉才.单片机原理及其接口技术.第二版.北京:
清华大学出版社,2004年
附录
1.显示驱动主程序
#include<
reg51.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitSerial_Data_Pin=P0^0;
sbitShift_CLK_Pin=P3^7;
sbitRCK_Pin=P0^1;
sbitSwitch_74LS154=P3^6;
uchardataBit_Stream_8[32];
ucharcodeWord_Set_OF_[][32]=
{
0xFF,0xFF,0xEF,0xFB,0xEF,0xFC,0x2F,0xFF,0x00,0x00,0x6F,0xFF,0xEF,0x7C,0xFF,0x9F,
0x01,0xE0,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0x01,0xC0,0xFF,0xBF,0xFF,0xBF,0xFF,0x87},
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xE0,0x77,0xF7,0x77,0xF7,0x77,0xF7,0x77,0xF7,
0x00,0x80,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x07,0x60,0xFF,0x7F,0xFF,0x0F},
{0xFF,0xFF,0xFF,0xEF,0xFF,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,
0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xFF,0xEF,0xFF,0xEF},
{0xFF,0xFF,0x7B,0xEF,0x7B,0xCF,0x03,0xE0,0x7B,0xF7,0x7B,0x77,0xFF,0xBD,0x07,0xDE,
0xFF,0xE7,0x00,0xF8,0xFF,0xFF,0x7B,0xDF,0x7B,0xDF,0x03,0xC0,0x7B,0xDF,0x7B,0xDF},
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1D,0x00,0xDB,0xF6,0xD7,0xF6,0xDF,0xF6,0xDF,0xF6,
0xC0,0xF6,0xDF,0xF6,0xDF,0xF6,0xD7,0xB6,0xDB,0x76,0x1D,0x80,0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xBF,0x7F,0xBF,0x7F,0xBD,0xBF,0xBB,0xDF,0xA7,0xE7,0x3F,0xF8,0xBF,0xFF,
0x80,0xFF,0xBF,0xFF,0x3F,0xC0,0xAF,0xBF,0xB7,0xBF,0xB9,0xBF,0xBF,0xBF,0xBF,0x87},
{0xFF,0xFF,0xBB,0x7F,0xA7,0x9F,0x3F,0xE0,0x80,0xFF,0x2F,0x80,0xB7,0xDF,0xD9,0xEF,
0xDD,0xEC,0x1D,0xED,0xC5,0xED,0x5D,0x00,0xDD,0xED,0xDD,0xED,0xD5,0xED,0xF9,0xEF
};
voidDelay(uintt)
uchari;
while(t--)for(i=0;
i<
180;
i++);
}
voidSerial_Input_Pin(ucharAbyte)
for(i=0;
8;
i++)
{
Abyte<
<
=1;
Serial_Data_Pin=CY;
Shift_CLK_Pin=1;
_nop_();
Shift_CLK_Pin=0;
voidT0_Led_Display_Control()interrupt1
TH0=-1000/256;
TL0=-1000%256;
i=(P2+1)&
0x0f;
Serial_Input_Pin(Bit_Stream_8[i*2+1]);
Serial_Input_Pin(Bit_Stream_8[i*2]);
Switch_74LS154=1;
RCK_Pin=1;
RCK_Pin=0;
Switch_74LS154=0;
P2=i;
}
voidmain()
uchari,k;
TMOD=0x01;
IE=0x82;
P2=0xFF;
while
(1)
for(k=0;
k<
12;
k++)
for(i=0;
32;
Bit_Stream_8[i]=Word_Set_OF_[k][i];
TR0=1;
Delay(1000);
TR0=0;
P2=0xFF;
2.仿真硬件图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 16 X16 点阵 显示 设计