完整word版单片机点阵滚动显示设计.docx
《完整word版单片机点阵滚动显示设计.docx》由会员分享,可在线阅读,更多相关《完整word版单片机点阵滚动显示设计.docx(10页珍藏版)》请在冰豆网上搜索。
完整word版单片机点阵滚动显示设计
《单片机应用技术》
课程设计
题目∶
点阵显示屏
院系∶
机电工程系
专业班级∶
电气1011
姓名∶
胡从胜
学号∶
22
指导教师∶
祖一康
2012年6月19日
一、摘要
单片机是计算机技术,大规模集成电路技术和控制技术的综合产物,经过30多年的发展历程,单片机应用已十分广泛和深入,所以可以毫不夸张的说,任何设备和产品的自动化,数字化和智能化都离不开单片机。
如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张他说,单片机技术的出现则是给现代工业测控领域带来了一次新的技术革命。
由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,MCS-51系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。
半导体发光二极管(LED),是指在半导体PN结通以正向电流时能发光的半导体显示器件。
它具有寿命长、功耗低、体积小、多色显示、工作温度稳定性好,响应时间快等优点,已广泛用于各种仪器仪表、计算机、家用电器等领域,也可用于光纤通信、信息处理和自动控制。
随着技术的发展,LED显示得到了日益广泛的应用,将单色或彩色发光二极管排列成矩阵板即构成LED显示屏,利用单片机或微机来进行控制,使显示内容变得丰富多彩。
LED点阵显示系统中各模块的显示方式有静态和动态显示两种。
静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。
本文将介绍一种采用单片机AT89C52进行控制的8*8LED点阵显示。
该点阵可实现动态显示数字0~9及字符A~Z以及简单字体和图形的功能。
二、任务设计
1、目的
利用单片机控制一块最简单的8×8LED点阵式电子广告牌,将一些特定的文字或图形以特定的方式显示出来。
2、要求
用单片机控制一块最简单的8×8LED点阵式电子广告牌,该点阵可实现滚动显示数字0~9及字符A~Z以及其它简单文字和图形。
3、硬件设计
1)把“单片机系统”区域中的P0.0~P0.7端口分别通过八个电阻连接到“点阵模块”区域中的“L1-L8”行控制端口上见下图;
2)把“单片机系统”区域中的P2.0~P2.7端口通过与寄存芯片74HC573串联,接到“点阵模块”区域中的“S1-S8”列控制端口上;见下图:
3)复位电路设计:
开机复位与按键复位连在一起,使用一个电极电容与按键并联再串联电阻,如下图:
说明:
开机瞬间10uf电容C5两端产生高电平,RST为单片机复位端,在运行任意时刻按下按键S电路复位初始化。
4)时钟电路:
X1为12mHz晶振,C1、C2为30pf电容,见下图:
说明:
所有单片都必须接有时钟电路才能正常运行。
4、软件设计
4.1、主程序流程图
系统主程序开始以后首先是对系统环境初始化,包括设置串口、定时器、中断和端口。
如下图所示:
4.2、显示驱动程序
查询当前点亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。
为消除在切换行显示数据的时候产生拖尾现象,在中断程序中,驱动程序先要关闭显示屏,等显示数据打入输出锁存器并锁存后,然后再输出新的行选通信号,重新打开显示。
三、插图清单和表格清单
1、8×8LED点阵等效电路图
2、仿真电路图
3、元器件清单
元器件名称
型号
数量
万能版
12CM*18CM
1
晶振
11.0592HZ
2
瓷片电容
30pF
2
点解电容
25V22UF
1
LED点阵
8*8共阳
1
单片机
AT89C52
1
紧锁座
40P
1
USB插头
-----
1
弹性按键
-----
1
电阻
1K
8
排阻
A102J
1
漆包线
5米
1
4、单片机程序
#include
#defineuintunsignedint
#defineucharunsignedchar
charcodeled[]={0x00,0x10,0xfe,0x92,0xfe,0x92,0xfe,0x11,0x1f,0x00,//电
0x00,0x40,0x7e,0xb8,0x7c,0x04,0x04,0x05,0x03,0x00,//气0x00,0x18,0x38,0x38,0x18,0x18,0x18,0x3c,0x3c,0x00,//1
0x00,0x18,0x24,0x24,0x24,0x24,0x24,0x18,0x00,0x00,//0
0x00,0x18,0x38,0x38,0x18,0x18,0x18,0x3c,0x3c,0x00,//1
0x00,0x18,0x38,0x38,0x18,0x18,0x18,0x3c,0x3c,0x00,//1
0x00,0x00,0x44,0xaa,0x00,0x28,0x10,0x00,0x00,0x00,//笑
0x00,0x38,0x6c,0x6c,0x0c,0x18,0x64,0x7c,0x7c,0x00,//2
0x00,0x18,0x24,0x24,0x24,0x24,0x24,0x18,0x00,0x00,//0
0x00,0x3c,0x6e,0x6c,0x18,0x1c,0x6e,0x6c,0x38,0x00,//3
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x22,0x55,0x00,0x14,0x08,0x00,0x00,//笑
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
voiddelay(uinta)
{
uintx,y;
for(x=0;xfor(y=0;y<110;y++);
}
voidmain()
{
uinti,j,k=0,w=0x01;
while
(1)
{
for(j=6;j>0;j--)
{
w=0x01;
for(i=0;i<10;i++)
{
P0=w;
P2=~led[k+i];
delay(3);
w<<=1;
}
}
k++;
if(k==120)
{
k=0;
//P0=0x00;
//delay(10000);
}
}
}
总结
在完成单片机课程设计后,我们发现我们还有许多不足,所学到的知识还远远不够,以至于还有一些功能不能被动完成。
但通过学习多次实践,增强了我们的动手能力,提高和巩固了单片机方面的知识,特别是软件方面。
从中增强了我们的团队合作精神,并让我们认识到把理论应用到实践中去是多么重要。
通过此次设计一方面让我认识到自己的不足,发现了学习中的错误之处;另一方面又积累丰富的知识,吸取别人好的方法和经验,增强对复杂问题的解决能力,摸索出一套解决综合问题的方法,为自己以后的工作和学习打下坚实的基础。
再一方面也加强了我和老师的交流,认识到知识的渊博度。
课程设计中既动脑、,又动手,是一个理论与实际结合的过程。
仅仅有理论是不够的,更重要的是实际的,是我们所设计的实物,具有设计合理,经济实用的优点。
这就需要我们设计者考虑问题是要仔细、周密,不能有丝毫的大意。
通过这一次设计,熟练掌握了KeilC51集成开发环境的使用方法,了解并掌握到单片机芯片的烧写方法与步骤,进一步加深了对单片机常用指令的理解与运用。
能够较熟练的运用Protel99绘制电路原理图。
在实训过程中,使我得到了一次用专业知识、专业技能分析和解决问题、全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。
鉴于本人所学知识有限,经验不足,又是初次研究这种复杂的设计,在此过程中难免存在一些错误和不足之处,恳请老师和各位同学给予批评和指正。
参考文献
单片机应用技术(C语言版)