单片机外围存储及LCD12864.doc_第1页
单片机外围存储及LCD12864.doc_第2页
单片机外围存储及LCD12864.doc_第3页
单片机外围存储及LCD12864.doc_第4页
单片机外围存储及LCD12864.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题 目 院系名称: 专业班级: 学生姓名: 学 号: 指导教师: 年 月 日- 37 -摘 要单片机扩展外围存储器,先在存储器里存储一幅图片,然后通过单片机读出数据在lcd12864上显示出来。关键词 AMPIRE128X64;2764;外部存储器读写;扩展外部存储器ABSTRACTMicrocontroller peripheral expansion of memory, first in memory to store a picture, and then read data through the microcontroller in the lcd12864 on display.Key words LCD12864;External memory read and write;External memory expansion目 录1 引言- 1 -1.1 研究的目的- 1 -1.2 相关领域成果- 1 -1.3 研究的意义- 1 -2 芯片资料- 2 -2.1 AT89C51芯片介绍- 2 -2.1.1 概述- 2 -2.1.2 特性- 2 -2.1.3 编号含义- 3 -2.1.4 框图(CPU)- 4 -2.1.5 逻辑符号- 5 -2.1.6 管脚描述- 6 -2.2 LCD12864(ks0108 controllers)芯片介绍- 12 -2.2.1 KS0108 控制器主要特性- 12 -2.2.2 接口说明- 13 -2.2.3 引脚功能- 13 -2.2.4 指令列表- 14 -2.2.5 工作时序图- 14 -2.2.6 KS0108 控制器指令说明- 14 -2.3 27C64芯片介绍- 17 -2.3.1 概述- 17 -2.3.2 2764各引脚的含义- 17 -2.3.3 读时序图:- 18 -2.4 74LS373芯片介绍- 19 -2.4.1 概述- 19 -2.4.2 74ls373功能简介- 20 -2.4.3 74ls373内部逻辑结构图- 20 -3 系统分析- 21 -3.1 题目要求- 21 -3.2 元件选择- 21 -3.3 硬件总体结构设计- 21 -3.4 软件概要设计- 22 -4 硬件设计- 23 -4.1 元件资料- 23 -5 软件设计- 24 -6 软件仿真- 26 -6.1 Proteus简介- 26 -总结- 27 -致谢- 28 -参考文献- 29 -附录 源代码- 30 -1 引言1.1 研究的目的扩展外部存储器主要用于增大存储容量,提供更多的功能,扩大应用领域。1.2 相关领域成果存储器的扩展领域主要有:SD卡、U盘、移动硬盘、硬盘等、mp3、mp4、PSP。1.3 研究的意义随着社会的发展,人们的生活也日益丰富多彩,要掌握的知识越来越多,要记的事情越来越多,然而那些不经常运用在人们生活中的东西就很容易被遗忘,在很早的时候人们选择了把知识写在书本上,俗话说的好:“好记性不如烂笔头”。但书本缺点太多,携带不够方便,又经不起风吹雨打。后来发明了计算机后,人们可以文档、声音、图片、电影、游戏等资料存在存储器中,但存储器的容量是有限的,现在有很多方法扩展外存,或是把资料转移存储到其他地方,比如:把资料刻录到光盘上。工作生活中很多地方会用到外部存储器。外部存储器具有携带方便,价格便宜,存储空间大的优点。能够移动、复制和删除等等!为人们的工作和学习带来了很大的方便。2 芯片资料2.1 AT89C51芯片介绍2.1.1 概述该系列单片机是采用高性能的静态80C51,设计由先进CMOS 工艺制造并带有非易失性Flash 程序存储器全部支持12 时钟和6 时钟操作。定时/计数器6 输入4 优先级嵌套中断结构1 个串行I/O 口可用于多机通信I/O 扩展或全双工UART以及片内振荡器和时钟电路。此外由于器件采用了静态设计可提供很宽的操作频率范围频率可降至0, 可实现两个由软件选择的节电模式空闲模式和掉电模式空闲模式冻结CPU, 但RAM 定时器串口和中断系统仍然工作。掉电模式保存RAM 的内容但是冻结振荡器导致所有其它的片内功能停止工作由于设计是静态的,时钟可停止而不会丢失用户数据运行可从时钟停止处恢复。2.1.2 特性80C51 核心处理单元4k 字节FLASH 89C51X28k 字节FLASH 89C52X216k 字节FLASH 89C54X212 时钟操作可选6 个时钟(通过软件或并行编程器)64K 字节ROM 和64K 字节RAM两个工作频率范围6 时钟模式时为0 到20MHz12 时钟模式时为0 到33MHzLQFP, PLCC 或DIP 封装双数据指针3 个加密位4 个中断优先级6 个中断源4 个8 位I/O 口低EMI (禁止ALE 以及6 时钟模式)掉电模式可通过外部中断唤醒2.1.3 编号含义2.1.4 框图(CPU)2.1.5 逻辑符号2.1.6 管脚描述51系列单片机有4个I/O端口,每个端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0P3)、一个输出驱动器和输入缓冲器。通常把4个端口笼统地表示为P0P3。在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。P1口是用户专用 8 位准双向I/O口, 具有通用输入/输出功能, 每一位都能独立地设定为输入或输出。当有输出方式变为输入方式时, 该位的锁存器必须写入“1”, 然后才能进入输入操作。 P2口是 8 位准双向I/O口。外接I/O设备时, 可作为扩展系统的地址总线, 输出高8位地址, 与P0 口一起组成 16 位地址总线。 对于 8031 而言, P2 口一般只作为地址总线使用, 而不作为I/O线直接与外部设备相连。 2.1.7.1 概述P89C51X2/52X2/54X2/58X2 在10000 次擦除和编程之后仍能可靠保存FLASH 存储器的内容。存储单元的设计使得擦除和编程结构最优化。此外,先进的沟道氧化工艺和低内部电场的结合使擦除和编程操作更加可靠。2.1.7.2 特性 带片擦除的FLASH EPROM 内部程序存储器 内部程序存储器禁止时(EA=0) 外部程序存储器最多可达64K 可编程加密位 每字节最少10000 次擦除/编程周期 数据最少可保存10 年 从一般销售商处可获得编程支持2.1.7.3 振荡器特性XTAL1 和XTAL2 为输入和输出可分别作为一个反相放大器的输入和输出,此管脚可配置为使用内部振荡器,要使用外部时钟源驱动器件时,XTAL2 可以不连接而由XTAL1 驱动。外部时钟信号无占空比的要求,因为时钟通过触发器二分频输入到内部时钟电路。但高低电平的最长和最短时间必须符合手册的规定。2.1.7.4 时钟控制寄存器CKCON该器件提供通过一个SFR 位(CKCON 的X2) 位和一个Flash 位(保密块中的FX2 )控制选择6 时钟/12 时钟模式当X2 置0 时12 时钟模式有效.该位置1 时系统切换到6 时钟模式.由于该功能是通过SFR 位实现的,因此可以随时访问并修改。需要注意的是将X2 从0 改为1 将导致用户代码以两倍的速度执行。因为所有的系统时间间隔都变成原来的1/2 。从6 时钟模式变为12 时钟模式会将运行代码的速度降低为1/2。Flash 时钟控制位FX2 可通过并行编程器编程取代X2 位实现6 时钟模式。见表2:表22.1.7.5 可编程时钟输出可从P1.0 编程输出50%占空比的时钟信号,P1.0 除了作为常规I/O 口外还有两个可选功能它可编程为:1 用于定时/计数器2 的外部时钟输入2 使用16MHz 操作频率时12 时钟模式下输出50%占空比的61Hz4MHz 时钟信号6 时钟模式时为122Hz8MHz,要将定时/计数器2 配置为时钟发生C/T2(T2CON.1)必须清零,而T2MOD 中的T20E 位必须置位,要启动定时器2 还必须将TR2(T2CON.2)置位,时钟输出频率由振荡器频率和定时器2 捕获寄存器的重新装入值确定公式.2.1.7.6 振荡器频率n 65536 RCAP2H,RCAP2L此处n = 16 6 时钟模式或32 12 时钟模式RCAP2H,RCAP2L RCAP2H 和RCAP2L 的内容作为一个16 位无符号整数在时钟输出模式中定时器2 的翻转将不会产生中断这和它作为波特率发生器时相似,定时器2 可同时作为波特率发生器和时钟发生器,但需要注意的是波特率和时钟输出频率相同。2.1.7.7 复位在振荡器工作时将RST 脚保持至少两个机器周期高电平12 时钟,模式为24 个振荡器周期6 时钟,模式为12 振荡器周期可实现复位,为了保证上电复位的可RST 保持高电平的时间至少为振荡器启动。时间通常为几个毫秒再加上两个机器周期复位后振荡器以12 时钟模式运行(当已通过并行编程器设置为6 时钟模式时除外)。2.1.7.8 中断本手册所讲述的器件提供6 个中断源如图20 所示外部中断INT0 和INT1 可根据寄存器TCON 中的IT0 和IT1 位状态分别设置为电平或者边沿触发实际产生的中断标志是TCON 中的位IE0 和IE1 当产生外部中断时如果是边沿触发进入中断服务程序后由硬件清除中断标志位如果中断是电平触发由外部请求源而不是由片内硬件控制请求标志定时器0 和定时器1 中断由TF0 和TF1 (分别由各自的定时/计数寄存器控制定时器0 工作在模式3时除外)产生当产生定时器中断时进入中断服务程序后由片内硬件清除标志位,串口中断由RI 和TI 的逻辑或产生进入中断服务程序后这些标志均不能被硬件清除实际上中断服务程序通常需要确定是由RI 还是TI 产生的中断然后由软件清除中断标志,所以这些产生中断的位都可通过软件置位或清零与通过硬件置位或清零的效果相同简而言之中断可由软件产生推迟或取消。每个中断源可通过置位或清零寄存器IE (图21) 中的相应位分别使能或禁止IE 中还包含一个全局禁止位EA, 可以立即禁止所有的中断。中断优先级结构每个中断源都可通过编程中断优先级寄存器IP (图22) 和IPH (图23) 单独设置优先级一个中断。服务程序可响应更高级的中断但不能响应同优先级或低级中断最高级中断服务程序不响应其它任何中断如果两个不同中断优先级的中断源同时申请中断时响应较高优先级的中断申请。如果2 个同优先级的中断源同时申请中断内部查询顺序将确定首先响应哪一个中断请求查询顺序。如下所示:中断源 同级优先级1. IE0( 外部中断0)( 最高)2. TF0 (定时器0)3. IE1 (外部中断1)4. TF1 (定时器1)5. RI+TI (UART)6. TF2,EXF2( 定时器2) (最低)注同级优先级只用来处理相同优先级别中断源同时申请中断的情况IP 和IPH 寄存器中包含了一些无效位由于这些位可能用于其它80C51 系列产品中用户软件不应将这些位写入1。中断的处理中断标志在每个机器周期的S5P2 时采样在下一个机器周期查询该采样如果在P2 周期时有一个标志置位查询周期将发现它然后中断系统产生一个LCALL 调用对应的服务程序由硬件产生的LCALL。在下面任意一种情况下都会推迟执行1. 同级或更高级的中断已在处理中2. 当前的周期不是正在执行指令的最后一个周期3. 正在处理的指令是RETI 或任何写IE 或IP 寄存器的指令条件2 确保正在处理的指令在进入任何中断服务程序前可以执行完毕条件3 确保了,如果正在处理的指令是RETI 或任何访问IE 或IP 寄存器的指令,那么在进入任何中断服务程序之前至少再执行一条指令查询周期在每个机器周期都会重复所查询的值是在前一个机器周期的。S5P2 出现的值需要注意的是如果一个中断标志位有效,但仍然没有被响应是因为出现上面所述的情况,如果当阻碍的条件撤除时中断标志不再有效,中断将不再响应。换句话说实际上如果中断标志有效时没有响应中断之后将不再被记忆每次查询周期都会更新中断标志。2.2 LCD12864(ks0108 controllers)芯片介绍2.2.1 KS0108 控制器主要特性8 位并行数据接口,适配M6800 系列时序。拥有6464 位(512 字节)的显示存储器,其数据直接作为显示驱动信号。简单的操作指令。低功耗(具体参数见各款产品外形文件)2.2.2 接口说明2.2.3 引脚功能2.2.4 指令列表2.2.5 工作时序图2.2.6 KS0108 控制器指令说明1. 读状态字(read status)格式 BUSY 0 NO/OFF RESER 0 0 0 01) BUSY=1 表示KS0108 正在处理计算机发来的指令或数据。此时接口电路被封锁,不能接受除读状态字以外的任何操作。BUSY=0 表示KS0108 接口控制电路已处于“准备好”状态,等待计算机的访问。2) ON/OFF:表示当前的显示状态。ON/OFF=1 表示关显示状态ON/OFF=0 表示开显示状态。3) RESET 表示当前KS0108 的工作状态,即反映RST 端的电平状态。当RST 为低电平状态时KS0108 处于复位工作状态,RESET=1。当RST 为高电平状态时,KS0108 为正常工作状态,RESET=0。4) 在占领设置和数据读写时要注意状态字中的BUSY 标志。只有在BUSY=0 时,计算机对KS0108 的操作才能有效。因此计算机在每次对KS0108 操作之前,都要读出状态字判断BUSY 是否为“0”。若不为“0”,则计算机需要等待,直至BUSY=0 为止。2. 显示开关(display on/off)该指令设置显示开关/触发器的状态,由此控制显示数据锁存器的工作方式,从而控制显示上的显示状态。D 位为显示开/关的控制位。当D=1 为显示设置,显示数据锁存器正常工作,显示屏上呈现所许的效果。此时在状态字中ON/OFF=0。当D=0 为关显示设置,显示数据锁存器被置零,显示屏呈不显示状态,但显示存储器并没有被破坏,在状态组中ON/OFF=1。格式 0 0 1 1 1 1 1 D3. 显示起始行设置(Display start line)格式 1 1 L5 L4 L3 L2 L1 L0该指令设置了显示起始行寄存器的内容。KS0108 有64 行显示的管理能力,该指令中L5L0 为显示起始行的地址,取值在03FH(164)范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。如果定时间隔地,等间距地修改(如加一或减一)显示起始行寄存器的内容,则显示屏将呈现显示内容向上或向下平滑滚动的显示效果。4. 页面地址设置Set page(X address)格式 1 0 1 1 1 P2 P1 P0该指令设置了页面地址-X 地址寄存器的内容。KS0108 将显示存储器分成了8 页,指令代码中P2P0 就是要确定当前所要选择的页面地址,取值范围为07H,代表第18页。该指令规定了以后的读/写操作将在哪一个页面上进行。5. 列地址设置(Set Y address )格式 0 1 C5 C4 C3 C2 C1 C0该指令设置了Y 地址计数器的内容,C5C0=03FH(164)代表某一页面上的某一单元地址,随后的一次读或写数据将在这个单元上进行。Y 地址计数器具有自动加一功能,在每一次读/写数据后它将自动加一,所以在连续进行读/写数据时,Y 地址计数器不必每次都设置一次。页面地址的设置和列地址的设置将显示存储器单元唯一地确定下来,为后来的显示数据的读/写作了地址的选通。6. 写显示数据(Write display data )格式 数 据该操作将8 位数据写入先前已确定的显示存储器的单元内,操作完成后列地址计数器自动加一。7. 读显示数据(Read display data)格式 数 据该操作将KS0108 接口部的输出寄存器内容读出,然后列地址计数器自动加一。2.3 27C64芯片介绍2.3.1 概述EPROM 2764的外部引线如图所示。这是一块8K8bit的EPROM芯片,它的引线与SRAM芯片6264是兼容的。这给使用者带来很大方便。因为在软件调试过程中,程序经常需要修改,此时可将程序先放在6264中,读写修改都很方便。调试成功后,将程序固化在2764中,由于它与 6264的引脚兼容,所以可以把2764直接插在原6264的插座上。这样,程序就不会由于断电而丢失。2.3.2 2764各引脚的含义 A0一A12:13根地址输入线。用于寻址片内的8K个存储单元。 D0D7:8根双向数据线,正常工作时为数据输出线。编程时为数据输入线。 OE:输出允许信号。低电平有效。当该信号为0时,芯片中的数据可由D0D7端输出。 CE:选片信号。低电平有效。当该信号为0时表示选中此芯片。 PGM:编程脉冲输入端。对EPROM编程时,在该端加上编程脉冲。读操作时该信号为1。 VPP:编程电压输入端。编程时应在该端加上编程高电压,不同的芯片对VPP的值要求的不一样,可以是+12.5V,+15V,+21V,+25V等。2.3.3 读时序图:2.4 74LS373芯片介绍2.4.1 概述373 的输出端 O0O7 可直接与总线相连。当三态允许控制端 OE 为低电平时,O0O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mv。引出端符号:D0D7 数据输入端OE 三态允许控制端(低电平有效)LE 锁存允许端O0O7 输出端真值表: DnLEOEOnHHLHLHLLXLLQ0XXH高阻态2.4.2 74ls373功能简介74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片.2.4.3 74ls373内部逻辑结构图3 系统分析3.1 题目要求单片机从EPROM2764中读取图像数据,并在12864LCD上显示。3.2 元件选择单片机CPU选用AT89C51 LCD选用AMPIRE128X643.3 硬件总体结构设计图 113.4 软件概要设计EPROM中图片数据获取1.使用图片处理工具截取128*64图片,并通过设置阈值,生成合适的单色图像。2.使用取字模软件生成该图片的列行式字模。3.使用二进制文件编辑器对该字模生成二进制文件。4.可将此bin文件转换成hex文件再烧录。使用取模工具4 硬件设计4.1 元件资料AT89C51AMPIRE128X6427C6474LS3735 软件设计void delay(int )延时函数提供硬件与源代码之间的同步此函数依据每条语句运行的时间来实现延时功能void lcdcom(unsigned char )12864液晶写命令函数用于控制写进芯片的内容,从而达到期望的效果。把读写端口置低(赋值为0)让12864芯片为写状态,数据命令端口置低(赋值为0)设为命令状态,通过使能端口一个脉冲把命令从单片机里送入12864液晶屏里。void lcddata(unsigned char )12864液晶写数据函数向芯片内写要运行的数据,在液晶屏上会出现相应的操作结果。把读写端口置低(赋值为0)让12864芯片为写状态,数据命令端口置低(赋值为1)设为数据状态,通过使能端口一个脉冲把命令从单片机里送入12864液晶屏里。void lcdcls()清屏函数先把芯片的片选信号左右屏一起打开,从第一行开始扫描(07),每行64(063)列点阵全部写低电平(写0x00)。void loadimage()写图片数据函数1、用取字模软件取出图片的模,修改成规定格式,用十六进制编译器把图片的模保存成二进制,或者再使用二进制转十六进制编译器转换为十六进制,烧进EPROM2764芯片内。2、2764的低八位地址(A0A7)用地址除256求出,其余的高位(A8A12)用地址对256求余得出的3、12864芯片的左半屏写打开,数据端口依据外围存储器的地址读取相应的数据,显示出来;然后打开右半屏,数据端口依据外围存储器的地址读取相应的数据,显示出来。6 软件仿真6.1 Proteus简介此电路接了一个74LS373,74LS373锁存器的好处是在P0口不外接上拉电阻的情况下也能准确送入数据,这也是此芯片的独特之处。外围存储器(EPROM 2764)的低八位地址(A0A7)接到P0口,A8A12接到P2口上,12864液晶屏数据端口接在P1口上。仿真截图:见上图 11总结在毕业设计过程中,取图片数据时遇到问题,后来经过多次试验和请教,查阅了许多资料,找到了一款很好用的十六进制编辑器工具(HXD),初学者做外部存储必备的工具,就像取字模软件一样,这些小软件给了我们很大的帮助。本次毕业设计让我们充分体会到了团队合作的重要性。在资料的获取,程序的编写,文档的整理中,我们感受到了团队合作的优势。术业有专攻,每个人的优点就是我们小组整体的优势。在共同完成毕业设计的过程中,大家相互交流和帮助,不仅专业技能有所提升,而且增进了我们的友谊。这次的经历能让我在以后学习中激励我继续进步。不积跬步何以至千里,这次的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。致谢在万老师的悉心指导和严格要求下,终于完成此次论文设计。从课题选择到具体构思和内容,无不凝聚着老师的心血和汗水,在三年的学习和生活中,也始终感受着导师的精心指导和无私的关怀,在此向老师表示深深的感谢和敬意.非常感谢我的指导教师,他的理解给我很大的动力。本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成。 参考文献1 闫玉德 俞虹.MCS-51单片机原理与应用.机械工业出版社,2008年2 周鸣争 钱峰.微机原理与接口技术.电子科技大学出版社,2006年 附录 源代码#include#define LCDP1#define LCD_OFF 0x3e /显示器关闭#define LCD_ON 0x3f /显示器打开#define LCD_LINE 192 /设开始坐标#define LCD_Y 0xb8 /设页数(X坐标)#define LCD_X 0x40 /设X坐标sbit le=P30;sbit oe=P31;sbit cs1=P32;sbit cs2=P33;sbit e=P34;sbit rw=P36;sbit rs=P37;unsigned int adr=0;void delay(int z)int x,y;for(x=z;x0;x-)for(y=110;y0;y-);void lcdcom(unsigned char command)/向12864写命令函数rw = 0; rs= 0;LCD=command; e=1; e=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论