
LED点阵心形流水灯单片机设计.doc
19页河南理工大学开放实验室单片机设计报LED点阵心形流水灯礼品 目 录0 前言 11 系统组成与功能...................................................................................................11.1 系统组成 1 1.1.1 AT89C51单片机 11.1.2 16乘16点阵 21.2 系统功能 32 系统原理 32.1系统仿真图 32.2 实物照片 43 程序流程图............................................................................................................64 程序代码.................................................................................................................75 结论 14参考文献 14基于单片机控制心形流水灯跟点阵0 前言 随着社会的发展,单片机得到了广泛的应用,人们越来越重视单片机的应用。
比如温度是和每个人息息相关的,并且在有的生产车间里还要进行温度时时测量,甚至是对温度的进一步调控等,这些都是单片机的应用之例本设计是用单片机和点阵加一个小的流水灯电路,作为玩具挺有趣的 这次的作品,初衷是希望通过单片机学习,做个生日礼物送给朋友由于时间紧迫,做的有些仓促,望原谅1系统组成与功能1.1 系统组成本系统主要有AT89C51单片机、18b20、1602、蜂鸣器、四位一体七段数码管等元件组成1.1.1 AT89C51单片机AT89S51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)图1-1 AT89C51引脚图电路,片内时钟振荡器此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断 系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位引脚图如图1-1所示。
管脚说明RST:复位输入当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号 EA/VPP:外部访问允许,欲使CPU只访问外部程序存储器(地址为0000H-FFFFH),EA端须保持低电平(接地)如EA端为高电平(接VCC端),CPU则执行内部程序存储器的指令FLASH存储器编程时,该引脚加上相应的编程允许电源VPP XTAL1:振荡器反相放大器和内部时钟发生电路的输入端 XTAL2:振荡器反相放大器的输出端P0 口:P0口是一个8位漏极开路的双向I/O口作为输出口,每位能驱动8个TTL逻辑电平对P0端口写“1”时,引脚用作高阻抗输入 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4个 TTL 逻辑电平。
作为输入口时要向端口写“1”引脚号第二功能: P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4个TTL逻辑电平同样作为输入使用时先向该端口写“1” P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4个TTL逻辑电平作为输入时先向P3 端口写“1” 端口引脚 第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号2.1.5 存储器结构 MCS-51器件有单独的程序存储器和数据存储器。
外部程序存储器和数据存储器都可以64K寻址 程序存储器:如果EA引脚接地,程序读取只从外部存储器开始 对于 89S52,如果EA 接VCC,程序的读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH 数据存储器:AT89S52 有256 字节片内数据存储器高128 字节与特殊功能寄存器重叠也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的 当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间直接寻址方式访问特殊功能寄存器(SFR) 2.1.6 中断源 AT89S52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效IE还包括一个中断允许总控制位EA,它能一次禁止所有中断 如图2-4所示,IE.6位是不可用的对于AT89C51,IE.5位也是不能用的用户软件不应给这些位写1它们为AT89系列新产品预留 符号位地址功能EAIE.7中断总允许控制位。
EA=0,中断总禁止;EA=1,各中断由各自的控制位设定IE.6预留ET2IE.5定时器2中断允许控制位ESIE.4串行口中断允许控制位ET1IE.3定时器1中断允许控制位EX1IE.2外部中断1允许控制位ET0IE.1定时器0中断允许控制位EX0IE.0外部中断0允许控制位图2-4 中断允许控制寄存器1.1.2 16乘16点阵显示模块本点阵屏采用4块8*8点阵组合,形成一个16*16的点阵,加驱动集成电路SN74HC164和74HC595组成通过软件控制,本屏以动态扫描的显示方式,可显示文字、图形、动画等多种花样 1、 SN74HC164是串行移位寄存器,串行输入并行输出,当清零端CLR为高电平时,每来一个时钟脉冲CLK寄存器中的数据就会从Qa向Qh方向移动一位,即Qa→Qb、Qb→Qc、Qc→Qd、Qd→Qe、Qe→Qf、Qf→Qg、Qg→Qh,同时两个输入端A和B与非的结果进入Qa,SN74HC164的逻辑功能如图1-2所示图1-2 SN74HC164的逻辑功能图 2、 74HC595有一个8位串行输入,并行输出的移位寄存器,该寄存器向一个8位D型存储寄存器提供数据。
74HC595N的存储寄存器具备三态输出移位寄存器和存储寄存器分别有独立的时钟74HC595N的移位寄存器带有最高优先级的直接清零端(SRCLR)、串行输入端(SER)和用于级联的串行输出端当输出使能端(OE)为高时,74HC595的输出将处于高阻态 不管是移位寄存器时钟(SRCLK)还是存储寄存器时钟(RCLK),都是上升沿触发如果当两个时钟绑定在一起时,则移位寄存器将一直领先存储寄存器一个时钟脉冲 SN74HC595特性:8位串行输入,并行输出移位;宽工作电压范围:2.0~6.0 V高强度电流三态输出,最多可驱动高达15个LSTTL负载;低功耗,最大ICC =80μA;典型tpd=13 ns;5V下驱动电流为6 mA;移位寄存器可直接清零低输入电流,最大1μA;8位移位寄存器,具有三态输出锁存最后,集成了74HC595、74HC154的点阵实物图见图1-3所示3、点阵主要技术参数:显示容量:16*16个字符图1-3 点阵实物图芯片工作电压:4.5—5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V4、引脚功能说明VCC 5V电源GND 接地DS 串行数据输入STcp 并行数据输出时钟 SHcp 串行数据输入时钟 CS 选择器使能 A0--A3 16位数据选择器输入不算电源线,共8线,算电源为10线。
本点阵已将驱动集成电路74HC595、74HC154等放在点阵后面了,引入10线及信号即可显示2 系统设计 2.1 系统设计方案 利用TC89C52RC单片机,16*16点阵LED,74HC164N 和74HC595N芯片,TIP127三极管组成的汉字点阵显示系统本系统主要分成屏体和控制器两大部分屏体的主要部分是LED点阵,还有行列驱动电路LED点阵屏采用16*16LED显示模块连接而成一块16行16列显示屏,其LED发光器件数量相当大,不适合使用静态驱动电路,而采用动态扫描驱动电路扫描驱动电路采用多行的同名列共用一套驱动器,行驱动器一行的行线连接到电源的一端,列驱动器一列的列连接到电源的另一端控制电路负责有序地选通各行,选通每一行之前还要把该行该列的数据准备好,一旦该行选通,这一行上的LED发光器件就可以根据列数据进行显示 本系统的控制电路采用单片机方法,由于单片机的I/O口数量少,驱动能力不强,则要扩展一定的硬件电路,才能满足显示屏的需要硬件电路大体上可分为单片机控制器、LED显示屏行列驱动电路、LED点阵屏三部分,LED显示屏驱动电路使用通用的数字电路并尽量减少外围硬件,做到电路简单、适应性强、成本不高、维护方便等要求。
为了增强汉字点阵的显示效果,LED汉字点阵显示系统也可以有多种显示模式最简单的显示模式是静态显示同静态显示模式相对应有多种动态显示模式,它们所显示的文字是动态的按照文字运动的特点可以分为平移、闪烁、旋转、缩放等多种显示模式产生不同显示模式的方法可以通过一定的算法从原来的显示数据产生不过当算法太复杂时就会太浪费时间,也可以考虑预先生成刷新数据,存储备用 本系统采用动态显示的模式,所谓的动态显示模式是指逐行轮流点亮我们把所有的同一行发光管的阳极连接在一起,把所有第一列发光管的阴极连接一起,先送出对应第一行的发光管亮灭的数据并且锁存,然后选通第一行使其点亮一定的时间然后熄灭;再送出第二行的数据并且锁存,然后宣统第二行使其点亮同样的时间,然后熄灭;直到第第十六行显示完后再重新点亮第一行,这样反复轮回如图2所示单片机行扫描LED点阵屏列。