项目五 LED点阵显示器的设计
- 格式:doc
- 大小:606.50 KB
- 文档页数:20
LED 点阵显示电路的设计一、设计内容1.用四块8×8LED 点阵设计一个16×16点阵字符显示电路,动态扫描显示方式在显示技术中的应用。
2.掌握点阵显示的硬件接口及软件编程。
3.调用字库文件和SJ8002C 驱动函数,编写在LED 点阵上显示任意字符的程序。
二、8 × 8的LED 点阵显示器原理1.8 × 8的LED 点阵显示器结构 8 × 8的LED 点阵显示器,是由64个LED 组成, 内部电路如图12-4所示。
共阳极的8 × 8的LED 点阵显示器的典型连接方式是:每一行的阳极连在一起,由行扫描码锁存器和驱动器的一位控制,总共8行阳极连线由8位分别控制;每一列的8个阴极连在一起,由字形行码锁存器和驱动器的一位控制,总共8列阴极连线由8位分别控制。
1334106111516123456789148121725管脚管脚00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH00H 3FH 00H 00H 00H 01H 01H FFH 01H 01H 01H 01H 01H 01H 05H 02H 10H F8H 10H 20H 40H 80H 04H FEH 00H 00H 00H 00H 00H 00H 00H 00H图12-4 一个8×8LED 点阵块的电路连接 图12-5汉字“子”的字型点阵码图2.点阵字符的字型码在写点阵显示的驱动之前,应知道各显示字符的字形码。
上图12-5是四块8 × 8的LED 点阵拼成的一个16 × 16点阵(16列16行)作为1位字符显示的点阵码图。
(本实验也采用相同的显示方式显示一个字符)。
下面列出“电子”2个字符的点阵码。
“电”--- 02H 00H 、02H 00H 、02H 00H 、02H 10H 、7FH F8H 、42H 10H 、42H 10H 、7FH F0H 、42H 10H 、42H 10H 、7FH F0H 、42H 10H 、02H 04H 、02H 04H 、02H 04H 、01H FCH ;“子”--- 00H 10H 、3FH F8H 、00H 10H 、00H 20H 、00H 40H 、01H 80H 、01H 04H 、FFH FEH 、01H 00H 、01H 00H 、01H 00H 、01H 00H 、01H 00H 、01H 00H 、05H 00H 、02H 00H ;3.点阵字符的驱动点阵式LED 显示器采用逐行扫描式工作。
LED点阵显示屏设计报告设计报告一、引言LED点阵显示屏是一种常用的显示设备,它由许多小LED灯组成的矩阵结构。
它具有高亮度、低功耗、长寿命等优点,广泛应用于室内外广告、显示器、计数器等领域。
本报告旨在设计一个基于LED点阵显示屏的显示系统,该系统能够显示数字、字母、图像等内容,具有简单易用、可靠稳定的特点。
二、设计目标1.显示方式:系统设计支持多种显示方式,包括点亮、熄灭、闪烁等。
2.显示内容:系统设计支持显示数字、字母、符号、图像等内容,可以实现多种显示效果。
3.输入方式:系统设计支持多种输入方式,包括键盘输入、串口输入、无线输入等,方便用户操作。
4.可扩展性:系统设计具有可扩展性,可以通过添加模块或接口,实现更多功能。
5.显示效果:系统设计追求良好的显示效果,包括清晰度、亮度、色彩等。
三、设计方案1.硬件设计:(1)控制器模块:采用高性能的单片机作为控制器,具有较大的存储空间和计算能力。
(2)点阵显示屏模块:选择合适的点阵显示屏,根据设计要求确定屏幕大小和像素点数。
(3)输入模块:设计键盘输入模块,采用矩阵按键的方式,实现用户输入数字、字母等内容。
(4)显示模块:设计显示模块,通过控制点阵显示屏的亮灭状态以及刷新频率,实现显示各种内容的功能。
(5)通信模块:设计串口通信模块,支持与其他设备的通信,实现数据传输和控制功能。
2.软件设计:(1)控制程序:设计控制程序,包括初始化设置、数据处理、显示控制等功能,通过控制器模块实现相关操作。
(2)显示程序:设计显示程序,支持各种显示效果,包括点亮、熄灭、闪烁等,根据用户输入的内容进行相应的显示。
(3)输入程序:设计输入程序,支持多种输入方式,包括键盘输入、串口输入等,将用户输入的内容传输给控制程序进行处理。
(4)通信程序:设计通信程序,根据串口通信模块的设定,实现与其他设备的数据传输和控制功能。
四、测试与验证1.功能测试:对系统设计的各项功能进行测试,包括显示功能、输入功能、通信功能等,确保系统正常工作。
LED点阵电子显示屏的设计一、选用器材AT89C52单片机1个,74LS138型号3线-8线译码器1个,74LS373三态输出的八D透明锁存器型号,+5V电源1个,Led8*8点阵屏绿色5个,tPd PD5个,带公共端的8电阻排(排阻)1个,电容30pF3个,电阻10K欧1个,按钮6个,石英晶振1MHz1个二、设计方案1、实验功能本实验要实现的功能就是,显示时分秒,年月日,且可修改。
实现实时时间的显示,显示屏数字显示,时:分:秒;星期的显示;年月日的显示。
显示屏通过按键切换显示星期,年月日,时间。
2、总体方案(1)工作原理用单片机AT89S52控制,写入程序,将数据传输到显示模块,即点阵LED 电子显示屏显示器,实现日历的显示。
(2)总体设计电路图LED和52单片机配合实现时间显示功能。
显示模块为点阵LED电子显示屏显示器,把单片机中的数据显示出来。
该电路是通过按键来切换各种显示要求。
3、方案论证(1)显示部分:显示部分是本次设计最核心的部分,对于LED8*8点阵显示有以下两种方案:静态显示,即将每个二极管的状态分别用1和0表示,0则无电流,为暗,1则有电流,为亮。
若给每个二极管一个驱动电路,一个图像输入后,所有LED的状态保持到下一个图像。
对于静态显示方式,所需的译码驱动装置很多,引线多而负责,成本高,可靠性也低。
动态显示,即对每一个LED屏进行分割,对组成图像的各个部分分别显示,这样利用人眼的暂留效应和发光二极管发光时间的长短,也同样可以实现显示功能,这样就可以避免静态显示出现的问题。
但是,设计上如果处理不当,容易造成图像闪烁的问题,因此合理的涉及要保证驱动电路容易实现而且保证图像稳定补闪烁。
本实验采用软件实现数字时钟。
原理为:在单片机内部存储器分别存放时钟的年、月、日、时、分、秒、星期的信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则清零且相应的分值加1;若分值达到60,则清零且相应的时值加1;若相应的时值达到24,则清零且相应的日值加1;若相应的日值分别达到29,30,31时,根据判断来增加月值;若相应的月值达到12时,清零且年值加1。
LED点阵显示系统的设计摘要:本设计采用51单片机为核心,点阵显示及相关外围电路为基础,设计了一个16x16点阵显示屏。
整个硬件系统采用单片机AT89C51为核心,详细的讲述了电子显示屏的各个模块、电路原理以及开发过程。
关键词:单片机;显示屏;动态显示1 引言LED电子显示屏通过控制发光二极管的显示,用来传递各种图形、文字以及视频信息。
LED电子显示屏在社会上的许多领域已经得到企及,由于它传递信息的方便性,在各个领域的信息显示方面发挥了极大的作用。
对于一些公共的大型场合,使用点阵电子显示屏是非常划算的,它能够使用小型单片机系统控制,显示一些简单的信息,包括图形和文字,可以根据不同需要使用不同字号和字型。
汉字显示的原理就是根据你所需要显示的文字,利用汉字代码提取软件获取相应的编码,将编码输入到源程序中,再烧入单片机里面,就可以在显示屏上看到你所需要的文字。
图形显示原理也是一样的,只不过代码是需要自己修改调整,最后达到我们的显示效果。
2 LED显示的特点及功能要求设计一个LED点阵电子显示屏,要求在肉眼观测下图文显示正常,点阵电子显示屏各个亮点显示充足,亮度均匀,并且可以显示文字和图形,文字和图形在显示的时候有多种显示方式,包括从左往右,从上往下等多种显示方式。
图1为单片机系统外围电路图。
3 系统硬件设计系统的硬件部分大致可以分成五个:第一就是关于稳压电源的设计,第二是单片机系统及外围电路,第三和第四就是驱动电路,分文列驱动和行驱动,第五个是点阵显示屏电路,下面就分步讲述一下这五个部分的原理以及处理方式。
(1)稳压电源的设计。
稳压电源就是把220V的交流电压转换成稳定的直流电压。
(2)单片机系统及外围电路。
AT89C51是一种微处理器,俗称单片机。
(3)列驱动电路。
列驱动电路是由74HC595构成,它的结构可以分为两个部分:移位寄存器和输出锁存器。
移位寄存器和输出锁存器之间是相互独立的,不会互相产生干扰,能够达到重叠处理的目的。
LED点阵显示屏设计原理及制作汉字显示屏到处可见,被广泛应用于与汽车报站器,广告屏等。
本文中的16*16LED显示屏是采用4块8*8LED合并而成的。
下图是4个8*8LED组成的显示屏。
(图1)这里我把点阵LED显示屏制作的电路原理分成两个部分来介绍即显示屏电路和显示屏驱动电路。
一、显示屏电路本人用的是共阴极的8*8点阵屏,在市场上是比较容易买到,下图是8*8点阵屏的实物图。
(图2)点阵屏有两个类型,一类为共阴极(左),另一类则为共阳极(右),下图给出了两种类型的内部电路原理及相应的管脚图。
(图3)LED阵列的显示方式是按显示编码的顺序,一行一行地显示。
每一行的显示时间大约为4ms,由于人类的视觉暂留现象,将感觉到8行LED是在同时显示的。
若显示的时间太短,则亮度不够,若显示的时间太长,将会感觉到闪烁。
本文采用低电平逐行扫描,高电平输出显示信号。
即轮流给行信号输出低电平,在任意时刻只有一行发光二极管是处于可以被点亮的状态,其它行都处于熄灭状态。
为了方便调试本文把4块8*8组成的16*16的点阵屏的行信号扫描输出管脚和列信号显示输出管脚分别引到显示屏的两边。
Prot EL原理图如下:(图4)如图4 所示的原理图中的Si(i=1,2,3,...,16) 代表行扫描信号输出,Di(i=1,2,3, (16)代表列显示信号输出。
实物电路图的正反面如下:(图5)二、显示屏驱动电路显示屏驱动电路的原理图如下:显示屏驱动电路主要由主芯片控制电路、电源电路、控制信号放大电路等组成。
1、主芯片控制电路该部分电路主要由AT89S52和74LS154组成。
单片机的P0和P2号控制显示信号的输出,P1号的低4位控制74LS154的译码输入,从而控制扫描信号的输出。
2、电源电路整个电路的供电由USB电源提供,利用我们的电脑主机USB接口可以输出+5V电压,方便我们在实验室调试3、控制信号放大电路为提供负载能力,在P0和P2口接16个常用9013的NPN三极管放大驱动信号。
单片机原理及应用课程设计任务书学院:信电工程学院专业:电子电子信息科学技术设计题目:基于Proteus的LED显示屏的设计与仿真1.课程设计的内容和要求:研究内容:1、单片机仿真软件PROTEUS的使用方法.2、8×8发光二极管点阵显示屏的工作原理和软硬件设计方法。
3、设计硬件电路并在PROTEUS环境下绘制原理图、加入设计软件代码。
4、系统混合仿真运行。
要求:1.完成系统软硬件设计,在PROTEUS环境下进行仿真能正确运行。
2.要求实现至少三种显示效果,并通过按键实现显示效果切换。
3.用4片8×8点阵显示屏组成一个16×16点阵屏,至少能显示2个汉字。
2.主要参考文献:[1] 周润景,张丽娜.PROTEUS入门实用教程[M].北京:机械工业出版社,2007.9[2] 楼然苗,李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003.3[3] 楼然苗,李光飞.单片机课程设计指导[M].北京:北京航空航天大学出版社,2007.7[4] 苏平.单片机原理与接口技术[M].北京:电子工业出版社,2003.8[5] 赵长德,雷田玉.微型计算机原理与接口技术[M].北京:机械工业出版社,1999.103.课程设计进度计划:起止日期工作内容备注16周第17周第18周分组选题查阅资料,研究系统设计总统设计方案和硬件电路。
选择器件,完成硬件焊接。
编写各模块程序,进行软件设计和系统软硬件调试,并下载运行。
编写设计报告。
4、考核方式采取论文评阅、成果测试和答辩相结合。
指导教师签字:教研室主任签字:。
单片机课程设计-- 16x16点阵LED电子显示屏的设计第一章系统总体方案设计LED驱动显示采用动态扫描方法, 动态扫描方式是逐行轮流点亮, 这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。
以16×16点阵为例, 把所有同一行的发光管的阳极连在一起, 把所有同一列的发光管的阴极连在一起(共阳的接法), 先送出对应第1行发光管亮灭的数据并锁存, 然后选通第1行使其燃亮一定的时间, 然后熄灭;再送出第2行的数据并锁存, 然后选通第2行使其燃亮相同的时间, 然后熄灭;…第16行之后, 又重新燃亮第1行, 反复轮回。
当这样轮回的速度足够快(每秒24次以上), 由于人眼的视觉暂留现象, 就能看到显示屏上稳定的图形。
该方法能驱动较多的LED, 控制方式较灵活, 而且节省单片机的资源。
显示数据传输采用串行传输的方法, 控制电路可以只用一根信号线, 将列数据一位一位传往列驱动器, 在硬件方面无疑是十分经济的。
但串行传输过程较长, 数据按顺序一位一位地输出给列驱动器, 只有当一行的各列数据都已传输到位之后, 这一行的各列才能并行地进行显示。
对于串行传输方式来说, 列数据准备时间可能相当长, 在行扫描周期确定的情况下, 留给行显示的时间就太少了, 以致影响到LED的亮度。
采用串行传输中列数据准备和列数据显示的时间矛盾, 可以采用重叠处理的方法。
即在显示本行各列数据的同时, 传送下一行的列数据。
为了达到重叠处理的目的, 列数据的显示就需要有锁存功能。
对于列数据准备来说, 它应能实现串入并出的移位功能。
这样, 本行已准备好的数据打入并行锁存器进行显示时, 串行移位寄存器就可以准备下一行的列数据, 而不会影响本行的显示。
系统框图如图一图一点阵显示器硬件系统框图第二章系统硬件电路的设计硬件电路大致上可以分为单片机系统及外围电路、列驱动电路和行驱动电路三部分。
一. 单片机系统及外围电路单片机采用89C51或更高频率的晶振, 以获得较高的刷新频率, 使得显示更稳定。
点阵L ED 显示设计实验4.13.1 实验目的1. 了解L E D点阵的基本结构。
2. 学习L E D点阵扫描显示程序的设计方法。
4.13.2 实验设备PC机一台,TD-PIT或TD-PIT++实验装置一套。
4.13.3 实验内容及原理(1)在T D-P I T上使用基本输入输出单元中的两路输出O A[7:0]、O B[7:0]分别控制点阵LED的行控制R[7:0]和列控制L[7:0]。
编写程序,使点阵LED的每一行和每一列依次循环显示。
(2)在T D-P I T上使用32 位I/O接口单元的 32 位输出O0~O31控制点阵LED单元R0~R15和L0~L15。
编写程序,在16×16 点阵上循环显示汉字。
8×8 点阵L ED相当于8×8 个发光管组成的阵列,对于共阳极L ED来说,其中每一行共用一个阳极(行控制),每一列共用一个阴极(列控制)。
行控制和列控制满足正确的电平就可使相应行列的发光管点亮。
实验平台上点阵L ED的管脚及相应的行、列控制位如图4-13-1 所示。
图4-13-1 点阵L ED管脚图共阳极和共阴极L ED的内部结构分别如图4-13-2 和4-13-3 所示。
I/O 接口单元............. ... ..............系 统 总 线图 4-13-2 共阳极 L ED 内部结构图图 4-13-3 共阴极 L ED 内部结构图TD-PIT 实验系统上的L E D 点阵单元使用了一片Φ 的共阳极L E D 点阵,利用基本输入 输出单元的两路输出分别控制点阵LED 的行和列,编写一个简单的程序,使每一行和每一列依 次循环显示。
实验参考接线如图 4-13-4 所示。
8×8 点阵显示实验参考接线图(Pit+)在TD-PIT 实验系统上的LED 点阵单元采用了4 片Φ 的共阴极LED 点阵组成 16×16 的点阵。
利用取字模软件得到汉字字符数组,设计 程序,在点阵上滚动显示“西安唐都科教仪器公司”。
LED 点阵显示设计利用LED 点阵(16*16 个发光二极管)交替显示自己名字的每个汉字。
一、预备知识:目前, LED 电子显示屏广泛应用于各种公共场所, 如南通大学新校区图书馆底楼LED 大屏幕、新校区学生食堂各种显示菜价的LED 电子屏等, 在车站、码头、机场、商场、医院、宾馆、银行、证券市场等更是随处可见LED 电子显示屏的身影。
实验箱上由4 块8*8 LED 点阵模块组成1 个16*16 的LED 点阵, 每个LED 发光管其实就是1 个像素点, 而通常汉字显示时所需像素点就是16*16。
汉字显示需要“字模生成软件”生成显示的点阵数据, 通常“字模生成软件”支持使用指定字体、指定取点模式及字节排列模式, 支持字体加粗、斜体、删除线、下划线等设置等。
“字模生成软件”的具体使用见课程设计讲解视频。
二、设计目的1.了解、掌握LED 点阵显示的控制原理, 为后续的LCD 显示控制打下基础;2.熟悉、掌握串行输入并行输出移位寄存器的使用;3.掌握单片机串行接口扩展原理和编程方法。
三、设计内容1.设计LED 点阵模块显示控制电路的原理图;2.设计程序流程图;3、编程调试, 在LED 点阵模块上交替显示自己名字的每个汉字, 交替间隔时间控制在0.5~1 秒之间。
四、参考接线LED 点阵模块显示控制所用导线较多, 可参见LED 点阵模块原理说明及实验箱电路原理图。
五、设计步骤程序:ORG 0000HLJMP MAINMAIN:MOV SP,#6FHMOV B,#80HMOV R0,#0MOV R3,#100MAIN_LOOP:MOV DPTR,#LED_TABMOV R1,#8MOV R2,#8MAIN_LOOP_H:MOV A,BMOV P2,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R1,MAIN_LOOP_H MOV P2,#00HMAIN_LOOP_L:MOV A,BMOV P1,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R2,MAIN_LOOP_L MOV P1,#00HDJNZ R3,MAIN_LOOP MOV R3,#100MAIN_LOOP1:MOV R1,#8MOV R2,#8MOV DPTR,#LED_TAB1 MAIN_LOOP_H1:MOV A,BMOV P2,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R1,MAIN_LOOP_H1 MOV P2,#00HMAIN_LOOP_L1:MOV A,BMOV P1,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R2,MAIN_LOOP_L1DJNZ R3,MAIN_LOOP1MOV R3,#100MAIN_LOOP2:MOV R1,#8MOV R2,#8MOV DPTR,#LED_TAB2MAIN_LOOP_H2:MOV A,BMOV P2,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R1,MAIN_LOOP_H2 MOV P2,#00HMAIN_LOOP_L2:MOV A,BMOV P1,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R2,MAIN_LOOP_L2MOV P1,#00HDJNZ R3,MAIN_LOOP2 LJMP MAINFASONG:MOV A,@R0MOVC A,@A+DPTRCLR TIMOV SBUF,AJNB TI,$CLR TIINC DPTRRETDELAY:MOV R7,#4DL Y_LOOP:DJNZ R6,$DJNZ R7,DL Y_LOOP RETDELAY2:MOV R7,#250DL Y_LOOP2:MOV R6,#250DJNZ R6,$DJNZ R7,DL Y_LOOP2 RETLED_TAB:DB …….LED_TAB1:DB …….LED_TAB2: DB……..END原理图:。
点阵L E D显示屏设计--最终版本1 设计目的1、了解点阵字符产生和显示原理和系统的16*16点阵的工作机理。
2、加强对总线产生、地址定位的CPLD实现方法的理解。
3、掌握在FPGA中调用ROM的使用方法。
2 设计原理主要完成汉字字符在LED上的显示,16*16扫描LED点阵的工作原理与8位扫描数码管类似,只是显示的方式与结果不一样而已。
下面就本实验系统的16*16点阵的工件原理做一些简单的说明。
16*16点阵由此256个LED通过排列组合而形成16行*16列的一个矩阵式的LED阵列,俗称16*16点阵。
单个的LED的电路如下图2.1所示:图2.1 单个LED电路图由上图可知,对于单个LED的电路图当Rn输入一个高电平,同时Cn输入一个低电平时,电路形成一个回路,LED发光。
也就是LED点阵对应的这个点被点亮。
16*16点阵也就是由16行和16列的LED组成,其中每一行的所有16个LED的Rn端并联在一起,每一列的所有16个LED的Cn端并联在一起。
通过给Rn输入一个高电平,也就相当于给这一列所有LED输入了一个高电平,这时只要某个LED的Cn端输入一个低电平时,对应的LED就会被点亮。
具体的电路如下图2.2所示:图2.2 16*16点阵电路原理图在点阵上显示一定有字符是根据其字符在点阵上的显示的点的亮灭来表示的如下图2.3所示:图2.3 字符在点阵上的显示在上图中,显示的是一个“汉”字,只要将被“汉”字所覆盖的区域的点点亮,则在点阵中就会显示一个“汉”字。
根据前面我们所介绍的点阵显示的原理。
当我们选中第一列后,根据要显示汉字的第一列中所需要被点亮的点对应的Rn置为高电平,则在第一列中需要被点亮的点就会被点亮。
依此类推,显示第二列、第三列……第N 列中需要被点亮的点。
然后根据人眼的视觉原理,将每一列显示的点的间隔时间设为一定的值,那么我们就会感觉显示一个完整的不闪烁的汉字。
同时也可以按照这个原理来显示其它的汉字。
项目五 LED点阵显示器的设计能力目标1、能够根据应用要求扩展程序存储器和外部数据存储器。
2、能够利用通用锁存器、缓冲器扩展并行I/O接口。
3、能够利用可编程输入/输出接口芯片8255A设计LED点阵显示器。
任务一、扩展单片机的系统总线前面我们所实施的项目,只要使用单片机片内的存储器、I/O口就足够了,但事实上单片机内部的资源毕竟有限,在许多复杂的应用情况下,单片机的片内RAM、I/O接口难以满足应用的需求,这时必须在片外扩展一些外围芯片,比如存储器、并行输入/输出口、串行输入/输出口、A/D和D/A转换等,以构成一个功能更强的单片机应用系统。
一、单片机系统总线1、系统总线的概念MCS-51单片机的系统总线由地址总线、数据总线、控制总线组成。
(1)、地址总线地址总线用于传输单片机送出的地址信号,对存储单元和I/O端口进行选择,地址总线是单向的,只能由单片机向外发出。
地址总线的数目决定着可以直接访问的存储单元的数目,例如n位地址可以产生2n个连续的地址编码,可访问2n个存储单元。
MCS-51单片机的地址总线有16位,最多可扩展64KB的存储器。
(2)、数据总线数据总线用于在单片机与存储器之间或单片机与I/O口之间传输数据,数据总线是双向的,既可以由单片机传输到存储器或I/O口,又可以由存储器或I/O口传输到单片机,MCS-51单片机字长为8位,其数据总线的位数也是8位。
(3)、控制总线控制总线就是一组控制信号,包括由单片机发出的控制信号,以及从其他部件传送给单片机的请求信号和状态信号,每一条控制信号都是单向的。
地址总线图5-1 单片机系统总线结构图2、单片机的系统总线信号MCS-51单片机系统总线结构如图5-1所示。
P0口用来分时传送数据信息D0~D7和低8位地址信息A0~A7。
P0口通常与地址锁存器配合使用,在ALE信号的作用下,将低8位地址A0~A7从P0口分离出来,存入地址锁存器,ALE无效时,P0口传送数据D0~D7。
P2口传输高8位地址线A8~A15。
PSEN为程序存储器的读信号。
WR、RD分别为数据存储器及I/O口的读写控制信号。
二、系统扩展的方法单片机通过数据线、地址线、控制线与存储芯片、I/O接口芯片相连。
1、数据线的连接对于并行接口,数据线通常为8位,只要将图5-1中的数据总线D0~D7与外围芯片的数据线D0~D7的对应位相连即可。
2、控制线的连接PSEN为程序存储器的读选通信号,只要与ROM芯片的输出允许脚OE相连。
WR、RD为数据存储器或I/O口的读写控制信号,因此单片机的RD应与外围芯片的输出允许脚OE或RD相连;单片机的WR应与外围芯片的写允许脚WR或WE相连。
3、地址线的连接存储芯片或I/O接口芯片通常会有n根地址线,称为片内地址,用于选择片内的存储单元或端口,系统扩展时可能需要多块这样的外接芯片,因此外围芯片一般都有一个片选引脚,这样一个芯片的某个单元地址或端口地址由片选地址和片内地址共同组成。
单片机与外围芯片地址线的连接方法是将外围芯片的片内地址引脚从最低位开始依次与单片机的地址线A0、A1……An相连,片选引脚的连接有二种方法:(1)线选法将单片机的某根高位地址线直接与外围芯片的片选引脚相连。
如图5-2所示,U1、U2、U3是容量为4KB的存储芯片,12位地址线A0~A11用于片内寻址,寻址范围为4KB,3根高位地址线A14、A13、A12直接与U1~U3的片选线相连,片选信号低电平有效。
为了避免寻址错误,这三条地址线不能同时为低,也就是说每次对存储器访问只能选中一块芯片。
图5-2中,16位地址总线中的A15没有用到,假设为低电平,我们可以分析出三块芯片的地址范围。
当A14低电平,A13、A12为高电平时,芯片U1被选中,此时如果A11~A0全部为低电平时,选中U1的000H单元,当A11~A0全部为高电平时,选中U1的FFFH单元,由此可知芯片U1的地址范围为3000H~3FFFH。
为了访问芯片U2,高位地址A15~A12必须为二进制数0101B,如果希望访问该芯片的0号单元,片内地址A11~A0必须为0000 0000 0000B,为了访问该芯片的最后一个单元,片内地址A11~A0必须为1111 1111 1111B,这样可求出芯片U2的地址范围为5000H~5FFFH。
同样的方法我们可以求出U3的地址范围为6000H~6FFFH。
图5-2中A14~A12共有8个状态,如果采用译码方式能选通8片4KB的芯片,存储空间可达32KB,但在线选方式,由于连到片选脚的高位地址线只允许一根为低,A14~A12只有011、101、110三个状态可用,存储空间减为12KB 。
图5-2中,A15闲置未用,当A14~A12为011时,无论A15为低或高,都能选中U1,当A15=0时,该芯片的地址范围为3000H~3FFFH ,当A15=1时,地址范围为B000H~BFFFH ,也就是说芯片U1有2个地址空间:3000H~3FFFH ,B000H~BFFFH ,同理芯片U2、U3也有2个地址空间。
这种一个存储单元占用一个以上地址的现象称为地址重叠,编程时应该注意,认定其中一个地址空间使用。
线选方式的特点:无需外加元器件,电路简单,缺点是各芯片的地址空间不连续、不能充分利用微处理器的地址空间,如果有闲置的高位地址线就会存在着地址重叠现象,适用于存储容量较小的系统。
(2) 全译码方式将片内地址线以外的高位地址线,全部送到译码器的输入端进行译码,将译码器的输出作为各外围芯片的片选信号。
常用的译码器有74LS138(3-8译码器)、74LS139(双2-4译码器)等,这里仅仅绍74LS138译码器。
74LS138是3-8译码器,即对3个输入信号进行译码,得到8个输出状态,其引脚如图5-3所示,真值表如表5-1所示。
表5-1 74LS138真值表U2U1U3A0~A11A0~A11A0~A11A0~A11A0~A11 A0~A11CE CECEA12 A13 A14图5-2 用线选方式实现片选图5-3 74LS138引脚图其中G1、AG2=100时,才会在某个输出G2、BG2为使能控制端,只有当G1、AG2、B脚输出低电平,其余7个输出端仍为高电平,否则8个输出端全为高电平。
A、B、C为译码信号输入端。
Y为译码输出信号,低电平有效。
Y~7例:用8KB的存储芯片组成64KB的存储器,请问:①共需几块芯片?共需多少条地址线?其中片内地址线几条?用于片选的地址线几条?②如果采用74LS138进行译码,画出译码器的连接电路,并标出译码输出线的选址范围。
③如果采用线选方式,最多构成多大容量的存储器?试标出各线选线的选址范围。
分析:①64KB/8KB=8,即共需8片8KB的芯片。
64K=216,所以构成64KB的存储器共需16条地址线。
8K=213,即13条地址线作为存储芯片的片内地址,余下的3条地址线用于存储芯片的选择。
②我们可将单片机地址总线A15~A0中的低13位A12~A0并行连接到各块存储芯片的对应地址输入引脚上,余下的高位地址线A15~A13与译码芯片74LS138相连,对应电路及译码输出线的选址范围如5-4所示。
VCC图5-4 74LS138译码器的连接例如,当A15~A13=111时,由于G1、AG2、BG2=100,对应输出为低,此时如果A12~A0为全0,对应地址为E000H,如果A12~A0为全1,对应地址为FFFFH,因此7Y的选址范围为E000H~FFFFH。
③如果用线选法,3条地址线A15~A13将分别与三块存储芯片的片选端相连,只能接三块芯片,因此只能构成容量为3×8KB=24KB的存储器,A15、A14、A13所选芯片的的地址范围分别为6000H~7FFFH、A000H~BFFFH、C000H~DFFFH。
全译码方式的特点:存储芯片的地址连续,能充分地利用存储空间,每块芯片的地址唯一确定,不存在地址重叠现象;当译码器输出端有空余时,也可用于其它外围器件的扩展,缺点是电路连接比线选方式复杂,一般用于容量较大或I/O端口较多的应用系统。
任务二、扩展单片机的存储器一、程序存储器的扩展MCS-51单片机具有64KB的程序存储器空间,其中8051、8751片内有4KB的程序存储器,8031片内没有程序存储器,当采用8051、8751而程序超过4KB或采用8031时,就需对程序存储器进行扩展。
程序存储器由ROM 构成,其特点是掉电后信息不会丢失,因此常用来存放程序、常数或表格。
由于是只读存储器,只有输出允许端OE ,而没有写允许端WE ,需要专门的编程器才能将程序或数据写入其中,这种写入过程称为编程。
单片机扩展的程序存储器可以是EPROM 、EEPROM 或者FLASH 。
1、 选择芯片程序存储器扩展时,要根据系统的应用要求尽量选容量大的芯片,常见的EPROM 类芯片有2732、2764、27128、27256、27512等,其中27表示型号,后面的数字表示容量,将该数字除8就是以KB 为单位的容量,例如芯片2764的容量为8KB 。
下面以27128为例,来说明程序存储器和扩展。
如图5-5所示: A0~A13:14根地址线。
D0~D7:8位数据输出线。
OE :数据输出允许信号,低电平有效。
当OE =0时,输出缓冲器打开,被寻址单元的内容才能被读出。
CE :片选信号,低电平有效,高电平时,数据输出线呈高阻。
VPP :编程电源,当芯片在编程器上编程时,该引脚接25V 编程电压;当芯片正常使用时接VCC 。
PGM :编程脉冲输入端,正常使用时接VCC 。
VCC :主电源,一般接+5V 。
VSS :电源接地端。
2、 电路的连接如图5-6(图中标号相同的引脚是连在一起的)所示,在ALE 的控制下,通过地址锁存器74LS373将低8位地址线A0~A7从P0口输出的地址、数据信号AD0~AD7中分离出来,直接与27128芯片的A0~A7相连,P2口输出A8~A13与27128的对应引脚直接相连;27128的数据线D0~D7与P0口的AD0~AD7相连;控制线PSEN 与27128的OE 脚相连;PGM 、VPP图5-7 6264引脚图图5-5 27128引脚图接+5V。
图中A15(P2.7)经反向器接到27128的CE片选端,因此只有当A15为1时才能选中该芯片,这里A14没有用到,假设A14=0,则所扩芯片的地址范围为8000H~BFFFH,图中EA接VCC,80C52片内程序存储器的地址范围为0000H~1FFFH,因此图5-6可用程序存储器地址范围为:片内:0000H~1FFFH片外:8000H~BFFFH随着单片机技术的不断发展,单片机内部程序存储器的容量越来越大,已经由最初的4KB、8KB、16KB发展到32KB 、64KB乃至更多,用户完全可以根据应用需要来选择不同容量的单片机芯片,而无需扩展外部程序存储器,这样不仅能降低成本、增加系统的可靠性,而且可对程序加密保护,防止盗版。