基于单片机的点阵系统设计 综合设计.docx
- 文档编号:12722703
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:16
- 大小:2.87MB
基于单片机的点阵系统设计 综合设计.docx
《基于单片机的点阵系统设计 综合设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的点阵系统设计 综合设计.docx(16页珍藏版)》请在冰豆网上搜索。
基于单片机的点阵系统设计综合设计
江南大学
物联网工程学院
综合设计报告
设计题目:
基于单片机的点阵系统设计
专业:
自动化
班级:
自动化1104班
小组组长:
学号:
07041104
小组成员:
学号:
07041104
小组成员:
学号:
07041104
小组成员:
学号:
小组成员:
学号:
指导教师:
二0一四年十二月十二日
本小组各成员工作分工汇总
(注:
本页就综合设计小组各成员在综合设计任务及工作中具体分工,以及具体工作内容进行汇总。
)
XXX:
对各成员的工作进行认真的分配和整合,主要负责选题,了解相关原理,辅助成员进行程序的编写及实物的制作。
XXX:
主要进行程序的编写工作及实物的制作。
XXX:
主要负责元件采购及后期设计报告的整合与编写工作。
目录
1.综合设计目的…………………………………………………1
2.综合设计题目描述和要求……………………………………1
3.综合设计报告内容…………………………………………1
3.1综合设计任务的分析……………………………………1
3.2硬件设计……………………………………2
3.3软件设计……………………………………6
3.4程序框图及程序源码显示界面…………………………7
3.5实物图……………………………………13
3.6操作说明及注意事项…………………………………14
4.总结及体会………………………………………………15
参考文献………………………………………………………16
1.综合设计目的
熟练掌握单片机的使用,为以后读研或是找工作打下一个坚实的基础。
本文的设计是单片机系统基本模块的一部分,即利用单片机驱动显示屏工作。
其中点阵行扫描由单片机直接驱动,列扫描由单片机驱动的74LS138直接驱动,通过程序写入代码从而实现点阵的显示。
这部分电路在单片机的学习中很重要,我们要知道点阵的显示原理,了解行扫描和列扫描是怎么一回事,以及用什么来驱动行扫描和用什么来驱动列扫描,这里我们使用了74ls138来驱动列扫描,通过这个设计,我们可以更加明白74ls138的使用方法以及它的一些功能特性。
对点阵显示屏及其他的一些显示屏也能有更多的了解。
2.课程设计题目描述和要求
设计一个用16x16的点阵LED显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示文字“江南大学物联网工程学院IOT”,显示文字应稳定、清晰无串扰。
文字显示有静止、移入移出等显示方式。
并且达到以下要求:
1、实现16*16点阵滚动显示的硬件设计
2、实现16*16点阵滚动显示的软件设计
3、实现由单片机控制LED的最终显示
3.综合设计报告内容
3.1综合设计任务的分析
LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在的位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16x16的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,16x16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16x16的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。
具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。
显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。
当列数很多时,并列传输的方案是不可取的。
采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。
但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。
这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。
对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。
解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。
即在显示本行各列数据的同时,传送下一列数据。
为了达到重叠处理的目的,列数据的显示就需要具有所存功能。
经过上述分析,就可以归纳出列驱动器电路应具有的功能。
对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。
这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示。
3.2硬件设计
3.2.1单片机系统的基本模块
基本模块的制作是基于单片机的16*16点阵滚动显示的基本思路,也是我们研究的基于单片机的16*16点阵滚动显示的重要依据。
如图1所示基于单片机系统基本模块图。
单片机系统
显示部分
单片机最小系统
接口扩展部分
驱动部分
图1单片机系统基本模块图
其中,单片机最小系统包括复位电路、晶振电路和电源电路。
显示部分即点阵显示电路,驱动部分即74ls138驱动电路,接口扩展在本次设计中暂未使用。
3.2.2单个点阵显示基本原理
一般的点阵都是8*8的,即横竖都有8个发光二极管,如图2所示。
观察二极管正负极,我们可以很容易发现,如果赋予P0=0xff;P2=0x00;那么所有的发光二极管将被点亮,从而点阵就可以实现全亮。
类似的,如果需要实现某一列或者某一行全亮,也可以进行类似的赋值。
比如,我们要实现第一列全亮,第一列全亮就要求P20=0;其他为1,则代码为P0=0xff;P2=0xfe;但是如果需要让点阵显示一个字符的话,上述赋值则不能达到目的,这里,我们需要先知道扫描的概念。
所谓扫描,就是每隔一个时间段,发送一组代码,当然,这个时间段要足够小。
由于人眼有视觉暂留效应,人的肉眼无法分辨,因此,经过多次扫描,点阵上就能稳定的显示一个字符。
那么程序上如何实现扫描呢?
扫描包括行扫描和列扫描,我们可以任意使用其中一种。
假设我们使用行扫描,就是首先令P07为1,即P00=0x80;然后观察在这一行上有哪些二极管被点亮,点亮的那一列所对应的端口就为0,不亮的就为1,记下此时P2数值,短暂延时过后,令P06=1,即P00=0x40;然后观察在这一行上有哪些二极管被点亮,点亮的那一列就为0,不亮的就为1,记下此时P2数值,同理如此重复下去,直到P00=0x01;那么所有的P0和P2的数值就构成了两个长度为8的数组,我们可以在程序中每个一段时间按顺序发送一组代码,只要时间段足够短,那么我们就可以在点阵上看到稳定的字符了。
以上就是单个点阵显示的基本原理。
3.2.316*16点阵的组成及显示原理
所谓16*16点阵,就是行列各位16个长度的点阵,现实中我们可以通过4个8*8点阵进行拼凑来实现一个16*16的点阵。
如图3所示。
图中的16*16点阵由U6,U7,U8,U9四个单点阵组成,所有的行(X0-X7)都通过排阻接到单片机的P0口上,所有的列(Y00-Y07、Y10-Y17、Y20-Y27、Y30-Y37)接到不同的74ls138(U2,U3,U4,U5)上,U2控制U6,U3控制U7,U4控制U8,U5控制U9。
74ls138直接由单片机的P2口进行驱动,这样就形成了一个完整的电路。
如图4所示。
其显示原理与单个点阵的显示原理类似,但是这里需要先把代码写入U6,然后短暂延时后写入U7,直到U9。
时间段控制合理的话,我们就可以看到显示屏上将显示稳定的字符。
这里涉及到一个滚动显示的问题,所谓滚动显示,即字符是从屏幕右端慢慢往左边移动,好像是一个拉幕的效果,那么滚动显示在程序上如何实现呢?
这里我们就要用到单片机的定时中断,中断一次,字符往左移动一次,如此循环,即实现了字符的滚动显示。
这与上面单个点阵的静态显示是有区别的。
关于74LS138的使用,74ls138是3-8线译码器,当E1=1,E2,E3=0时,该译码器
图474ls138驱动电路
被选中,此时如果数据输入端ABC输入000-111八个数据,输出端Y0-Y7将依次输出0。
所以,我们可以依次选中四个译码器,向数据输入端写入数据来直接控制某个点阵的显示。
以上就是16*16点阵的滚动显示原理。
3.2.416*16点阵滚动显示的硬件设计
如图5就是本次设计的全部硬件电路图:
图5本次设计完整电路图
3.3软件设计
在设计16*16滚动显示的软件部分时,我们必须要明白其中的原理。
本次设计中我们需要注意以下几个问题:
第一,怎么样让点阵显示我们需要的字符,即我们如何获得字符显示的代码。
第二,如何实现字符的滚动显示。
第三,如何使画面保持稳定。
第一,如何取得代码。
现在针对点阵的取字模软件很多,我们只需要打开软件,写入需要取字模的字,然后注意取字模的顺序,是横向还是纵向就行了。
我们这里采用纵向取模,设置字模为C51格式。
这样当写入的字确定后,我们就可以直接复制字模到程序中来实现相应功能。
如“欢”的字模就为:
{0x04,0x28,0x08,0x24,0x32,0x22,0xC2,0x21,0xC2,0x26,0x34,0x38,0x04,0x04,0x08,0x18,0x30,0xF0,0xC0,0x17,0x60,0x10,0x18,0x10,0x0C,0x14,0x06,0x18,0x04,0x10,0x00,0x00}。
第二,如何实现滚动显示。
为了实现字符的滚动显示,我们加入了定时中断函数,如下:
voidtimer0()interrupt1using3
{
TH0=0xd8;
TL0=0xf0;//这里实现10ms定时,10ms时间到后就产生中断
if(n<10)//这里可以控制n的大小来改变字符滚动显示的速度
{n++;}
else
{
offset+=2;
if(offset>1100)
offset=0;
n=0;
}
}
在主函数中,我们通过:
P0=*(p+offset+2*i);这句话来实现字符的滚动显示,每中断10次后offset加2,即字符整体往左移动2个点,移动时间间隔为10*10ms=100ms,由于人眼的视觉暂留效应,我们看到的字符是在流畅的往左移动。
第三,如何使画面保持稳定。
画面的稳定有两个条件:
一,中断的时间应控制在合理的范围之内,时间小了会看不清画面,时间大了画面不连续。
二,选中各个点阵中间的延时,也应当控制在合理范围之内,延时函数如下:
voiddelay(void)
{int16i;for(i=0;i<50;i++);}
这两个条件控制好了,我们就可以看到显示的画面很稳定,很流畅。
3.4程序框图及程序源码显示界面
3.5实物图
3.6操作说明及注意事项
16×16点阵LED电子显示屏的电路系统较小、线路颇为麻烦,特别是在焊接点阵屏时。
对于焊接方面更是不可轻视,庞大的电路系统中只要出现一处的错误,则会对整个电路带来麻烦,且对检测造成很大的不便。
而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。
本组在16×16点阵LED电子显示屏的设计调试中遇到了很多的问题。
下面为设计过程中遇到的主要问题:
1、焊接16×16LED点阵屏时管脚焊接错误。
2、因焊接元器件不熟练,几个焊盘脱落。
3、在硬件电路焊好后总体检测时,16×16LED点阵屏第二行常亮,且亮度比其他行都亮。
回想这些问题,只要耐心仔细和认真思考都是可以避免的,以下是对这几个问题的主要解决方法。
1、时常焊错点阵屏管脚是因为点阵屏的管脚号和功能号是不对应的,所以先仔细查看资料,然后用万能表点个测量,确定各个管脚所对应的功能号,并做相应的记号以防焊接错误。
2、因为电路板不是PCB板而是普通的面包板,焊盘质量不是很好,所以在粗心错焊几次后焊盘就容易脱落,故在选面包板时应选焊盘质量较好的,在后面焊元器件时应仔细小心,尽可能的防止错焊。
3、检测硬件电路时发现16×16LED点阵屏第二行常亮,且亮度比其他行都亮。
首先分析LED发光原理,只有当电流过大时LED才会异常发光,且长时间发光是因为16×16LED点阵屏第二行的某个线路管脚接与正电源相接使其长时间供电才导致LED灯常亮。
当得出故障原因后,我分析有两种可能:
一种是三极管8550被击穿,第二个可能是线路错焊或并线。
之后用一个新的三极管代替原来那个8550点阵屏仍是第二行常亮,排除第一种方案。
后仔细检查电路,用万用表对焊点逐个检测,最终检测出来是第二行的三极管与电源线相连接才导致整个硬件电路出现故障。
4.总结及体会
本次设计的基于单片机的16*16点阵的滚动显示经测试仿真结果良好,能清楚的看到字符的滚动显示,画面比较稳定,流畅。
有时会出现字符显示不完整的现象,我认为这是程序在时间的控制上做的不够好。
但程序思想还是很正确的,学生可以很容易就读懂程序,电路也很容易就看明白了。
在最后的硬件设计时,我们要认真画原理图和PCB,尤其是在PCB布线时,我们要考虑板子的大小要适宜,太大了会浪费资源,太小了对于元件就不好摆放,还要注意元件的摆放位置要适宜布线,不要造成多处飞线的情况,最后,还要设置线宽,线太细的话容易断。
最后再完成调试检测工作。
通过这次的设计,我明白了点阵的工作原理,对单片机以及其他外部器件有了更深的理解,对市场上的元器件价格有了了解,也对各式各样的点阵广告牌等电子显示屏的工作原理有了更深的认识
同时,在考虑问题方面对于这部分的设计一定要结合所有的部分综合考虑,在我们初始设计的时候就应该有大致的整体框架。
参考文献:
[1]胡键,单片机原理及接口技术[M].北京:
机械工业出版社,2005
[2]莫少莹.单片机原理及接口技术课程实验教学改革[J]。
大众科技。
2010,(9);175,77
[3]曹丽燕.基于单片机的音乐盒的设计[J]。
信息与电脑,2010,(4);58
[4]陶国正.单片机与接口应用技术[M].苏州:
苏州大学出版社,2004
[5]梅丽凤,单片机原理及接口技术[M]。
王艳秋,汪毓铎。
北京:
清华大学出版社,2003,5
[6]郑学坚.微型计算机原理与应用[M].北京:
清华大学出版社,2001
[7]徐爱钧,智能化测量控制仪表原理与设计[M]。
北京:
北京航空航天大学出版社,2004,9
[8]张迎新,单片微型计数机原理,应用及接口技术[M]。
北京:
国房工业出版社,1993
[9]李华.MCS-51系列单片机实用接口技术[M].北京:
北京航空航天大学出版社,1993
[10]王幸之.单片机应用系统抗干扰技术[M].北京:
北京航空航天大学出版社,1999
[11]何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:
北京航空航天大学出版社,1990
[12]薛均义,张彦斌.MCS-51/96系列单片微型计算机及其应用[M].西安:
西安交通大学出版社,1997
[13]彭勇;向云南;李书舟;“单片机”课程说课[J],教师,2009,53;27-28
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机的点阵系统设计 综合设计 基于 单片机 点阵 系统 设计 综合