首页 点阵LED系统设计

点阵LED系统设计

举报
开通vip

点阵LED系统设计点阵LED系统设计 :本文介绍一个点阵LED显示系统,该系统以AT89C51单片机为核心,采用串行传输、动态扫描技术,并拥有PC机通信功能的模块化LED多功能显示屏。上位机采用VB编程,上位机PC可通过串行通信接口实现对下位机LED显示系统显示参数的设定,下位机以LED屏的显示电路和单片机控制电路为核心实现点阵LED屏显 示简单的数字、字母、汉字、图形等。该系统特点是电路设计新颖、显示效果好、 实用性强。 LEDAT89C51,RS232, PC通信 Abstract: This article descri...

点阵LED系统设计
点阵LED系统设计 :本文介绍一个点阵LED显示系统,该系统以AT89C51单片机为核心,采用串行传输、动态扫描技术,并拥有PC机通信功能的模块化LED多功能显示屏。上位机采用VB编程,上位机PC可通过串行通信接口实现对下位机LED显示系统显示参数的设定,下位机以LED屏的显示电路和单片机控制电路为核心实现点阵LED屏显 示简单的数字、字母、汉字、图形等。该系统特点是电路设计新颖、显示效果好、 实用性强。 LEDAT89C51,RS232, PC通信 Abstract: This article describes a dot-matrix LED display system, the system to AT89C51 microcontroller as the core, using serial transmission, dynamic scanning technology, and has a modular PC-communication function LED multi-function display. Host computer using VB programming, host computer PC via a serial communication interface for the next crew LED display system shows parameter settings, the next crew to LED screen display circuit and MCU control circuit as the core to achieve a simple dot-matrix LED screen display The numbers, letters, Chinese characters, graphics and so on. The system features innovative circuit design, showing good results and strong practicability. Keywords: LEDAT89C51,RS232, PC communications ......................................................................................................................................................... 1 .......................................................................................................................................... 2 2.1 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 论证及选择 ............................................................................................................................... 2 2.1.1 LED驱动模块.......................................................................................................................... 2 2.1.2 数据存储模块......................................................................................................................... 2 2.2总体硬件组成框图 ............................................................................................................................ 3 .......................................................................................................................................... 4 3.1 LED驱动模块的硬件设计 ............................................................................................................... 4 3.1.1 74 LS154芯片介绍 ................................................................................................................ 4 3.1.2 驱动电路的设计 ....................................................................................................................... 4 3.2数据存储电路设计 ............................................................................................................................ 6 3.3 PC机通信模块的设计 ...................................................................................................................... 7 .................................................................................................................................................. 8 4.1 下位机软件流程 ............................................................................................................................... 8 4.2 汉字的点阵显示原理及字库代码获取方法 ..................................................................................... 9 4.3上位机软件 ..................................................................................................................................... 11 ................................................................................................................................................ 13 5.1调试软件介绍 ................................................................................................................................. 13 5.1.1 ISIS简介 ............................................................................................................................... 13 5.1.2 Keil C51简介 ..................................................................................................................... 13 5.2.硬件调试 ........................................................................................................................................ 13 5.3软件调试与仿真 ............................................................................................................................. 13 5.4硬件软件联调 ................................................................................................................................. 14 5.5 测试结果 ........................................................................................................................................ 15 ................................................................................................................................................ 16 ............................................................................................................................................. 17 ................................................................................................................................................ 19 ..................................................................................................................................... 20 .......................................................................................................................................... 21 ..................................................................................................................................... 22 第 I 页 LED显示屏是利用发光二极管点阵模块组成的平面式显示屏幕。它具有发光效率 高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛 的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。LED 显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20 世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告 宣传等各方面。 LED点阵显示屏的构成型式有多种,其中典型的有两种。一种把所需展示的广告 信息烧写固化到EPROM芯片内,能进行固定内容的多幅汉字显示,称为单显示型;另 一种在机内设置了字库、程序库,具有程序编制能力,能进行内容可变的多幅汉字显 示,称可编程序型。 目前,国内的LED点阵显示屏大部分是单显示型,其显示的内容相对较少,显示 花样较单一。一般在产品出厂时,显示内容就已写入显示屏控制系统中的EPROM芯片 内,当需要更换显示内容时就非常困难,这样使该类型的显示屏使用范围受到了限制。 国内的另一种LED显示屏——可编程序型LED显示屏,虽然增加了显示屏系统的编程能力,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点。随着 社会经济的迅速发展,如今的广告牌都存在着显示内容丰富、信息量大、信息更换速 度快等特点。因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的 需要。而利用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。 本设计即以AT89C51单片机为核心,采用串行传输、动态扫描技术,制作一款拥 有PC机通信功能的,模块化LED多功能显示屏。 第 1 页 本设计的整体思路是:本系统采用单片机AT89C51为LED显示屏的控制核心,系 统主要包括LED驱动模块、数据存储模块、PC机通信模块等。 本设计采用模块化设计,所以不同的模块有不同的方案,主要模块为LED驱动模块、数据储存模块,针对这两个主要模块,我们都各有几种方案,具体的方案论证及 选择如下。 方案一:采用静态锁存方式,将每一个LED发光管的一端接至单片机的一个I/O口,另一端通过电阻接电源。这种方法可以直接驱动LED,原理简单,驱动能力强, LED的亮度也可以通过限流电阻调节,非常方便,但此种方法太浪费单片机的I/O口,只适合于较小的系统。如图2.1 I/O口 电 阻 电源 单个LED AT89。。。。。。。。 C51。。。。。。。。单 。 。 。 。 片机 电 阻 电源 单个LED I/O口 图2.1 静态锁存方式 方案二:采用动态扫描方式,通过三极管驱动并联在一起的LED发光管的一端(共阴或共2端),LED发光管的另一脚接通用I/O口,控制其亮灭。该方法能驱动较多的 LED,控制方式较灵活,而且节省单片机的资源。如图2.2 I/O口 AT89C51 三极管LED点阵 74LS154 单片机 驱动 图2.2动态扫描方式 比较以上两种方案,方案二有明显的优点,所以系统设计中采用方案二。 方案一:采用静态RAM存储显示屏的显示内容,静态数据存储器具有存储容量大, 传输速度快等优点。但其存储的数据掉电后会消失,因此不适合用于存储长时间不变 第 2 页 的数据。 方案二:采用ROM芯片存储LED显示屏要显示的信息,采用ROM芯片可以长时间的存储信息,而且掉电数据不丢失,此种方式适合于存储不变的数据。 方案三:采用串行EEPROM(如24C256等)存储LED显示屏要显示的信息。串行EEPROM技术是一种非易失性存储技术,它几乎具有所有类型存储器的优点:不挥发性、 可更新性、高密度、低功耗和高性价比,非常适合应用于各类工业测控系统。它克服 了常用的2816、2817、2864等并行EEPROM器件价格高、体积大、可靠性低(这些器 件如不采取措施,在上电、下电时常会丢失数据)等不足,在速度要求不是很高的情 况下,该器件是最理想的选择。 比较以上三种方案,方案三有明显的优点,因此选者方案三。 LED显示模 块 驱动模块 PC机通信 串行MAX232电AT89C51 EEPROM 平转换 图2.3 总体硬件组成框图 系统框图如图2.3所示,系统主要由三大模块组成即LED驱动模块、数据存储模块、PC机通信模块。 第 3 页 为使该模块化LED显示屏控制系统具有更加方便和灵活性,我们对系统的硬件做 了精心设计。硬件电路包括LED驱动模块、数据存储模块、PC机通信模块等三大模块。 LED驱动模块是LED显示屏设计的关键部分,驱动电路设计的好坏直接关系到LED显示屏的亮度、稳定度等重要指标。本次设计中LED的驱动是采用三极管和74LS154实现的。 74LS154是一个4—16译码器,其真值表如图3.1所示。 图3.1 74LS154的真值表 此系统中驱动电路是由74LS154和三极管组成的,原理图如图3.2所示。 第 4 页 J? 4039VCCP0.02038GNDP0.13137A1/EAP0.236P0.31935A2XTAL1P0.434LED8*8P0.533A3P0.61832XTAL2P0.7A4 92189C51RESETP2.022A5P2.11223P3.2(/INT0)P2.21324A6P3.3(/INT1)P2.31425P3.4(T0)P2.41526A7P3.5(T1)P2.527P2.6128A8B1B2B3B4B5B6B7B8P1.0P2.72P1.1317P1.2P3.7(/RD)416P1.3P3.6(/WR)529P1.4/PSEN630P1.5ALE711P1.6P3.1(TXD)810P1.7P3.0(RXD)89C51 VCC 231AOUT0222BOUT1D1Q?213COUT2R1NPN204DOUT3R254.7KOUT4R3VCC1864.7KG1OUT5R41974.7KG2OUT6R584.7KOUT7R694.7KOUT8R774LS154P1.4_G2AQ?104.7KOUT9R8NPN114.7KOUT10R9134.7KOUT11R10144.7KOUT12R1124154.7KVCCOUT13R12164.7KOUT14R1312174.7KGNDOUT15R144.7KVCCR154.7KR164.7K 4.7K74LS154 图3.2 LED驱动电路原理图 如图3.2 ,LED的行扫描端接到单片机89C51的P0口,列扫描端接置三极管的发射极。列扫描端(B1—B8)用于LED的数据扫描,通过74LS154的译码和三极管的驱动,使LED发光。(A1—A8)通过P0口为LED的显示给出相应的数据。 第 5 页 数据存储电路由串行EEPROM 24C256组成。24C256是美国CATALYST 公司出品的一个1-256K位的支持I2C总线数据传送 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 的串行CMOS E2PROM,可用电擦除,可编程自定时写周期(包括自动擦除时间不超过10ms 典型时间为5ms)的串行E2PROM。 该芯 片有两种写入方式,一种是字节写入方式,还有另一种页写入方式。允许在一个写周 期内同时对1个字节到一页的若干字节的编程写入。24C256的引脚排列及引脚功能描述如图3.3和表3.1 图3.3 24C256的引脚排列图 表3.1 引脚功能描述 数据存储器的设计原理图如图3.4所示: VCC VCC 10k10k1J?8A0VCC27A1WP36A2SCLp1.745VSSSDAp1.6 24CXX 图3.4 数据存储电路设计原理图 该存储电路仅由芯片24C256组成,SCL为串行时钟引脚,用于产生器件所有数据 发送或接收的时钟。SDA为串行数据/地址,这是一个双向传输端,用于传送地址和所 第 6 页 有数据的发送或接收。当LED显示屏控制系统工作时,单片机89C51通过读SDA和SCL脚读取24C256中的内容,并将其显示于LED显示屏上。也可以通过上位机(PC机)将编辑好的数据内容下载到24C256芯片内。 RS232适用于短距离或带调制解调器的串行通信场合。在这次设计中,串行通信 口是用来实现PC机与单片机的数据传送。PC机都配有标准的RS—232的接口,RS—232标准 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 了25针连接器,但在实际应用中并不一定用到RS—232的全部信号线,PC机配置的都是9针“D”型连接器。因此本次设计用的是“D”型9针插头。如图3.5所示。本串口电路设计采用的是MAX232,它是RS—232双工发送器/接收器接口电路芯片。由于芯片内部有自升压的电平倍增电路,将+5V转换成-10V~ +10V,满足RS—232标准对逻辑1和逻辑0的电平要求。工作时仅需要单一的+5V电源。其电路原理图如图3.5所示: J20 89J17R2INR2OUT 11312RXD6R1INR1OUT 27107T2OUTT2IN 31411TXD8T1OUTT1INC164+659VS-C2-+C14C151u45C2+1u23+VS+C1-+11615C1+DB9VCCGNDC131u1uMAX232 C12 VCCCAP 图3.5 通信原理图 如图3.5所示,单片机的串口通过MAX232将TTL电平转换成EAI适合的电平,实现了单片机和PC机之间的通信。 第 7 页 本设计的软件也是采用模块化设计方式,上位机程序采用VB语言编写,下位机采用C语言编写。 本系统中下位机(单片机89C51)的主要功能就是实现LED显示屏上字样或者图像的移位、显示、数据的读取等功能。其主程序流程如图4.1所示。 开机 机 系统初始化 读取24C256的标志位 是 判断是否处于通信状态? 否 读取显示内容 移位显示 是 否 判断是否有中断标志? 图4.1 主程序流程图 本程序编译采用Keil 软件, Keil 软件平台支持多种语言的编译,功能强大, 它提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。生成的汇编代码紧凑,容易理解。其编译如图4.2 第 8 页 图4.2 Keil 软件平台 我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。即国标汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个象素, 而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以 显示在256象素范围内的任何图形。如查用8位的AT89C51单片机控制,由于单片机的总线由8位,一个字需要拆分为2个部分,如图4.3所示 图4.3 汉子显示原理 为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。汉字可 拆分为上部和下部,上部由8×16点阵组成,下部也由8×16点阵组成。本例通过列 扫描方法首先显示左上角的第一列的上半部分,即第0列的P00~P07口,方向为P00 到P07,显示汉字“我”时,为全灭,第一列的下半部分也为全灭。第二列的上半部第 9 页 分P06、点亮,由上往下排列,为:PO.0灭,PO.1灭,P0.2灭PO.3灭,PO.4灭,P0.5灭,P0.6亮,P0.7灭。即二进制00000010,转换为十六进制为02h。上半部第二列完成后,继续扫描下半部的第二列,为了接线的方便,我们仍设计成由上 往下扫描,即从P27向P20方向扫描,从图3可以看到,这一列P23亮,即为00001000,十六进制则为08h。依照这个方法转向第三列、第四列,„„,直至第十六列的扫描, 一共扫描32个8位,可以得出汉字“我”的扫描代码为: 00H,02H,08H,06H,28H,02H,24H,22H 0FCH,3FH,24H,2 1H,20H,10H,3CH,08H 0E2H,07H,20H,0AH,0E4H,11H,0A8H,20H 20H,30H,00H,00H,00H,00H,00H,00H 由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他 的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚汉字点阵代码的获取 过程,但是依靠人工方法获取汉字代码是一件非常繁琐的事情。为此,我们经常采用 字库软件查找字符代码,软件打开后输入汉字,点“生成字模”,十六进制数据的汉 字代码即可自动生成,把我们所需要的竖排数据复制到程序中即可,如图4.4所示。 图4.4 字模生成软件 可见,汉字点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要 求,点扫描方法的扫描频率必须大于16×64=1024 Hz,周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于16×8=128 Hz,周期小于7.8 ms即可,但是一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。 第 10 页 本系统的上位机软件主要是编辑LED显示屏显示的内容,在设计中采用Visual Basic语言编写了LED显示屏控制系统的内容下载软件。软件界面如图4.5所示。 图4.5 上位机界面 该VB软件的主要难点在于将上位机的数据写入下位机,其子函数如下: Private Sub ComWrite_Click() If READ = False Then If TEXTSEND.Text <> "" Then Call TEXTSEND_Change ComWrite.Enabled = False Time = 0 Timer2.Enabled = True READ = False wWrite = True Big = 0 MSComm1.OutBufferCount = 0 MSComm1.InBufferCount = 0 MSComm1.RThreshold = 1 HEXtxt = TEXTSEND.Text MSComm1.Settings = "9600,o,8,1" cc(0) = 144 + ChipIndex '芯片选择,在单片机中已确定该位, 第 11 页 当发送该位与单片机中的确定为相同时 MSComm1.Output = cc '在发完发送标志位170后,单片机将 向PC机6发送应答位AA cc(0) = 170 '发送标志位170 MSComm1.Output = cc WirteN = 1 LenTxt = Len(HEXtxt) / 2 LabState.Caption = "状态: 正在写数据„„" Else LabState.Caption = "状态: 没有数据可写!" End If End If End Sub 第 12 页 本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统 设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:LED驱动模块的调试,数据存储模块的调试,PC机通信模块的调试等,最后将各模块组合后进行整体 测试。 本设计调试主要用到两种软件:ISIS和Keil C51 Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真 各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的 单片机软件仿真系统。 该软件的特点: (1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有 明显的优势。 (2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的 仿真、RS一232动态仿真、1 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 (3)目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大 ,可仿真51、AVR、PIC。电源电路的调试 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显 的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会 到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑, 容易理解。在开发大型软件时更能体现高级语言的优势。 对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。 用Keil C软件编写下位机的程序,将编好的程序进行调试,运用Keil C可以检 第 13 页 查语法错误。对设计好的硬件电路还可以运用ISIS仿真软件进行仿真调试,并可以 运用ISIS和Keil C进行联合仿真调试。 Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机外围电路或没有 单片机参与的其它电路的工作情况,也能仿真单片机CPU的工作情况。因此在仿真和 程序调试时,是从工程的角度直接看程序运行和电路工作的过程和结果。从某种意义 上讲Proteus仿真,基本接近与工程应用。本次基于AT89C51单片机LED汉字和图像滚动显示屏的设计已运用Proteus软件仿真实现,如图5.1所示。 图5.1 ISIS仿真界面 虽然本设计只是16*32的LED点阵,电路简单,但是已经包涵了LED汉字滚动显示屏的电路基本原理、基本程序和Proteus软件仿真,只要扩展单片机的IO接口,并增加一些LED点阵和相关芯片,就能设计出更大面积、更多花样的LED显示屏。因此本设计对同类设计具有一定的理论和实践参考价值。 将调试好的硬件和软件进行联调,主要调试系统的实现功能。 第 14 页 经过仿真可以看到,此次系统设计结果较好,LED显示屏能很好的显示信息。LED显示屏由八块8*8的LED小模块组成,整个显示屏可以显示两个16*16的汉字或者同等大小的图片,汉字或者汉字可以从右到左移动显示,显示亮度也正好。 第 15 页 本次设计是基于89C51单片机设计与LED显示屏的接口电路,并实现单片机与上位 机(PC)的通信,用其实现LED显示器的显示。LED具有显示信息丰富、功耗低、体积 小、重量轻、超薄等许多其他显示器无法比拟的优点,近几年来被广泛用于单片机控 制的智能仪器、仪表和低功耗电子产品中。同时与单片机和上位PC机相结合,就构成一个具有完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统。由这两者设计的接口电路,通过程序的控制,就能从LED显示器上显示出自己想要得到的图像。实现了将程序形象化的表现。 此次设计,我们最初不仅仅实现汉字,图片,字符等的显示,更进一步的我们是 想与其他组合作,为他们显示温度传感器所显示出来的温度。但是由于时间和各组进 度不一样的种种原因,我们并没有实现这样的一个显示。因此以后如有机会的话,我 们将让LED显示器显示这样的温度等。 最后我们实现了设计的要求,包括:1、每次显示一个文字和图像,2、每隔一固定时间改变需要显示的文字和图形,3、可以实现循环显示几个文字或图形,4、可以根据程序的改变来控制显示的文字的替换时间的长短。 第 16 页 本次我们选作的课题是点阵LED显示系统设计,本次课程设计是一次比较正规且 全面的训练。经过这次的课程设计,我们确实学到了很多知识,它涉及到硬件及软件 方面的统一。使我们更加好的了解到学好专业知识的重要性,也真正的感受到了理论 联系实际的重要性,既加强了我们动手能力也锻炼了我们思考并解决问题的能力。 本LED显示屏控制系统已能实现LED显示的基本功能,并且体现出了相对于传统的基于8位位普通单片机的显示系统的优越性,如上设计所述,但由于本人的水平和设计时间有限,离一个完全实用的,能够完全符合市场需求的LED显示系统还有一定的差距.因此,在以后的研制过程中,还需要在以下几个方面做大量的工作: (1)扮在系统抗干扰方面,不论是硬件部分还是软件部分,都还必须在工作现场根据实际情况进行大 量的实验,调试工作,才能最终实现LED显示系统的可靠工作.(2)在增强图文屏显示效果上,可使用双色屏或多色屏,双色(或多色)屏所使用的LED点阵单元,在同一点阵位置上安装了两个(或多个)不同颜色的LED发光灯,对不同颜色的显示控制方面进行进一步的设计,以满足显示更加丰富多彩的图形和文字. 在这次课程设计的整个过程中,我们做了一次全面、较 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 的设计练习,全面地 温习了以前所学过的知识,用理论联系实际并结合单片机原理课程和解决实际问题, 巩固、加深和扩展了有关单片机设计方面的知识。尤其重要的是让我们养成了科学的 习惯,在设计过程中一定要注意掌握设计进度,按预定 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 完成阶段性的目标,在底 图设计阶段,注意设计计算与结构设计画图交替进行,采用正确的设计方法。在整个 设计过程中注意对设计资料和计算数据的保存和积累,保持记录的完整性。在课程设 计的实践中进行了设计基本技能的训练,掌握了查阅和使用标准、规范、手册、图册、 及相关技术资料的基本技能以及计算、数据处理等方面的能力。 通过对通用89C51单片机机处理器和存储器芯片、常用元器件的设计,掌握了一 般单片机设计的程序和方法,让我们对整个单片机程序的设计,C51语言有了一个比较深的理解。还有就是增强了自身的动手能力,把以前书本上讲的或是没有讲的,通 过一次课程设计具体的实施,使自己真正得到锻炼,对于以后我们的发展与学习来说, 都可以看作一笔不小的财富,前面还有很多需要我们去尝试。 做课程设计是为了让我们对平时学习的理论知识与实际操作相结合,在理论和实 验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高,学会将知识应用 于实际的方法,提高分析和解决问题的能力。在做课程设计的过程中,我深深地感受 到了自己所学到知识的有限,明白了只学好课本上的知识是不够的,要通过图书馆和 互联网等各种渠道来扩充自己的知识。同时我认为我们的工作是一个团队的工作,团 队需要个人,个人也离不开团队,只有在充分的分工合作中才可以事半功倍做到最好, 所以必须发扬团结协作的精神。 第 17 页 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远 远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正 为社会服务,从而提高自己的实际动手能力和独立思考的能力。有了这次的设计经验, 相信在以后的学习设计实践过程中,我们可以做到更好。最后,感谢孙家栋教授对我 们的指导和帮助。 第 18 页 [1] 万福君、潘松峰.单片微机原理系统设计与应用(第二版)[M]. 合肥:中国科学技术大学出 版社,2001. [2] 胡汉才.单片机原理及其接口技术[M]. 北京:清华大学出版社,2004. [3] 蔡美琴、张为民.MCS-51 系列单片机系统及其应用(第二版)[M]. 北京:高等教育出版社, 2004. [4] 杨振江、杜铁军.流行单片机实用子程序及应用实例[M].西安电子科技大学出版社,2002. [5] 张培仁.基于 C 语言编程 MCS-51 单片机原理与应用[M]. 北京:清华大学出版社,2003. [6] 刘和平.单片机C 语言编译器及其应用[M].北京:北京航空航天大学出版社,2006 [7] 马忠梅.单片机的C 语言应用程序设计[M].北京:北京航空航天大学出版社,2006 [8] 施齐云.一种LED 汉字信息动态显示可控系统的设计[J].信息技术,2002(12):51-53 [9] 梁纯,王军.基于MCS一51单片机的LED点阵图文显示屏设计[J].工矿自动化,2006,(6): 90~92 [10] 袁强,陆启生,李文煜.基于单片机89C5l和89C2051点阵LED图文显示[J].工程地质计 算机应用,2006,(4):17~19 第 19 页 P0.0_L2468_16P0.1_L1357_15P2.7_L2468_13P2.1_L2468_15 P0.7_L1357_13P2.2_L2468_11P0.2_L1357_11P2.4_L2468_10P0.4_L1357_10 LED12_9AP2.3_L2468_6 P2.5_L2468_4P0.3_L1357_6P2.6_L2468_3 P0.5_L1357_4P0.6_L1357_3P2.0_L2468_16 1616LED78_14BLED78_14BLED78_12B15151414LED78_12BP0.0_L2468_16P2.0_L2468_161313P2.6_L2468_3LED34_2ALED34_5ALED56_5BLED78_5BP0.1_L1357_15P2.7_L2468_13P2.1_L2468_151212LED78_9BLED78_9B1111P0.7_L1357_13LED78_8BLED78_8B101099LED78_7BLED78_7BP2.2_L2468_1188P0.2_L1357_11P2.4_L2468_10LED78_5BLED78_5B77P0.4_L1357_10LED12_2ALED12_5ALED56_2BLED78_2B66LED78_2BLED78_2B55LED78_1BLED78_1BP2.3_L2468_64433P2.5_L2468_4P0.3_L1357_622P2.6_L2468_3LED8LED711P0.5_L1357_41616J7J8LED12_7ALED56_7BLED78_7BLED56_14BLED56_14BP0.6_L1357_315151414LED56_12BLED56_12B13131212LED56_9BLED56_9B1111LED56_8BLED56_8B1010LED12_1ALED34_1ALED34_7ALED56_1BLED78_1B99LED56_7BLED56_7BP0.0_L2468_1688P2.0_L2468_16LED56_5BLED56_5BP0.1_L1357_15P2.7_L2468_1377P2.1_L2468_15P266LED56_2BLED56_2BP0.7_L1357_1355LED56_1BLED56_1B44P2.2_L2468_11P0.2_L1357_11LED56_12BLED78_12B33P2.4_L2468_10B15B8B9B10B11B12B13B14B15PNPPNPPNPPNPPNPPNPPNPPNPP0.4_L1357_1022B14Q25Q26Q27Q28Q29Q30Q31Q32LED6LED511B131616J5J6B12LED34_14ALED34_14AP2.3_L2468_61515B111414LED34_12ALED34_12AP2.5_L2468_4B10VCCVCCVCCVCCVCCVCCVCCVCCP0.3_L1357_6P2.6_L2468_31313LED12_8ALED12_12ALED34_8ALED34_12ALED56_8BLED78_8BB91212B8P0.5_L1357_4LED34_9ALED34_9A1111B7P0.6_L1357_3101099LED34_7ALED34_7AB6LED34_8ALED34_8A88B577LED34_5ALED34_5AB4LED12_14ALED34_14ALED56_14BLED78_14B66B3B0B1B2B3B4B5B6B7PNPPNPPNPPNPPNPPNPPNPPNP55B2Q10Q12Q14Q16Q18Q20Q22Q2444LED34_2ALED34_2AB1P0.0_L2468_1633P2.0_L2468_16B0P0.1_L1357_15P2.7_L2468_1322P2.1_L2468_15LED34_1ALED34_1ALED4LED311VCCVCCVCCVCCVCCVCCVCCVCCP0.7_L1357_131616J3J4LED12_14ALED12_14ALED34_9ALED56_9BLED78_9B1515P2.2_L2468_11GNDOUT15P0.2_L1357_111414LED12_12ALED12_12A1217P2.4_L2468_10OUT14P0.4_L1357_1016131374LS15474LS154VCCOUT1312124.7K2415OUT12LED12_9ALED21_9A4.7K11114.7K14A15OUT11R16P2.3_L2468_64.7K4.7K13101099A14LED12_7ALED12_7AOUT10R32R15P2.5_L2468_44.7K4.7K11LED12_8ALED12_8A88A13A8A9A10A11A12A13A14A15PNPPNPPNPPNPPNPPNPPNPPNPP0.3_L1357_6OUT9R31R14LED12_5AP2.6_L2468_34.7K4.7K1077A12Q9Q11Q13Q15Q17Q19Q21Q23OUT8R30R134.7K4.7K966A11P0.5_L1357_4OUT7R29R124.7K4.7K855A10LED12_5AP0.6_L1357_3G2OUT6R28R11LED12_1ALED12_1A4.7K4.7K19744A9LED12_2ALED12_2AG1OUT5R27R104.7K4.7K18633A8VCCVCCVCCVCCVCCVCCVCCVCCOUT4R26R94.7K4.7K522A7DOUT3R25R84.7K4.7K204LED2LED111A6COUT2R24R774LS15474LS1544.7K4.7K213J1J2A5BOUT1R23R64.7K4.7K222A4AOUT0R22R54.7K4.7K23189C51A3R21R4P1.7P3.0(RXD)4.7K4.7K810A2R20R3P1.6P3.1(TXD)4.7K4.7K711A1R19R2P1.5ALE4.7K630A0A0A1A2A3A4A5A6A7PNPPNPPNPPNPPNPPNPPNPPNPR18R1P1.4/PSEN5D129D2Q1Q2Q3Q4Q5Q6Q7Q8R17P1.3P3.6(/WR)416P1.2P3.7(/RD)317P1.12P1.0P2.7128VCCVCCVCCVCCVCCVCCVCCVCCP2.627P3.5(T1)P2.51526P3.4(T0)P2.410424CXX1425VCCVCCGNDOUT15P3.3(/INT1)P2.312171324VSSSDAOUT14P3.2(/INT0)P2.245161223A2SCLVCCOUT13P2.1VCCC436241522A1WPOUT12RESETP2.0P0.7_L1357_13P2.0_L2468_16P2.2_L2468_11P2.4_L2468_10P2.5_L2468_4P2.7_L2468_132714921A0VCCVCCOUT11P0.6_L1357_318132OUT10XTAL2P0.7P0.5_L1357_4P2.3_L2468_6J12111832CON21VCCOUT9P0.6P0.4_L1357_10P2.1_L2468_15103389C51J11OUT8P0.5P0.3_L1357_6P1.5_G2B934OUT7XTAL1P0.4P0.2_L1357_1181935G2OUT64P0.3P0.1_L1357_15TXD19736 G1OUT53/EAP0.2P0.0_L2468_16RXDP1.3_d1863137OUT42GNDP0.1P1.2_c52038CON4DOUT31VCCP0.0P1.1_b口用于扫描2044039J10COUT2P0P1.5_G2BP1.0_a213和口依次给出数据BOUT1P1.4_G2AJ9222P1数据格式为左竖,右竖AOUT0P1.3_d231P1.2_cP1.1_bP1.0_a10uVCC+C3VCC 20P C211.0592Y1第 20 页 P1.4_G2A20PVCCC1P1.3_dVCCP1.2_cP1.1_bP1.0_a 第 21 页 #include #include //#define con=256; void delay();//延时 void lie();//列控制 void send8bit(unsigned int n); void send8bit1(unsigned int n);//发送字函数 sbit seg=P3^3;//主信号 sbit clock=P3^4;//时钟信号 sbit so=P3^5;//锁存信号 //sbit qchu=P1^6; sbit gate1=P3^2;//154门控信号 unsigned char count;//列计数器 unsigned char flage;//标志位 unsigned int sum1;//字节数 unsigned char xdata text[2048];//定义外数据存储器 unsigned char code cctab[320]={ 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,0xF00,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,0xF00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3E,0x00,0x30,0x00,0x28,0x00,0x24,0x00,0x22,0x00,0x01,0x00, 0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x00,0x00,0x00,/* "?",0*/ 0x40,0x00,0x4F,0xFE,0x48,0x14,0x48,0x24,0x48,0x44,0x7F,0x84,0x48,0x04,0x48,0x04, 0x48,0x04,0x7F,0x84,0x48,0x44,0x48,0x44,0x48,0x44,0x4F,0xFE,0x40,0x00,0x00,0x00,/ *"清",1*/ 0x04,0x00,0x08,0x20,0x10,0x20,0x3F,0xA0,0xC0,0x20,0x40,0x20,0x08,0x20,0x08,0xFF, 0xFE,0x20,0x11,0x20,0x11,0x20,0x21,0x20,0x61,0x20,0x27,0x20,0x00,0x20,0x00,0x00,/ *"华",2*/ 0x04,0x00,0x04,0x01,0x04,0x02,0x04,0x04,0x04,0x08,0x04,0x30,0x05,0xC0,0xFE,0x00, 第 22 页 0x05,0x80,0x04,0x60,0x04,0x10,0x04,0x0C,0x04,0x06,0x04,0x03,0x04,0x02,0x00,0x00,/ *"大",3*/ 0x02,0x00,0x0C,0x40,0x08,0x40,0x48,0x40,0x3A,0x40,0x2A,0x40,0x0A,0x42,0x8A,0x41 , 0x7A,0xFE,0x2B,0x40,0x0A,0x40,0x18,0x40,0xEA,0x40,0x4C,0x40,0x08,0x40,0x00,0x0 0,/*"学",4*/ 0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80, 0x01,0x00,0x22,0x00,0x24,0x00,0x28,0x00,0x30,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,/ *"?",5*/ 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,0xF00,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,0xF00,0x00,0x00 };//内部固化字。 unsigned int y; //unsigned char xdata text[];//片外数据存储器,先定义为不定长度的数组; void recint() interrupt 4 {//接收中断,串行口的中断n=4; gate1=1;//关闭屏幕显示防止屏幕出现乱码; flage=1; y=0; //while(!RI); //空语句判断字符是否收完 //sumtext=SBUF; //RI=0; //以下代码为从串行口接受数据存如xdata text[]中; //while(!RI); //空语句判断字符是否收完 //sumtext=SBUF; //RI=0; //sum1=sumtext*32; while(y<1024) {while(!RI);//空语句判断字符是否收完,ri=1跳出循环执行接收; text[y]=SBUF; RI = 0;//清RI y++; } 第 23 页 //y=0; sum1=text[1]*32+64; //sum1=32*12; //gate1=0; return; } void main() { unsigned char i,j; unsigned int m=0; TMOD=0x20;//设置定时器 T1 方式 2 PCON=0x00;//使 SMOD 为 0 TL1=0x0Fd; TH1=0x0Fd;//波特率为 9600b/s EA=1;//开全局中断 ET1=0;//关 T1 中断 ES=1;//开串行中断 TR1=1;//开T1定时器 SCON=0x50;//串行方式 1 ,允许接收 flage=0;//标志位置0,发送片内字 gate1=1;//关闭显示,防止花屏 //flage=1; /*****测试,flage置1,把程序区的一段字写入外部数据存贮器****** for(i=0;i<=224;i++) { text[i]=cctab[i]; } //*******并显示出来。************************************/ if(flage) goto outdisplay; while(flage==0) { count=0x00; gate1=1; for(j=0;j<1;j++) // gate1=1; clock=0; 第 24 页 so=0; { for(i=1;i<=31;i+=2) { send8bit(i+m+32);//从串口发送字模数据 _nop_(); send8bit(i+m+31); _nop_(); send8bit(i+m); //由于使用移位寄存74hc595,先发送一列的下半部分 _nop_();//延时 send8bit(i+m-1);//后发送一列的上半部分, _nop_(); lie();//一个字的上半部分和下半部分发送完毕点燃该列。 delay();//调用延时子程序 gate1=1;//关列显示 } } m+=2; if(flage) goto outdisplay;// if(m>256)//字数控制 m=0; } outdisplay:while(flage) { gate1=1; flage=0; m=6; while(flage==0) { //m=0; count=0x00; gate1=1; //for(j=0;j<1;j++) //gate1=1; clock=0; so=0; { for(i=1;i<=31;i+=2) 第 25 页 { send8bit1(i+m+32);//从串口发送字模数据 _nop_(); send8bit1(i+m+31); _nop_(); send8bit1(i+m); //由于使用移位寄存74hc595,先发送一列的下半部分 _nop_();//延时 send8bit1(i+m-1);//后发送一列的上半部分, _nop_(); lie();//一个字的上半部分和下半部分发送完毕点燃该列。 delay();//调用延时子程序 gate1=1;//关列显示 } } m+=2; if(flage) goto outdisplay; //if(flage) break; if(m>sum1)//字数控制 m=2; } } } void send8bit(unsigned int n)/*机内码发送子程序*/ { unsigned char q; for(q=0;q<8;q++) { seg=((_cror_(cctab[n],q))&0x1);//右移(7-q)位,从低位到高位取。即595发送, //为从高到低为:Q7---Q0; //seg=((cctab[n]>>8-q)&1); //seg=0x01; clock=1;//寄存器时钟上跳沿,将一位数据存入移位寄存器。 clock=0; 第 26 页 } so=1;//锁存器上跳沿,8位数据存入所存器,e为底允许发送,数据从并口发送 so=0; } void send8bit1(unsigned int n)/*片外数据存贮器发送子程序*/ { unsigned char q; for(q=0;q<8;q++) { seg=((_cror_(text[n],q))&0x1);//右移(7-q)位,从高位到低位取。即595发送, //为从高到低为:Q7---Q0; //seg=((cctab[n]>>7-q)&1); //seg=0x01; clock=1;//寄存器时钟上跳沿,将一位数据存入移位寄存器。 clock=0; } so=1;//锁存器上跳沿,8位数据存入所存器,e为底允许发送,数据从并口发送 so=0; } void delay()/*延时子程序*/ {unsigned int n; for(n=0;n<250;n++) {;} } void lie()//列控制 { gate1=0;//允许列选择 P1=count; count++; } 第 27 页
本文档为【点阵LED系统设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_668482
暂无简介~
格式:doc
大小:382KB
软件:Word
页数:0
分类:
上传时间:2017-10-17
浏览量:12