基于单片机的16×16点阵的滚动显示屏设计
目 次
1绪论 1
1.1 MCS-51系列单片机简介 1
1.2 单片机的应用模式和应用领域 2
1.3 主要工作任务 3
2硬件设计 3
2.1 单片机系统的基本模块 3
2.2 1616点阵滚动显示的硬件设计 4
3软件设计 6
3.1 1616点阵滚动显示的软件设计 6
4软件仿真结果 8
4.1 1616点阵滚动显示仿真结果 8
结 论 9
参考文献 10
致谢 11
附录相关源程序 12
本文的设计是单片机系统基本模块的一部分,即利用单片机驱动显示屏工作。其中点阵行扫描由单片机直接驱动,列扫描由单片机驱动的74LS138直接驱动,通过程序写入代码从而实现点阵的显示。
这部分电路在单片机的学习中很重要,我们要知道点阵的显示原理,了解行扫描和列扫描是怎么一回事,以及用什么来驱动行扫描和用什么来驱动列扫描,这里我们使用了74ls138来驱动列扫描,通过这个设计,我们可以更加明白74ls138的使用方法以及它的一些功能特性。对点阵显示屏及其他的一些显示屏也能有更多的了解。
3软件设计
3.11616点阵滚动显示的软件设计
在设计1616滚动显示的软件部分时,我们必须要明白其中的原理。本次设计中我们需要注意以下几个问题:第一,怎么样让点阵显示我们需要的字符,即我们如何获得字符显示的代码。第二,如何实现字符的滚动显示。第三,如何使画面保持稳定。
第一,如何取得代码。现在针对点阵的取字模软件很多,我们只需要打开软件,写入需要取字模的字,然后注意取字模的顺序,是横向还是纵向就行了。我们这里采用纵向取模,设置字模为C51格式。本文转载自http://www.biyezuopin.vip/onews.asp?id=13836这样当写入的字确定后,我们就可以直接复制字模到程序中来实现相应功能。如“老”的字模就为:{0x02,0x10,0x22,0x10,0x22,0x20,0x22,0x20,0x22,0x40,0x22,0x7C,0xFE,0x92,0x23,0x12,0x23,0x22,0x22,0x22,0x26,0x42,0x2A,0x42,0x72,0x02,0x22,0x0E,0x02,0x00,0x00,0x00,/“老”,2*/}。
第二,如何实现滚动显示。为了实现字符的滚动显示,我们加入了定时中断函数,如下:
void timer1() interrupt 3
{
alt++;
if(alt==10) //到一定的时间加以实现左移
{
alt=0;
if(fangxiang==0) //如果是正向 正向移动
{
net=net+2;
if(net>sl) //字移动数量
net=0;
}
else //否则反向移动
{
net=net-2;
if(net<2)
net=sl; //字移动数量
}
}
}
4软件仿真结果
4.11616点阵滚动显示的仿真结果
如图6、7、8、为本次1616点阵滚动显示的仿真结果
图6:单片机调用字符代码通过驱动电路显示“欢”字
图7:单片机调用字符代码通过驱动电路显示“迎”字
图8:单片机调用字符代码通过驱动电路显示“您”字