基于8086双色点阵发光二极管的设计与实现.docx
《基于8086双色点阵发光二极管的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于8086双色点阵发光二极管的设计与实现.docx(15页珍藏版)》请在冰豆网上搜索。
基于8086双色点阵发光二极管的设计与实现
郑州科技学院
《微机原理与接口技术》课程设计
题目基于8086双色点阵发光二极管的设计与实现
学生姓
年1月11日
1■引言
LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。
LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。
这些优点概括起来是:
亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。
但是LED等也有诸多不足,还有很多的发展空间,在样式和色彩搭配上还有很多的提升空间,有时间信号不稳定无信号输出。
显示板有时会不亮,整个屏幕重影或者晃动,这些都是LED的弊端,需要我们改进,能够提高它的性能,发挥更大的价值。
现代LED的发展很快,很多研究领域非常已经深刻,所以想利用自己学的微机知识简单的研究一下用微机驱动的LED显示汉字,以达到学以致用和实践相结合的目的,同时巩固加深自己的微机知识。
用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组合和变化,只要设计好合适的数据文件,就可以得到满意的显示效果。
因而采用点阵式图文显示屏显示经常需要变化的信息,是非常有效的,对应于每种颜色都有自己的显示矩阵。
显示的时候,各颜色的显示点阵是分开控制的。
事先设计好各种颜色的显示数据,显示时分别送到各自的显示点阵,即可实现预期效果。
每一种颜色的控制方法和单色的完全相同,因此掌握了单色图文显示屏的原理,双色屏和多色屏就不难理解了。
因而我设计了“年”的LED等,采用双色点阵,能够显示红和黄两种颜色,能够闪烁。
可以在夜晚焕发出绚丽的色彩。
2■方案论证
本设计方案中主要包括处理器选择,驱动电流设计,程序设计三部分。
下面逐次介绍各种方案的选择。
2.1处理器的选择
方案一:
利用80C51单片机作为程序处理器,80C51单片机有4个并行I/O接口,分别为P0.P1.P2.P3,每个接口有8个引脚,每个引脚均是双向输入输出通道,输入是可以实现所存,输出时可以实现数据缓冲。
方案二:
利用8086CPU作为处理器,8086CPU为16位机,有16根数据线,20跟地址线,一般情况下,8086CPU引脚不直接和外部设备相连,而多与外设驱动接口电路相连,1实现对外设的间接控制。
由于本学期我们微机原理课程学习8086处理器,所以本设计中采用8086CPU作为程序处理器。
2.2驱动电路设计
方案一:
静态锁存显示,将LED点阵阳极接高电平,阴极接低电平,这种方式电路接线简单,显示方式单一,程序控制也简单,但是其耗费接口的引脚,硬件开展大,在LED点阵规模大时将无法实现电路连接。
方案二:
动态扫描显示,该方法是指显示屏公用一组列驱动寄存器,然后通过行驱动管的分时工作,使每行数据显示一段时间,循环显示,只要循频率不大,即可利用人眼的视觉暂留效应使人感觉如同同时显示所有数据一样,该方法控制方法多样,接口引脚需求少。
所以本设计采用动态扫描显示
2.3程序方案设计
本设计采用8086控制器,为了提高程序运行速度,本设计采用汇编编程语言,具体方案在下面解释。
2.4设计框图
图2-1动态扫描方案图
3■设计原理及功能
点阵LED显示器是将许多LED类似矩阵一样排列在一起组成的显示器件,双色点阵LED是在每一个点阵的位置上有红绿或红黄或红白两种不同颜色的发光二极管。
当微机输出的控制信号使得点阵中有些LED发光,有些不发光,即可显示出特定的信息,包括汉字、图形等。
车站广场由微机控制的点阵LED大屏幕广告宣传牌随处可见。
试验仪上设有一个共阳极8*8点阵的红黄两色LED显示器,其点阵结构如图所示。
该点阵对外引出24条线,8条行线,8条红色列线,8条黄色列线。
若使某一种颜色、某一个LED发光,只要将与其相连的行线加高电平,列线加低电平即可。
3.1硬件
3.1.1电路驱动图
图3-1-1电路驱动图
3.1.2点阵图
图3-1-2点阵图
欲显示汉字“年”,采用逐列循环发光。
首先由“年”的点阵轮廓,确定点阵代码,根据“年”的点阵代码,确定逐列发光的顺序如下:
①行代码输出44H;红色列代码输01H;第一列2个红色LED发光。
②行代码输出54H;红色列代码输02H;第二列3个红色LED发光。
③行代码输出54H;红色列代码输04H;第三列3个红色LED发光。
④行代码输出7FH;红色列代码输08H;第四列7个红色LED发光。
⑤行代码输出54H;红色列代码输10H;第五列3个红色LED发光。
⑥行代码输出DCH;红色列代码输20H;第六列5个红色LED发光。
⑦行代码输出44H;红色列代码输40H;第七列2个红色LED发光。
⑧行代码输出24H;红色列代码输80H;第八列2个红色LED发光。
在步骤①~⑧之间可插入几ms的延时,重复进行①~⑧即可在LED上稳定的显示出红色“年”字。
若想显示黄色“年”,只需把红色列码改为黄色列码即可
3.2软件
3.2.1
图3-2-1逐行逐列显示参考流程图
3.2.2主程序
;***********************11588-1.ASM*************************
protequ0dc00h-280h
prothequprot+280h
protlrequprot+288h
protlyequprot+290h
DATASEGMENT
MESSDB'Strikeanykey,returntoDOS!
',0AH,0DH,'$'
min1DB00h,01h,02h,03h,04h,05h,06h,07h
countdb0
BUFFDB44h,54h,54h,7fh,54h,0dch,44h,24h
DATAENDS
;-----------------------------------------------------------
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
;------------------------------------------------------------
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMESS
MOVAH,09
INT21H;显示提示信息
;------------------------------------------------------------
agn:
movcx,80h
d2:
movah,01h
pushcx
movcx,0008h
movsi,offsetmin1
next:
moval,[si]
movbx,offsetbuff
xlat;得到第一行码
movdx,proth
outdx,al
moval,ah
movdx,protlr
outdx,al;显示第一行红
shlah,01
incsi
pushcx
movcx,0ffffh
delay2:
loopdelay2;延时
popcx
loopnext
popcx
calldelay
loopd2
moval,00
movdx,protlr
outdx,al
movah,01;有无键按下
int16h
jnza2
agn1:
movcx,80h;agn1为显示黄色
d1:
movsi,offsetmin1
movah,01
pushcx
movcx,0008h
next1:
moval,[si]
movbx,offsetbuff
xlat
movdx,proth
outdx,al
moval,ah
movdx,protly
outdx,al
shlah,01
incsi
pushcx
movcx,0ffffh
delay1:
loopdelay1
movcx,0ffffh
delay3:
loopdelay3
popcx
loopnext1
popcx
calldelay
loopd1
moval,00
movdx,protly
outdx,al
movah,01
int16h
jnza2
jmpagn;黄色红色交替显示
;----------------------------------------------------------------
DELAYPROCNEAR;延迟子程序
pushcx
movcx,0ffffh
ccc:
loopccc
popcx
ret
DELAYENDP
;---------------------------------------------------------------------
a2:
MOVAH,4CH;返回
INT21H
CODEENDS
ENDSTART
;----------------------------------------------------------
4■调试与结果测试
调试主要分为硬件调试和软件调试:
硬件调试:
在焊接电路板时,应该从基本的最小系统开始,分模块,逐个进行焊接测试。
在对各个硬件模块进行测试的时候,在保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方错了。
当然,在设计的过程中也存在着失误和不足,在调试中进行了修改,焊接完成后,检验点阵,及线路的好坏。
软件调试:
软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学的是单片机汇编语言,素颜这个系统在编写的时候也采用了汇编语言编写。
刚刚开始的时候不会一次通过,经过仔细的分析修改后,最后编译成功了,但是,在实际些如S51中,LED显示屏出现各种各样的乱代码,通过再次认真仔细的多次修改后,程序能够正常运行。
程序运行结果
5■总结
经过近多日的努力,终于将本次课程设计做完了,但由于水平有限,文中肯定有很多不恰当的地方,请老师指出其中的错误和不当之处,使我能做出改正,我会虚心接受。
在本次课程设计过程中,我增强了自己的动手能力和分析能力。
通过跟老师和同学的交流,也通过自己的努力,我按时完成了这次课程设计。
在此过程中,我学会了很多,也看到了很多自己的不足之处。
在以后的学习生活中,我会努力学习专业知识,完善自我,为将来的发展做好充分的准备。
微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。
讨论某一部分原理时又要涉及到其它部分的工作原理。
这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。
所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。
学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。
总之,在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论和实际联系的重要性。
在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。
参考文献
[1]专著.王忠民.微机原理与接口技术[M]人民邮电出版社2007-6
[2]专著.微机原理及接口技术实验指导书[M]自动教研室2014-12
[3]专著.谭博学,苗汇静主编.集成电路原理及应用[M]电子工业出版社2011-6
[4]专著.相伟主编.汇编语言程序设计[M]中国水利水电出版社2006-11
[5]专著.郑学坚,周斌编著.微型计算机原理及应用[M]西安电子科技大学出版社2009-09
[6]专著.沈复兴,陈利永编著.电子技术基础[M]电子工业出版社2001-1-1
[7]网上资料
附录1电路驱动图
附录2主程序
protequ0dc00h-280h
prothequprot+280h
protlrequprot+288h
protlyequprot+290h
DATASEGMENT
MESSDB'Strikeanykey,returntoDOS!
',0AH,0DH,'$'
min1DB00h,01h,02h,03h,04h,05h,06h,07h
countdb0
BUFFDB44h,54h,54h,7fh,54h,0dch,44h,24h
DATAENDS
;-----------------------------------------------------------
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
;------------------------------------------------------------
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMESS
MOVAH,09
INT21H;显示提示信息
;------------------------------------------------------------
agn:
movcx,80h
d2:
movah,01h
pushcx
movcx,0008h
movsi,offsetmin1
next:
moval,[si]
movbx,offsetbuff
xlat;得到第一行码
movdx,proth
outdx,al
moval,ah
movdx,protlr
outdx,al;显示第一行红
shlah,01
incsi
pushcx
movcx,0ffffh
delay2:
loopdelay2;延时
popcx
loopnext
popcx
calldelay
loopd2
moval,00
movdx,protlr
outdx,al
movah,01;有无键按下
int16h
jnza2
agn1:
movcx,80h;agn1为显示黄色
d1:
movsi,offsetmin1
movah,01
pushcx
movcx,0008h
next1:
moval,[si]
movbx,offsetbuff
xlat
movdx,proth
outdx,al
moval,ah
movdx,protly
outdx,al
shlah,01
incsi
pushcx
movcx,0ffffh
delay1:
loopdelay1
movcx,0ffffh
delay3:
loopdelay3
popcx
loopnext1
popcx
calldelay
loopd1
moval,00
movdx,protly
outdx,al
movah,01
int16h
jnza2
jmpagn;黄色红色交替显示
;----------------------------------------------------------------
DELAYPROCNEAR;延迟子程序
pushcx
movcx,0ffffh
ccc:
loopccc
popcx
ret
DELAYENDP
;---------------------------------------------------------------------
a2:
MOVAH,4CH;返回
INT21H
CODEENDS
ENDSTART
目录
1■引言2
2■方案论证3
2.1处理器的选择3
2.2驱动电路设计3
2.3程序方案设计4
2.4设计框图4
3■设计原理及功能5
3.1硬件6
3.1.1电路驱动图6
3.2软件9
3.2.19
3.2.2主程序11
4■调试与结果测试14
5■总结16
参考文献17
附录1电路驱动图18
附录2主程序19