ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:798.62KB ,
资源ID:839951      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-839951.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(LED点阵心形流水灯单片机设计文档格式.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

LED点阵心形流水灯单片机设计文档格式.docx

1、 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。PSEN:程序储存允许(PSEN)输出。是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许,欲使CPU只访问外部程序存储器(地址为0000H-FFFFH),EA端须保持低电平(接地)。如EA端为高电平(接VCC端),CPU则执行内部程序存储器的指令。FLASH存

2、储器编程时,该引脚加上相应的编程允许电源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(在系统编程用)

3、 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(外部数据存储

4、器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。2.1.5 存储器结构MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于 89S52,如果EA 接VCC,程序的读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:AT89S52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。

5、当一条指令访问高于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中

6、断总允许控制位。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是串行移位寄存器,串行输入并行输出

7、,当清零端CLR为高电平时,每来一个时钟脉冲CLK寄存器中的数据就会从Qa向Qh方向移动一位,即QaQb、QbQc、QcQd、QdQe、QeQf、QfQg、QgQh,同时两个输入端A和B与非的结果进入Qa,SN74HC164的逻辑功能如图1-2所示。图1-2 SN74HC164的逻辑功能图 2、 74HC595有一个8位串行输入,并行输出的移位寄存器,该寄存器向一个8位D型存储寄存器提供数据。74HC595N的存储寄存器具备三态输出。移位寄存器和存储寄存器分别有独立的时钟。74HC595N的移位寄存器带有最高优先级的直接清零端(SRCLR)、串行输入端(SER)和用于级联的串行输出端。当输出使

8、能端(OE)为高时,74HC595的输出将处于高阻态。不管是移位寄存器时钟(SRCLK)还是存储寄存器时钟(RCLK),都是上升沿触发。如果当两个时钟绑定在一起时,则移位寄存器将一直领先存储寄存器一个时钟脉冲。 SN74HC595特性:8位串行输入,并行输出移位;宽工作电压范围:2.06.0 V高强度电流三态输出,最多可驱动高达15个LSTTL负载;低功耗,最大ICC =80A;典型tpd=13 ns;5V下驱动电流为6 mA;移位寄存器可直接清零低输入电流,最大1A;8位移位寄存器,具有三态输出锁存。最后,集成了74HC595、74HC154的点阵实物图见图1-3所示。3、点阵主要技术参数:

9、显示容量:16*16个字符图1-3 点阵实物图芯片工作电压:4.55.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三极管组成的汉字点阵显示系

10、统。本系统主要分成屏体和控制器两大部分。屏体的主要部分是LED点阵,还有行列驱动电路。LED点阵屏采用16*16LED显示模块连接而成。一块16行16列显示屏,其LED发光器件数量相当大,不适合使用静态驱动电路,而采用动态扫描驱动电路。扫描驱动电路采用多行的同名列共用一套驱动器,行驱动器一行的行线连接到电源的一端,列驱动器一列的列连接到电源的另一端。控制电路负责有序地选通各行,选通每一行之前还要把该行该列的数据准备好,一旦该行选通,这一行上的LED发光器件就可以根据列数据进行显示。 本系统的控制电路采用单片机方法,由于单片机的I/O口数量少,驱动能力不强,则要扩展一定的硬件电路,才能满足显示屏

11、的需要。硬件电路大体上可分为单片机控制器、LED显示屏行列驱动电路、LED点阵屏三部分,LED显示屏驱动电路使用通用的数字电路并尽量减少外围硬件,做到电路简单、适应性强、成本不高、维护方便等要求。 为了增强汉字点阵的显示效果,LED汉字点阵显示系统也可以有多种显示模式。最简单的显示模式是静态显示。同静态显示模式相对应有多种动态显示模式,它们所显示的文字是动态的。按照文字运动的特点可以分为平移、闪烁、旋转、缩放等多种显示模式。产生不同显示模式的方法可以通过一定的算法从原来的显示数据产生。不过当算法太复杂时就会太浪费时间,也可以考虑预先生成刷新数据,存储备用。 本系统采用动态显示的模式,所谓的动态

12、显示模式是指逐行轮流点亮。我们把所有的同一行发光管的阳极连接在一起,把所有第一列发光管的阴极连接一起,先送出对应第一行的发光管亮灭的数据并且锁存,然后选通第一行使其点亮一定的时间然后熄灭;再送出第二行的数据并且锁存,然后宣统第二行使其点亮同样的时间,然后熄灭;直到第第十六行显示完后再重新点亮第一行,这样反复轮回。如图2所示。图2 系统的整体结构图 2.2 点阵部分程序流程图2.3 流水灯部分基于单片机的流水灯是一个小设计,其原理就不详细说明。单片机1(左)控制流水灯,单片机2(右)控制点阵。 下面是系统连线图:图21 系统电路连线图2.2实物照片具体的实物照片如下图实物图一实物图二图23 实物

13、照片图三3 合并程序流程图心形流水灯一个间隔一个亮起心形流水灯全亮然后全灭4 部分程序源代码点阵单片机程序/*/#include#define uchar unsigned char#define uint unsigned intuchar N=7; / N 表示有多少个汉字, 如要加多个字,只需改动N的值即可sbit DS=P10; /74HC595串行数据sbit STcp=P11; /74HC595并行输出时钟sbit SHcp=P12; /74HC595串行时钟sbit CS=P13; /74HC154输出有效信号/=P2口作为74HC154的选择控制数据输入=/=P2口整体控制A0

14、-A4,所以无需单独控制每个信号=/sbit A0=P30;/sbit A1=P31;/sbit A2=P32;/sbit A3=P33;/=字模表=/=取模方法:阴码,逆向,逐行=/=uchar code Hanzi=/*0x60,0x02,0x1C,0x0A,0x10,0x12,0x10,0x12,0x10,0x02,0xFF,0x7F,0x10,0x02,0x10,0x12,0x70,0x14,0x1C,0x0C,0x13,0x04,0x10,0x0A,0x90,0x49,0x10,0x50,0x14,0x60,0x08,0x40,/*我,00x00,0x1F,0xFC,0x09,0x4

15、8,0x08,0x90,0x04,0xFC,0x7F,0x44,0x40,0x42,0x00,0xFC,0x3F,0x20,0x00,0xE0,0x0F,0x30,0x04,0xD0,0x02,0x08,0x03,0xC6,0x0C,0x31,0x70,0x0C,0x20,/*爱,10x90,0x00,0x90,0x01,0x88,0x20,0xC8,0x7F,0x44,0x20,0x2C,0x12,0x16,0x02,0x45,0x0A,0xC4,0x12,0x44,0x12,0x24,0x22,0x24,0x62,0x14,0x22,0x84,0x02,0x04,0x01,0x00,0x0

16、0,/*你,2*/0x70,0x14,0x1C,0x0C,0x13,0x04,0x10,0x0A,0x90,0x49,0x10,0x50,0x14,0x60,0x08,0x40,/*,3*/* (16 X 16 , 宋体 )*/0x20,0x00,0xE0,0x0F,0x30,0x04,0xD0,0x02,0x08,0x03,0xC6,0x0C,0x31,0x70,0x0C,0x20,/*,4*/0xC4,0x12,0x44,0x12,0x24,0x22,0x24,0x62,0x14,0x22,0x84,0x02,0x04,0x01,0x00,0x00,/*,5*/0x00,0x00,0x00

17、,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,/*!,6*/一定要在字模后加一个清屏的字模,否则移动显示时出现乱麻0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/清屏0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x

18、00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,;/=延时程序=void delay(uint N) uchar i; uint j; for(j=0;j0;i-);/=逐行测试=/=目的:查看有无坏点=void display_test(uchar N) uchar i,j;100; DS=0; /整行显示 for(i=0;i16;i+) SHcp=0; SHcp=1; STcp=0; STcp=1; P3=N; CS=0; delay(10); /本程序太长,省去部分,需要完整程序请 CS=1; /联系QQ154401855(或154401856)下载

19、 /+静态显示+/=+显示程序=/ N表示传递过来的第几个文字,一个文字占32个字节,所以M为32的倍数/=void display_state(uchar M) uchar i,j,n,cont=0; uchar temp; for(n=0;n50;n+) /重复显示50次,以便能清楚显示 i=i+2) temp=HanziM+i+16; /取一字模数据存放于temp,高8位 /进行8次转换,使8位并行数据转换为串行数据 for(j=0;8; if(temp&0x80) /并行数据转为串行数据,高位在前 DS=1; else DS=0; SHcp=0; SHcp=1; /SHcp上升沿锁存一

20、位数据 temp=temp1; /左移一位,进行下一次转换 temp=HanziM+i; /取一字模数据存放于temp,低8位 STcp=0; STcp=1; /STcp上升沿使8位数据并行输入 P3=cont; /cont计数器作为74HC154的选择信号,由P2口输出 CS=0; /74HC154 使能,开启显示 delay(2); /延时一下,以便有足够的点亮时间 CS=1; /关显示,不关显示会出现花屏现象 cont+; /cont计数器加一 for(i=1;0x80) DS=0; SHcp=0; SHcp=1; cont=0;/+动态显示文字+void display_move(void) uchar temp,hang; for(hang=0;hang32*N;hang=hang+2) /每次上移一行,即实现动态移动显示效果10;n+) /程序太长,省略一部分,需要完整程序请 /联系QQ154401855(或154401856)下载/=主函数=void main(void) P1=0xFF; P2=0xFF; while(1) /*i

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2