您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 51单片机LED显示屏(带心得体会原创)
得分微机原理与接口技术课程考试制作报告作品名称:LED点阵显示屏专业班级:学号:姓名:年月2目录作品说明………………………………………………………3系统总体设计…………………………………………………3硬件设计………………………………………………………3软件设计………………………………………………………4系统调试与分析………………………………………………8课程作品制作体会……………………………………………9附:原理图……………………………………………………103作品说明:1.现在市面上有很多有关点阵显示器的商品,如广告活动字幕机器、、股票显示板、活动布告栏等。它的有点是可按照需要的大小、形状、单色或彩色来组合,可与单片机连接,做各种广告性的文字或者图形的变化。2.本作品就是用4个单色8×8LED点阵来显示一些文字或符号。主件采用AT89S51和一个74HC154的译码器,再加上一些三极管和电阻组成基本的电路。在本制作中,显示为汉字:“欢迎来到民雄农工”。系统总体设计:1.只要让某些LED亮就可以组成数字、英文字、图形、中文字。但是如果采用直接点亮的方式,它就可变化成很多的形状,当然不管是哪种形式,哪种图案的哪些LED该亮必须是固定的。2.要显示一个中文字,必须有几个点阵组成才可显示一个中文字。本制作采用的是16×15的点阵。硬件设计:1.元器件:点阵行和列的确定:要点亮点阵中的某些点,必须要保证它所在的点电压正偏。如何才能保证这一点呢?把点阵(型号FJ1088BH)买回来以后,选定一个方向,比如把有型号的一面朝上,本电路要保证点阵的行为高,列为低,因此要用万用表的正极一端固定,负极一端在点阵的引脚上面来回的总动测试,发现只有哪一行亮,那么正极所在的引脚就为那行的高端。可以先定义行和列的顺序。本制作中经过测试是如下定义的:上面从左往右依次为:P2P5Q4P7Q2Q1P6P4下面从左往右依次为:P0Q3Q5P3Q0P1Q6Q7其中P为行(从下往上),Q为列(从左到右)后来在调试电路的时候发现这样做得到的是乱码,于是将原来的编码反向。此为后面详加介绍。4三极管脚的确定:三极管在电路中担当的是开关的作用,要用到两种型号的管子,NPN(9013)和PNP(A1015),它们的脚EBC是用万用表来测试得到,结果如下:有字的一面从左往右依次为:(9013)EBC,(A1015)ECB电阻:设计中要用到两种阻值的电阻,分别为68Ω和4.7KΩ晶振:采用晶振频率为12MHZ2.电路基本设计:行:P0、P2口作为一般的输入和输出口使用所以要加一个4.7K的上拉电阻。在点阵的行和P0.0~P0.7、P2.0~P2.7之间采用NPN的三极管,射极接输出,集电极接Vcc列:通过一个4-16译码器(74CHC154),来选通列,数值的输入是从ABCD接入,其中D(20脚)为高,A(23脚)为低,分别接到P1.0~P1.3,G1(18脚)接P1.4为选通端子。复位电路:采用上电复位。软件设计:1.基本的点阵显示:(“欢“)0123456789ABCDEFP00●P01●P02●●●●●●●●●●●●●P03●●●P04●●●●P05●●●P06●●●P07●●●P20●●●P21●●●P22●●●P23●●●P24●●●●P25●●●●P26P27P0003C4484040484443C000007040F4041CP2201008044343040810200020100F1020备注为了符合硬件电路的设计,在程序烧写的时候编码是从3C,10开始的,因为在电路的设计的时候为了方便,把第8列作为了第一列,在编写的时候注意就是了。编码采用P0.0为低位,P0.7为高位,比如最左列P0的编码为00000000就是十六进制的00,P2口为00100000,就是十六进制的20,依次类推。2.程序的设计思路。5流程图:程序源码:(烧到芯片里面的)ORG00HSTART:MOVA,#00HMOVP0,AANLP2,#00MOVR2,#200D1:MOVR3,#248DJNZR3,$DJNZR2,D1MOV20H,#00HL1:MOVR1,#0FFHL2:MOVR6,#16MOVR4,#00HMOVR0,20H6L3:MOVA,R4MOVP1,AINCR4MOVA,R0MOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,AINCR0MOVA,R0MOVDPTR,#TABLEMOVCA,@A+DPTRMOVP2,AINCR0MOVR3,#02D2:MOVR5,#248DJNZR5,$DJNZR3,D2MOVA,#00HMOVP0,AANLP2,#00HDJNZR6,L3DJNZR1,L2MOV20H,R0CJNER0,#0FFH,L1JMPSTART;1欢TABLE:DB3CH,10H,00H,20HDB00H,00H,07H,20HDB04H,10H,0F4H,0FHDB04H,10H,1CH,20HDB00H,20H,3CH,10HDB44H,08H,84H,04HDB04H,03H,04H,03HDB84H,04H,14H,08H;2迎7DB02H,21H,81H,20HDB00H,20H,02H,20HDB0FEH,2FH,02H,22HDB02H,22H,0FEH,21HDB00H,00H,49H,20HDB6AH,10H,0D3H,0FHDB08H,10H,00H,20HDB0FEH,27H,02H,22H;3莅DB22H,20H,22H,20HDB0E2H,3FH,3AH,20HDB0E7H,3FH,3AH,20HDB22H,20H,22H,20HDB00H,00H,82H,00HDB42H,00H,0E2H,3FHDB17H,00H,0AH,00HDB02H,00H,02H,00H;4临DB10H,21H,0FH,21HDB14H,21H,24H,3FHDB44H,21H,04H,21HDB04H,21H,04H,3FHDB00H,00H,0F0H,03HDB00H,00H,00H,00HDB0FFH,3FH,00H,00HDB40H,20H,00H,3FH;5民DB11H,01H,11H,01HDB0F1H,03H,11H,05HDB11H,09H,1FH,11HDB00H,21H,00H,38HDB00H,00H,00H,20HDB0FFH,3FH,11H,21HDB11H,21H,11H,11H8DB11H,09H,11H,01H;6雄DB04H,00H,0FEH,3FHDB45H,22H,44H,22HDB44H,22H,0FFH,3FHDB44H,22H,44H,22HDB00H,00H,08H,11HDB88H,18H,48H,14HDB3FH,12H,08H,10HDB18H,10H,08H,38H;农DB3FH,20H,44H,10HDB84H,00H,04H,01HDB04H,03H,84H,04HDB5CH,08H,00H,10HDB00H,00H,00H,00HDB1CH,04H,04H,04HDB04H,02H,04H,01HDB84H,00H,04CH,3FH;工DB0FFH,3FH,01H,20HDB01H,20H,01H,20HDB01H,20H,01H,20HDB01H,20H,01H,20HDB00H,00H,00H,20HDB01H,20H,01H,20HDB01H,20H,01H,20HDB01H,20H,01H,20HEND系统调试与分析:1.刚开始的时候出现的是乱码,经过分析才知道是行和列的定义方式与电路图有冲突,恰好反了,最初以为只要是保证行为高,列为低就可以了,事实上并不9是这样子的,因为它要组成一个字,要是只有一块点阵那就无所谓了,但是现在是4块,它们是一个整体,各个组成汉字的一部分,所以行和列的定义与单片机端口的连接绝对的有影响。2.发现是乱码以后就开始调整行的顺序和列的顺序,经过调整以后还是出现乱码,但是现在的乱码已经和以前不一样了,现在是汉字的两半分到两边去了。因此断定是列的方向搞反了。后来就把程序中的列的码值从第8行开始编入。它是汉字的两半分到了两边,所以要平移一下,从第8开始编写。3.编码的问题解决以后就是硬件电路的问题。刚开始的时候是最下面一行一直在亮,而下面数第4行一直不亮,经过检查知道是第4行的后面的连线断路了。重新焊接以后可以开始工作了。至于最下面一行一直亮,到现在也没有查出是什么原因,我用万用表测试过它的电压一直是在3.23V左右,费了好大劲也没有查出是什么原因,在焊接的时候我公用了一条线,我担心是这条线的问题,但是用表测量是是没有问题的。我还是把它断掉重新独立的用一条线。还是没有得到解决。4.系统分析:调试中其实还是对电路动过大手术的,因为连接的线路比较多,所以在改动的时候比较多麻烦,但是不得已只有把线路改装。接线的时候要保证的时P0.7和P2.7是高位的。行和列的位置要和单片机上面的引脚对应才可以赋值的时候对应正确。总体的电路原理不是很复杂,就是管子多一点,连线复杂一点。课程制作心得体会:先说不足,制作完成以后,虽然这个电路有人建议我用一个16×16的点阵来完成,但是我觉得这是两件事情,不足的是我没有经验,不知道这些线该是怎么样的布局才更合适一点,所以显得很乱,我看到别的班级的同学也有做这个的,但是他们用的是插针,而我全部是用的铜线焊接的,所以线路比较多,费了好大的劲以后才发现原来实现它还有更好的办法只是在这之前我没有进行一个很全面的思考。之前一直在做一个数据库,等知道以后已经没有很多的时间了,这不能不说是一个很大的遗憾,凡事都要进行一个全面的思考才可以下手,向我这样,急急忙忙就开始下手,结果给自己造成了很大的麻烦,到最后还是没有得到一个很好的结果。调试到最后还是有两个问题没有得到很好的解决,最上面的一个的接触也不是很好,可能是插针的问题,编码的时候也是很匆忙的编好,难免有些不足,花了很久的时间,当然是希望看到一个完完整整漂亮的汉字,这样也可以只是有一点的不足。从这次制作之中,真的是学到了很多的东西,不仅仅是知识方面的,更重要的是做事情的方式,我一直觉得一个人的成功决定于他做事情的方式。像这次做的这个虽然不是很复杂,但是由于我全部用的三极管和电阻,最原始的,译码器只要了一个,没有用别的芯片,所以工作量就比较的大,需要耐心,最初开始焊接的时候觉得越来越复杂,担心是不是可以在规定的时间之内完成,焊接完了点阵内部的连线以后才觉得有点希望了,可以在接着焊接三极管和电阻了,一共要32个三极管和48个电阻,都要一一焊接上去,由于我在前面没有想好布局,到这儿可就惨了,这么多的东西,幸好我用的是一个很大的板子,要不真的是很10难容纳这些元器件。没有一个很好的布局,所以有的他们之间就挨的很紧密,存在着短路的可能,我在焊接的时候就对这个十分的小心,还好在完成以后只有一个地方短路了,即使是这样我查找它还是费了很大的劲,因为焊接的地方实在是太多了,我必须用万用表一个一个的测试。做事情首先要有一个很好的规划才会有好的进展,否则你将在以后的某一个时刻为你此刻的不够冷静而付出代价,有些代价是可以接受和原谅的,有些就会造成无可挽回,造成整件事情的崩溃,而这些的源头,就是当初你没有尽心思考的结果。在制作的时候,同学们给了很大的帮助,很多的器件都是同学们借给我的,让我得以顺利的完成,让我意识到即使团结的重要性。而在将来做事情的时候更加的重视团队的重要性。附:原理图
本文标题:51单片机LED显示屏(带心得体会原创)
链接地址:https://www.777doc.com/doc-2893576 .html