微机原理课程设计基于8086双色点阵发光二极管的设计与实现.doc
郑州科技学院微机原理与接口技术课程设计 题 目 基于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; 红色列代码输 20 H;第六列5个红色LED发光。 行代码输出 44H; 红色列代码输 40 H;第七列2个红色LED发光。 行代码输出 24H; 红色列代码输 80 H;第八列2个红色LED发光。在步骤之间可插入几ms的延时,重复进行即可在LED上稳定的显示出红色“年”字。若想显示黄色“年”,只需把红色列码改为黄色列码即可3.2软件3.2.1 图3-2-1逐行逐列显示参考流程图3.2.2主程序;*11588-1.ASM*protequ 0dc00h-280hprothequ prot+280hprotlrequ prot+288hprotlyequ prot+290h DATA SEGMENTMESS DB 'Strike any key,return to DOS!',0AH,0DH,'$'min1 DB 00h,01h,02h,03h,04h,05h,06h,07hcount db 0BUFF DB 44h,54h,54h,7fh,54h,0dch,44h,24hDATA ENDS;-CODE SEGMENTASSUME CS:CODE,DS:DATA;-START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS MOV AH,09 INT 21H ;显示提示信息;-agn: movcx,80hd2: movah,01h pushcx movcx,0008h movsi,offset min1next: moval,si movbx,offset buff xlat ;得到第一行码 movdx,proth outdx,al moval,ah movdx,protlr outdx,al ;显示第一行红 shlah,01 incsi pushcx movcx,0ffffhdelay2: loop delay2 ;延时 popcx loopnext popcx calldelay loopd2 moval,00 movdx,protlr outdx,al movah,01 ;有无键按下 int16h jnza2agn1: movcx,80h ;agn1为显示黄色d1: movsi,offset min1 movah,01 pushcx movcx,0008hnext1: moval,si movbx,offset buff xlat movdx,proth outdx,al moval,ah movdx,protly outdx,al shlah,01 incsi pushcx movcx,0ffffhdelay1: loop delay1 movcx,0ffffhdelay3: loop delay3 popcx loopnext1 popcx calldelay loopd1 moval,00 movdx,protly outdx,al movah,01 int16h jnza2 jmpagn ;黄色红色交替显示;- DELAY PROCNEAR ;延迟子程序 pushcx movcx,0ffffhccc: loopccc popcx retDELAY ENDP ;-a2: MOV AH,4CH ;返回 INT 21HCODE ENDSEND START;-4调试与结果测试调试主要分为硬件调试和软件调试:硬件调试:在焊接电路板时,应该从基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试的时候,在保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方错了。当然,在设计的过程中也存在着失误和不足,在调试中进行了修改,焊接完成后,检验点阵,及线路的好坏。 软件调试:软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学的是单片机汇编语言,素颜这个系统在编写的时候也采用了汇编语言编写。刚刚开始的时候不会一次通过,经过仔细的分析修改后,最后编译成功了,但是,在实际些如S51中,LED显示屏出现各种各样的乱代码,通过再次认真仔细的多次修改后,程序能够正常运行。程序运行结果5总结 经过近多日的努力,终于将本次课程设计做完了,但由于水平有限,文中肯定有很多不恰当的地方,请老师指出其中的错误和不当之处,使我能做出改正,我会虚心接受。在本次课程设计过程中,我增强了自己的动手能力和分析能力。通过跟老师和同学的交流,也通过自己的努力,我按时完成了这次课程设计。在此过程中,我学会了很多,也看到了很多自己的不足之处。在以后的学习生活中,我会努力学习专业知识,完善自我,为将来的发展做好充分的准备。 微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。 学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。 总之,在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论和实际联系的重要性。在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。参考文献1专著.王忠民.微机原理与接口技术M 人民邮电出版社 2007-6 2专著.微机原理及接口技术实验指导书 M 自动教研室 2014-123专著.谭博学,苗汇静主编.集成电路原理及应用M 电子工业出版社 2011-64专著.相伟主编.汇编语言程序设计M 中国水利水电出版社 2006-115专著.郑学坚,周斌编著.微型计算机原理及应用M 西安电子科技大学出版社 2009-096专著.沈复兴,陈利永编著.电子技术基础M 电子工业出版社 2001-1-17网上资料附录1电路驱动图附录2主程序protequ 0dc00h-280hprothequ prot+280hprotlrequ prot+288hprotlyequ prot+290h DATA SEGMENTMESS DB 'Strike any key,return to DOS!',0AH,0DH,'$'min1 DB 00h,01h,02h,03h,04h,05h,06h,07hcount db 0BUFF DB 44h,54h,54h,7fh,54h,0dch,44h,24hDATA ENDS;-CODE SEGMENTASSUME CS:CODE,DS:DATA;-START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MESS MOV AH,09 INT 21H ;显示提示信息;-agn: movcx,80hd2: movah,01h pushcx movcx,0008h movsi,offset min1next: moval,si movbx,offset buff xlat ;得到第一行码 movdx,proth outdx,al moval,ah movdx,protlr outdx,al ;显示第一行红 shlah,01 incsi pushcx movcx,0ffffhdelay2: loop delay2 ;延时 popcx loopnext popcx calldelay loopd2 moval,00 movdx,protlr outdx,al movah,01 ;有无键按下 int16h jnza2agn1: movcx,80h ;agn1为显示黄色d1: movsi,offset min1 movah,01 pushcx movcx,0008hnext1: moval,si movbx,offset buff xlat movdx,proth outdx,al moval,ah movdx,protly outdx,al shlah,01 incsi pushcx movcx,0ffffhdelay1: loop delay1 movcx,0ffffhdelay3: loop delay3 popcx loopnext1 popcx calldelay loopd1 moval,00 movdx,protly outdx,al movah,01 int16h jnza2 jmpagn ;黄色红色交替显示;- DELAY PROCNEAR ;延迟子程序 pushcx movcx,0ffffhccc: loopccc popcx retDELAY ENDP ;-a2: MOV AH,4CH ;返回 INT 21HCODE ENDSEND START 目 录1引言22方案论证32.1处理器的选择32.2驱动电路设计32.3程序方案设计42.4设计框图43设计原理及功能5 3.1硬件63.1.1电路驱动图63.2软件93.2.193.2.2主程序114调试与结果测试145总结16参考文献17附录1电路驱动图18附录2主程序19