计算机应用+嵌入式课程设计
发布时间:2024-11-17
发布时间:2024-11-17
计算机应用+嵌入式课程设计
湖南涉外经济学院 计算机科学与技术学部
<嵌入式系统原理及应用>
课程设计报告
题目(中文) 片外数据的流动与存储
(英文)姓 名 学 号 200702602318 学 部 计算机科学与技术学部 专业、年级 计应0702班 指 导 教 师 刘晓秋
计算机科学与技术学部
计算机应用+嵌入式课程设计
目 录
第一部分:基本情况和内容
1组员基本情况与内容 3
2 与课程设计相关的课程学习情况 3
3 组内成员中当任班干部的姓名与职务情况 3
4 指导教师对课程设计的评语 3
第二部分:报告内容与总结
1选题描述 4
2设计过程 5
3程序详细设计 11
4总结报告 12
5程序附录 13
第三部分:设计说明书 14
计算机应用+嵌入式课程设计
第一部分:基本情况与内容
1
组内成员基本情况
2 与课程设计相关的课程学习情况(分别列出已学过的课程)
课程1 嵌入式系统 课程2 汇编语言 课程3 微机接口
课程 4 PLC 原理及程序设计 课程 5 计算机组成原理
3 组内成员中当任班干部的姓名与职务情况
4 指导教师对课程设计的评语
计算机应用+嵌入式课程设计
第二部分:报告内容
1 选题描述
现状概述(现象、环境、条件)
众所周知MCS-51系列CPU里大多有一个4K的ROM 8K的EPROM和128B/256B的RAM(有的则没有ROM),当我们需要存储更大容量时就必须进行片外的扩充或者想将数据传到片外时就得再接一个外部存储器(片内片外的ROM是实行统一编止的)。当访问外部存储器(简称外部数据存储器)时,使用的是MOVX指令,若执行的是“MOVX A,@DPTR”或“ MOVX @DPTR,A”指令,则此地址就是DPL(数据指针的低8位);同时,在P2口上出现的是DPH(数据指针的高8位)。若执行的是“MOVX A,@Ri”或“MOVX @Ri,A”指令,则Ri的内容为低8位地址,而P2口线上将是P2口锁存器的内容。当RD/WR有效时,P0口将读/写数据存储器中的数据。 在这种情况下, 由P2口提供高8位地址,P0口分时提供低8位地址和用作8位双向数据总线。片外数据存储器RAM的读和写由51系列的RD(P3.7)和WR(P3.6)信号控制。
在第一个机器周期的S2、p2时刻,外部低8位数据锁存器74LS373利用单片机的ALE信号下降沿将单片机P0口输出的低8位地址信号进行锁存(暂存),为外存储器提供低8位地址信号。以指令MOVX A,@DPTR指令为例,在S5、P1时刻,指令经过编译后,将DPTR中的内容(即外部数据存储器的地址),分别经P0、P2口输出,并在 S5、P2时刻74LS373将P0口中低8位地址锁存,与P2口共同为外部数据存储器提供一个完整的16位地址信号从而使单片机系统的寻址范围达到64KB。
在指令执行第2个机器周期的S1,P1时刻,外部数据存储器RAM在单片机发送的RD低电平信号作用下,将选中的单元中的数据送到P0口传送到累加器A。
功能要求(达到的功能要求、知识要求、使用工具和器件是什么)
功能要求:片外数据的存储与传送
知识要求:要实现片外数据的流动存储就首先必须熟练一般的汇编语言,对微机接口及单片机方面的知识都要有一定的了解,而且又有一定的数字电路基础,要实现片外数据的存储,我们必须得在MCS-51系列的CPU上外挂一个数据存储器
使用工具:在此我们选的是51系列CPU及静态RAM6116(2K*8).74LS373(外部低8位数据锁存器)
调试软件:在MCS—51仿真软件上进行调试
规范使用(如何使用才能保证设计效果)
要保证设计所达到预期的设计效果就必须规范使用,首先得把握好题目的意思,如各方面的要求,功能的实现,数字及代码的规范使用,应该达到的效果,而且操作应该在一个相对比较好的环境下(确保器件的齐全,可用,无故障),在实验之前对元器件进行检查以确保实验的正常进行,拿取集成电路时请尽量不要触碰到核心芯片及其引脚。
计算机应用+嵌入式课程设计
2 设计过程
总体框图(由几部分组成,各部分的联系及次序,最后体现整体流程图)
(1)该课程设计主要由选题描、设计过程、程序详细设计、总结报告、程序附录五部分组成,各个部分的联系是逐层递进的,完成上一部分才能进行下一部分的工作,大概框图如下:
计算机应用+嵌入式课程设计
2.程序流程图 (图右)
计算机应用+嵌入式课程设计
硬件设计(将要使用的接口集成电路、CPU、数据存储器、程序存储器如何构成一
个整体,系统资源如何统一安排等。)
片外数据的流动与存储设计硬件电路主要由以下部分组成: 1. 微机系统(MCU)
2. 信号锁存单元(74LS373) 3. 外部存储单元(RAM)等
MCS-51系列CPU负责数据的传输与控制,将片内的数据通过其P0,P2口输出, 其中P0是输出低八位地址(因为P0口线既要用作低八位地址总线同时还要分时复用成数据总线,因此需要加一个8位数据锁存器,先把低8位地址送锁存器暂存然后由锁存器给系统提供低八位地址),P2口输出的是高八位地址(本题只需三位),然后将数据存到外部数据寄存器RAM中。
A0~A10—地址输入线 O0~O7—双向三态数据线
CE—片选信号输入线,低电平有效,且CE为低电平时才选中该片 OE—读选通信号输入线,低电平有效 WE—写允许信号是输入线,低电平有效 VCC—工作电源,电压为+5V GND—使能控制端
6116为2K*8位静态SRAM芯片,在此作为片外数据存储器使用
(6116存储容量只2KB,引脚数24只,工作电压5V,典型工作电流35MA,典型维持电流5MA)
计算机应用+嵌入式课程设计
(6116操作控制图)
设计采用的电路图如下所示:
(逻辑电路图)
计算机应用+嵌入式课程设计
存储分配(片内、片外用户数据区的划分与存储,片选信号的正确使用。)
(
1)由图左我们能看出片内RAM的分配: 专用寄存器区,128字节 用户区,80字节 位,寻址区,16个字节 四组寄存器,32个字节 (图左1)
(图左2)
(2)我们从图左2可看出片外用户数据区地址划分为
0000~FFFFH,存储空间大小为16KB(以扩展的最大空间为例) 3) 6116的片选信号端为CE/,低电平有效,所以我们可以给它送一个低电平或者直接接地即可(此处直接接地)
(
计算机应用+嵌入式课程设计
出错处理设计(估计可能出差的情况分析、出错以后处理对策方案。)
在各种51系列单片机测控系统中,RAM是其中一个很重要的组成部分。而在本题中片外数据的存储与流动涉及到片外,所以外部寄存器的好与坏是关系到本次设计能否成功的决定性因素,RAM的正常与否,直接关系到系统能否正常工作。在系统开始正常工作之前,如能对系统RAM进行自检,则可有效的避免因RAM失常对测控系统带来的危害。因此,对系统RAM进行自检是非常重要的。
测试外部存储器是否出现故障:
方法1:首先将MCS51中的数据写到外部存储器RAM中(写到任意单元中),然后再读出写入得内容,若对任意区读出和写入的内容都一致的话,则表示RAM存储器完好,无故障,否则有故障,若有故障,此时则应根据读写结果分析原因,故障原因有可能是工作电源没有加上或地址线数据线有错位、开路、短路、或读、写信号线没有连接好等等
有一资料上介绍了另一种方法,方法2:程序测试法(此方法是首先向整个数据
区写入同一数据,再一一读出比较,若不一样,则出错)。
测试程序如下: ORG 0001H
START: MOV A,#55H ;准备向数据区2000H~3FFFH写55H MOV B,A ;保存在B中 MOV DPTR,#2000H ;RAM首地址2000H
WR: MOV A,B ;取出要写至RAM的数据 MOVX @DPTR,A ;写入RAM的一个单元中 INC DPTR ;DPTR加1 MOV A,DPL ;取地址低字节
JNZ WR ;不为0,转WR继续 MOV A,DPH ;取地址高字节
CJNE A,#40H,WR ;40H(最高地址+1的高字节)
MOV DPTR,#2000H ;等于,即写完,重新置RAM首地址 RD : MOVX A,@DPTR ;读出单元的数据
CJNE A,B,ERR ;与写入的数比较,不相等则出错 INC DPTR ;加1
MOV A,DPL ;判别是否末地址 JNZ RD MOV A,DPH
CJNE A,#40H,RD
GOOD: SETB P1.0 ;全部比较完,正确 SJMP GOOD ERR : SETB P1.7
SETB ERR ;出错处理
计算机应用+嵌入式课程设计
运行该程序时如果D0二极管亮,说明外部RAM正常,否则,二极管D7亮,说明有故障。
还有一种网上文献所做的:
ORG 0000H LJMP START ORG 0040H
START: MOV SP,#60H
MOV DPTR,#1000H ;置外部RAM读写地址 MOV A,#55H ;测试的数据一 MOV B,A
MOVX @DPTR,A ;写外部RAM MOVX A,@DPTR ;读外部RAM
XRL A,B ;比较读回的数据 JNZ ERROR
MOV A,#0AAH ;测试的数据二 MOV B,A MOVX @DPTR,A MOVX A,@DPTR
XRL A,B
JZ PASS ;测试通过
ERROR: SETB P1.0 ;测试失败,点亮L1 SJMP $ ;停机
PASS: CPL P1.0 ;L1状态(亮/灭)转换 MOV R1,#00H ;延时 DELAY: MOV R2,#00H DJNZ R2,$ DJNZ R1,DELAY
LJMP START ;测试循环 END
程序详细设计
主程序设计 i. 要完成的功能简述(符合处理程序流程图)
将片外RAM的3000H到30FFH单元的内容设为7FH,程序从0050H开始 ii. 程序代码和注释(程序代码具有独特性)
ORG 0050H ;程序启动地址
3
计算机应用+嵌入式课程设计
MAIN: MOV R0,#00H ;将计数器R0清零
MOV DPTR,#3000H ;给DPTR存储器指针赋初值
LOOP1: MOV A,,#7FH ;累加器A赋值为7FH
MOVX @DPTR,A ;将存储器A中内容送到片外 INC DPTR ;单元地址自动加1 INC R0 ;计数器R0的值增1
CJNE R0,#00H,LOOP1 ;判断是否跳转执行循环,R0不为零则
执行循环,为0则继续执行下条指令
END ;程序结束标志
接口设置 i. 使用的集成电路与达到的要求
我们使用的集成电路时最简单的单片机电路来实现片外数据的存储与流动,要求我们将51系列CPU的P0口当做输入第八位地址用,同时还要分时复用成数据总线,P2口当做高八位地址所用(在此只需取高三位地址限于所选的芯片)。
程序的调试 i. 调度的工具
我们在此应用的调度工具是MCS-51仿真软件 使用条件:在WINDOWS平台下进行操作 调度步骤:首先将程序代码调入软件中进行调试,先构建再编译,装载程序后,如其能运行,则按F8观看数据的变化,在程序运行中观察R0,A,CODE的值,程序运行后在打开XDATA窗口观察XDATE的值
ii. 调试数据的正确性分析
经调试打开XDATE窗口3000H~30FFH单元中的值都为7FH,我们可以下出结论该程序设计正确,达到设计的目的。
4 总结报告
用文字概括课程设计的全过程(简单扼要、文体合适)
本次设计片外数据的存储与流动,实际上是扩展外部存储器,已满足用户的需求,片外数据的流动与存储课程设计重点是理论与实际相结合,不单单只是书上的一条条分离的指令。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,是对学生实际工作能力的具体训练和考察过程,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
经验与教训
锻炼实践能力的重要环节,回顾起此次的课程设计,我仍感慨颇多,的确,从选题到定稿,花了将近五个星期,但是可以学到很多东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高
计算机应用+嵌入式课程设计
自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说对汇编语言掌握得不好 通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编问题,最后在同学的帮助和老师的指导下终于游逆而解。最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
5 程序附录
与课程设计相关的、并具有独特见解的方面说明
传统设计方法用汇编语言编写程序,这主要是从保证速度和节省存储空间考虑,但编程费时,调试和排错很不容易。微电子技术的飞速发展,使高性能微处理器和大容量存储器的价格变得十分便宜,速度和存储容量不再是困扰设计者的主 要问题。由于C语言容易编程、代码紧凑、可移植性和可维护性好,因而被普遍用于嵌入式程序的设计。
本课程设计与可能有的产品建立的联系
如果拥有专用的嵌入式系统开发工具,设计工作便要省劲些。它们通常配有定位程序和可供设计者修改的启动程序样板,有些还能通过串口或并口,在PC机 上联机调试程序,甚至有源级代码调试功能。利用工控机来设计系统,事情就更简单。不过,专用开发工具和工控机价格昂贵,因此许多人在设计嵌入式系统时选择自己编 写定位程序和启动程序,甚至编写可嵌入的I/O库函数。
计算机应用+嵌入式课程设计
第三部分
对课程设计报告的要求
本次课程设计是以课程设计报告形式,由指导老师刘老师评审合格后交由系部保存。本说明书将本次设计的系统作一个简要的说明,本课程设计主要是对于片外数据存储器的,主要内容是片外数据的流动和存储。硬件主要是由微机系统(MCU),信号锁存单元(74LS373),外部存储单元(RAM 6116),并根据设计要求画出逻辑电路图,同时设计出错设计使用两种方式进行处理,之后设计符合处理程序流程和主程序设计。调试工具是MSC-51仿真软件,经调试本次设计的代码全部可正解执行其功能。