《16x16点阵式汉字电子显示屏(共24页).doc》由会员分享,可在线阅读,更多相关《16x16点阵式汉字电子显示屏(共24页).doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上郑州工程技术学院单片机原理及应用技术课程设计题 目: 点阵式电子显示屏的设计 学 号: 5 姓 名: 潘 阳 同 组 人: 石国夫 专 业: 电气自动化 班 级: 15电气对口二班 指导教师: 孙建延 2016年 12 月27 日点阵式汉字电子显示屏的设计设计内容:以MCS-51系单片机为核心器件,设计一个点阵式汉字电子显示屏。任务要求:(1)显示屏为16*16LED点阵显示器;(2)可以依次显示“老师,您辛苦了!”8个汉字。设计要求: (1)设计方案选择合理,达到设计任务要求; (2)设计思路清晰,原理框图正确,元器件选择恰当,计算正确;软件流程图正确合理,源程序完
2、整;说明书简明扼要,文字流畅,论点明确,书写工整; (3)图纸表达正确,符合制图规范;图面整洁,布局合理,图中电气连接和元器件符号符合要求。 (4)设计的有关技术指标符合国家有关规范、标准和政策要求。(5)在设计过程中认真、按时完成各阶段的设计、计算、编程、绘图、调试任务。(6)原理图绘制在A1纸,要求用PROTEUS仿真正确后,焊接实物电路板,并能测试成功。摘要本设计使用AT89C51系列高速单片机作为主控制模块,利用简单的外围电路来驱动1616的点阵LED显示屏。利用AT89C51系列高速单片机本身强大的功能,可以很方便的实现单片机与PC机间的数据传输及存储,并能利用软件方便的进行显示内容
3、的多样变化,另一方面点阵显示屏广泛的应用于医院、机场、银行等公共场所,所以本设计具有很强的现实应用性。本LED显示屏能够以动态扫描的方式同时显示4个88点阵汉字,并能通过上位机软件修改显示内容和显示效果等等。把字符内码存储在空闲的单片机程序存储器空间,本文从LED的显示原理入手,详细阐述了LED动态显示的过程,以及硬件电路的设计、计算和软件仿真下载实现。关键词: 动态显示;单片机;AbstractThis design USES AT89C51 series high speed single chip microcomputer as the main control module, the
4、 use of simple peripheral circuit to drive the 16 * 16 lattice LED display. Using AT89C51 series high-speed microcontroller itself powerful function, can easily achieve between MCU and PC data transmission and storage, and convenient to use software to display content diversity change, on the other
5、hand dot matrix display screen is widely used in hospitals, airports, Banks and other public places, so this design has a strong practical applicability. The LED display can be displayed in a dynamic scanning way and at the same time four 8 x 8 dot matrix Chinese characters, and can pass the PC soft
6、ware revision display content and effect, and so on. Store named character in the free microcontroller program memory space, this article obtains from the principle of LED display, LED dynamic display of the process were introduced in detail, as well as the hardware circuit design, calculation and s
7、imulation software to download. Key Words: Dynamic display; Single chip microcomputer;专心-专注-专业目录1256612223445一 绪论 设计课题背景知识 单片微型计算机(single chip microcomputer)简称单片机,它是为各类专用控制器而设计的通用或专用微型计算机系统,高密度集成了普通计算机微处理器,一定容量的 RAM 和ROM 以及输入/输出接口,定时器等电路于一块芯片上构成的。 单片机自 20 世纪 70 年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。
8、单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广告屏等。所以研究 LED 显示有实用的意义。 LED 显示屏分为图文显示屏和视频显示屏,均由 LED 矩阵块组成。图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD 节目以及现场实况。LED 显示屏显示画面色彩鲜艳,立体感强,静如油画,动如
9、电影,广泛应用于交通运输、车站、商场、医院现代 LED 的发展很快,很多研究领域非常已经深刻,实际情况是:很多相、宾馆、证券市场、工业企业管理等公共场所。LED 显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。LED 之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。关的知识已经远远超出我们在校学生的能
10、力范围, 所以在此只是简单的研究一下用单片机驱动的 LED 显示移动的汉字。目的有三:一是亲手制作一个简单实用的显示文字的 LED 点阵;二是通过制作LED 点阵增强对 LED 点阵的了解和应用,以及复习巩固单片机知识;三是通过团队合作,增强团队合作的意识,为以后走向社会工作打下基础,并且增强了同学之间的友谊。汉字显示方式是先根据所需要的汉字提取汉字点阵(如 1616 点阵),将点阵文件存入ROM,形成新的汉字编码;而在使用时则需要先根据新的汉字编码组成语句,再由 MCU 根据新编码提取相应的点阵进行汉字显示。不论显示图形还是文字,都是控制与组成这些图形或文字的各个点所在位置相对应的 LED
11、器件发光。 通常事先把需要显示的图形文字转换成点阵图形,在按照显示控制的要求以一定的格式形成显示数据。对于只控制通断的图文显示屏来说,每个 LED 发光器件占据数据中的 1 位(1bit),在需要该 LE D 器件发光的数据中相应的位填 1,否则填 0。当然,根据控制电路的安排,相反的定义同样时可行的。这样依照所需显示的图形文字,按显示屏的各行各列逐点填写显示数据,就可以构成一个显示数据文件。显示图形的数据文件,其格式相对自由,只要能够满足显示控制的要求即可。文字的点阵格式比较规范,可以采用现行计算机通用的字库字模。组成一个字的点阵,其大小也可以有1616、2424、3232、4848 等不同
12、规格。用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组合和变化,只要设计好合适的数据文件,就可以得到满意的显示效果。因而采用点阵式图文显示屏显示经常需要变化的信息,是非常有效的。图文显示屏的颜色,有单色、双色、和多色几种。最常用的是单色图文屏。单色屏多使用红色或橘红色或橙色 LED 点阵单元。 双色图文屏和多色图文屏, 在 LED 点阵的每一个“点”上布置有两个或多个不同颜色的 LED 发光器件。换句话说,对应于每种颜色都有自己的显示矩阵。显示的时候,各颜色的显示点阵是分开控制的。事先设计好各种颜色的显示数据,显示时分别送到各自的显示点阵,即可实现预期效果。每一种颜色的控制方法和单色
13、的完全相同,因此掌握了单色图文显示屏的原理,双色屏和多色屏就不难理解了。 为了吸引观众增强显示效果,可以有多种显示模式。最简单的显示模式是静态显示。与静态显示模式相对应,就有各种动态显示模式,它们所显示的图文都是能够动的。按照图文运动的特点又可以分为闪烁、平移、旋转、缩放等多种显示模式。产生不同显示模式的方法,并不意味着一定要重新编写显示数据,可以通过一定的算法从原来的显示数据直接生成。例如,按顺序调整行号,可以使显示图文产生上下平移;而顺序调整列显示数据的位置,就可以达到左右平移的目的;刷新的时间控制,要考虑运动图形文字的显示效果。刷新太慢,动感不显著;刷新太快了,中间过程看不清。一般刷新周
14、期可控制在几十毫秒范围之内。 本次设计中,由本人和王文东组成一组,王文东负责硬件部分电路图的设计和软件部分程序的设计和调试,目的是应用简单方便的电路连接和程序完成汉字的换色与移动。我负责用设计好的点阵电路制作 PCB 电路板,包括完成 PCB 板的制作,制作另外一块在面包板上连的点阵线连板子的焊接与调试,各人的分工不同只是工作侧重点的不同,大家是在一起互相学习互相帮助,共同完成设计任务。二 单元电路设计与分析2.1系统设计LED点阵总体框图如下图所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。控制电路部分包括一个51CUP和一些外围电路。在整个电路当中单片机负责控
15、制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。点阵显示屏体、以及它的行和列的各个驱动电路。此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该行与电源的一端接通)。另一方而,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。接通的列,就在该行该列点燃相应的LED;未接通的列所对应的LED熄灭。可通过扫描输出口的控制实现颜色的转换。 、2.2系统硬件电路的设计硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。2.2.1
16、单片机系统单片机采用89C51或其兼容系列的芯片,采用24M或更高频率的晶振,以获得较高的刷新频率,使显示更稳定。单片机的串口与列驱动器相连,用来送显示数据。P1口低4位与行驱动器相连,送出行选信号;P1.5P1.7口则用来发送控制信号。P0和P2口空着,在有必要时可以扩展系统的ROM和RAM。管脚说明P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口
17、:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内
18、部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P
19、3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。
20、此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入
21、及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.2.2行驱动电路单片机P1口低4位输出的行号经4/16线译码器74HC138译码后生成16条行选通信号线,再经过驱动器驱动对应的行线。一条行线上要带动16列的LED进行显示,按每一LED器件20mA电流计算,16个LED同时发光时,需要320mA电流,选用三极管8550作为驱动管可满足要求。2.2.3列驱动电路列驱动电路由集成电路74HC595构成,它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。
22、概述:74HC595 是一款漏极开路输出的CMOS 移位寄存器,输出端口为可控的三态输出端,亦能串行输出控制下一级级联芯片。特点: 速移位Fmax25MHz 标准串行(SPI)接口 CMOS 串行输出,可用于多个设备的级联 低功耗:TA =25时,Icc=4A(MAX)功能表: 管脚编号 管脚名 管脚定义功能1、2、3、4、5、6、7、15 QAQH 三态输出管脚 8 GND 电源地 9 SQH 串行数据输出管脚 10 SCLR 移位寄存器清零端 11 SCK 数据输入时钟线 12 RCK 输出存储器锁存时钟线 13 OE 输出使能 14 SI 数据线 15 VCC 电源端 图1 74HC59
23、5图 图2 74HC595逻辑图真值表: 输入管脚 输出管脚 SI SCKSCLRRCKOEX X X X H QAQH 输出高阻 X X X X L QAQH 输出有效值 X X L X X 移位寄存器清零 L 上沿 H X X 移位寄存器存储L H 上沿 H X X 移位寄存器存储H X 下沿 H X X 移位寄存器状态保持 X X X 上沿 X 输出存储器锁存移位寄存器中的状态值 X X X 下沿 X 输出存储器状态保持 它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SI是串行数据的输入端。引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI
24、的下一个数据打入最低位。移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入到输出锁存器。引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高阻态。SCLR信号是移位寄存器的清零输入端,当其为低时移位寄存器的输出全部为零。由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。芯片的输出端为QAQH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。但因QH受输出锁存器打入控制,所以还从输出锁存器前引出了QH,作为与移位寄存器完全同步的级联输出。74HC
25、595外形及内部逻辑结构图2.3软件设计2.3.1软件要求汉字要稳定、明亮并且文字要以一定速度上升滚动显示。显示屏软件模块:初始化程序、主程序、多字滚动、显示程序、扫描程序。显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。软件设计中,显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。1显示驱动程序显示驱动程序
26、在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:刷频率(帧频)=1/16T0溢=1/16f/12(65536-t)其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。图六为显示驱动程序(显示屏扫描函数)流程图2.3.2 程序代码#include/头文件sbit shcp=P12;
27、/数据输入时钟线 595的11脚sbit stcp=P11;/输出存储器锁存时钟线 595的12脚sbit ds=P10;/数据线 595的14脚sbit s1=P31;/按下暂停再暂按继续sbit s2=P32;/按下方向取反bit fx;/方向切换unsigned char alt;/数据移动定时时间unsigned int net;/控制显示的字符unsigned char zi=8;unsigned int zong;/总字符 (所有的字数+1)*32 字数指的是汉字,字母、数字两个算一个数字unsigned char code tab=0x00,0x00,0x00,0x00,0x00
28、,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/老(0) 师(1) ,(2) 您(3) 辛(4) 苦(5) 了(6) !(7)0x04,0x08,0x04,0x10,0x24,0x20,0x24,0x40,0x24,0xFC,0x24,0xA2,0xFD,0x22,0x26,0x22,0x24,0x42,0x2C,0x42,0x14,0x42,0x24,0x82,0x44
29、,0x1E,0x04,0x00,0x04,0x00,0x00,0x00,/*老,0*/0x00,0x00,0x3F,0xE1,0x00,0x02,0x00,0x0C,0xFF,0xF0,0x00,0x00,0x40,0x00,0x47,0xF8,0x44,0x00,0x44,0x00,0x7F,0xFF,0x44,0x10,0x44,0x08,0x47,0xF0,0x40,0x00,0x00,0x00,/*师,1*/0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
30、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*,,2*/0x04,0x02,0x08,0x0C,0x10,0x00,0x3F,0xEE,0xC4,0x01,0x08,0x81,0x11,0x11,0xE6,0x4D,0x20,0x21,0x2F,0xC1,0x20,0x01,0x24,0x07,0x2A,0x00,0x31,0x88,0x00,0x06,0x00,0x00,/*您,3*/0x02,0x00,0x02,0x20,0x22,0x20,0x22,0x20,0x2A,0x20,0x26,0
31、x20,0xA2,0x20,0x63,0xFF,0x22,0x20,0x26,0x20,0x2A,0x20,0x22,0x20,0x22,0x20,0x02,0x20,0x02,0x00,0x00,0x00,/*辛,4*/0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x3F,0xF9,0x22,0x21,0x22,0x21,0x22,0x2F,0xE2,0x21,0x22,0x21,0x22,0xF9,0x22,0x21,0x3F,0x21,0x00,0x21,0x00,0x21,0x00,0x00,0x00,/*苦,5*/0x00,0x00,0x40,0x00,0x
32、40,0x00,0x40,0x00,0x40,0x00,0x40,0x02,0x40,0x01,0x47,0xFE,0x44,0x00,0x48,0x00,0x50,0x00,0x60,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*了,6*/0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xCC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
33、0x00,/*!,7*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,;unsigned char code tab1=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0
34、0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/老(0) 师(1) ,(2) 您(3) 辛(4) 苦(5) 了(6) !(7)0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xCC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*!,7*/0x00,0x00,0x40,0x00,0x40,0x00,0x40,0
35、x00,0x40,0x00,0x40,0x02,0x40,0x01,0x47,0xFE,0x44,0x00,0x48,0x00,0x50,0x00,0x60,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*了,6*/0x21,0x00,0x21,0x00,0x21,0x00,0x21,0x3F,0xF9,0x22,0x21,0x22,0x21,0x22,0x2F,0xE2,0x21,0x22,0x21,0x22,0xF9,0x22,0x21,0x3F,0x21,0x00,0x21,0x00,0x21,0x00,0x00,0x00,/*辛,5*/0x
36、02,0x00,0x02,0x20,0x22,0x20,0x22,0x20,0x2A,0x20,0x26,0x20,0xA2,0x20,0x63,0xFF,0x22,0x20,0x26,0x20,0x2A,0x20,0x22,0x20,0x22,0x20,0x02,0x20,0x02,0x00,0x00,0x00,/*,苦4*/0x04,0x02,0x08,0x0C,0x10,0x00,0x3F,0xEE,0xC4,0x01,0x08,0x81,0x11,0x11,0xE6,0x4D,0x20,0x21,0x2F,0xC1,0x20,0x01,0x24,0x07,0x2A,0x00,0x31,
37、0x88,0x00,0x06,0x00,0x00,/*您,3*/0x00,0x00,0x00,0x00,0x00,0x1A,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*,,2*/0x00,0x00,0x3F,0xE1,0x00,0x02,0x00,0x0C,0xFF,0xF0,0x00,0x00,0x40,0x00,0x47,0xF8,0x44,0x00,0x44,0x00,0
38、x7F,0xFF,0x44,0x10,0x44,0x08,0x47,0xF0,0x40,0x00,0x00,0x00,/*师,1*/0x04,0x08,0x04,0x10,0x24,0x20,0x24,0x40,0x24,0xFC,0x24,0xA2,0xFD,0x22,0x26,0x22,0x24,0x42,0x2C,0x42,0x14,0x42,0x24,0x82,0x44,0x1E,0x04,0x00,0x04,0x00,0x00,0x00,/*老,0*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x
39、00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 师;void delay(unsigned int z)/延时子函数 unsigned char x; for(;z0;z-) for(x=110;x0;x-);void writedata(unsigned char dat1,unsigned char dat2) /595显示子函数unsigned char i;/CY存储移位之后的数据 CY进位标志位,单片机内部的寄存器 移位之后的数据就存在CY里面f
40、or(i=0;i8;i+)/循环八次dat1=dat11;/数据左移ds=CY;/数据发送shcp=1;/上升沿发生移位 shcp=0; for(i=0;i8;i+)/循环八次dat2=dat21;/数据左移ds=CY;/数据发送shcp=1;/上升沿发生移位 shcp=0; stcp=0; stcp=1;/上升沿将数据送到输出锁存器 stcp=0; void main() /主函数char i,aa;TMOD=0x01;/定时器0 模式1 16位定时模式TH0=(65536-10000)/256;/定时10.000msTL0=(65536-10000)%256;ET0=1;/使能定时器0EA
41、=1;/开启总中断TR0=1;/开始计数zong=(zi+1)*32;while(1) /无限循环if(s1=0)/检测按键delay(30);/延时消除按键抖动if(s1=0)TR0=TR0;/按下暂停 暂按继续while(s1=0);/等待按键松手if(s2=0)/检测按键delay(30);/延时消除按键抖动if(s2=0)fx=fx;/方向取反aa=0;if(fx=0)net=0;/正向移动if(fx=1)net=zong;/反向移动while(s2=0);/等待按键松手for(i=0;i30)aa=0;/循环16次 清零 void timer0() interrupt 1TH0=(6
42、5536-10000)/256;/10.000ms 进入一次中断TL0=(65536-10000)%256;alt+;if(alt=10)/到100.000ms时间加以实现移动alt=0;if(fx=0)/正向移动net=net+2;/每次送两个编码数据if(netzong)/达到总字符net=0;/数据清零else/否则反向移动net=net-2;/每次送两个编码数据if(net2)/数据完毕net=zong;/回到总字符三 电路安装与调试3.1 单元模块电路测试在proteus仿真软件中运行测试AT89C51、74HC138、74HC595等芯片和LED显示器均能正常运行并完整的显示出了我
43、所要的效果。所以各个模块功能正常。3.2 系统整体功能测试在仿真软件proteus中运行测试系统整体功能,一切正常。实现了汉字的左移滚动显示,完整的显示出了“老师,您辛苦了!”浮动汉字。四 总结本文设计的16*16的点阵LED电子显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示的图形和文字较稳定、清晰。图形或文字向上滚动显示。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。在此次设计中,我们得到以下体会:1. 在这次点阵设计的过程让我进一步熟悉KEIL及Proteus的使用。2. 学会了如何在单片机上下载程序3.通过这次点阵设计,重新复习并进一步学习了AT89C51优点,明确了研究目标。4.通过电路安装使我认识到了单片机在实际应用中应该注意的一些地方。5.本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均 匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。五.参考文献1. 张义和 陈敌北编著 例说 8051 人民邮电出版社2006 年2周越主编 单片机技术实验实训教程 中国水利水电出版社2007
限制150内