基于单片机的点阵图形显示课程设计报告.docx
《基于单片机的点阵图形显示课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于单片机的点阵图形显示课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
基于单片机的点阵图形显示课程设计报告
单片机课程设计
题目基于单片机的点阵图形显示设计
摘要
单片机是计算机技术,大规模集成电路技术和控制技术的综合产物,经过30多年的发展历程,单片机应用已十分广泛和深入,所以可以毫不夸的说,任何设备和产品的自动化,数字化和智能化都离不开单片机。
如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸他说,单片机技术的出现则是给现代工业测控领域带来了一次新的技术革命。
由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,MCS-51系列单片机以其优越的性能、成熟的技术与高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国单片机应用领域中的主流。
半导体发光二极管(LED),是指在半导体PN结通以正向电流时能发光的半导体显示器件。
它具有寿命长、功耗低、体积小、多色显示、工作温度稳定性好,响应时间快等优点,已广泛用于各种仪器仪表、计算机、家用电器等领域也可用于光纤通信、信息处理和自动控制。
随着技术的发展,LED显示得到了日益广泛的应用,将单色或彩色发光二极管排列成矩阵板即构成LED显示屏,利用单片机或微机来进行控制,使显示容变得丰富多彩。
本文将介绍一种采用单片机AT89C51进行控制的8*8LED点阵显示,该点阵可实现简单的图形、形状显示功能。
第一章系统功能要求
第二章设计方案的确定
第三章系统硬件电路的设计
3.1.1单片机的时钟电路
3.1.2单片机的复位电路
3.1.3AT89C51的最小应用系统
3.2.18*8点阵LED显示器的组成原理与控制方式
3.2.28×8点阵LED显示器与单片机的接口
3.3电源电路的设计
3.4单片机芯片的性能与功能分析
第四章系统程序的设计
第五章调试与性能分析
5.1软件调试
5.2性能分析
参考文献
附录
第一章系统功能要求
本系统采用单片机AT89C51为LED显示屏的控制核心,制造一种简单的8×8显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字稳定、清晰无串扰,图形或文字显示有静止、移入移出等显示方式。
本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。
系统框图:
本文设计行、列驱动电路,显示屏电路,运用单片机的智能化,系统的将每个功能电路模块连接在一起,总体结构设计如下图所示:
点阵显示器行驱动电路
单片机89C51
8*8点阵LED显示器电路
PC上位机
点阵显示器列驱动电路
第二章设计方案的确定
一,单片机采用STC89C52RC芯片。
二,点阵显示器的驱动电路:
由P0.0-P0.7控制点阵的列代码,由P2.0-P2.7控制点阵的行代码,先送列扫描码,然后再送行扫描数据。
三,点阵采用8*8LED单色点阵。
四,利用keil软件编写相应的程序代码,并生成HEX文件。
将HEX文件下载到单片机芯片中,最后实现显示相应图形的目的。
第三章系统硬件电路的设计
3.1.1单片机的时钟电路
AT89C51单片机部的振荡电路是一个高增益反向放大器,引线X1和X2分别是放大器的输入端和输出端。
单片机部虽然有振荡电路,但要形成时钟,外部还需附加电路。
AT89C51的时钟产生方式有两种:
部时钟电方式和外部时钟方式。
由于外部时钟方式用于多片单片机组成的系统中,所以此处选用部时钟方式。
部时钟方式:
利用其部的振荡电路在X1和X2引线上外接定时元件,部振荡电路产生自激振荡。
最常用的是在X1和X2之间接晶体振荡器与电路构成稳定的自激振荡器,如图电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择30PF左右。
3.1.2单片机的复位电路
单片机在启动运行时需要复位,使CPU以与其它功能部件处于一个确定的初始状态,并从这个状态开始工作,另外,在单片机工作过程中,如果出现死机时,也必须对单片机进行复位,使其重新开始工作。
本设计中采用按键复位电路,其中电容选择10uf、电阻大小为10K。
复位电路如下图所示:
3.1.3AT89C51的最小应用系统
AT89C51是片有程序存储器的单片机,要构成最小应用系统时只要将单片机接上外部的晶体或时钟电路和复位电路即可,如下图所示。
这样构成的最小系统简单可靠,其特点是没有外部扩展,有可供用户使用的大量的I∕O线。
3.2.18*8点阵LED显示器的组成原理与控制方式
本次设计中采用8×8点阵LED显示器,简称LED点阵板或LED矩阵板。
它是以发光二极管为像素,按照行与列的顺序排列起来,用集成工艺制成的显示器件。
有单色和双色之分,设计中用到的是单色显示器。
其部结构图如下所示:
8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则9脚接高电平13脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第9脚要接高电平,而(13、3、4、10、6、11、15、16)这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第13脚接低电平,而(9、14、8、12、1、7、2、5)接高电平,那么第一列就会点亮。
3.2.28×8点阵LED显示器与单片机的接口
单片机的P0口经限流电阻与点阵的行控制引脚相连,P2口则直接与点阵的列控制引脚相连。
3.3电源电路的设计
电源电路采用普通集成稳压电路,在本设计中,由于考虑到成本问题,这部分电路就以输出+5V的稳压电源代替。
3.4单片机芯片的性能与功能分析
·32条可编程I/O线
·两个16位定时器/计数器
·6个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片振荡器和时钟电路
管脚说明:
①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才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
⑧/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
⑨/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。
注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
⑩XTAL1:
反向振荡放大器的输入与部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
第四章系统程序的设计
本实验的目的是实现菱形和椭圆两个图形在8*8LED点阵上的轮流显示。
图形的编码分别为:
菱形行代码:
0x10,0x28,0x44,0x82,0x44,0x28,0x10,0x00
列代码:
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe
椭圆行代码:
0x18,0x24,0x42,0x42,0x42,0x24,0x18,0x00
列代码:
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe
另外,由于本实验是两个图形的轮流显示,所以主程序中加入了延时程序,延时程序采用的是1MS基准延时。
voiddelay1ms(unsignedinti)
{
unsignedcharj;
while(i--)
{
for(j=0;j<115;j++)//1ms基准延时程序
{
;
}
}
}
主程序容如下:
#include
voiddelay1ms(unsignedinti)
{
unsignedcharj;
while(i--)
{
for(j=0;j<115;j++)//1ms基准延时程序
{
;
}
}
}
Unsignedcharconstx[][8]={{0x10,0x28,0x44,0x82,0x44,0x28,0x10,0x00},{0x18,0x24,0x42,0x42,0x42,0x24,0x18,0x00}};
unsignedcharcodey[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
voiddelay(unsignedintt)
{
while(--cnt);
}
voidmain()
{
unsignedchari,j;
while
(1)
{
for(i=0;i<2;i++)
{
delay1ms(1000);
for(j=0;j<8;j++)
{
P0=x[i][j];
P2=y[j];
delay(300);
}
}
}
}
第五章调试与性能分析
5.1软件调试
调试分为用KEIL软件进行调试以与使用protues仿真软件进行调试。
KEIL软件调试:
Protues仿真软件调试:
5.2性能分析
此次系统设计结果较好,LED显示屏能很好的显示信息。
这个方案设计的8*8的点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点高度均匀、充足;显示图形或文字稳定、清晰无串拢;可用静止、移入移出等多种显示方式显示图形或文字。
参考文献
[1]朝青.单片机原理与接口技术(第三版).航空航天大学,2006
[2]小坚,等.ProtelDXP电路设计与制版实用教程(第二版).人民邮电,2012
[3]清明.C语言程序设计.人民邮,2008
[4]康华光.电子技术基础(第五版).高等教育,2005
附录一:
仿真图
附录二:
电路图
附录三:
源程序
#include
voiddelay1ms(unsignedinti)
{
unsignedcharj;
while(i--)
{
for(j=0;j<115;j++)//1ms基准延时程序
{
;
}
}
}
Unsignedcharconstx[][8]={{0x10,0x28,0x44,0x82,0x44,0x28,0x10,0x00},{0x18,0x24,0x42,0x42,0x42,0x24,0x18,0x00}};
unsignedcharcodey[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
voiddelay(unsignedintt)
{
while(--cnt);
}
voidmain()
{
unsignedchari,j;
while
(1)
{
for(i=0;i<2;i++)
{
delay1ms(1000);
for(j=0;j<8;j++)
{
P0=x[i][j];
P2=y[j];
delay(300);
}
}
}
}